Angenommen, man realisiert einen digitalen Regler. In den Formeln tauchen ja immer Zeitkonstanten bzw. Differenzen auf. Ich habe neulich gesehen, dass Zeiten bei einer Embedded-Programmierung immer auf die Anzahl der verstrichenen Zyklen bezogen wurde und die Umrechnung Anzahl Zyklen-->tatsächliche Zeit dann stattdessen automatisch in den Parametern des Reglers mit drin steckten. Man hatte also keine echten Verstärkungen mehr als Variablen... ist so eine Vorgehensweise üblich?
Ich würde sagen, ja. Warum soll man das auch in jedem Zyklus nochmal neu umrechnen, wenn die Zykluszeit eh konstant ist?
"Weggelassen" ist wohl das falsche Wort. Sie werden in die Laufzeitparameter (z.B. Ki, Kd) einberechnet.
Das Stichwort ist "Optimierung". ;) In diesem Fall - Optimierung auf Rechenzeit. Es gäbe noch andere Optimierungsarten - je nach Anforderung. War die Implementierung noch in FLießkomma? Dann wundere Dich nicht, falls Du mal einen Regler mit Festkommadarstellung siehst. :) Hier habe ich mir mal den Spaß erlaubt, einen PID-Regler in Maschinensprache auf einen ATtiny10 zu spielen: http://harerod.de/applications_ger.html#xmasball2012 Und so ein AVR hat eine Menge Rechenleistung, z.B. wenn ich an den LEM Bordcomputer denke... :D
jan schrieb: > ist so eine Vorgehensweise üblich? Es ist das üblich, was die Konvention der Firma vorschreibt. Wenn ein Regler im Zeitbereich entwickelt wurde, liegen ja Zeiten in Form von ms und 1/Tau vor. Die hat irgendjemand mal mit der Taktfrequenz in Verbdindung gebracht und die Zyklen ausgerechnet - nebst den dazu nötigen Korrekturgliedern, die auf die Diskretisierung Rücksicht nehmen. und beides ist zu dokumentieren. Will man den Code flexibel, sollten das austauschare Konstanten in einem header file sein, welches dann zugeordnet wird. Für sicherheitskritische Anwendungen schließen manche diese Flexibilisierung aus, um durch das Code-Review zu kommen, und bauen alles in den Code fest ein und orden das file der Regler-HW hart zu. Jedes file muss dann eben händisch aktualisiert werden. Halte ich persönlich für overloaded.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.