|
|
Überlauf eines Winkels von 360° zu 0° |
|
Patrick1990 |
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 25.02.13
|
|
|
|
Wohnort: Thüringen
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 27.10.2015, 15:14
Titel: Überlauf eines Winkels von 360° zu 0°
|
|
Hallo,
ich möchte einen Winkel phi, wenn er den Wert 360 erreicht hat zu 0 überlaufen lassen,, sodass der winkel dann immer von 0-360 Grad geht.
Bisher habe ich den Winkel verglichen und dann zu 0 gesetzt.
Geht dies auch eleganter?
Grüße,
Patrick
|
|
|
|
|
Winkow |
Moderator
|
|
Beiträge: 3.842
|
|
|
|
Anmeldedatum: 04.11.11
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: R2014a 2015a
|
|
|
|
|
|
Verfasst am: 27.10.2015, 15:24
Titel:
|
|
Zitat: |
Bisher habe ich den Winkel verglichen und dann zu 0 gesetzt. |
ohne code kann man schlecht verbesserungsvorschläge machen.
mod
_________________
richtig Fragen
|
|
|
Patrick1990 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 25.02.13
|
|
|
|
Wohnort: Thüringen
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 27.10.2015, 15:35
Titel:
|
|
Ich habe da keinen Code, habe das im Simulink mit Blöcken realisiert.
Mein Winkel kommt aus einem Integrator. Hinter dem Integrator vergleiche ich dann, ob der Winkel größer gleich 360 ist. Wenn ja, wird der Integrator zurückgesetzt.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.10.2015, 15:38
Titel:
|
|
Hallo,
wäre es sinnvoll, mit
zu arbeiten?
Wenn man keinen anderen Weg findet, könnte man das in eine MATLAB Function einbauen.
Grüße,
Harald
|
|
|
Patrick1990 |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 51
|
|
|
|
Anmeldedatum: 25.02.13
|
|
|
|
Wohnort: Thüringen
|
|
|
|
Version: 2015b
|
|
|
|
|
|
Verfasst am: 27.10.2015, 16:24
Titel:
|
|
Hallo Harald,
Das klappt so, wie ich es auch vorher hatte. Finde deine Lösung allerdings eleganter.
Danke.
|
|
|
Epfi |
Forum-Meister
|
|
Beiträge: 1.134
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.10.2015, 22:52
Titel: Re: Überlauf eines Winkels von 360° zu 0°
|
|
Patrick1990 hat Folgendes geschrieben: |
ich möchte einen Winkel phi, wenn er den Wert 360 erreicht hat zu 0 überlaufen lassen,, sodass der winkel dann immer von 0-360 Grad geht.
Bisher habe ich den Winkel verglichen und dann zu 0 gesetzt.
Geht dies auch eleganter?
|
Das geht vor allem richtiger. Wenn Du auf 0 setzt, wenn der Winkel >=360° ist, machst Du immer dann einen Fehler, wenn der Winkel >360° ist. Weil dann nämlich z.B. 365° zu 0° wird, statt 5°.
Darum ist
mod
nicht nur eleganter, sondern auch besser im Sinne von richtiger.
|
|
|
ppks |
Forum-Newbie
|
|
Beiträge: 2
|
|
|
|
Anmeldedatum: 05.12.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.12.2019, 12:25
Titel:
|
|
|
|
|
Hallo,
ich habe mal eine Frage im Zusammenhang mit diesem Thema:
Ich stehe vor folgendem Problem:
Ich möchte gerne die Zustände eines mechanischen Systems mittels Zustandsbeobachter rekonstruieren. Der Beobachter soll dabei unter anderem den Winkel des Motors verwenden. Simulativ werden die Zustände sehr gut rekonstruiert (sofern der Motorwinkel nicht begrenzt wird (sondern gegen unendlich läuft)). Dies ist in Realität aber nicht der Fall. Der Winkel läuft eben immer von 0 bis 2 Pi. Die Unstetigkeit von 2 Pi zu 0 kann der Beobachter nicht bewältigen, sodass die Zustände kurzzeitig exorbitant große Werte annehmen.
Meine bisherigen Versuche: Dem rekonstruierten Winkel für diese Sprungstelle ein vorgegebenes Verhalten aufzwingen, also quasi den rekonstruierten Winkel zu 0 setzen, wenn der gemessene Winkel 0 wird. Funktioniert leider nicht. Ich denke, weil der exakte Zeitpunkt bzw. der exakte Wert von dem aus auf 0 gesprungen wird nicht bekannt ist.
Eine weitere Idee war die Unstetigkeit zu "beseitigen", indem im Bereich der Unstetigkeit anstatt des Sprungs die Sprungantwort eines PT2 Gliedes verwendet wird, aber dabei stellt auch wieder die richtige "Platzierung" ein ziemliches Problem dar und schön ist diese Lösung auch nicht.
Ein weiterer Lösungsansatz ging so in die Richtung vom gemessenen Winkel den Sinus/Cosinus zu nehmen, sodass dem Beobachter dann ein wellenförmiger Verlauf zugefügt wird, aber damit bin ich noch nicht weiter.
Meine Frage ist jetzt eigentlich: Das Problem ließe sich ja ganz leicht lösen, wenn man aus dem gemessenen Signal wieder ein monoton steigendes bastelt um die Unstetigkeit nicht drin zu haben. Das bedeutet dann ja aber, dass der Winkel immer größer wird und gegen unendlich läuft.
Jetzt meine (recht dämliche) Frage: Stellt das ein Problem für Simulink da, wenn ein Wert gegen unendlich läuft? Also mir ist klar, dass die Solver bei instabilen Systemen irgendwann abbrechen wenn die Werte zu groß werden. (Wobei ich mich dann gefragt habe, ob dies nicht auf die Änderungsrate zurückzuführen ist)
Falls ja, hat jemand vielleicht einen Lösungsansatz (ich erwarte keine Anleitung ), wie das Problem mit der Unstetigkeit gelöst werden kann (Meiner Einschätzung nach sollte das ein weit bekanntes und gelöstes Problem sein)?
Vielen dank für eure Ratschläge!
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|