Synchronizing animated plot with video
5 views (last 30 days)
Show older comments
Hello,
i have the following code, which gives me two figures with animated plots (don't mind the german anootations). I now want to sync both of those plots with a mp4 video, so that when i run the skript, it opens the video and starts playing it along the 2 plots synchronised together.
Is that possible and if yes how?
Greatly appreaciate any help.
[Druck_offen_Differenz]=xlsread('25.05.2021_Test4_10mm.xlsx',1,'B64:B280');
[Kraft_offen]=xlsread('25.05.2021_Test4_10mm.xlsx',1,'L64:L280');
[Temperatur_offen]=xlsread('25.05.2021_Test4_10mm.xlsx',1,'D64:D280');
[Kraft_offen]=Kraft_offen*1;
[Zeit_offen]=0:0.1:(length(Druck_offen_Differenz)-1)*0.1;
[Kraft_offen_korrigiert]=(Kraft_offen-Kraft_offen(end));
[Druck_offen_gesamt]=[Druck_offen_Differenz]+1.013;
[Ausstroemzeit]=max(Zeit_offen);
[Druck_Differenz]=xlsread('25.05.2021_Test4_10mm.xlsx',1,'B64:B280');
[Kraft]=xlsread('25.05.2021_Test4_10mm.xlsx',1,'L64:L280');
[Temperatur]=xlsread('25.05.2021_Test4_10mm.xlsx',1,'D64:D280');
[Zeit]=0:0.1:(length(Druck_Differenz)-1)*0.1;
[Kraft]=[Kraft]*1;
[Kraft_korrigiert]=Kraft-Kraft(end);
p_Dampf=[0.1; 0.2; 0.3;0.4; 0.5; 0.6; 0.7; 0.8; 0.9; 1.0; 1.1; 1.2; 1.3; 1.4; 1.5; 1.6; 1.8; 2.0; 2.2; 2.4; 2.6; 2.8; 3.0; 3.2; 3.4; 3.6; 3.8; 4.0; 4.5; 5.0; 6.0; 7.0; 8.0; 9.0; 10.0; 11.0; 12.0; 13.0; 14.0; 15.0; 16.0; 17.0; 18.0; 19.0; 20.0];
T_Dampf=[45.83; 60.09; 69.12; 75.88; 81.35; 85.96; 89.95; 93.51; 96.71; 99.63; 102.32; 104.81; 107.31; 109.32; 111.4; 113.3; 116.9; 120.2; 123.3; 126.1; 128.7; 131.2; 133.5; 135.8; 137.9; 139.9; 141.8; 143.6; 147.9; 151.8; 158.8; 165.0; 170.4; 175.4; 179.9; 184.1; 188.0; 191.6; 195.0; 198.3; 201.4; 204.3; 207.1; 209.8; 212.4];
%% Bewegter Plot & Video der Messwerte ab der Ventilöffnung
% Eigenschaften der bewegten Linien festlegen
curve=animatedline('LineWidth',1,'color','k');
Kurve=animatedline('LineWidth',1, 'color', 'b');
Graph=animatedline('LineWidth',1, 'color', 'r');
% Eigenschaften der Führungsgeometrie festlegen
head = line('marker','o','color','b', 'xdata', Zeit_offen(1), 'ydata', Kraft_offen_korrigiert(1));
Kopf = line('marker','o','color','b', 'xdata', Zeit_offen(1), 'ydata', Druck_offen_Differenz(1));
circle = line('marker','o','color','b', 'xdata', Zeit_offen(1), 'ydata',Temperatur_offen(1));
% Festlegen der Abbildungseigenschaften
set(gca, 'XLim',[0 Ausstroemzeit+5], 'YLim', [0 200])
grid on;
xlabel('Zeit in [s]')
ylabel('Kraft in [N] & Druck in [bar] & Temperatur in [°C]')
title({'Heißwassertest' 'Messergebnis ab der Ventilöffnung' 'Blende 10 mm'})
legend('Schubkraft', 'Tankdifferenzdruck', 'Temperatur im Tank', 'Location', 'NorthEast')
% Darstellung des bewegten Plots
for i=1:length(Zeit_offen)
addpoints(curve, Zeit_offen(i), Kraft_offen_korrigiert(i));
addpoints(Kurve, Zeit_offen(i), Druck_offen_Differenz(i));
addpoints(Graph, Zeit_offen(i), Temperatur_offen(i));
set(head, 'xdata', Zeit_offen(i),'ydata', Kraft_offen_korrigiert(i));
set(Kopf, 'xdata', Zeit_offen(i),'ydata', Druck_offen_Differenz(i));
set(circle, 'xdata', Zeit_offen(i),'ydata', Temperatur_offen(i));
Frames(i)=getframe(gcf);
pause(0.1)
drawnow
end
% Erstellen des Videos
video = VideoWriter('Video_Heisswasser', 'MPEG-4');
video.FrameRate=length(Frames)/Ausstroemzeit;
open(video)
writeVideo(video,Frames)
close(video)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(2)
plot(T_Dampf, p_Dampf, '-b', Temperatur_offen, Druck_offen_gesamt, '--k', Temperatur_offen(1), Druck_offen_gesamt(1), '*k')
curve=animatedline('LineWidth',1,'color','k');
head = line('marker','o','color','r', 'xdata', Temperatur_offen(1), 'ydata',Druck_offen_gesamt(1));
% Festlegen der Abbildungseigenschaften (Zeile 84)
set(gca, 'XLim',[0 220], 'YLim', [0 20])
grid on;
ylabel('p in [bar]')
xlabel('T in [°C]')
title({'Heißwassertest' 'Zustandsgrößen im Tank ab der Ventilöffnung' 'p-T-Diagramm'})
legend('Dampfdruckkurve', 'Druckverlauf ab der Ventilöffnung' ,'Location', 'NorthEast')
% Darstellung des bewegten Plots
for i=1:length(Druck_offen_gesamt)
addpoints(curve, Temperatur_offen(i), Druck_offen_gesamt(i));
set(head, 'xdata', Temperatur(i),'ydata', Druck_offen_gesamt(i));
F(i)=getframe(gcf);
pause(0.1)
drawnow
end
% Erstellen des Videos für den Dampfdruckverlauf
video = VideoWriter('p_T_Diagramm', 'MPEG-4');
video.FrameRate=length(F)/Zeit_offen(end);
open(video)
writeVideo(video,F)
close(video)
0 Comments
Answers (0)
See Also
Categories
Find more on Animation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!