diff options
| -rw-r--r-- | Dokument/Kartläggning-bilbana/Mätningar-bilbana.csv | 80 | ||||
| -rw-r--r-- | Kod/bilbana/Graph/graphs_test.m | 17 | ||||
| -rw-r--r-- | Kod/bilbana/Graph/lap_time_graph.m | 6 | ||||
| -rw-r--r-- | Kod/bilbana/Graph/segment_time_graph.m | 39 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/main.m | 8 |
5 files changed, 127 insertions, 23 deletions
diff --git a/Dokument/Kartläggning-bilbana/Mätningar-bilbana.csv b/Dokument/Kartläggning-bilbana/Mätningar-bilbana.csv new file mode 100644 index 0000000..09f08e5 --- /dev/null +++ b/Dokument/Kartläggning-bilbana/Mätningar-bilbana.csv @@ -0,0 +1,80 @@ +Bana 1;Bitar;Segment;Subsegment;Längd;Svängighet;Lutning;Maxspänning;;;Bana 2;Bitar;Segment;Subsegment;Längd;Svängighet;Lutning;Maxspänning;;Bana 2;Segment;Längd;;; +;Start;1;1;300;0;;?;;;;Start;1;1;300;0;;?;;;1;2525;;; +;Hel;;2;350;;;;;;;Hel;;2;350;;;;;;2;525;;; +;Hel;;3;350;;;;;;;Hel;;3;350;;;;;;3;1865;;; +;Hel;;4;350;;;;;;;Hel;;4;350;;;;;;4;2680;;; +;Hel;;5;350;;;;;;;Hel;;5;350;;;;;;5;1240;;; +;Hel;;6;350;;;;;;;Hel;;6;350;;;;;;6;1810;;; +;Hel;;7;350;;;;;;;Hel;;7;350;;;;;;7;4030;;; +;Innan seg;;8;125;;;;;;;Innan seg;;8;125;;;;;;8;3085;;; +;Efter seg;2;1;225;;;;;;;Efter seg;2;1;225;;;;;;9;2190;;;19 950 +;Innan seg;;2;300;;;;;;;Innan seg;;2;300;;;;;;;;;; +;Efter seg;3;1;50;;;;;;;Efter seg;3;1;50;;;;;Bana 1;Segment;Längd;;; +;Inner;;2;200;225;;;;;;Ytter;;2;250;225;;;;;1;2525;;; +;Inner;;3;200;;;;;;;Ytter;;3;250;;;;;;2;525;;; +;Inner;;4;200;;;;;;;Ytter;;4;250;;;;;;3;1675;;;19 560 +;Inner;;5;200;;;;;;;Ytter;;5;250;;;;;;4;2920;;; +;Inner;;6;200;;;;;;;Ytter;;6;250;;;;;;5;1200;;; +;Hel;;7;350;;;;;;;Hel;;7;350;;;;;;6;2010;;; +;Ytter + Innan seg;;8;275;-45;;;;;;Inner + Innan seg;;8;215;-45;;;;;7;3830;;; +;Efter seg;4;1;325;;;;;;;Efter seg;4;1;325;;;;;;8;2885;;; +;Hel;;2;350;;;;;;;Hel;;2;350;;;;;;9;1990;;; +;Halv;;3;175;;;;;;;Halv;;3;175;;;;;;;;;; +;Halv;;4;175;;;;;;;Halv;;4;175;;;;;;;;;; +;Ytter;;5;250;-90;;;;;;Inner;;5;200;-90;;;;;;;;; +;Ytter;;6;250;;;;;;;Inner;;6;200;;;;;;;;;; +;Kort;;7;90;;;;;;;Kort;;7;90;;;;;;;;;; +;Bro;;8;235;;;;;;;Bro;;8;235;;;;;;;;;; +;Hel;;9;350;;;;;;;Hel;;9;350;;;;;;;;;; +;Ytter;;10;250;-135;;;;;;Inner;;10;200;-135;;;;;;;;; +;Ytter;;11;250;;;;;;;Inner;;11;200;;;;;;;;;; +;Ytter;;12;250;;;;;;;Inner;;12;200;;;;;;;;;; +;Inner;5;1;200;90;;;;;;Ytter;5;1;250;90;;;;;;;;; +;Inner;;2;200;;;;;;;Ytter;;2;250;;;;;;;;;; +;Ytter;;3;250;-90;;;;;;Inner;;3;200;-90;;;;;;;;; +;Ytter;;4;250;;;;;;;Inner;;4;200;;;;;;;;;; +;Inner;;5;400;45;;;;;;Ytter;;5;500;45;;;;;;;;; +;Ytter;6;1;250;-225;;;;;;Inner;6;1;200;-225;;;;;;;;; +;Ytter;;2;250;;;;;;;Inner;;2;200;;;;;;;;;; +;Ytter;;3;250;;;;;;;Inner;;3;200;;;;;;;;;; +;Ytter;;4;250;;;;;;;Inner;;4;200;;;;;;;;;; +;Ytter;;5;250;;;;;;;Inner;;5;200;;;;;;;;;; +;Hel;;6;350;;;;;;;Hel;;6;350;;;;;;;;;; +;Hel;;7;350;;;;;;;Hel;;7;350;;;;;;;;;; +;Inner;7;1;200;45;;;;;;Ytter;7;1;250;45;;;;;;;;; +;Kort;;2;90;;;;;;;Kort;;2;90;;;;;;;;;; +;Ytter;;3;250;-90;;;;;;Inner;;3;200;-90;;;;;;;;; +;Ytter;;4;250;;;;;;;Inner;;4;200;;;;;;;;;; +;Hel;;5;350;;;;;;;Hel;;5;350;;;;;;;;;; +;Inner;;6;200;45;;;;;;Ytter;;6;250;45;;;;;;;;; +;Bro;;7;235;;;;;;;Bro;;7;235;;;;;;;;;; +;Bro;;8;235;;;;;;;Bro;;8;235;;;;;;;;;; +;Ytter;;9;250;-45;;;;;;Inner;;9;200;-45;;;;;;;;; +;Hel;;10;350;;;;;;;Hel;;10;350;;;;;;;;;; +;Halv;;11;175;;;;;;;Halv;;11;175;;;;;;;;;; +;Inner;;12;200;135;;;;;;Ytter;;12;250;135;;;;;;;;; +;Inner;;13;200;;;;;;;Ytter;;13;250;;;;;;;;;; +;Inner;;14;200;;;;;;;Ytter;;14;250;;;;;;;;;; +;Halv;;15;175;;;;;;;Halv;;15;175;;;;;;;;;; +;Inner;;16;200;90;;;;;;Ytter;;16;250;90;;;;;;;;; +;Inner;;1;200;;;;;;;Ytter;;17;250;;;;;;;;;; +;Ytter;8;2;250;-45;;;;;;Inner;8;1;200;-45;;;;;;;;; +;Inner;;3;200;45;;;;;;Ytter;;2;250;45;;;;;;;;; +;Halv;;4;175;;;;;;;Halv;;3;175;;;;;;;;;; +;Inner;;5;200;90;;;;;;Ytter;;4;250;90;;;;;;;;; +;Inner;;6;200;;;;;;;Ytter;;5;250;;;;;;;;;; +;Bro;;7;235;;;;;;;Bro;;6;235;;;;;;;;;; +;Hel;;8;350;;;;;;;Hel;;7;350;;;;;;;;;; +;Inner;;9;200;90;;;;;;Ytter;;8;250;90;;;;;;;;; +;Inner;;10;200;;;;;;;Ytter;;9;250;;;;;;;;;; +;Hel;;11;350;;;;;;;Hel;;10;350;;;;;;;;;; +;Halv;;12;175;;;;;;;Halv;;11;175;;;;;;;;;; +;Hel;;13;350;;;;;;;Hel;;12;350;;;;;;;;;; +;Inner;9;1;200;90;;;;;;Ytter;9;1;250;90;;;;;;;;; +;Inner;;2;200;90;;;;;;Ytter;;2;250;90;;;;;;;;; +;Hel;;3;350;;;;;;;Hel;;3;350;;;;;;;;;; +;Hel;;4;350;;;;;;;Hel;;4;350;;;;;;;;;; +;Halv;;5;175;;;;;;;Halv;;5;175;;;;;;;;;; +;Inner;;6;200;90;;;;;;Ytter;;6;250;90;;;;;;;;; +;Inner;;7;200;;;;;;;Ytter;;7;250;;;;;;;;;; +;Målbit;;8;315;;;;;;;Målbit;;8;315;;;;;;;;;; diff --git a/Kod/bilbana/Graph/graphs_test.m b/Kod/bilbana/Graph/graphs_test.m index 3a2a2e5..ddc3b64 100644 --- a/Kod/bilbana/Graph/graphs_test.m +++ b/Kod/bilbana/Graph/graphs_test.m @@ -1,11 +1,14 @@ %% 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]; +A = [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.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, 0, 0, 0]; +B = [3.9,1.1,2.2,1.8,1.4,3.9, 0, 0, 0]; +C = [3.9,1.1,2.2,1.8,1.4,3.9,1.5,3.1,1.0; + 4.1,1.1,2.2,1.8,1.4,3.4, 0, 0, 0]; +car1.seg_times = C; 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 +graphs(car1.lap_times,ref_lap_time,car1.seg_times,5)
\ No newline at end of file diff --git a/Kod/bilbana/Graph/lap_time_graph.m b/Kod/bilbana/Graph/lap_time_graph.m index 8d54c6a..c21a0c5 100644 --- a/Kod/bilbana/Graph/lap_time_graph.m +++ b/Kod/bilbana/Graph/lap_time_graph.m @@ -40,13 +40,13 @@ hold off %% Standardavvkielse sigma = std(lap_times); sigma = round(sigma, 2); -sig_str = string(sigma); +sig_str = num2str(sigma); %% Text xlabel('Varv'); ylabel('Tid [s]'); -Tit = join(['Varvtider bana',string(track)]); +Tit = ['Varvtider bana ' num2str(track)]; title(Tit); -txt = join(['Standardavvikelse:',sig_str, 's/varv']); +txt = ['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 index 602938b..c32281a 100644 --- a/Kod/bilbana/Graph/segment_time_graph.m +++ b/Kod/bilbana/Graph/segment_time_graph.m @@ -1,15 +1,40 @@ -function [] = segment_time_graph(seg_time, track) -%SEGMENT_TIME_GRAPH Snittid för varje segment. -seg_time_size = size(seg_time); -avr_seg_time = mean(seg_time(1:(seg_time_size(1) - 1), 1:(seg_time_size(2)))); -subplot(20, 1, 13:20); +function [] = segment_time_graph(seg_times, track) +%SEGMENT_TIME_GRAPH Stapeldiagram med snittid för varje segment. + %{ + Utgår ifrån en r*k matris (seg_times). I den finns segmenttider lagrade + enligt rad ~ varv och kollonn ~ segment. Funktionen summerar alla + kollonner och delar summan med antalet kolloner som inte har värdet 0. + Sedan ritas ett stapeldiagram där varje stapel motsvarar en kollon i + den nyligen beräknade 1*k matrisen. + %} +seg_time_size = size(seg_times); +divide_by_n = ones(1,seg_time_size(2)); +%% Summera seg_time om seg_time ~= 0 +for r = 1:seg_time_size(1) + if r == 1 + avr_seg_time(1,1:seg_time_size(2)) = seg_times(1,1:seg_time_size(2)); + else + for c = 1:seg_time_size(2) + x = seg_times(r,c); + if x ~= 0 + avr_seg_time(c) = avr_seg_time(c) + seg_times(r,c); + divide_by_n(c) = divide_by_n(c) + 1; + end + end + end +end +%% Ta medel av summan +for c =1:seg_time_size(2) + avr_seg_time(c) = avr_seg_time(c)/divide_by_n(c); +end +%% Rita +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)]); +tit = ['Medeltid/segment bana ' num2str(track)]; title(tit); end diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index 04308bf..bfeaa60 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -42,7 +42,7 @@ tocs = []; %% ASK ACTIVE CARS disp('J = Ja (automatiskt), M = Ja (manuellt), N = Nej'); -car1.response = input('Vill du köra bil 1? [N] ', 's'); +car1.response = input('Vill du k�ra bil 1? [N] ', 's'); if car1.response == 'J' car1.running = true; car1.automatic = true; @@ -53,7 +53,7 @@ else car1.running = false; end -car2.response = input('Vill du köra bil 2? [N] ', 's'); +car2.response = input('Vill du k�ra bil 2? [N] ', 's'); if car2.response == 'J' car2.running = true; car2.automatic = true; @@ -114,8 +114,6 @@ while 1 car1.segment = 1; car1.lap = car1.lap + 1; - - car1.seg_times(car1.lap, 1) = 0; end end @@ -150,8 +148,6 @@ while 1 car2.segment = 1; car2.lap = car2.lap + 1; - - car2.seg_times(car2.lap, 1) = 0; end end |
