-
-
Erfahrener Benutzer
Fleißiges Mitglied
//differential part
d=(e-e0)*dt/F_CPU*zd/nd;
Ich nehme an Du fährst den Atmega mit ein paar Magahertz.
Falls Du dann : (e-e0)*dt/F_CPU ausrechnest kommt wohl meist irgendwas unter 1 raus, bei nem Integer ergibt das also 0.
(e-e0)*dt muß also um einiges höher also F_CPU sein.
So wie ich das sehe läuft der Regler nicht mit äquidistanten Aufrufen, wird also aufgerufen wenn Zeit ist.
Das ist nach meinen Kenntnissen schlecht für die Reglerqualität. Ist es nicht möglich das in nem Timer zu erledigen?
Babbage
P.S. Ich habe nicht so richtig durch die Implementierung deines Reglers geblickt, ist das nicht normalerweise ein Einzeiler in der Form:
https://www.roboternetz.de/wissen/in...nik#PID-Regler
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen