Hallo Zusammen,
ich hab ein kleines Problem, ich integriere einen Sensorwert (Gyro
Gradangaben), irgendwann kommt der natürlich an sein Limit (bei Int
+65.XXX) und hüpft "radikal" auf -65.XXX... (habs natürlich auf Long,
aber
da kenne ich die Limits nicht)
Sprich die Regelung macht einen Maximalen Ruck.
Weiß jemand wie ich das lösen kann? Alles würde klappen,
wenn der Überlauf nicht da wäre.
Danke & Viele Grüße
Bernd
und warum integrierst du die so lang?
brauchst du denn die positive UND die negative richtung?
falls nicht, benutz doch einen unsigned, da ist der werteberteich
doppelt so groß.
Abgesehen davon kann es nicht sein, dass er von +65535 auf -65536
springt, da ein signed int nur von -32768 - +32767 geht.
Wenn du wirklich den von dir beschriebenen Überlauf hast, dann
berechnest du irgend wo etwas falsch.
tip: für Arithmetik benutze die typen aus dem stdint.h, da ist
unabhängig von der Plattform immer klar, wie breit dein Datentyp ist.
Bernd schrieb:
> Hallo Zusammen,>> ich hab ein kleines Problem, ich integriere einen Sensorwert (Gyro> Gradangaben), irgendwann kommt der natürlich an sein Limit (bei Int> +65.XXX) und hüpft "radikal" auf -65.XXX... (habs natürlich auf Long,> aber> da kenne ich die Limits nicht)>> Sprich die Regelung macht einen Maximalen Ruck.>> Weiß jemand wie ich das lösen kann? Alles würde klappen,> wenn der Überlauf nicht da wäre.>> Danke & Viele Grüße> Bernd
Was willst du genau machen und wie sieht dein Code aus?
Hallo,
vielen Dank. Ja klar. Ich wußte nur nicht genau wie die Grenzen liegen.
Geht auch vielmehr allgemein, es muß doch möglich sein, bei begrenzten
Zahlen (mit Überlauf) ein konstantes Signal auszugeben.
Mir fehlen leider hier die Hintergründe.
Danke & Viele Grüße
Bernd
Irgendwann wir ja einer der beiden Summanden den Überlauf erreichen,
dann wird plötzlich die Differenz riesig. Riesensprung in der
Regelung...
Danke & Viele Grüße
Bernd
nachtrag, natürlich kann ich das Problem irgendwie umgehen,
werte kleiner skalieren etc.
Aber es muß doch eine sauber Lösung geben. ...
aber, trotzdem vielen Dank
Welchen Sinn macht es, Grade zu integrieren?
Wenn dir dein Winkelsensor jede Sekunde 30° meldet, dann hast du
30
60
90
120
150
was ist nach 5 Sekunden die Aussage der 150° ?
Bei einer Regelgung wird die Differenz des Istwerts zum Sollwert
aufintegriert. Ist deine Regelstrecke sauber eingeschwungen, dann ist
diese Differenz ständig 0 und die Summe daher auch 0
(Persönlich denke ich, dass du der nächste bist, der auf die harte Tour
lernt, dass Gyros nicht dazu taugen eine Lage im Raum durch
aufintegrieren zu bestimmen und nachzuführen. Die Gyrodrift macht dir
das Leben zur Hölle: Der Gyro meldet eine Drehbewegung wo objektiv
gesehen keine vorhanden ist)
Eine eigene Frage?
Dieser Thread ist über 17 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.