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

figure in Embedded Matlab Function

 

Micha

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2008, 19:49     Titel: figure in Embedded Matlab Function
  Antworten mit Zitat      
Hallo Forum,

da ich leider noch nicht so fit bin in grafischer Darstellung, muss ich mich mal kurz ans Forum wenden.

Ich muss in einer Embedded Matlab Function berechnete Werte sozusagen in Echtzeit zeichnen lassen. Meine Function führt sozusagen derzeit bei jeden Zeitschritt den kompletten Code aus und das macht meine grafische Ausgabe stocklangsam.

Code:
tcolor = [.7 .7 .7];
figure(1)
clf

subplot (211)
    axis([-25.0 15.0 0 5.0]); % xmin xmax ymin ymax
    pbaspect([8,1,1]); % Für gleiches Seitenverhältnis
    patch(pD10(1,:),pD10(2,:),tcolor); % Grafik ausgeben


Mir ist klar dass das immer wieder durchführen von figure und clf die ganze Sache langsam machen, aber wie kann ich meine Ausgabe in einer Embedded Matlab Function, welche ja bei jedem Zeitschritt ausgeführt wird, so bauen dass sie schneller wird?

Danke für eure Hilfe.
Micha


Micha

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2008, 11:40     Titel:
  Antworten mit Zitat      
Hallo nochmal,

ich möchte gern das Problem nochmal etwas detaillieren, da ich höchstwahrscheinlich allgemein gerade Mist baue.

In meinem Simulink-Model werden viele Sachen gerechnet und das Ergebnis soll einfach grafisch in "Echtzeit" ausgegeben werden.

Einfaches Beispiel:
Einen fliegender Ball soll gezeichnet werden und habe dafür die Rechenergebnisse X und Y im Simulink-Model als "Wires" zur Verfügung.

Wie kann ich nun in ein Figure so etwas zeichnen lassen wie ein flüssiger Film?
Ich frage so allgemein da mein derzeitiger Ansatz mit einer Embedded Matlab Function sicher total schlecht gewählt ist.

Gruß Micha
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 09.04.2008, 13:06     Titel:
  Antworten mit Zitat      
Du hast Recht. Figure im Embedded MATLAB Code wird nicht unterstütz.
Abhilfe ist nur mit M-S-Functions. Dort kannst Du Figure aufbauen und die Ergebnisse in "Echtzeit" aktualisieren.

Melde Dich mal mit Deiner Mailadresse - ich schicke ein Beispiel raus.


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
Micha

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2008, 13:32     Titel:
  Antworten mit Zitat      
Hallo outsider,

danke für deine Hilfe, bin echt mal gespannt was du für nen Vorschlag hast.

maxe1983 [ät] hotmail.de

Smile Gruß Micha
 
Micha

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.04.2008, 17:05     Titel:
  Antworten mit Zitat      
Hallo outsider,

erst einmal vielen Dank für dein Beispiel.

Leider komme ich damit kaum weiter da mir absolut die Grundkenntnisse der S-Funktion fehlen.

Ich habe es jetzt soweit verstanden, dass man unterschiedliche Schritte hat in der Funktion.
Als erstes die Initialisierung. Hier kommen alle Dinge rein die einmalig gemacht werden sollen. Beispiel Farbe, axes, etc.
Als nächstes dann die Werte updaten. Das würde nun die Schleife sein.

Habe ich das bis jetzt richtig verstanden?

Aber woher kommt diese flag-Variable?

Ich würde so gern einfach mal ein Beispiel sehen für den oben bereits genannten Code nur in einer S-Funktion. Damit ich das irgendwie langsam mal verstehe wie das geht.

Bin ziemlich verzweifelt, weil es selbst in meinem Buch oder bei Google kein einziges Beispiel gibt was mal gut erklärt ist. Crying or Very sad

Mein Thema ist doch eigentlich eine "tägliche" Sache die man häufig braucht oder? Einfach "fliegende" Punkte in Echtzeit ausgeben. In meinem Fall (patch) fliegende Quadrate.

Schönen Feierabend...
Danke und Gruß Micha
 
outsider
Forum-Meister

Forum-Meister


Beiträge: 806
Anmeldedatum: 03.09.07
Wohnort: München
Version: R2012b
     Beitrag Verfasst am: 09.04.2008, 18:15     Titel:
  Antworten mit Zitat      
Also so einfach wie Du es Dir vorstellst ist es nun auch nicht. Im Falle der M-S-Function habe ich einen Template verwendet von der Funktion "timestwo.m". Dies ist eine Beispiel M-S-Funktion die lediglich den Eingangsignal mit 2 multipliziert und wieder ausgibt. Öffne die Funktion im Editor, dann hast Du schon Deinen alles da. Wie Du schnell feststellst ist der der Code von timestwo.m genau so aufgebaut. Passe dann nur die Update-Function und erweitere die mit dem Figure und Plot-Befehlen, dann hast Du schon was Du brauchst.

Also bissel Handanlegen musst Du schon. Ich denke es wird noch ne Weile dauern, bis man MATLAB per Sprachsteuerung programmieren kann... Smile


MfG
Private Nachricht senden Benutzer-Profile anzeigen
 
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.