|
|
Änderungsgeschwindigkeit eines Signals begrenzen |
|
Mr.Tea |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 15.05.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.09.2019, 13:31
Titel: Änderungsgeschwindigkeit eines Signals begrenzen
|
|
|
|
|
Hallo liebe Gemeinde,
Ich Arbeite gerade im Rahmen meiner Diplomarbeit an einem Größeren Projekt in Simulink. Dieses stellt einen Wärmeübertrager dar der Thermostatisch geregelt wird. Nun soll eine Umstellung auf eine elektronische Regelung erfolgen und dafür wird ein Motorventil benötigt. Dieser Motor hat nun eine gewisse Stellzeit die in Smiulink nachgebildet werden muss.
Grob erklärt: Regeldifferenz -> Regler -> Motor -> Ventil -> Wärmeübertrager -> Regeldifferenz
Ich habe nun schon einige Varianten probiert und nichts funktioniert wie gewünscht. Gerade versuche ich es über einen Matlab function Block mit folgendem Code zu realisieren:
du ist dabei die Änderungsgeschwindigkeit von u (also du/dt) und dy analog für y.
Anbei findet ihr auch noch eine kleine Simulation die zugehörigen Daten zum testen der Funktion. Ich hoffe sehr das mir jemand weiter helfen kann!
Beschreibung: |
|
Download |
Dateiname: |
Elektronisch_geregelt_test_stellzeit.slx |
Dateigröße: |
25.29 KB |
Heruntergeladen: |
336 mal |
Beschreibung: |
|
Download |
Dateiname: |
test_data_for_delay.m |
Dateigröße: |
491 Bytes |
Heruntergeladen: |
357 mal |
|
|
|
|
|
Mmmartina |
Forum-Meister
|
|
Beiträge: 745
|
|
|
|
Anmeldedatum: 30.10.12
|
|
|
|
Wohnort: hier
|
|
|
|
Version: R2020a
|
|
|
|
|
|
Verfasst am: 19.09.2019, 07:42
Titel:
|
|
Es soll also nicht die Abtastzeit des gesamten simulierten Systems eingestellt werden (-> dies würde in den Configuration Parameters -> Solver eingestellt werden)?
Sondern in einem einzelnen Block die Geschwindigkeit? Also das z,b, nicht alle 10ms das Signal verarbeitet wird, sondern alle 100ms?
Du könntest versuchen, die Sampletime des einzelnen Blocks anders einzustellen (Block-Maske öffnen -> Sample Time).
Wenn es nur eine Zeitverzögerung sein soll, dann mit dem Delay (z^-x) arbeiten.
Oder soll der Ausgang gegenüber des Eingangs verzögert werden? Dann gibt es irgendwo meist die möglichkeit, die Port-based sampletime noch einzeln einzustellen. Musst du auch mal in den Eingabemasken schauen.
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Mr.Tea |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 15.05.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 19.09.2019, 08:44
Titel:
|
|
Die Abtastzeit des Systems soll hier gar nicht angefasst werden. Es geht darum, dass sich sobald sich das Eingangssignal der Matlab function ändert sich auch das Ausgangssignal ändert aber halt mit einer maximalen Änderungsgeschwindigkeit (der Motor kann halt nicht beliebig schnell verstellen, sondern mit einer Maximalen Geschwindigkeit). Dies soll so lange passieren bis das Ausgangssignal gleich dem Eingangssignal ist.
|
|
|
Mmmartina |
Forum-Meister
|
|
Beiträge: 745
|
|
|
|
Anmeldedatum: 30.10.12
|
|
|
|
Wohnort: hier
|
|
|
|
Version: R2020a
|
|
|
|
|
|
Verfasst am: 19.09.2019, 10:16
Titel:
|
|
Ah!
Dann schau doch mal, ob du mit 'nem Regler weiter kommst.
PI oder vielleicht sogar nur I-Regler?
_________________
LG
Martina
"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
|
|
|
Mr.Tea |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 15.05.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.09.2019, 09:10
Titel:
|
|
Ich habe es jetzt mal mit einem I-Regler versucht, leider funktioniert das nur bedingt. Ich kann den Regler so einstellen, dass er bei einer Sprunghöhe den richtigen Zeitverzug generiert. Also zum Beispiel bei einem Sprung des Eingangssignals von 1 auf 2 stimmt der Verzug, bei einem Sprung von 2 auf 5 stimmt er dann nicht.
|
|
|
Mr.Tea |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 15.05.19
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.09.2019, 14:28
Titel:
|
|
Kleines Update:
Ich mache das nun mit einem Rate Limiter Block mit der Einstellung Continuos. Funktioniert super...Manchmal sieht man eben den Wald vor lauter Bäumen nicht!
|
|
|
|
|
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.
|
|