Software PID Regler in C#

@winfried Wie kann ich K und D-Anteil ganz klein machen, in Simulink? Von diesem Kkritisch-Verfahren habe ich gelesen in meinem Buch von Reuter.

Reply to
multimederer
Loading thread data ...

Hallo Sebastian,

"multimederer" schrieb im Newsbeitrag news: snipped-for-privacy@g44g2000cwa.googlegroups.com...

Kann sein, daß Du für diese Fälle die Kurven alle einzeln aufnehmen mußt. Ich vermute, daß die sich alle unterscheiden könnten.

Du brauchst nicht die ganze Kurve bis zum Endwert aufzunehmen. Eine e-Funktion müßte man aus einem kleinen Stück schon berechnen können, auch Funktionen höherer Ordnung. Zur Not müßte man ein Programm zur Funktionsapproximation benutzen, könnte auch mit Matlab gehen.

Die Steigung der Kurve hast Du ja schon mit dem Limiter +-0.5 begrenzt, das funktioniert.

Im Moment habe ich mal testweise den PID-Regler so eingestellt:

proportional K=1.e1 integral I=1.e-1 derivative D=1.e-9

Das ist mehr zufällig so eingestellt, aber stabil. Wenn Du K größer machst, treten Schwingungen auf, durch den Limiter aber mit kleiner Amplitude.

mfg. Winfried

Reply to
Winfried Salomon

Hallo Sebastian,

"multimederer" schrieb im Newsbeitrag news: snipped-for-privacy@z14g2000cwz.googlegroups.com...

den Reuter habe ich auch, 2. Auflage von '75. Da stehen theoretische und praktische Einstellkriterien drin, z.B. die von Ziegler und Nichols. Bei PID geht das höchst einfach, auch in Simulink:

Du machst I und D so klein wie möglich, z.B. 1.e-12 oder so. Dann machst Du K immer größer, bei meinem Beispiel zwischen 10 und 20, bis erste Schwingungen auftreten, hier mit sehr kleiner Amplitude. Diesen Wert Kkrit merkst Du dir. Die Frequenz bei Kkrit mißt Du und bekommst die Periodendauer Tkrit.

Mit diesen Werten berechnest Du nach Ziegler und Nichols die P, PI- oder PID-Koeffizienten:

P-Regler: Kp=0.5*Kkrit

PI-Regler: Kp=0.45*Kkrit Tn=0.83*Tkrit

PID-Regler: Kp=0.6*Kkrit Tn=0.5*Tkrit Nachstellzeit Tv=0.125*Tkrit Vorhaltezeit

Die Übertragungsfunktion des PID-Reglers lautet so:

Fr=Kp + Ki/s + Kd*s

Ki=Kp/Tn Kd=Kp*Tv

Die Optimierung nach Ziegler und Nichols soll für Zwecke der Verfahrenstechnik sein, für Dich vielleicht grade richtig. Es stehen hier noch andere für Strecken hoher Ordnung und Totzeit, die nach anderen Kriterien optimieren. Es wird noch unterschieden zwischen optimal dem Führungswert folgen oder optimal die Störungen unterdrücken. Dann stehen noch mathematische Optimierungsansätze drin, man kann es auch mit dem Rechner machen, aber das ist dann schon großer Aufwand.

In Deinem Simulink-Modell könnten die Koeffizienten Kp, Ki und Kd sein, hab ich mir aber noch nicht so genau angesehen. Es könnte sein, daß Du sogar nur einen PI-Regler brauchst, aber jetzt müßte die Vorgehensweise klar sein.

Dein Simulink-Modell ist ein stetiger Regler. Ich hab Deine 1. Mail nochmal gelesen, Du willst was takten mit Periode 20 s? Also doch kein

2-Punktregler, sondern eine Pulsbreitenmodulation PWM? Dann mußt Du vor die Strecke noch eine PWM setzen, bestehend aus einem Dreieckgenerator Periode 20 s und einem Komparator, in einem Programm z.B. mit Up-Down-counter und Vergleich einfach machbar. Eine PWM mit so kleiner Frequenz würde ich allerdings mit Vorsicht betrachten, hab mal sowas im Audiobereich betrachtet, das mit dem Abtasttheorem ist da ziemlich verschärft.

mfg. Winfried

Reply to
Winfried Salomon

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.