forked from SatwikGu/GA-for-Suspension-Optimization
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfitness_function.m
More file actions
31 lines (24 loc) · 1003 Bytes
/
fitness_function.m
File metadata and controls
31 lines (24 loc) · 1003 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function [fitness] = fitness_function(pop, val_cam, val_toe)
fitness = zeros(size(pop,1),1);
for i = 1:size(pop, 1)
if ((val_cam(i, 1) >= -2 && val_cam(i, 1) <= 2) && (val_cam(i, 2) >= -2 && val_cam(i, 2) <= 2))
camber_fitness = abs(val_cam(i, 2) - val_cam(i, 1))/8;
fitness(i) = fitness(i) + camber_fitness;
else
fitness(i) = 99999;
end
if ((val_toe(i, 1) >= -1 && val_toe(i, 1) <= 1) && (val_toe(i, 2) >= -1 && val_toe(i, 2) <= 1))
toe_fitness = abs(val_toe(i, 2) - val_toe(i, 1))/4;
fitness(i) = fitness(i) + toe_fitness;
else
fitness(i) = 99999;
end
kingpin = (90 - atan((pop(i, 3, 3) - pop(i, 6, 3))/(pop(i, 3, 2) - pop(i, 6, 2))) * 180) / pi;
castor = (90 - atan((pop(i, 3, 3) - pop(i, 6, 3))/(pop(i, 3, 1) - pop(i, 6, 1))) * 180) / pi;
if (kingpin <= 4 && kingpin >= 9)
fitness(i) = 99999;
end
if (castor <= 3 && castor >= 8)
fitness(i) = 99999;
end
end