|
|
Variable Sample time eines Subsystems für RTW |
|
Cococabana |
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 15.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 13.04.2012, 09:31
Titel: Variable Sample time eines Subsystems für RTW
|
|
|
|
|
Hallo Leute,
ich habe ein Problem welches meinen Matlab-Horizont ein wenig sprengt. Ich möchte mit dem Real Time Workshop ein Subsystem exportieren. Im Simulink Subsystem soll ganz einfach der Strom einer Induktivität berechnet werden.
Als Eingangswerte habe ich einen Spannungsvektor und einen Zeitvektor. Der Zeitvektor beinhaltet die einzelnen Integrationszeiten, die in der Summe die "wahre" Samplezeit bilden (400µs). D.h. ich habe beispielsweise einen Zeitvektor d von 4 Werten: d[0]=23µs, d[1]=260µs, d[2]=94µs, d[3]=23µs
Der Spannungsvektor beinhaltet die 4 Spannungswerte u[x](d[x]) über die jeweilige Zeitdauer.
Meine Idee war vor der eigentlichen Berechnung des Stromes eine Mimik zu entwerfen, die quasi wie ein Umschalter funktioniert. D.h. immer dem Berechnungs-Subsystem einen einzelnen Wert des Vektors gibt, ihm die dazugehörige Integrationszeit als Sampletime anweist und nach Berechnung des Stroms diesen in einen Ausgangsstrom-Vektor wieder einordnet.
Problem 1: ich bin mir unsicher ob dieses nacheinander Umschalten überhaupt mit Simulink zu machen ist. Wenn nicht, welche Alternative bliebe mir?
Problem 2: Wie übergebe ich die einzelnen Integrationszeiten dem Berechnungs-Subsystem als Sampletime? Triggered Subsystem und dieses irgendwie mit einem Pulse Generator speisen?
Ich hoffe das ist einigermaßen verständlich geschrieben. Wäre nett wenn jemand mit etwas mehr Erfahrung mir ein paar Tipps geben könnte.
Danke schonmal, Cococabana
|
|
|
|
|
Cococabana |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 15.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 16.04.2012, 09:56
Titel:
|
|
|
|
|
...das war wohl etwas zu kryptisch beschrieben. Ich hab mal meinen Stand der Dinge als Anhang dazugepackt. Ich weiss, mit einem embedded Matlab Code wäre es einfacher gewesen, aber so klappt es erstmal auch
Wie bereits beschrieben habe ich einen (Simulations-)Zeitvektor und einen Spannungsvektor zur Verfügung. Bekommen möchte ich einen Stromvektor. Es handelt sich nun um eine RL-Last, bestehend aus ohmschen Widerstand und Induktivität. Es gilt daher
di/dt = u/L - (R/L*i)
In meinem Modell habe ich die Blöcke gelb gekennzeichnet, welche mir in Abhängigkeit der Zeit meine Eingangsvektoren (Spannung/u und Zeit/d) zerlegen und meinen Ausgangsvektor (Strom/i) bauen.
Im grünen Block findet die eigentliche Berechnung statt.
Ich habe nurnoch ein Problem: Wie kann ich dem diskreten Integrator im grünen Block die Zeitvektorelemente als Samplezeiten übergeben?
Ich weiss das eine Änderung eines Eigenschafts-Parameters zur Laufzeit nicht möglich ist, aber eventuell kann man Matlab ja per triggered Subsystem oder ähnliches dazu verleiten trotzdem das zu machen was von ihm verlangt wird...
Wäre euch dankbar wenn jemand mal rübersehend könnte. Irgendwie muss das doch klappen
Gruß, Cococabana
Beschreibung: |
|
Download |
Dateiname: |
rtw_strom_integrator.mdl |
Dateigröße: |
94.26 KB |
Heruntergeladen: |
473 mal |
|
|
|
flyflo |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 07.06.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2012, 14:17
Titel:
|
|
hast du mittlerweile eine Lösung?
|
|
|
flyflo |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 07.06.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2012, 14:48
Titel:
|
|
ich habe genau das selbe Problem: Zeit- und enstprechender Datenvektor. Innerhalb eines Simulink-Modells soll nun dieser Datenvektor zu den jeweiligen Zeiten im Zeitvektor durchsimuliert werden....Hilfeeeeee
|
|
|
Cococabana |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 15.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2012, 15:00
Titel:
|
|
|
|
|
habe leider gerade wenig zeit, deshalb nur kurz.
ich habe das problem folgendermaßen gelöst:
discrete time integrator auf akkumulation stellen. damit wird die simulink-simulationszeit als Ts nicht mehr betrachtet. dann das discrete modell in ein for-subsystem stecken. als eingänge bekommt das subsystem den vektor mit den zu integrierenden werten, den vektor mit den integrationszeiten, und die iterationsvariable indem das for-subsystem die iterationsschritte mitgeteilt bekommt. im subsystem dann einfach mit der aktuellen iterationsvariable und einem multiplexer pro iterationschritt das richtige vektorelement dem modell übergeben.
für den ausgangsvektor analog verfahren indem mit iterationszahl einem vektor die einzelnen ausgangswerte des modells als vektorelemente übergeben werden
edit: ganz vergessen: so wie bei dem eigangsvektor verfährst du dann auch mit dem zeitvektor, indem du die einzelnen zeit-vektorelemente einfach für den integrator reinmultiplizierst.
gruß coco
|
|
|
flyflo |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 07.06.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2012, 15:36
Titel:
|
|
Vielen Dank für die rasche Antwort - konnte alles soweit umsetzen bis auf deinen letzten Kommentar...könntest du das nochmals genauer erläutern???
DANKE
Cococabana hat Folgendes geschrieben: |
habe leider gerade wenig zeit, deshalb nur kurz.
edit: ganz vergessen: so wie bei dem eigangsvektor verfährst du dann auch mit dem zeitvektor, indem du die einzelnen zeit-vektorelemente einfach für den integrator reinmultiplizierst.
|
|
|
|
Cococabana |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 14
|
|
|
|
Anmeldedatum: 15.03.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 22.08.2012, 16:04
Titel:
|
|
wenn du vor selben problem wie ich seiner zeit stehst, dann besitzt du 2 eingangsvektoren. einen eingangsvektor mit den zu integrierenden werten u(k) und den mit den integrationszeiten duration(k).
mit der methode das du mit einem for-subsystem die einzelnen elemente nacheinander übergibst musst du, damit der integrator auch eine integrationszeit bekommt, diese mit in den zweig nehmen. am beispiel einer ohmsch-induktiven last siehe anhang.
any questions?
Beschreibung: |
|
Download |
Dateiname: |
rl.PNG |
Dateigröße: |
8.58 KB |
Heruntergeladen: |
754 mal |
|
|
|
flyflo |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 07.06.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.08.2012, 09:09
Titel:
|
|
|
|
flyflo |
Forum-Anfänger
|
|
Beiträge: 11
|
|
|
|
Anmeldedatum: 07.06.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.08.2012, 15:47
Titel:
|
|
ich habe das nun alles so realisiert. Leider stimmen meine Ergebnisse nun gar nicht mehr. Ich denke es liegt daran, dass ich nun eben eine diskrete Simulatiuon habe.....
kennt sonst noch jemand eine Möglichkeit, wie ich in einem Simulink-Modell ein weiteres Modell aufrufe, welches anhand eines Zeit- und Datenvektors separat (continous) durchsimuliert wird (das "Untermodell enthält Integrator-Glieder sowie einen PI-Regler)
...ich bin so langsam mit meinem Latein am Ende
Wäre super wenn mir jemand helfen könnte
|
|
|
|
|
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.
|
|