WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Variable Sample time eines Subsystems für RTW

 

Cococabana
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.04.2012, 09:31     Titel: Variable Sample time eines Subsystems für RTW
  Antworten mit Zitat      
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. Wink

Danke schonmal, Cococabana
Private Nachricht senden Benutzer-Profile anzeigen


Cococabana
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 16.04.2012, 09:56     Titel:
  Antworten mit Zitat      
...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 Wink

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 Sad

Gruß, Cococabana

rtw_strom_integrator.mdl
 Beschreibung:

Download
 Dateiname:  rtw_strom_integrator.mdl
 Dateigröße:  94.26 KB
 Heruntergeladen:  473 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
flyflo
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 07.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2012, 14:17     Titel:
  Antworten mit Zitat      
hast du mittlerweile eine Lösung?
Private Nachricht senden Benutzer-Profile anzeigen
 
flyflo
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 07.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2012, 14:48     Titel:
  Antworten mit Zitat      
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 Sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Cococabana
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2012, 15:00     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
flyflo
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 07.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2012, 15:36     Titel:
  Antworten mit Zitat      
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 Smile

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.

Private Nachricht senden Benutzer-Profile anzeigen
 
Cococabana
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 15.03.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.08.2012, 16:04     Titel:
  Antworten mit Zitat      
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?

rl.PNG
 Beschreibung:

Download
 Dateiname:  rl.PNG
 Dateigröße:  8.58 KB
 Heruntergeladen:  754 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
flyflo
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 07.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2012, 09:09     Titel:
  Antworten mit Zitat      
Danke!
Private Nachricht senden Benutzer-Profile anzeigen
 
flyflo
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 07.06.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.08.2012, 15:47     Titel:
  Antworten mit Zitat      
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 Sad

Wäre super wenn mir jemand helfen könnte Wink
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.