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

Diskretisierung der Statespace ohne Matlabbefehl c2d

 

JackieChen
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2009, 09:45     Titel: Diskretisierung der Statespace ohne Matlabbefehl c2d
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 17.02.2009, 09:57     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
JackieChen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2009, 10:18     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 17.02.2009, 10:29     Titel:
  Antworten mit Zitat      
C2D ist Bestandteil der Control System Toolbox, LINMOD ist aber bei Simulink dabei. Könnte das funktionieren?

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
JackieChen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2009, 10:44     Titel:
  Antworten mit Zitat      
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... Crying or Very sad Crying or Very sad
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 17.02.2009, 10:46     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
JackieChen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2009, 11:12     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 17.02.2009, 11:37     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
JackieChen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.02.2009, 12:39     Titel:
  Antworten mit Zitat      
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!
Private Nachricht senden Benutzer-Profile anzeigen
 
JackieChen
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 17.02.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.02.2009, 13:00     Titel:
  Antworten mit Zitat      
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 Wink )

mfg
Private Nachricht senden Benutzer-Profile anzeigen
 
MichiNochwas

Gast


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