ist es üblich die Zeitkonstanten bei Echtzeit-Prog. wegzulassen?

Gast #6417188
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?
(Firma: www.harerod.de) Persönliche Seite #6421152
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
Gast #6438967
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.