TwinCat 2.11 kontinuierlicher Regler implementieren

kungp1

Level-1
Beiträge
6
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag!

Ich stehe vor folgendem Problem:

Ich muss einen kontinuierlichen Regler mit der Übertragungsfunktion (g1*s+g0)/(s*(s+h0)) in Twincat implementieren. Es geht um die Kraftregelung eines LinMot Linearantriebs, welcher über Twincat angesteuert werden soll. Es kann also kein Regler verwendet werden, der von der LinMot Bibliothek zu Verfügung gestellt wird.

Die Parameter (g0 = 89.793, g1 = 5.923, h0 = 72.582) habe mich mit Matlab berechnet (System gemessen, System mit ident identifiziert, Modell erstellt, Prameter berechnet).

Hat irgendjemand von Euch schon einmal einen Regler dieser Form in TwinCat implementiert?

Ich bin für jegliche Tipps und Ratschläge, egal welcher Art, sehr dankbar! Es geht um ein Studentenprojekt und ich habe mit TwinCat kaum Erfahrung und steckte dementsprechend fest in der Klemme...

Liebe Grüsse aus der Schweiz
 
Kontinuierlich geht natürlich mit einer SPS nicht, weil eine SPS zeitdiskret arbeitet. Die zeitkontinuierliche Übertragungsfunktion muss in eine zeitdiskrete transfomiert werden, z.B. mit der Tustin-Methode. Dann kannst du aus der z-Funktion die Differenzengleichung herleiten und einen Regler-Baustein erstellen, oder für die z-Funktion z.B. den FB_CTRL_TRANSFERFUNCTION_1 aus der Controler Toolbox verwenden.
Eine andere Idee wäre die vorhandene Übertragungsfunktion zu der von PI_PID umzuformen, sie scheinen ziemlich ähnlich. Dann kann man aus g0, g1 und h0 die PID-Parameter ausrechnen und einen Standard PID aus der Controler Toolbox verwenden, der etwas mehr Komfort um den "nackten" PID - Regler drum rum bietet.
 
Zurück
Oben