This is an multi objective genetic algorithm to optimize an turbojet two spool afterburner. % Define your own constraint functions as a cell array myCons = {@(x) f>=1, @(x) Fn>=1, @(x) m0>=1, @(x) p3>=1, @(x) Tpz>=1, @(x) o>=1, @(x) t>=1, @(x) aa>=1, @(x) WTO>=1, @(x) WLanding>=1, @(x) WF>=1, @(x) WE>=1, @(x) WPL>=1, @(x) WC>=1, @(x) M>=1, @(x) Fab>=1, @(x) V9>=1, @(x) V0>=1, @(x) QR>=1, @(x) NB>=1, @(x) T1>=1, @(x) T0>=1, @(x) L>=1, @(x) p>=1, @(x) V>=1, @(x) A>=1, @(x) bw>=1, @(x) sw>=1, @(x) WZF>=1, @(x) b>=1, @(x) cr>=1, @(x) ct>=1, @(x) WS>=1, @(x) RC>=1, @(x) l>=1, @(x) m>=1, @(x) W0>=1, @(x) VH>=1, @(x) VS>=1, @(x) VS1>=1}; confun = @(x) cellfun(@(f) f(x), myCons); % Evaluate all constraint functions for the given x % Run genetic algorithm [x, fval, exitflag, output, population, scores] = ga(objfun, nvars, [], [], [], [], [], [], confun, options); % ... MAIN MATLAB CODE: % Define decision variables, objectives, and constraints nvars = 56; % number of decision variables nobj = 2; % number of objectives ncon = 44; % number of constraints % Set up genetic algorithm options options = optimoptions('ga', ... 'PopulationSize', 100, ... 'MaxGenerations', 100, ... 'MutationFcn', {@mutationuniform, 0.05}, ... 'CrossoverFcn', @crossoverarithmetic); % Define the objective functions to maximize and minimize f = @(x) [(Fn/m0)*V0/(1+f+Fab)*((V9^2)/2)-(V0^2)/2, (Fn/m0)*V0/(f*QR*NB), -1-(1/(T1/T0)), m0*V0]; g = @(x) [-f/(Fn/m0), -10^13*p3/(1.4*10^6)*exp(-71442/Tpz)*(7.56*o^7.2-1.6)*(t^0.64), -WT0*(1-WF/WTO-WE/WTO), -(WTO-WLanding), -WT0*(1-WF/WTO-WE/WTO), -M/(TSFC/Fn)]; confun = @(x) deal(myCon1(x), myCon2(x), myCon3(x), myCon4(x), myCon5(x), myCon6(x), myCon7(x), myCon8(x), myCon9(x), myCon10(x), myCon11(x), myCon12(x), myCon13(x), myCon14(x), myCon15(x), myCon16(x), myCon17(x), myCon18(x), myCon19(x), myCon20(x), myCon21(x), myCon22(x), myCon23(x), myCon24(x), myCon25(x), myCon26(x), myCon27(x), myCon28(x), myCon29(x), myCon30(x), myCon31(x), myCon32(x), myCon33(x), myCon34(x), myCon35(x), myCon36(x), myCon37(x), myCon38(x), myCon39(x), myCon40(x), myCon41(x), myCon42(x), myCon43(x), myCon44(x), myCon45(x), myCon46(x), myCon47(x), myCon48(x), myCon49(x), myCon50(x), myCon51(x), myCon52(x), myCon53(x), myCon54(x), myCon55(x) ); % Define your own constraint functions myCon1 = @(x) f>=1; myCon2 = @(x) Fn>=1; myCon3 = @(x) m0>=1; myCon4 = @(x) p3>=1; myCon5 = @(x) Tpz>=1; myCon6 = @(x) o>=1; myCon7 = @(x) t>=1; myCon8 = @(x) aa>=1; myCon9 = @(x) WTO>=1; myCon10 = @(x) WLanding>=1; myCon11 = @(x) WF>=1; myCon12 = @(x) WE>=1; myCon13 = @(x) WPL>=1; myCon14 = @(x) WC>=1; myCon15 = @(x) M>=1; myCon16 = @(x) Fab>=1; myCon17 = @(x) V9>=1; myCon18 = @(x) V0>=1; myCon19 = @(x) QR>=1; myCon20 = @(x) NB>=1; myCon21 = @(x) T1>=1; myCon22 = @(x) T0>=1; myCon23 = @(x) L>=1; myCon24 = @(x) p>=1; myCon25 = @(x) V>=1; myCon26 = @(x) A>=1; myCon27 = @(x) bw>=1; myCon28 = @(x) sw>=1; myCon29 = @(x) WZF>=1; myCon30 = @(x) b>=1; myCon31 = @(x) cr>=1; myCon32 = @(x) ct>=1; myCon33 = @(x) WS>=1; myCon34 = @(x) RC>=1; myCon35 = @(x) l>=1; myCon36 = @(x) m>=1; myCon37 = @(x) W0>=1; myCon38 = @(x) VH>=1; myCon39 = @(x) VS>=1; myCon40 = @(x) VS1>=1; % Run genetic algorithm [x, fval, exitflag, output, population, scores] = ga(objfun, nvars, [], [], [], [], [], [], 20:45, options);% Plot Pareto front pareto(fval(:,1:nobj/2), -fval(:,nobj/2+1:end)); xlabel('Objective 1'); ylabel('Objective 2'); zlabel('Objective 3'); Error in untitled20 (line 58) [x, fval, exitflag, output, population, scores] = ga(objfun, nvars, [], [], [], [], [], [], 20:45, options);% Plot Pareto front
Good afternoon,
Would it be possible for someone to help me to correct this code in matlab unfortunately it is not working a small error appears and make some changes as :
This is an multi objective genetic algorithm to optimize an turbojet two spool afterburner.
% Define your own constraint functions as a cell array
myCons = {@(x) f>=1, @(x) Fn>=1, @(x) m0>=1, @(x) p3>=1, @(x) Tpz>=1, @(x) o>=1, @(x) t>=1, @(x) aa>=1, @(x) WTO>=1, @(x) WLanding>=1, @(x) WF>=1, @(x) WE>=1, @(x) WPL>=1, @(x) WC>=1, @(x) M>=1, @(x) Fab>=1, @(x) V9>=1, @(x) V0>=1, @(x) QR>=1, @(x) NB>=1, @(x) T1>=1, @(x) T0>=1, @(x) L>=1, @(x) p>=1, @(x) V>=1, @(x) A>=1, @(x) bw>=1, @(x) sw>=1, @(x) WZF>=1, @(x) b>=1, @(x) cr>=1, @(x) ct>=1, @(x) WS>=1, @(x) RC>=1, @(x) l>=1, @(x) m>=1, @(x) W0>=1, @(x) VH>=1, @(x) VS>=1, @(x) VS1>=1};
confun = @(x) cellfun(@(f) f(x), myCons); % Evaluate all constraint functions for the given x
% Run genetic algorithm
[x, fval, exitflag, output, population, scores] = ga(objfun, nvars, [], [], [], [], [], [], confun, options);
% ...
MAIN MATLAB CODE:
Error in untitled20 (line 58)
[x, fval, exitflag, output, population, scores] = ga(objfun, nvars, [], [], [], [], [], [], 20:45, options);% Plot Pareto front
King regards
Step by step
Solved in 3 steps