|
|
Laufzeitoptimierung Simulink-Modelle |
|
Maelstrom |
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 15.07.2009, 15:08
Titel: Laufzeitoptimierung Simulink-Modelle
|
|
|
|
|
Hallo,
ich erstelle ein Simulink-Modell, welches in Echtzeit auf einem xPC laufen soll. Eine komplette Umsetzung der physikalischen Gegebenheiten sprengt auf jeden Fall die Rechenleistung des Systems, je mehr ich aber umsetzen kann, desto besser für die Modellgüte. Also gilt es vom Aufbau des Modells her eine maximale Effizienz rauszuholen.
Soviel zu den Randbedingungen, nun zu den Fragen:
1) Was ist die effizienteste Art den Code zu implementieren?
Mit möglichst einfachen Simulink-Blöcken und dem Compiler vertrauen? Als Embedded Matlab Function? Oder lieber in C/Fortan/Wasauchimmer schreiben und dann als S-Function einbauen? Mit dem Profiler bin ich hier nicht weitergekommen, da ich den Simulink Code ja kompilieren muss, um eine Vergleichbarkeit zu haben.
2) Zu allem Überfluss handelt es sich um ein steifes Problem. Ich kann aber nur Solver mit fester Schrittweite verwenden. Hat jemand Ideen, wie man das Simulationsverhalten verbessern könnte (außer verkleinerter Schrittweiten oder einem Solver höherer Ordnung)?
Leider konnte ich zu den Themen nichts brauchbares finden. Oder hat vielleicht doch noch jemand einen heissen Buchtipp?
Vielen Dank schonmal im Voraus!
|
|
|
|
|
Maelstrom |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2009, 08:14
Titel:
|
|
Nanü? Alle überfragt? Problem ist immer noch aktuell, leider.
|
|
|
Idefix_1024 |
Forum-Century
|
|
Beiträge: 230
|
|
|
|
Anmeldedatum: 16.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2009, 09:02
Titel:
|
|
würde mich auch SEHR interessieren!
ich habe selbst einige Zeit mit versch. dSpace Systemen und Matlab/Simulink gearbeitet...
aus meiner Erfahrung hat sich gezeigt, dass
1. die vorgegebenen Simulink Blöcke meist sehr effizient umgesetzt werden
2. C-Code für s-Functions am geeignetsten ist
3. For oder While Schreifen in s-Functions ein absolutes Don't sind
4. s-functions zu vermeiden sind und wenn mögl. durch konventionelle Blöcke programmiert werden sollten
5. sog. Memory-Blöcke zu vermeiden sind
allerdings wäre eine Guideline zu effizientem Programmieren mit Matlab/Simulink mal wirklich interessant !!
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 09.09.2009, 09:07
Titel:
|
|
Ja, ich nehme mal an, dass in der Tat nur ein sehr kleiner Teil der Nutzer in diesem Forum mit xPC Target unterwegs ist. Ich kenne auch einige Kunden die die "Best Practice" auf diesem Feld für sich behalten, weil die Modellierungstechniken ebenso Geheimhaltungspflichten unterliegen wie die Inhalte der Modelle. Ich glaube, dass ich den Austausch mit anderen Nutzern der gleichen Hochschule / des gleichen Unternehmens organisieren kann. Ich bitte um Kontaktaufnahme per PN oder Email.
Andreas
|
|
|
Idefix_1024 |
Forum-Century
|
|
Beiträge: 230
|
|
|
|
Anmeldedatum: 16.10.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2009, 09:22
Titel:
|
|
gibt es denn tatsächlich keine Tipps von Mathworks Seite ?
Techniken zur Modellbildung oä werden selbstverständlich nicht jedem auf die Nase gebunden... aber prinzipielle Aussagen welche grundlegenden Blöcke oder Vorgehen Rechenzeit "verschwenden" müßten doch irgendwo zugänglich existieren ??
nunja... bleibt dem Anwender wohl nur Compilieren geht über Studieren...
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 09.09.2009, 10:11
Titel:
|
|
Es gibt sehr viele - applikationsspezifische - Hinweise. Aber letztendlich haben wir unser Anwenderwissen von den Anwendern. Wir selber erstellen solche Applikationen ja nicht.
In vergleichbaren Fällen hat es sich bewährt wenn man den (üblicherweise neuen) Endnutzer mit erfahrenen Endnutzern im gleichen Unternehmen zusammenbringt und das Ganze durch ein Telefongespräch mit einem MathWorks Ingenieur einleitet. Wir haben dann auch die Möglichkeit spezielle Worksshops oder Beratungen anzubieten.
Andreas
|
|
|
Maelstrom |
Themenstarter
Forum-Newbie
|
|
Beiträge: 4
|
|
|
|
Anmeldedatum: 27.08.08
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2009, 10:22
Titel:
|
|
Prinzipiell dürfte ja eigentlich jeder User daran interessiert sein, einen möglichst effizienten (und lesbaren ) Code/Modelle zu erstellen, unabhängig von den Einsatz-Randbedingungen.
Bei einer Echtzeitanwendung kommt "lediglich" eine "harte Grenze" für die Ausführungsdauer eines Rechenschrittes hinzu...
|
|
|
|
|
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.
|
|