|
|
Hysterese einer Stellgröße programmieren |
|
Eddy2k |

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 15.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 02.07.2013, 19:55
Titel: Hysterese einer Stellgröße programmieren
|
 |
Hallo Leute,
folgendes Problem:
Die Stellgröße eines Reglers ist begrenzt, sodass sich eine Hysterese ergibt. Folgendes passiert:
Die Stellgröße u kann von 0 bis 100 % variiert werden.
Im Prinzip werden bis u = 17 % tatsächlich die eingegeben Werte verwendet, ab u = 18 % erfolgt eine Schaltung auf 12 %. D.h. für u >=18 wird immer u = 12 % verwendet. Erst wenn wieder auf 12 abgesenkt wird, können auch wieder die Werte von 13 - 17 % genutzt werden. Ab u = 18 % erfolgt wiederrum eine Reduzierung auf 12 % usw.
Ich versuche jetzt schon die ganze Zeit dieses Verhalten mithilfe von if/else-Befehlen in einer Embedded Matlab Function abzubilden. Der Eingang ist das normale u von 0 bis 100 %, der Ausgang y soll dann die begrenzte Stellgröße ausgeben. Es wäre super, wenn mir jemand helfen könnte!
MfG
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 02.07.2013, 22:53
Titel:
|
 |
Hallo,
mir ist in diesem Absatz nicht klar, was nun Eingang ist und was unter welchen Bedingungen der Ausgang. Insbesondere: hängt der Ausgang auch von zurückliegenden Eingängen / Ausgängen ab?
Wenn du das mal übersichtlich hinschreibst, wird es vermutlich leichter, dir zu helfen. Vielleicht kannst du dir dann auch selbst helfen :)
Grüße,
Harald
|
|
|
Eddy2k |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 15.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2013, 00:10
Titel:
|
 |
Hallo Harald, danke schonmal für die Antwort. Das ganze ist nicht so leicht zu beschreiben, aber ich versuchs nochmal anders.
In die Funktion geht eine Stellgröße u ein, die Werte von 0 bis 100 annehmen kann.
Steigt u (z.B. in 1er Schritten) bis auf 17, dann sollen die entsprechenden Werte als Ausgang y ausgegeben werden.
Sobald u>17 (bis u = 100) ist, soll y nur noch 12 ausgeben.
Wenn u nun wieder <= 17 ist, bleibt y dennoch weiterhin bei 12.
Erst wenn u wieder < 13 ist , ist der Ausgangszustand erreicht.
D.h. wenn u nun wieder Werte von 0 - 17 liefert, soll y diese Werte auch ausgeben.
Erst wenn u wieder > 17 ist, soll y wieder nur 12 ausgeben.
Das ganze soll immer wieder so ablaufen.
Ich hoffe jetzt kann man es etwas besser nachvollziehen. Mit meinen Fähigkeiten hab ich es nicht hinbekommen
Gruß
|
|
|
Winkow |

Moderator
|
 |
Beiträge: 3.842
|
 |
|
 |
Anmeldedatum: 04.11.11
|
 |
|
 |
Wohnort: Dresden
|
 |
|
 |
Version: R2014a 2015a
|
 |
|
|
 |
|
Verfasst am: 03.07.2013, 00:17
Titel:
|
 |
geht u als skalar in die fuktion ein oder als vektor. sonst ist es schwer zu sagen ob u grade größer oder kleiner wird. wenn es als vektor vorliegt könnte man vieleicht mit diff rausfinden ob er grade zu oder abnimmt. und das dann entsprechend auswerten mit if then.
|
|
|
Eddy2k |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 15.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2013, 01:17
Titel:
|
 |
Die Größe u kommt aus einer Step-Funktion. Soweit ich weiß sollte das eine skalare Größe sein. Die Embedded Matlab Function, in die das u kontinuierlich eingeht, soll dann im Prinzip als Filter dienen, mit den oben beschriebenen Operationen. Mit if/else bin ich zu keiner Lösung gekommen...
|
|
|
Eddy2k |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 27
|
 |
|
 |
Anmeldedatum: 15.06.12
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.07.2013, 11:54
Titel:
|
 |
Hallo Leute,
das Problem ist behoben! Ich habe es zum Schluss doch geschafft, das oben beschriebene Verhalten zu programmieren. Für alle die es interessiert poste ich hier den entsprechenden Code:
Vielen Dank für eure Hilfe!
Gruß
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.07.2013, 13:07
Titel:
|
 |
|
|
|
|
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 - 2025
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.
|
|