|
|
Integrator und derivative in Matlab Embedded Implementieren |
|
ulrich |
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.05.2013, 18:35
Titel: Integrator und derivative in Matlab Embedded Implementieren
|
|
Hallo ich brauche dringen Hilfe.
ich habe mein Matlab Embedded Code und als Input habe ich ein Signal und als Output das integierte Signal . und ich habe so geschrieben.
und klappt aber nicht , genauso für derivative
hat jemand das schon gemacht oder hat eine ahnung.
Danke
Ulrich
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 03.05.2013, 18:54
Titel:
|
|
Hallo,
was hält dich denn davon ab, die normalen Blöcke dazu zu verwenden?
Grüße,
Harald
|
|
|
ulrich |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.05.2013, 08:20
Titel:
|
|
Für die Aufgabe, die ich habe muss ich das in Matlab Embedded erledigen.
|
|
|
ulrich |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.05.2013, 11:07
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
was hält dich denn davon ab, die normalen Blöcke dazu zu verwenden?
Grüße,
Harald |
ich habe einige Simulink Blöcke, die ich in Matlab Embedded schreiben will.
deswegen.
Ulrich
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.05.2013, 18:52
Titel:
|
|
Hallo,
dass du das möchtest - ja. Die Frage ist nur: warum?
(Embedded) MATLAB Functions unterstützen eben nur bestimmte Funktionalitäten (siehe Doku des Blocks). Selbst wenn man den Aufwand betreibt, eine Integration oder Differentiation (die man nach Möglichkeit ohnehin nicht verwenden sollte) nachzubilden, würde das die Schrittweitensteuerung der Solver aushebeln.
Grüße,
Harald
|
|
|
ulrich |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.05.2013, 20:35
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
dass du das möchtest - ja. Die Frage ist nur: warum?
(Embedded) MATLAB Functions unterstützen eben nur bestimmte Funktionalitäten (siehe Doku des Blocks). Selbst wenn man den Aufwand betreibt, eine Integration oder Differentiation (die man nach Möglichkeit ohnehin nicht verwenden sollte) nachzubilden, würde das die Schrittweitensteuerung der Solver aushebeln.
Grüße,
Harald |
Also ich habe vor meinem Modell zu optimieren. und ich habe festgestellt, dass wenn ich ein TeilModell in Matlab Embedded implementiert ist die laufzeit kurzer als mit dem Block. deswegen habe ich vor einige Teilmodelle statt Block in Matlab Embedded zu implementieren.
Und ich habe fast alle TeilModell implementiert und hat super gut geklappt.
Ausser die mit Integration und Differentiation Blöcke. Weil ich noch nicht weisst wie ich dass implementiert werde.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.05.2013, 21:19
Titel:
|
|
Hallo,
für diesen Zweck sehe ich andere, in der Umsetzung deutlich einfachere Möglichkeiten:
- Subsystem erstellen und daraus Code generieren
- Modellreferenzen im Accelerator Mode
Grüße,
Harald
|
|
|
ulrich |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.05.2013, 21:50
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
für diesen Zweck sehe ich andere, in der Umsetzung deutlich einfachere Möglichkeiten:
- Subsystem erstellen und daraus Code generieren
- Modellreferenzen im Accelerator Mode
Grüße,
Harald |
die erste Möglichkeit macht ich doch mit Matlab Embedded Code.
noch eine frage.
implementierung von integration un differential in Matlab Embedded ist definitiv nicht möglich?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.05.2013, 21:53
Titel:
|
|
Hallo,
Zitat: |
die erste Möglichkeit macht ich doch mit Matlab Embedded Code. |
Ja, aber in dem du manuell mit je nach Modell beträchtlichem Aufwand Code dafür schreibst. Mein Vorschlag ginge auf Knopfdruck automatisch.
Zitat: |
implementierung von integration un differential in Matlab Embedded ist definitiv nicht möglich? |
Möglich sicher, du kannst dir ja z.B. eine Euler-Methode (um das einfachste zu nehmen) selbst schreiben. Sinnvoll ist das aber meines Erachtens nicht.
Grüße,
Harald
|
|
|
ulrich |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.05.2013, 22:05
Titel:
|
|
[quote="Harald"]Hallo,
Zitat: |
die erste Möglichkeit macht ich doch mit Matlab Embedded Code. |
Ja, aber in dem du manuell mit je nach Modell beträchtlichem Aufwand Code dafür schreibst. Mein Vorschlag ginge auf Knopfdruck automatisch.
[quote]
Okay . Und wie kann ich von subsystem code generieren?
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 04.05.2013, 22:08
Titel:
|
|
Hallo,
auf das Subsystem rechtsklicken, und du findest recht weit unten die Codegenerierungsmöglichkeiten. Falls nicht, überprüfen ob Simulink Coder installiert ist.
Grüße,
Harald
|
|
|
ulrich |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.05.2013, 22:58
Titel:
|
|
[/quote]
Möglich sicher, du kannst dir ja z.B. eine Euler-Methode (um das einfachste zu nehmen) selbst schreiben. Sinnvoll ist das aber meines Erachtens nicht.
Grüße,
Harald[/quote]
Alles klar mit Code generierung
jetzt was Matlab Embedded angeht.
z.B für mein Block als Input habe ich ein Signal und dann ein Block Integrator dann Output. Output ist einfach das integral von Input. In Matlab Embedded wie kann ich das implementieren.
Danke
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.05.2013, 09:14
Titel:
|
|
Hallo,
du müsstest dann wie gesagt tatsächlich den Solver, den du normal einstellen würdest, in dem Block implementieren.
"Einfach" ist das eben nicht, da der Solver und der Integrator-Block im Hintergrund einiges tun, um mit variabler Schrittweite die erforderliche Simulationsgenauigkeit zu halten, ohne unnötig kurze (und damit viele, d.h. zeitaufwändige) Schritte zu machen. Mit fester Schrittweite wirst du in der Regel eine recht kurze Schrittweite wählen müssen, um die Simulation genau genug zu machen, und somit wohl jegliche gewonnene Zeit wieder verlieren.
Ich kann von diesem Vorhaben also nur dringend abraten.
Grüße,
Harald
|
|
|
ulrich |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 53
|
|
|
|
Anmeldedatum: 25.03.13
|
|
|
|
Wohnort: Bingen
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.05.2013, 18:00
Titel:
|
|
Harald hat Folgendes geschrieben: |
Hallo,
du müsstest dann wie gesagt tatsächlich den Solver, den du normal einstellen würdest, in dem Block implementieren.
"Einfach" ist das eben nicht, da der Solver und der Integrator-Block im Hintergrund einiges tun, um mit variabler Schrittweite die erforderliche Simulationsgenauigkeit zu halten, ohne unnötig kurze (und damit viele, d.h. zeitaufwändige) Schritte zu machen. Mit fester Schrittweite wirst du in der Regel eine recht kurze Schrittweite wählen müssen, um die Simulation genau genug zu machen, und somit wohl jegliche gewonnene Zeit wieder verlieren.
Ich kann von diesem Vorhaben also nur dringend abraten.
Grüße,
Harald |
ich habe eine mögliche lösung gefunden im Internet.
oder
http://www.mathworks.com/matlabcentral/answers/55705#answer_67551
http://www.mathworks.com/matlabcent.....b-function#comment_115977
aber habe noch nicht verifiziert ob es klappt.
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.492
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 05.05.2013, 22:05
Titel:
|
|
Hallo,
ernstgemeinte Frage: ist dir klar, welche Einschränkungen und potentielle Probleme du dir damit einhandelst?
Grüße,
Harald
|
|
|
|
Gehe zu Seite 1, 2 Weiter
|
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.
|
|