Gast
#4880416
Hallo,
ich hoffe hier kann mir jemand helfen.
Ich muss in MatLab die Temperatur eines Durchlauferhitzers über einen
PID-Controller regeln. Nun habe ich leider nicht so viel Erfahrung im
Programmieren und die Umsetzung fällt mir dementsprechend schwer.
Wenn jemand über meinen Code schauen könnte und mir sagen kann ob der
logische Aufbau so weit ersteinmal stimmt oder nicht wäre mir schon sehr
geholfen.
Vielen Dank!
T_HM_soll ist die Führunsgröße
while T_HM < T_HM_soll
k=k + 1;
error=T_HM_soll-T_HM;
%integration
int_error = int_error + (error * Dt);
if int_error > 2 %I-Anteil begrenzen
int_error = int_error + error;
end
% differentiation
diff_error = (error-prev_error) / Dt;
% scaling
p_term = (Kp * error);
i_term = (Ki * int_error);
d_term = (Kd * diff_error);
% Summe
control = p_term + i_term + d_term;
% alten Fehler mit aktuellem Fehler überschreiben
prev_error = error;
dT_HM = control;
time = time + Dt;
T_HM = T_HM_V + dT_HM;
disp(T_HM)
Results(k,:)=[ T_HM, time];
disp(Results)
end