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

gibt es sowas wie ein liveplot?

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2010, 11:20     Titel: gibt es sowas wie ein liveplot?
  Antworten mit Zitat      
liebe profis,

ich weiss nicht ob die frage evtl. zu simpel ist um sie hier zu stellen, aber ich suche nach einer möglichkeit eine art liveplot zu machen. d.h. ich hab einen aufbau mit einem oszi -> spannung geht rein & wird auch angezeigt, aber halt nur momentaufnahmen (snashot). aber wie kann ich den plot richtig "laufen lassen" sodass wenn ich die spannung oder frequenz ändere der plot sich auch ändert.

grüße und besten dank im vorraus

B.


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2010, 11:32     Titel:
  Antworten mit Zitat      
Hallo,

grundsätzlich zwei Möglichkeiten:
1. einfach neu plotten, wenn sich etwas ändert.
2. Verwendung von linkdata
Code:

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2010, 11:59     Titel:
  Antworten mit Zitat      
danke für die schnelle antwort harald.
aber das mit dem linkdata haut nicht so richtig hin. ich kann damit "nur" die achsen ändern & den plot dementsprechend anders darstellen. könnte man denn den plot z.b. refreshen? alle 1 sec.? macht das sinn? wenn ja, wie ginge das?

grüße

B.
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.499
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2010, 12:03     Titel:
  Antworten mit Zitat      
Hallo,

es müssen natürlich die geänderten Variablen neu berechnet werden. Wenn sich also z.B. eine Frequenz ändert, muss die Schwingung neu errechnet werden. Ansonsten sollte linkdata genau das machen.

Falls das nicht für dich geeignet ist, versuche doch den ersten Ansatz.
Ggf. drawnow verwenden, damit der Graph auch wirklich aktualisiert wird.

Eine weitere Alternative für periodischen Refresh: Verwenden von Timer-Funktionen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2010, 12:26     Titel:
  Antworten mit Zitat      
das sieht gut aus!
aber ich bekomm immer den fehler

??? Error using ==> plot
Invalid property found.
Object Name : line
Property Name : 'yScale*y1'.

Error in ==> mat1401X at 75
h = plot(t,y,'yScale*y1','y');

er scheint den input nicht zu akzeptieren. mach ich was falsch?
laut doc soll man das so umsetzen:

t = 0:pi/20:2*pi;
y = exp(sin(t));
h = plot(t,y,'yScale*y1','y');
for k = 1:.1:10
y = exp(sin(t.*k));
refreshdata(h,'caller') % Evaluate y in the function workspace
drawnow; pause(.1)
end

grüße

B.
 
michai
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 83
Anmeldedatum: 22.02.10
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2010, 13:40     Titel:
  Antworten mit Zitat      
Wenn ich das hier in ein Script packe und laufen lasse sieht das schon mal recht "live" aus. und durch die zu geringe Abtastrate macht es sogar noch lustige Effekte:

Code:

t = 0:pi/20:2*pi;
y = exp(sin(t));
h = plot(t,y);

set(h,'YDataSource','y')
set(h,'XDataSource','t')

for k = 1:.1:50
    y = exp(sin(t.*k));
    refreshdata(h);
    drawnow;
    pause(.01);
end
 


Wichtig ist hier das setzen von YDataSource. Siehe auch

Code:
doc refreshdata
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.04.2010, 13:35     Titel: Peak Messen
  Antworten mit Zitat      
huhu,

für mich ist matlab absolutes neuland, und seit einigen tage beschäftige ich mich mit plots. gibt es eine möglichkeit peaks (minimum & maximum) zu messen und anschliessend auszugeben? folgendes bsp. ist das einfache einlesen von einem audiostream

Code:

AI = analoginput('winsound', 0);
addchannel(AI,1);
duration = 60; % Ten second acquisition
set(AI,'SampleRate',8000)
ActualRate = get(AI,'SampleRate');
set(AI,'SamplesPerTrigger',duration*ActualRate)
preview = duration*ActualRate/100;
subplot(211)
set(gcf,'doublebuffer','on')
%t=200:1:400;
P = plot(zeros(preview,1)); grid on
title('Preview Data')
xlabel('Samples')
ylabel('Signal Level (Volts)')

start(AI)
while AI.SamplesAcquired < preview

end

while AI.SamplesAcquired < duration*ActualRate
   data = peekdata(AI,preview);
   set(P,'ydata',data)
   drawnow

end
 


vielen dank & grüße

B.
 
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 - 2025 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.