|
|
Diskretisierung der Statespace ohne Matlabbefehl c2d |
|
JackieChen |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2009, 09:45
Titel: Diskretisierung der Statespace ohne Matlabbefehl c2d
|
|
Hallo zusammen,
Bei meiner Arbeit muss eine Modelbasierte Prädiktive Regelung(MPC) in Simulink umgesetzt werden, OHNE die Matlab-Befehle zu benutzen(wegen weitere C-Generierung,lautet meinem Betreuer).
Jetzt bei mir ist das Problem: Ich habe in simulink die MPC-Regelstruktur realisiert, aber mit dem zeitdiskreten SS-Modell. Aber aus Mechanikgrundlagen kann ich nur ein kontinuierliches SS-Modell kriegen. Dann muss das kontinuierliches SS-Modell in Simulink in ein diskretes umzuwandeln sein, ohne den Befehl von Matlab (wie c2d) zu benutzen.
Könnte jemand mir helfen?
Vielen Dank im Voraus!!
M.f.G.
JackieChen
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 17.02.2009, 09:57
Titel:
|
|
Verstehe ich das Recht, dass in der endgültigen Applikation die Diskretisierung in *jedem* Aufruf des Simulink-Modells (bzw. was daraus entsteht) durchgeführt werden soll? Oder nur einmal und dann bleibt es hardcodiert?
Andreas
|
|
|
JackieChen |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2009, 10:18
Titel:
|
|
Andreas Goser hat Folgendes geschrieben: |
Verstehe ich das Recht, dass in der endgültigen Applikation die Diskretisierung in *jedem* Aufruf des Simulink-Modells (bzw. was daraus entsteht) durchgeführt werden soll? Oder nur einmal und dann bleibt es hardcodiert?
Andreas |
Hi Andreas,
Die Diskretisierung sollte in der endgültigen Applikation in *jedem* Aufruf des Simulink-Modells (bzw. was daraus entsteht) durchgeführt werden.
Danke!
JackieChen
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 17.02.2009, 10:29
Titel:
|
|
C2D ist Bestandteil der Control System Toolbox, LINMOD ist aber bei Simulink dabei. Könnte das funktionieren?
Andreas
|
|
|
JackieChen |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2009, 10:44
Titel:
|
|
Andreas Goser hat Folgendes geschrieben: |
C2D ist Bestandteil der Control System Toolbox, LINMOD ist aber bei Simulink dabei. Könnte das funktionieren?
Andreas |
Hi Andreas,
alle Toolboxen dürfen nicht verwendet werden...
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 17.02.2009, 10:46
Titel:
|
|
Eben deshalb frage ich nach LINMOD, weil an Simulink geht ja kein Weg vorbei. Der Real-Time Workshop erzeugt den C-Code ja aus Simulink-Modellen.
Andreas
|
|
|
JackieChen |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2009, 11:12
Titel:
|
|
Andreas Goser hat Folgendes geschrieben: |
Eben deshalb frage ich nach LINMOD, weil an Simulink geht ja kein Weg vorbei. Der Real-Time Workshop erzeugt den C-Code ja aus Simulink-Modellen.
Andreas |
Hi Andreas,
danke für deinen Hinweis. Aber wußte ich LINMOD nicht genau. Habe gerade gesucht im Netz, es ist auch ein Befehl, den man in workspace eingeben muss, oder? wie argout = dlinmod('sys', Ts, x, u);
Also meine ursprüngliche Überlegung war:
Modell-> kontinuierliche A,B,C,D -> Diskretisierung -> diskrete A,B,C,D -> Nutzen in MPC-Algorithmus, alle sind in Simulink als Blocks umzusetzen.
Könntes Du bitte mir noch genauer erklären, mein Prozess mit LINMOD zu realisieren nach deiner Meinung?
vielen vielen Dank,
JackieChen
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 17.02.2009, 11:37
Titel:
|
|
OK, ich habe nich enmal genauer nachgedacht. es geht nicht nur darum Toolboxnutzung zu vermeiden, sondern es muss alles al Simulink *Modell* ausführbar sein. Meine Idee gine zwar über Simulink, müsste aber über Kommandozeile oder Menü ausgeführt werden.
=> Geht alles nicht so wie geünscht.
Ich schlage vor, dass wir die ganze Applikation in Zusammenarbeit mit dem Betreuer und einem Applkationsingenieur / Consultant von MathWorks anschauen. Bei Angabe der Kontaktdaten über Privatmitteilung veranlasse ich das gerne.
Andreas
|
|
|
JackieChen |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.02.2009, 12:39
Titel:
|
|
Andreas Goser hat Folgendes geschrieben: |
OK, ich habe nich enmal genauer nachgedacht. es geht nicht nur darum Toolboxnutzung zu vermeiden, sondern es muss alles al Simulink *Modell* ausführbar sein. Meine Idee gine zwar über Simulink, müsste aber über Kommandozeile oder Menü ausgeführt werden.
=> Geht alles nicht so wie geünscht.
Ich schlage vor, dass wir die ganze Applikation in Zusammenarbeit mit dem Betreuer und einem Applkationsingenieur / Consultant von MathWorks anschauen. Bei Angabe der Kontaktdaten über Privatmitteilung veranlasse ich das gerne.
Andreas |
OK. Mein Betreuer ist jetzt in Dienstreise in Schweden. Ich versuchs, mit dem Kontakt aufzunehmen, dann schreibe ich dir eine PN.
Vielen Dank für deine Hilfe!
|
|
|
JackieChen |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 17.02.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.02.2009, 13:00
Titel:
|
|
Hi Zusammen,
ich habe diese Diskretisierung schon in Simulink realisiert, zwar nicht mit irgendeinem speziellen Befehl, sondern wirklich die mathe manuell mit Blocks wie Fcn oder Mux oder Produkt umgesetzt.
Danke für eure Hilfe, wenn jemand das brauche, vielleicht kann ich die geben. (mit Erlaubnis von meinem Betreuer )
mfg
|
|
|
MichiNochwas |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.08.2014, 14:09
Titel:
|
|
Ich weiß dass dieser Thread nicht mehr ganz taufrisch ist, aber ich wüsste trotzdem gerne die Antwort auf die Frage. Bevor ich hier wegen demselben Sachverhalt nochmal ein Thema eröffne, probiere ich lieber so mein Glück.
Ich stehe vor dem gleichen Problem. Ich möchte meine kontinuierlichen Zustandsmatrizen (A,B,C,D) ohne verwendung von Matlabbefehlen wie linmod oder c2d in ihre diskreten Pendants bringen (natürlich mit entsprechender Abtastrate)
Ich habe bereits eine Möglichkeit gefunden, um die diskreten Matrizen Ad, Bd, Cd und Dd zu berechnen (dT = Abtastintervall)
[code]
Ad = expm(A*dT);
Bd = inv(A)*(Ad-eye(length(A)))*B;
Cd = C;
Dd = D;
[\code]
Leider steht mir der expm-Befehl in C-Code nicht zur Verfügung! Wie kann ich diese Berechnung in C Code ersetzen?
Danke für die Hilfe!
|
|
|
|
|
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.
|
|