Forum: Digitale Signalverarbeitung / DSP / Machine Learning ist es üblich die Zeitkonstanten bei Echtzeit-Prog. wegzulassen?


von jan (Gast)


Lesenswert?

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?

von Rolf M. (rmagnus)


Lesenswert?

Ich würde sagen, ja. Warum soll man das auch in jedem Zyklus nochmal neu 
umrechnen, wenn die Zykluszeit eh konstant ist?

von Walter T. (nicolas)


Lesenswert?

"Weggelassen" ist wohl das falsche Wort. Sie werden in die 
Laufzeitparameter (z.B. Ki, Kd) einberechnet.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

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

von Ingenieur (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.