From 9b02850daa38eb209345882396f0fbbca7f0baab Mon Sep 17 00:00:00 2001 From: Albin Date: Thu, 28 Nov 2019 20:54:05 +0100 Subject: =?UTF-8?q?get=5Faprox=5Fv=20kompenserar=20f=C3=B6r=20riktigt=20l?= =?UTF-8?q?=C3=A5ngsamt=20seg=201=20varv=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Kod/bilbana/files/Bana.mat | Bin 1189 -> 1186 bytes Kod/bilbana/yc4/do_car.m | 2 +- Kod/bilbana/yc4/get_aprox_v.m | 17 ++++++++++------- 3 files changed, 11 insertions(+), 8 deletions(-) (limited to 'Kod/bilbana') diff --git a/Kod/bilbana/files/Bana.mat b/Kod/bilbana/files/Bana.mat index 0a4b650..722afd9 100644 Binary files a/Kod/bilbana/files/Bana.mat and b/Kod/bilbana/files/Bana.mat differ diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m index 04c0f55..e627a93 100644 --- a/Kod/bilbana/yc4/do_car.m +++ b/Kod/bilbana/yc4/do_car.m @@ -73,7 +73,7 @@ if car.running == true %% CALC POSITION if car.automatic && car.lap > 1 % car.last_seg_times = car.seg_times(car.lap - 1, 1:9); - aprox_v = get_aprox_v(car.segment + detect_missed(car.position, car.segment, car.num, car.pos_at), car.lap, car.seg_times, car.num, car.seg_len); + aprox_v = get_aprox_v(car.segment + detect_missed(car.position, car.segment, car.num, car.pos_at), car); car.position = get_position(aprox_v, car.position, t); if detect_missed( car.position, car.segment, car.num, car.pos_at) disp('Miss?'); diff --git a/Kod/bilbana/yc4/get_aprox_v.m b/Kod/bilbana/yc4/get_aprox_v.m index 737dfac..a458f0f 100644 --- a/Kod/bilbana/yc4/get_aprox_v.m +++ b/Kod/bilbana/yc4/get_aprox_v.m @@ -1,4 +1,4 @@ -function [v] = get_aprox_v(cur_seg, lap, seg_times, track, seg_len) +function [v] = get_aprox_v(cur_seg, car) %GET_APROX_V Tillf�llig? Beh�vs f�r att testa get_position. Ger %medelhastigheten f�r nuvarande segment p� f�rra varvet. %{ @@ -6,18 +6,21 @@ cur_seg: Nuvarande segment last_seg_times: 1x9 vektor med f�rra varvets segmenttider %} % seg_len = []; - +lap = car.lap; if cur_seg > 9 cur_seg = cur_seg - 9; end - +%% Kompensera för väldigt långsamt segment 1 första varvet +if cur_seg == 1 && lap == 2 + v = car.seg_len(1)/0.78*car.seg_times(1,9) + return +end +%% Sätt v while lap > 0 lap = lap - 1; - if seg_times(lap, cur_seg) ~= 0 - v = seg_len(cur_seg) / seg_times(lap, cur_seg); + if car.seg_times(lap, cur_seg) ~= 0 + v = car.seg_len(cur_seg) / car.seg_times(lap, cur_seg); return end end -disp('bara nollor?'); - end -- cgit v1.2.1