|
|
Code-Generierung aus Simulink/SimPower |
|
al_e |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 05.05.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 11.12.2014, 10:34
Titel: Code-Generierung aus Simulink/SimPower
|
|
Hallo zusammen,
ich habe hier ein etwas größeres Simulink-Modell in welchem hauptsächlich mit Blöcken aus der SimPower-Bibliothek gearbeitet wurde.
Das Modell selbst ist soweit fertig und funktioniert auch. Als Solver habe ich gewählt
- Powergui: Continous
- Sim-Einstellungen: Continous / ode23tb
Damit war die Simulation bisher am schnellsten. Trotzdem ist sie noch etwas langsam, im Zuge sämtlicher Optimierungsmöglichkeiten die es so gibt möchte ich auch die Codeerzeugung mit Simulink Coder in Erwägung ziehen.
Hat da schon jemand Erfahrungen gemacht, im Speziellen eben in Verbindung mit SimPower-Blöcken?
Denn das Hauptproblem bei der Erzeugung sind Algebraic Loops. Die sind zuhauf entstanden, und teilweise sogar in den Simpower-Bibliotheksblöcken selbst vorhanden. Insbesondere ein Loop ist uncool, der befindet sich in der powergui...
Bin für jede Information dankbar,
Fabi
|
|
|
|
|
al_e |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 05.05.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 12.12.2014, 15:31
Titel:
|
|
|
|
|
Mittlerweile habe ich die Probleme gelöst und möchte hiermit davon berichten, für alle diejenigen die Ähnliches vor haben.
Die Algebraic Loops lassen sich mit dem Einbau von Memory / Delay Blöcken vermeiden. Allerdings muss man immer genau schauen ob sich die Messergebnisse verändern, teilweise muss man schon wesentliche Teile ummodellieren. Wenn man schon vorher weiß dass man später Code erzeugen möchten gleich beim Modellieren darauf achten, dass keine Algebraic Loops entstehen.
Zu Beginn hatte ich über 70 Algebraic Loops, aber manchmal hat auch der Einbau von einem Memory-Block 10 Loops auf einmal gelöst. Unter anderem auch in den bereits in den Bibliotheken enthaltenen Blöcken, da musste ich also nichts reinpfuschen.
Ein guter Nebenefffekt: die CPU-Zeit ist durch das Entfernen der Loops wesentlich verbessert worden (fast 4x schneller). Algebraic Loops machen dem Solver also sehr zu schaffen.
Letztendlich hat die Codeerzeugung auch funktioniert, allerdings funktioniert der Compiler (gmake) NICHT wenn im Installationspfad ein Leerzeichen ist! Beispiel: C:\Program Files\MATLAB führt zu permanentem Abbruch. Ein Workaround ist, in den .make-Dateien rumzupfuschen, aber dann muss man nach jeder Erzeugung neu pfuschen, also lieber neu installieren.
Die Simulation meines SimPower-Modells als C-Code brachte eine 5-fache Verschnellerung, lohnt sich also durchaus.
VG
|
|
|
|
|
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.
|
|