|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本人在做动力总成悬置系统优化设计
C是约束条件
c=[3-fmin
fmax-(750*4/(30*sqrt(2)*4))
Zd-0.005];
其中fmin,fmax,Zd,是函数中求解的固有频率的最小值、最大值、以及动力总成的静位移
在用遗传算法工具箱优化不知道怎么添加这种约束
尝试了用惩罚函数法,将有约束转换成无约束求解
以下是运行主程序
clc;
clear;
format long;
r=1e8;
df=1e10;
k=0;
while df>0.0001
k=k+1;
r=r*0.999;
l=[50 50 50 50];
u=[800 800 800 800];
A=[];b=[];Aeq=[];Beq=[];
options=gaoptimset;
% options.TolX=1e-10;
options=gaoptimset(options,'Generations',50);
options=gaoptimset(options,'PopulationSize',20);
% options=gaoptimset(options,'Stall generations',50);
[x fc]=ga(@again1,4,A,b,Aeq,Beq,l,u, options);
[fc f c]=again1(x,r);
df=abs(f-fc)
end
k
x,f
目标函数代码
。。。。。
f=0.2*(1-Joz)+0.2*(1-Jorx)+0.2*(3/fmin)+0.2*(fmax/(750*4/(30*sqrt(2)*4)))+0.2*(Zd/0.005);
c=[3-fmin
fmax-(750*4/(30*sqrt(2)*4))
Zd-0.005];
for i=1:3
fc=fc+(c(i)<0)*(1/c(i));
end
fc=f-r*fc;
但是运行总是提示
Error using functionHandleOrCell (line 13)
The constraint function must be a function handle.
Error in validate (line 141)
[nonlcon,NonconFcnArgs] = functionHandleOrCell('NonconFcn',nonlcon);
Error in gacommon (line 68)
[options,nvars,FitnessFcn,NonconFcn] =
validate(options,type,nvars,fun,nonlcon,user_options);
Error in ga (line 319)
[x,fval,exitFlag,output,population,scores,FitnessFcn,nvars,Aineq,bineq,Aeq,beq,lb,ub,
...
希望可以提供下思路
|
|