diff options
Diffstat (limited to 'Kod/bilbana/yc4')
| -rw-r--r-- | Kod/bilbana/yc4/get_car_constant.m | 23 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/get_new_u.m | 9 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/get_new_v.m | 25 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/get_track_u_constant.m | 3 | ||||
| -rw-r--r-- | Kod/bilbana/yc4/main.m | 1 |
5 files changed, 44 insertions, 17 deletions
diff --git a/Kod/bilbana/yc4/get_car_constant.m b/Kod/bilbana/yc4/get_car_constant.m index 7f3aafb..eb3bd22 100644 --- a/Kod/bilbana/yc4/get_car_constant.m +++ b/Kod/bilbana/yc4/get_car_constant.m @@ -1,12 +1,21 @@ function [ car_constant ] = get_car_constant( in_pos, pos ) %GET_CAR_CONSTANT Summary of this function goes here % Detailed explanation goes here - switch(in_pos) - case 1 - car_constant = 1; - case 2 - car_constant = 1.2; - end - return + +%{ +GET_CAR_CONSTANT: +car_constant: Påverkar new_u så att new_u tillsammans med track_u_constant motsvarar den hastighet som +anges av new_v. car_constant ändras endast vid ny indata, vilket innebär att den är konstant under resterande +cykler fram tills nästa givare passeras. Genom att jämföra positionen som fås av givarna med indatan kan programmet +räkna ut felmarginalen som har uppstått och kalibrera car_constant new_u kan justeras med större +precision. +%} + +switch(in_pos) + case 1 + car_constant = 1; + case 2 + car_constant = 1.2; +end end diff --git a/Kod/bilbana/yc4/get_new_u.m b/Kod/bilbana/yc4/get_new_u.m index 39662b5..ee624fe 100644 --- a/Kod/bilbana/yc4/get_new_u.m +++ b/Kod/bilbana/yc4/get_new_u.m @@ -2,6 +2,13 @@ function [ new_u ] = get_new_u( new_v, car_constant, track_u_constant ) %GET_NEW_U Summary of this function goes here % Detailed explanation goes here - +%{ +GET_NEW_U: +new_u: Den spänning som ska appliceras beroende på vilken hastighet new_v anger. Ett högre new_v innebär +ett högre new_u. De andra parametrarna som påverkar new_u är car_constant och track_u_constant, desto högre +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; end diff --git a/Kod/bilbana/yc4/get_new_v.m b/Kod/bilbana/yc4/get_new_v.m index a0aa19e..b357410 100644 --- a/Kod/bilbana/yc4/get_new_v.m +++ b/Kod/bilbana/yc4/get_new_v.m @@ -1,10 +1,21 @@ function [ new_v ] = get_new_v( old_v, speed_constant, target_diff, car_position_diff, agressiveness ) -%GET_NEW_V Summary of this function goes here -% Detailed explanation goes here - v = [35, 25, 30, 30, 40, 50, 45, 50, 35]; - - new_v = v(old_v); - - return +%GET_NEW_V Hastigheten som bilen ska få nästa cykel. +%{ +Tar förra cykelns hastighet (old_ v) och lägger till eller drar +av beroende på hur långt ifrån målet bilarna ligger (target_diff) och, +om gemensam målgång är aktiverad, hur långt ifrån varandra bilarna är +(car_position_diff). Beror också på agressiveness; högre agressiveness ger +större skillnad mellan new_v och old_v medan ett lågt värde gör att new_v +inte ändras särskilt mycket. new_v används sedan för att sätta new_u. +Högre new_v ger högre new_u och lägre new_v ger lägre_u. +%} + +%{ +GET_NEW_V: +new_v: Den hastighet som bilen ska få nästa cykel. +%} + +v = [35, 25, 30, 30, 40, 50, 45, 50, 35]; +new_v = v(old_v); end diff --git a/Kod/bilbana/yc4/get_track_u_constant.m b/Kod/bilbana/yc4/get_track_u_constant.m index 3201f1b..50db463 100644 --- a/Kod/bilbana/yc4/get_track_u_constant.m +++ b/Kod/bilbana/yc4/get_track_u_constant.m @@ -1,7 +1,6 @@ function [ track_u_constant ] = get_track_u_constant( position ) %GET_TRACK_U_CONSTANT Summary of this function goes here % Detailed explanation goes here - - +track_u_constant = 1; end diff --git a/Kod/bilbana/yc4/main.m b/Kod/bilbana/yc4/main.m index c8e1218..53c6f00 100644 --- a/Kod/bilbana/yc4/main.m +++ b/Kod/bilbana/yc4/main.m @@ -108,6 +108,7 @@ while 1 end %% END OF PROGRAM +disp(tocs); disp(car1); disp(car2); |
