From d32903da5c4923ebe0494062c749fbad4927edf3 Mon Sep 17 00:00:00 2001 From: Albin Date: Sat, 19 Oct 2019 12:53:40 +0200 Subject: Lade till funktionen graphs.m --- Kod/bilbana/privete/test.m | 22 ++++++++++++++++++++++ Kod/bilbana/yc4/graphs.m | 15 +++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 Kod/bilbana/privete/test.m create mode 100644 Kod/bilbana/yc4/graphs.m diff --git a/Kod/bilbana/privete/test.m b/Kod/bilbana/privete/test.m new file mode 100644 index 0000000..c64d753 --- /dev/null +++ b/Kod/bilbana/privete/test.m @@ -0,0 +1,22 @@ +a = [0,1.5,3,2,2,3,4,5,5,4,3,2,1]; +time = [0,0.01,0.015,0.02,0.04,0.05,0.06,0.07,0.08,0.09,0.10,0.11,0.12]; + +%% Test plot 1 +figure(1) +subplot(3,1,1) + +stairs(time,a,'LineWidth', 2) % Gör en trappstegsplot + +xlabel('Time [s]') +ylabel('a') +title('Test plot') + +grid on + +%% Test plot 2 +subplot(3,1,2:3) +stairs(time,a*2,'Marker', '*', 'MarkerFaceColor', 'm') + +xlabel('Time [s]') +ylabel('2a') +title('Test plot 2') \ No newline at end of file diff --git a/Kod/bilbana/yc4/graphs.m b/Kod/bilbana/yc4/graphs.m new file mode 100644 index 0000000..09d3604 --- /dev/null +++ b/Kod/bilbana/yc4/graphs.m @@ -0,0 +1,15 @@ +function [] = grapfs(inputArg1,inputArg2) +%{ +GRAPHS: Efter avslutad körning skall plottar som sammanfattar körningen +visas på styrdatorns skärm. Nödvändiga plottar är: +• En graf som visar varv och varvtider där referenstiden och +maximalt tillåtna avvikelser är utmärkta. Figuren skall också inkludera en +text som anger standardavvikelsen. +• Gaspådrag mot tid/hastighet för varje segment. +%} +% Detailed explanation goes here +%% +figure(1) +subplot(1,1,1) +end + -- cgit v1.2.1 From 37e0307a7acff86c0339db03268681a69abfe015 Mon Sep 17 00:00:00 2001 From: Albin Date: Sat, 19 Oct 2019 15:55:37 +0200 Subject: Lade till Test3.m och Test2.m --- Kod/bilbana/privete/Test2.m | 21 +++++++++++++++++++++ Kod/bilbana/privete/Test3.m | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 Kod/bilbana/privete/Test2.m create mode 100644 Kod/bilbana/privete/Test3.m diff --git a/Kod/bilbana/privete/Test2.m b/Kod/bilbana/privete/Test2.m new file mode 100644 index 0000000..d0ca5fe --- /dev/null +++ b/Kod/bilbana/privete/Test2.m @@ -0,0 +1,21 @@ +%{ +GRAPHS: Efter avslutad körning skall plottar som sammanfattar körningen +visas på styrdatorns skärm. Nödvändiga plottar är: +• En graf som visar varv och varvtider där referenstiden och +maximalt tillåtna avvikelser är utmärkta. Figuren skall också inkludera en +text som anger standardavvikelsen. +• Gaspådrag mot tid/hastighet för varje segment. +%} +disp('Startar test av grafer') +%% Bana 1 +figure(2); +%% Varvtid +subplot(1,1,1); +plot1 = stairs(car1.lap_times); + +plot1(1).Marker = 'o'; +plot1(1).MarkerFaceColor = 'k'; +plot1(1).LineStyle = 'none'; +xlabel('Varv'); +ylabel('Tid [s]'); +title('Varvtider'); \ No newline at end of file diff --git a/Kod/bilbana/privete/Test3.m b/Kod/bilbana/privete/Test3.m new file mode 100644 index 0000000..5527f2a --- /dev/null +++ b/Kod/bilbana/privete/Test3.m @@ -0,0 +1,34 @@ +%{ +GRAPHS: Efter avslutad körning skall plottar som sammanfattar körningen +visas på styrdatorns skärm. Nödvändiga plottar är: +• En graf som visar varv och varvtider där referenstiden och +maximalt tillåtna avvikelser är utmärkta. Figuren skall också inkludera en +text som anger standardavvikelsen. +• Gaspådrag mot tid/hastighet för varje segment. +%} +disp('Startar test av grafer') +%% IN +ref_lap_time = 13; +%% Bana 1 +figure(1); +%% Varvtid +ref_lap_time_vector = ref_lap_time*ones(1,length(car1.lap_times)); + +subplot(1,1,1); +disp(car1.lap_times); +disp(ref_lap_time_vector); +plot1 = stairs(car1.lap_times); +plot1(1).Marker = 'o'; +plot1(1).MarkerFaceColor = 'k'; +plot1(1).LineStyle = 'none'; +hold on +plot2 = stairs(ref_lap_time_vector); +plot2(1).LineWidth = 2; +plot2(1).Color = 'k'; +hold off + + + +xlabel('Varv'); +ylabel('Tid [s]'); +title('Varvtider'); \ No newline at end of file -- cgit v1.2.1 From 13511bf3468e03ca0c7c3081edd9e5cf28508870 Mon Sep 17 00:00:00 2001 From: Albin Date: Sat, 19 Oct 2019 21:25:06 +0200 Subject: Fungerande varvtidsgraf --- Kod/bilbana/privete/LaptimeTest.m | 63 +++++++++++++++++++++++++++++++++++++++ Kod/bilbana/privete/Test3.m | 34 --------------------- 2 files changed, 63 insertions(+), 34 deletions(-) create mode 100644 Kod/bilbana/privete/LaptimeTest.m delete mode 100644 Kod/bilbana/privete/Test3.m diff --git a/Kod/bilbana/privete/LaptimeTest.m b/Kod/bilbana/privete/LaptimeTest.m new file mode 100644 index 0000000..0cf1422 --- /dev/null +++ b/Kod/bilbana/privete/LaptimeTest.m @@ -0,0 +1,63 @@ +%{ +GRAPHS: Efter avslutad körning skall plottar som sammanfattar körningen +visas på styrdatorns skärm. Nödvändiga plottar är: +• En graf som visar varv och varvtider där referenstiden och +maximalt tillåtna avvikelser är utmärkta. Figuren skall också inkludera en +text som anger standardavvikelsen. +• Gaspådrag mot tid/hastighet för varje segment. +%} +disp('Startar test av grafer') +%% IN +ref_lap_time = 14; +track = 1; +%% Figur +figure(1); +clf; +subplot(10,1,1:9); +%% Raka streck +ref_lap_time_vector = ref_lap_time*ones(1,length(car1.lap_times)); + +Min_c = ref_lap_time-0.5; +Max_c = ref_lap_time+0.5; +InD_c = ref_lap_time-1; +InU_c = ref_lap_time+1; + +Min = Min_c*ones(1,length(car1.lap_times)); +Max = Max_c*ones(1,length(car1.lap_times)); +InU = InU_c*ones(1,length(car1.lap_times)); +InD = InD_c*ones(1,length(car1.lap_times)); +%% Varvtider +disp(car1.lap_times); +disp(ref_lap_time_vector); +plot1 = stairs(car1.lap_times); +plot1.Marker = 'o'; +plot1.MarkerFaceColor = 'k'; +plot1.LineStyle = 'none'; +hold on +%% Referenstid +plot2 = stairs(ref_lap_time_vector); +plot2.LineWidth = 2; +plot2.Color = 'k'; +%% Tillåten avvikelse +plotMax = stairs(Max); +plotMin = stairs(Min); +plotMax.Color = 'k'; +plotMin.Color = 'k'; +%% Osynliga hjälpstreck +plotInU = stairs(InU); +plotInD = stairs(InD); +plotInU.LineStyle = 'none'; +plotInD.LineStyle = 'none'; + +hold off +%% Standardavvkielse +sigma = std(car1.lap_times); +sigma = round(sigma, 2); +sig_str = string(sigma); +%% Text +xlabel('Varv'); +ylabel('Tid [s]'); +title('Varvtider'); %Todo vilken bana? +txt = join(['Standardavvikelse:',sig_str, 's']); +annotation('textbox',[.1 0.05 .4 .05],'String',txt,'EdgeColor','none') +disp(sig_str); \ No newline at end of file diff --git a/Kod/bilbana/privete/Test3.m b/Kod/bilbana/privete/Test3.m deleted file mode 100644 index 5527f2a..0000000 --- a/Kod/bilbana/privete/Test3.m +++ /dev/null @@ -1,34 +0,0 @@ -%{ -GRAPHS: Efter avslutad körning skall plottar som sammanfattar körningen -visas på styrdatorns skärm. Nödvändiga plottar är: -• En graf som visar varv och varvtider där referenstiden och -maximalt tillåtna avvikelser är utmärkta. Figuren skall också inkludera en -text som anger standardavvikelsen. -• Gaspådrag mot tid/hastighet för varje segment. -%} -disp('Startar test av grafer') -%% IN -ref_lap_time = 13; -%% Bana 1 -figure(1); -%% Varvtid -ref_lap_time_vector = ref_lap_time*ones(1,length(car1.lap_times)); - -subplot(1,1,1); -disp(car1.lap_times); -disp(ref_lap_time_vector); -plot1 = stairs(car1.lap_times); -plot1(1).Marker = 'o'; -plot1(1).MarkerFaceColor = 'k'; -plot1(1).LineStyle = 'none'; -hold on -plot2 = stairs(ref_lap_time_vector); -plot2(1).LineWidth = 2; -plot2(1).Color = 'k'; -hold off - - - -xlabel('Varv'); -ylabel('Tid [s]'); -title('Varvtider'); \ No newline at end of file -- cgit v1.2.1 From 9b4f8212b1d86fb5263009b3d2ad48012048e132 Mon Sep 17 00:00:00 2001 From: Albin Date: Sat, 19 Oct 2019 23:15:07 +0200 Subject: Klar med plottar --- Kod/bilbana/Graph/graphs.m | 14 +++++++++ Kod/bilbana/Graph/graphs_test.m | 11 +++++++ Kod/bilbana/Graph/lap_time_graph.m | 52 ++++++++++++++++++++++++++++++++++ Kod/bilbana/Graph/segment_time_graph.m | 15 ++++++++++ 4 files changed, 92 insertions(+) create mode 100644 Kod/bilbana/Graph/graphs.m create mode 100644 Kod/bilbana/Graph/graphs_test.m create mode 100644 Kod/bilbana/Graph/lap_time_graph.m create mode 100644 Kod/bilbana/Graph/segment_time_graph.m diff --git a/Kod/bilbana/Graph/graphs.m b/Kod/bilbana/Graph/graphs.m new file mode 100644 index 0000000..42a1196 --- /dev/null +++ b/Kod/bilbana/Graph/graphs.m @@ -0,0 +1,14 @@ +function [] = graphs(lap_times,ref_lap_time, seg_times, track) +%{GRAPHS: Två grafer i samma figur. Varvtider och medeltid/segment +%{ +lap_times: vektor med alla varvtider, +ref_lap_time: Den varvtid som eftersträvas +seg_times: matris med segmentstider från alla varv +track: den bana som de andra argumenten gäller för +%} +figure(track); +clf; +lap_time_graph(lap_times,track,ref_lap_time); +segment_time_graph(seg_times,track); +end + diff --git a/Kod/bilbana/Graph/graphs_test.m b/Kod/bilbana/Graph/graphs_test.m new file mode 100644 index 0000000..3a2a2e5 --- /dev/null +++ b/Kod/bilbana/Graph/graphs_test.m @@ -0,0 +1,11 @@ +%% Data needed +car1.seg_times = [3.9,1.1,2.2,1.8,1.4,3.9,1.5,3.4,1.4; + 4.2,1.1,2.2,1.8,1.4,3.4,1.5,3.4,1.4; + 3.2,1.1,2.2,1.8,1.4,3.2,1.5,3.4,1.4; + 4.0,1.4,2.2,1.8,1.4,3.4,1.5,3.4,1.4; + 4.0,1.1,2.2,1.8,1.4,3.6,1.5,3.4,1.4; + 4.1,1.1,2.2,1.8,1.4,3.8,1.5,3.4,1.4]; +car1.lap_times = [14.1,13.8,14.15,13.9,14.1,14]; +ref_lap_time = 14; +%% Actual test +graphs(car1.lap_times,ref_lap_time,car1.seg_times,1) \ No newline at end of file diff --git a/Kod/bilbana/Graph/lap_time_graph.m b/Kod/bilbana/Graph/lap_time_graph.m new file mode 100644 index 0000000..8d54c6a --- /dev/null +++ b/Kod/bilbana/Graph/lap_time_graph.m @@ -0,0 +1,52 @@ +function [outputArg1,outputArg2] = lap_time_graph(lap_times, track, ref_lap_time) +%LAP_TIME_GRAPH En graf som visar varvtider där referenstiden och maximalt +%tillåtna avvikelser är utmärkta. Figuren inkluderar också standardavvikelsen +%% +subplot(20,1,1:8); +%% Raka streck +ref_lap_time_vector = ref_lap_time*ones(1,length(lap_times)); + +Min_c = ref_lap_time-0.5; +Max_c = ref_lap_time+0.5; +InD_c = ref_lap_time-1; +InU_c = ref_lap_time+1; + +Min = Min_c*ones(1,length(lap_times)); +Max = Max_c*ones(1,length(lap_times)); +InU = InU_c*ones(1,length(lap_times)); +InD = InD_c*ones(1,length(lap_times)); +%% Varvtider +plot1 = stairs(lap_times); +plot1.Marker = 'o'; +plot1.MarkerFaceColor = 'k'; +plot1.LineStyle = 'none'; +hold on +%% Referenstid +plot2 = stairs(ref_lap_time_vector); +plot2.LineWidth = 2; +plot2.Color = 'k'; +%% Tillåten avvikelse +plotMax = stairs(Max); +plotMin = stairs(Min); +plotMax.Color = 'k'; +plotMin.Color = 'k'; +%% Osynliga hjälpstreck +plotInU = stairs(InU); +plotInD = stairs(InD); +plotInU.LineStyle = 'none'; +plotInD.LineStyle = 'none'; + +hold off +%% Standardavvkielse +sigma = std(lap_times); +sigma = round(sigma, 2); +sig_str = string(sigma); +%% Text +xlabel('Varv'); +ylabel('Tid [s]'); +Tit = join(['Varvtider bana',string(track)]); +title(Tit); +txt = join(['Standardavvikelse:',sig_str, 's/varv']); +annotation('textbox',[.1 0.5 .5 .05],'String',txt,'EdgeColor','none') +end + diff --git a/Kod/bilbana/Graph/segment_time_graph.m b/Kod/bilbana/Graph/segment_time_graph.m new file mode 100644 index 0000000..f88c836 --- /dev/null +++ b/Kod/bilbana/Graph/segment_time_graph.m @@ -0,0 +1,15 @@ +function [] = segment_time_graph(seg_time,track) +%SEGMENT_TIME_GRAPH Snittid för varje segment. + +avr_seg_time = mean(seg_time); +subplot(20,1,13:20); + +Plot = bar(avr_seg_time); +%Plot.Marker = 'o'; +Plot.FaceColor = 'k'; +xlabel('Segment'); +ylabel('Tid [s]'); +Tit = join(['Medeltid/segment bana',string(track)]); +title(Tit); +end + -- cgit v1.2.1