changfeng1937 发表于 2012-2-25 19:02

四杆机构优化设计

本人菜鸟一个,论文要用到优化设计,写了一个程序。运行错误提示:??? Error using ==> svd
Input to SVD must not contain NaN or Inf.求大神们帮帮忙。很着急!!
clc;
clear all;
global L1 L5
L1=3000;
L5=1800;
x0=;
options=optimset('largeScale','off','TolFun',1e-12);
=fmincon(@link_objfun1,x0,[],[],[],[],[],[],@link_confun1,options);


%目标函数
function f=link_objfun1(x)
global L1 L5
f=0;
snti0=0;
for i=0:10
snti=snti0+pi/6*i/10;   
bati=acos((L1-x(1)*sin(snti+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2)...
    +acos((L1^2+x(1)^2+x(3)^2-x(2)^2-2*L1*x(1)*sin(snti+x(5)))/2*x(3)*(L1^2+x(1)^2-2*L1*x(1)*sin(snti+x(5)))^1/2)...
    +acos(x(4)/x(3));
f=f+(L1*cossnti+L5*cos(snti+bati)-L1)^2;
end

%约束函数
function =link_confun1(x)
global L1
snti0=0;
bati0=acos((L1-x(1)*sin(snti0+x(5)))/(L1^2+x(1)^2-2*L1*x(1)*sin(snti0+x(5)))^1/2)...
    +acos((L1^2+x(1)^2+x(3)^2-x(2)^2-2*L1*x(1)*sin(snti0+x(5)))/2*x(3)*(L1^2+x(1)^2-2*L1*x(1)*sin(snti0+x(5)))^1/2)...
    +acos(x(4)/x(3));
c=[-x(1)
    -x(2)
    -x(3)
    -x(4)
    x(1)-L1
    x(1)-x(2)
    x(1)-x(3)
    x(1)+x(2)-x(3)-L1
    L1-x(2)-x(3)-x(1)
    x(3)-x(1)-x(2)-L1];
ceq=bati0-pi/2;
页: [1]
查看完整版本: 四杆机构优化设计