登录论坛

查看完整版本 : [MATLAB混合编程] 优化


362074540
2009-10-29, 15:11
function f=myfun(x)%建立目标函数
t1=Mx-XM(i);
t2=My-YM(i);
Mx=x1*cos(al(i))+x5*cos(de+ga);
My=x1*sin(al(i))+x5*sin(de+ga);
et=acos((x1^2+x2^2+x4^2-2*x1*x4*cos(al(i))-x3^2)/(2*(x1^2+x4^2-2*x1*x4c*cos(al(i)))));
ep=atan(x1*sin(al(i))/(x4-x1*cos(al(i))));
ga=et-ep;
T(i)=T(i)+(t1^2+t2^2);
T(i)=0;
for i=1:9
T(i)=T(i)+(t1^2+t2^2);
end
T(i)=T(i);
f=sqrt(1/8*(T(i)));





%设计变量的初值
XM0=[26;23;20;17;13;10;20;30];
YM0=[16;17;17;16;15;11;6;12];
al0=[0;22;44;66;88;129;221;314];
%设计变量的上下限
lb=[8;0;0;0;10;0;0];
ub=[60;60;40;60;30;15;60];
%线性不等式约束条件系数矩阵
a=zeros(7,7);
a(1,1)=1;a(1,2)=-1;a(1,3)=0;a(1,4)=0;a(1,5)=0;a(1,6)=0;a(1,7)=0;
a(2,1)=1;a(2,2)=0;a(2,3)=-1;a(2,4)=0;a(2,5)=0;a(2,6)=0;a(2,7)=0;
a(3,1)=1;a(3,2)=0;a(3,3)=0;a(3,4)=-1;a(3,5)=0;a(3,6)=0;a(3,7)=0;
a(4,1)=1;a(4,2)=1;a(4,3)=-1;a(4,4)=-1;a(4,5)=0;a(4,6)=0;a(4,7)=0;
a(5,1)=1;a(5,2)=-1;a(5,3)=1;a(5,4)=-1;a(5,5)=0;a(5,6)=0;a(5,7)=0;
a(6,1)=1;a(6,2)=-1;a(6,3)=-1;a(6,4)=1;a(6,5)=0;a(6,6)=0;a(6,7)=0;
a(7,1)=0;a(7,2)=0;a(7,3)=0;a(7,4)=0;a(7,5)=0;a(7,6)=0;a(7,7)=0;
%线性不等式常数项列阵
b=[0;0;0;0;0;0;0];
%调用多维约束优化函数
[x,favl]=fmincon(@myfun,x0,y0,al0,a,b,[],[],lb,ub,@fm);



这是本人编的四杆机构优化程序,但无法正常运行,希望高手指点。多谢

anbcjys
2009-10-30, 08:42
什么错误 把错误信息贴出来