From f3819da0232f8f1877b25a3f166174de7134ba8c Mon Sep 17 00:00:00 2001 From: Albin Date: Sat, 16 Nov 2019 14:25:40 +0100 Subject: Lade till get_seg_constant.m --- Kod/bilbana/yc4/get_new_v.m | 6 +----- Kod/bilbana/yc4/get_seg_constant.m | 13 +++++++++++++ 2 files changed, 14 insertions(+), 5 deletions(-) create mode 100644 Kod/bilbana/yc4/get_seg_constant.m (limited to 'Kod/bilbana/yc4') diff --git a/Kod/bilbana/yc4/get_new_v.m b/Kod/bilbana/yc4/get_new_v.m index e722326..e56f572 100644 --- a/Kod/bilbana/yc4/get_new_v.m +++ b/Kod/bilbana/yc4/get_new_v.m @@ -4,12 +4,8 @@ function [ new_v ] = get_new_v( position, list) Utgår ifrån position och ger motsvarande hårdkodade värde på v för nuvarande sub_segment. %} -position = position*100; %temp input för position - - - +position = position*100; for i = 1:length(list) - if list(i,1) > position new_v = list((i-1),4); break diff --git a/Kod/bilbana/yc4/get_seg_constant.m b/Kod/bilbana/yc4/get_seg_constant.m new file mode 100644 index 0000000..38e0bf0 --- /dev/null +++ b/Kod/bilbana/yc4/get_seg_constant.m @@ -0,0 +1,13 @@ +function [out] = get_seg_constant(position, track) +%GET_SEG_CONSTANT Summary of this function goes here +% Detailed explanation goes here +track_len = [0 2.53 3.05 4.73 7.68 8.98 10.93 14.96 17.57; + 0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; +for i = 1:length(track_len) + if position > track_len(track, i) + seg_constant = track_len(track, i); + end +end +out = seg_constant; +end + -- cgit v1.2.1 From 206a04d0b9490d9ca092a15efbfc856c6916bfdf Mon Sep 17 00:00:00 2001 From: Albin Date: Sat, 16 Nov 2019 14:52:01 +0100 Subject: Seg_constant 'borde' funka #62 --- Kod/bilbana/yc4/do_car.m | 8 ++++---- Kod/bilbana/yc4/get_new_u.m | 4 ++-- Kod/bilbana/yc4/get_seg_constant.m | 15 ++++++++++----- Kod/bilbana/yc4/gov_set.m | 6 ++++++ Kod/bilbana/yc4/main.m | 2 ++ 5 files changed, 24 insertions(+), 11 deletions(-) create mode 100644 Kod/bilbana/yc4/gov_set.m (limited to 'Kod/bilbana/yc4') diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m index ed8de89..d630ac5 100644 --- a/Kod/bilbana/yc4/do_car.m +++ b/Kod/bilbana/yc4/do_car.m @@ -110,7 +110,8 @@ if car.running == true %% NEW LAP if car.new_lap == true - car.new_lap = false; + lap_constants = gov_set(get_car_constant(car.num)); + car.new_lap = false; %TODO remove beep; if car.lap == 0 % dont save time for first lap @@ -136,10 +137,9 @@ end %% CALCULATE if car.running == true && car.automatic == true - car.car_constant = get_car_constant(car.num); car.v = get_new_v(car.position, car.map); - car.track_u_constant = get_track_u_constant(); - car.u = get_new_u(car.v, car.car_constant, car.track_u_constant); + seg_constant = get_seg_constant(car.position, lap_constants, car.num); + car.u = get_new_u(car.v, seg_constant, car.track_u_constant); end %% CONTROLLER diff --git a/Kod/bilbana/yc4/get_new_u.m b/Kod/bilbana/yc4/get_new_u.m index ee624fe..ab5e016 100644 --- a/Kod/bilbana/yc4/get_new_u.m +++ b/Kod/bilbana/yc4/get_new_u.m @@ -1,4 +1,4 @@ -function [ new_u ] = get_new_u( new_v, car_constant, track_u_constant ) +function [ new_u ] = get_new_u( new_v, seg_constant) %GET_NEW_U Summary of this function goes here % Detailed explanation goes here @@ -9,6 +9,6 @@ ett h dessa värden dessa antar desto högre värde antar också new_u. new_u är programmets sista output, dess värde 0 till 127 är det gaspådrag som appliceras på bilen. %} -new_u = new_v*car_constant*track_u_constant; +new_u = new_v*seg_constant; end diff --git a/Kod/bilbana/yc4/get_seg_constant.m b/Kod/bilbana/yc4/get_seg_constant.m index 38e0bf0..2b481fa 100644 --- a/Kod/bilbana/yc4/get_seg_constant.m +++ b/Kod/bilbana/yc4/get_seg_constant.m @@ -1,13 +1,18 @@ -function [out] = get_seg_constant(position, track) -%GET_SEG_CONSTANT Summary of this function goes here -% Detailed explanation goes here +function [out] = get_seg_constant(position, lap_constants, track) +%GET_SEG_CONSTANT Avgör vilken seg_constat som ska användas utifån +%nuvarande position. +%{ +position - Position i meter från start +lap_constants - De seg_constants som ska användas detta varv +track - den bana/bil som beräkningarna ska göras för +%} track_len = [0 2.53 3.05 4.73 7.68 8.98 10.93 14.96 17.57; 0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; for i = 1:length(track_len) if position > track_len(track, i) - seg_constant = track_len(track, i); + seg_constant_num = track_len(track, i); end end -out = seg_constant; +out = lap_constants(seg_constant_num); end diff --git a/Kod/bilbana/yc4/gov_set.m b/Kod/bilbana/yc4/gov_set.m new file mode 100644 index 0000000..22765c0 --- /dev/null +++ b/Kod/bilbana/yc4/gov_set.m @@ -0,0 +1,6 @@ +function [out] = gov_set(car_constant) +%GOV_SET TODO - Just nu temp lösning +% Detailed explanation goes here +out = car_constant*ones(1,9); +end + diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index 51db6bc..633b9d0 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -52,6 +52,7 @@ car1.seg_len = [0.0 2.53 3.05 4.73 7.68 8.98 10.93 14.69 17.57]; car1.map = Bana1; car1.approximation = []; car1.miss_probability = 0.0; +car1.lap_constants = []; %TODO välj lap_constants med governor car2 = struct; car2.num = 2; @@ -67,6 +68,7 @@ car2.position = 0; car2.seg_len = [0.0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; car2.map = Bana2; car2.miss_probability = 0.05; +car2.lap_constants = []; %TODO välj lap_constants med governor t = 0; highToc = 0; -- cgit v1.2.1 From 6b017efb3d0339c88bc1c72e0f7c0057a67080bb Mon Sep 17 00:00:00 2001 From: Albin Date: Sat, 16 Nov 2019 14:56:54 +0100 Subject: Lade till (tom) seg_constant_list i struc. car --- Kod/bilbana/yc4/main.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Kod/bilbana/yc4') diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index 633b9d0..a1c33b7 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -52,7 +52,7 @@ car1.seg_len = [0.0 2.53 3.05 4.73 7.68 8.98 10.93 14.69 17.57]; car1.map = Bana1; car1.approximation = []; car1.miss_probability = 0.0; -car1.lap_constants = []; %TODO välj lap_constants med governor +car1.seg_constant_list = []; %TODO car2 = struct; car2.num = 2; @@ -68,7 +68,7 @@ car2.position = 0; car2.seg_len = [0.0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; car2.map = Bana2; car2.miss_probability = 0.05; -car2.lap_constants = []; %TODO välj lap_constants med governor +car2.seg_constant_list = []; %TODO t = 0; highToc = 0; -- cgit v1.2.1 From 4b90b0aceebafe19c975d8d049bd96f918eb9196 Mon Sep 17 00:00:00 2001 From: Albin Date: Sun, 17 Nov 2019 15:48:54 +0100 Subject: Fix #62 --- Kod/bilbana/yc4/do_car.m | 15 ++++++++++----- Kod/bilbana/yc4/get_seg_constant.m | 4 ++-- Kod/bilbana/yc4/main.m | 6 ++++-- 3 files changed, 16 insertions(+), 9 deletions(-) (limited to 'Kod/bilbana/yc4') diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m index d630ac5..bf2a767 100644 --- a/Kod/bilbana/yc4/do_car.m +++ b/Kod/bilbana/yc4/do_car.m @@ -8,8 +8,10 @@ car - En struct med data f car.automatic - Om bilen körs automatiskt eller inte car.segment - Bilens nuvarande segment car.lap - Bilens nuvarande varv - car.lap_times - Bilens sparade varvtider (1 x n matris) - car.seg_times - Bilens sparade segmentstier (n x m matris) + car.lap_times - Bilens sparade varvtider (1 x v matris) + car.seg_times - Bilens sparade segmentstier (v x 9 matris) + car.seg_constant_list = []; % TODO Sparar alla seg_constants som + använts (v x 9 matris) car.position - Bilens nuvarande placering på banan i meter från start/mål car.seg_len - Banans längd från start till givarna (1 x 9 matris) @@ -17,6 +19,9 @@ car - En struct med data f fil) car.miss_probability - Sannorlikheten för artificiellt introducerade missade givare + car.lap_constants = [1,1,1,1,1,1,1,1,1]; % TODO seg_constanst för + nuvarande varv. Skapas av gov_set() vid nytt varv + t - Längden (s) på nuvarande programcykel display_data - Buffer med den data som ska skickas till displayen vid nästa anrop @@ -110,7 +115,7 @@ if car.running == true %% NEW LAP if car.new_lap == true - lap_constants = gov_set(get_car_constant(car.num)); + car.lap_constants = gov_set(get_car_constant(car.num)); car.new_lap = false; %TODO remove beep; if car.lap == 0 @@ -138,8 +143,8 @@ end %% CALCULATE if car.running == true && car.automatic == true car.v = get_new_v(car.position, car.map); - seg_constant = get_seg_constant(car.position, lap_constants, car.num); - car.u = get_new_u(car.v, seg_constant, car.track_u_constant); + seg_constant = get_seg_constant(car.position, car.lap_constants, car.num); + car.u = get_new_u(car.v, seg_constant); end %% CONTROLLER diff --git a/Kod/bilbana/yc4/get_seg_constant.m b/Kod/bilbana/yc4/get_seg_constant.m index 2b481fa..9f4dd1d 100644 --- a/Kod/bilbana/yc4/get_seg_constant.m +++ b/Kod/bilbana/yc4/get_seg_constant.m @@ -9,8 +9,8 @@ track - den bana/bil som ber track_len = [0 2.53 3.05 4.73 7.68 8.98 10.93 14.96 17.57; 0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; for i = 1:length(track_len) - if position > track_len(track, i) - seg_constant_num = track_len(track, i); + if position >= track_len(track, i) + seg_constant_num = i; end end out = lap_constants(seg_constant_num); diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index a1c33b7..e59acd2 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -47,12 +47,13 @@ car1.segment = 1; car1.lap = 0; car1.lap_times = []; car1.seg_times = []; +car1.seg_constant_list = []; % TODO car1.position = 0; car1.seg_len = [0.0 2.53 3.05 4.73 7.68 8.98 10.93 14.69 17.57]; car1.map = Bana1; car1.approximation = []; car1.miss_probability = 0.0; -car1.seg_constant_list = []; %TODO +car1.lap_constants = [1,1,1,1,1,1,1,1,1]; % TODO car2 = struct; car2.num = 2; @@ -68,7 +69,8 @@ car2.position = 0; car2.seg_len = [0.0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; car2.map = Bana2; car2.miss_probability = 0.05; -car2.seg_constant_list = []; %TODO +car2.seg_constant_list = []; % TODO +car2.lap_constants = [1,1,1,1,1,1,1,1,1]; % TODO t = 0; highToc = 0; -- cgit v1.2.1 From eec64e88fcac4ca49340c8a9582b5dd369c41eca Mon Sep 17 00:00:00 2001 From: Albin Date: Sun, 17 Nov 2019 16:52:15 +0100 Subject: =?UTF-8?q?Borde=20funka,=20mer=20test=20kr=C3=A4vs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kod/bilbana/yc4/do_car.m | 7 ++++++- Kod/bilbana/yc4/main.m | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'Kod/bilbana/yc4') diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m index bf2a767..a9b95fb 100644 --- a/Kod/bilbana/yc4/do_car.m +++ b/Kod/bilbana/yc4/do_car.m @@ -104,7 +104,12 @@ if car.running == true else car.position = new_position; car.segment = car.segment + seg_plus; - end + end + if seg_plus ~= 0 + car.seg_times(car.lap, car.segment - seg_plus - 1) = 0; + disp(car.seg_times(car.lap, :)) + disp(seg_plus) + end %car.miss_time = uint64(0); else car.position = car.seg_len(car.segment); diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index e59acd2..67bbd6e 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -68,7 +68,7 @@ car2.seg_times = []; car2.position = 0; car2.seg_len = [0.0 2.53 3.05 4.92 7.60 8.84 10.65 14.68 17.76]; car2.map = Bana2; -car2.miss_probability = 0.05; +car2.miss_probability = 0.1; car2.seg_constant_list = []; % TODO car2.lap_constants = [1,1,1,1,1,1,1,1,1]; % TODO -- cgit v1.2.1 From 04622ee01550d947415306e40cab79db34b06b5c Mon Sep 17 00:00:00 2001 From: Albin Date: Sun, 17 Nov 2019 17:22:10 +0100 Subject: Fix #52 --- Kod/bilbana/yc4/do_car.m | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'Kod/bilbana/yc4') diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m index a9b95fb..2bddf67 100644 --- a/Kod/bilbana/yc4/do_car.m +++ b/Kod/bilbana/yc4/do_car.m @@ -131,7 +131,10 @@ if car.running == true car.lap_tic = tic; else % beep; - car.seg_times(car.lap, car.segment) = toc(car.seg_tic); + % Spara inte seg_time om missad givare + if car.segment == 9 + car.seg_times(car.lap, car.segment) = toc(car.seg_tic); + end car.seg_tic = tic; car.lap_times(car.lap) = toc(car.lap_tic); car.lap_tic = tic; -- cgit v1.2.1