diff options
| author | David Thorén <davth346@student.liu.se> | 2019-11-28 12:08:21 +0100 |
|---|---|---|
| committer | Albin <albwa833@student.liu.se> | 2019-11-29 11:39:21 +0100 |
| commit | 1a989c55ec63460c38fa09f3922991ab48adca5e (patch) | |
| tree | ad1bbe4c0e36f688d5065a18b987782104392404 /Kod | |
| parent | bc98b95d1d48b2bc130d662fd37b69c8ee6f77b4 (diff) | |
| download | tfyy51-1a989c55ec63460c38fa09f3922991ab48adca5e.tar.gz | |
Något bättre bana 1 typ
Diffstat (limited to 'Kod')
| -rw-r--r-- | Kod/bilbana/files/Bana.mat | bin | 0 -> 1194 bytes | |||
| -rw-r--r-- | Kod/bilbana/files/Bana1.mat | bin | 1216 -> 0 bytes | |||
| -rw-r--r-- | Kod/bilbana/files/Bana2.mat | bin | 1202 -> 0 bytes | |||
| -rw-r--r-- | Kod/bilbana/yc4/do_boot.m | 12 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/do_car.m | 3 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/do_gov.m | 21 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/main.m | 13 |
7 files changed, 29 insertions, 20 deletions
diff --git a/Kod/bilbana/files/Bana.mat b/Kod/bilbana/files/Bana.mat Binary files differnew file mode 100644 index 0000000..8167d4f --- /dev/null +++ b/Kod/bilbana/files/Bana.mat diff --git a/Kod/bilbana/files/Bana1.mat b/Kod/bilbana/files/Bana1.mat Binary files differdeleted file mode 100644 index e745c59..0000000 --- a/Kod/bilbana/files/Bana1.mat +++ /dev/null diff --git a/Kod/bilbana/files/Bana2.mat b/Kod/bilbana/files/Bana2.mat Binary files differdeleted file mode 100644 index 56d1acb..0000000 --- a/Kod/bilbana/files/Bana2.mat +++ /dev/null diff --git a/Kod/bilbana/yc4/do_boot.m b/Kod/bilbana/yc4/do_boot.m index 9c4930c..1049910 100644 --- a/Kod/bilbana/yc4/do_boot.m +++ b/Kod/bilbana/yc4/do_boot.m @@ -5,7 +5,7 @@ if car.running == true %% BEFORE FIRST LAP if car.lap == 0 t = toc(boot.time); - if t > 0.6 + if t > 0.7 car.constant = car.constant + 0.12; disp('###') disp(car.num) @@ -15,7 +15,7 @@ if car.running == true end %% WHEN NEW LAP if car.new_lap == 1 - car.constant = car.constant * 1.2; + car.constant = car.constant + 0.2; disp('###') disp(car.num) disp(car.constant) @@ -23,7 +23,7 @@ if car.running == true %% First segment if car.lap == 1 && car.segment == 1 || car.lap == 1 && car.segment == 2 t = toc(boot.time); - if t > 0.8 + if t > 1 car.constant = car.constant + 0.04; disp('###') disp(car.num) @@ -51,9 +51,9 @@ if car.running == true seg_time = car.seg_times(1, 3); laptime_forecast = seg_time / 0.102; forecast_ref_diff = laptime_forecast - car.ref_time; - forecast_ref_diff_rel = forecast_ref_diff / car.ref_time; - car.constant = car.constant + (forecast_ref_diff_rel * 0.15); - car.constant = car.constant * 1.05; % kompensation för kall bana + forecast_ref_diff_rel = forecast_ref_diff / 20;%car.ref_time; + car.constant = car.constant + (forecast_ref_diff_rel * 0.5); + %car.constant = car.constant * 1.05; % kompensation för kall bana boot.status = 0; disp('END OF BOOTSTRAP') disp(car.num) diff --git a/Kod/bilbana/yc4/do_car.m b/Kod/bilbana/yc4/do_car.m index 7728c28..cb3e934 100644 --- a/Kod/bilbana/yc4/do_car.m +++ b/Kod/bilbana/yc4/do_car.m @@ -98,6 +98,7 @@ if car.running == true %% CHECK POINT if car.new_check_point == true + disp(car) if car.new_lap == false % choose_position krachar vid nytt varv (seg 10) if car.lap ~= 0 car.seg_times(car.lap, car.segment) = toc(car.seg_tic); @@ -192,7 +193,7 @@ if car.running == true && car.automatic == false mult = 100; max = 55; div = 55; - set_car_speed(car.num, mult * ((max - get_manual_speed(car.num)) / div)); + set_car_speed(car.num, mult * ((max - get_manual_speed(car.num)) / div)) end %% EXECUTE diff --git a/Kod/bilbana/yc4/do_gov.m b/Kod/bilbana/yc4/do_gov.m index 5f89c57..e0dc45d 100644 --- a/Kod/bilbana/yc4/do_gov.m +++ b/Kod/bilbana/yc4/do_gov.m @@ -4,8 +4,23 @@ function [ car ] = do_gov( car ) if car.new_lap % TODO calculate stuff elseif car.new_check_point && (car.segment == 5 || car.segment == 8) - status = car.forecasts(car.lap, car.segment-1)/car.ref_time; - car.constant = car.constant + (status - 1) * 0.08; - car.governs(length(car.governs) + 1) = car.constant; + if true %car.lap == 1 + status = car.forecasts(car.lap, car.segment-1)/car.ref_time; + car.constant = car.constant + (status - 1) * 0.08; + car.governs(length(car.governs) + 1) = car.constant; + end + %{ + if car.lap > 1 && (car.segment == 5 || car.segment == 8) + car.lap_now = toc(car.lap_tic); + norm_const = 1/(sum(car.percents(1:9))); + norm_list = car.percents * norm_const; + sum_percent = sum(norm_list(1:car.segment)); + exp_time = car.ref_time * sum_percent; + + status = car.lap_now/exp_time; + car.constant = car.constant + (status - 1) * 0.08; + car.governs(length(car.governs) + 1) = car.constant; + end + %} end diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index f589c29..2f45089 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -37,8 +37,7 @@ display.shm_interp.data = []; display.last_send = tic; display.send_interval = 0.5; -load('bilbana\files\Bana1.mat') -load('bilbana\files\Bana2.mat') +load('bilbana\files\Bana.mat') car1 = struct; car1.num = 1; @@ -50,15 +49,13 @@ car1.segment = 1; car1.lap = 0; car1.lap_times = []; car1.seg_times = []; -car1.seg_constant_list = []; % TODO car1.position = 0; car1.pos_at = [0.0 2.53 3.05 4.73 7.68 8.98 10.93 14.69 17.57 19.60]; car1.seg_len = [2.53 0.53 1.68 2.92 1.2 2.01 3.83 2.89 1.99]; -car1.percents = []; % TODO +car1.percents = [0.088, 0.022, 0.102, 0.15, 0.058, 0.11, 0.212, 0.146, 0.113]; % TODO car1.map = Bana1; -car1.approximation = []; +%car1.approximation = []; car1.miss_probability = 0.0; -car1.lap_constants = [1,1,1,1,1,1,1,1,1]; % TODO car1.constant = 0.1; car1.stop = false; car1.governs = []; @@ -79,9 +76,6 @@ car2.seg_len = [2.53 0.52 1.87 2.70 1.40 1.70 4.03 3.08 2.19]; car2.percents = [0.088, 0.022, 0.102, 0.15, 0.058, 0.11, 0.212, 0.146, 0.113]; car2.map = Bana2; car2.miss_probability = 0.05; -car2.seg_constant_list = []; % TODO -car2.lap_constants = [1,1,1,1,1,1,1,1,1]; % TODO -car2.seg_constant = 1; car2.constant = 0.1; car2.stop = false; car2.governs = []; @@ -307,7 +301,6 @@ while 1 end end - %% END OF RACE disp(highToc); disp(car1); |
