MATLAB四杆机构程序问题实现函数的优化设计-word

MATLAB四杆机构程序问题实现函数的优化设计

% 连杆机构实现函数的优化设计

% (调用目标函数 jfg_f和非线性约束函数 cdj_g)

% 1---------优化设计主程序

% 设计变量的初始值和已知杆件长度(曲柄和机架)

function [g,ceq]=cdj_g(x)

x0=[4.5;4];

dy=1;ds=4;

% 设计变量的下界与上界

lb=[1;1];

ub=[10;10];

% 线性不等式约束(g1(x) 和g2(x))中设计变量的系数矩阵

a=zeros(2,2);

a(1,1)=-1;a(2,1)=1;

a(3,2)=-1;a(4,2)=1;

% 线性不等式约束(g1(x) 和 g2(x))中的常数项矩阵

b=[-1;10;-1;10];

% 用多维约束优化命令 fmincon( 调用目标函数 jfg_f和非线性约束函数 cdj_g)

% 没有等式约束,参数Aeq 和 beq 定义为空矩阵符号“[ ]”

[x,fn]=fmincon(@jfg_f,x0,a,b,[ ],[ ],lb, ub, @ cdj_g);

fprintf('******连杆构实现函数优化约束问题最优解*******')

fprintf(1,' 连杆相对长度 a=%3.4f\n',x(1))

fprintf(1,' 摇杆相对长度 b=%3.4f\n',x(2))

fprintf(1,' 输出角平方偏差之和 f* =%3.4f\n',fn)

% 调用多约束优化非线性约束函数(cdj_g)计算最优点x*的性能约束值

g=cdj_g(x);

fprintf('===== 最优点的性能约束函数值======')

fprintf(1,' 最小传动角约束函数值 g1* = %3.4f\n',g(1))

fprintf(1,' 最大传动角约束函数值 g2* = %3.4f\n',g(2))

%2- - - -连杆机构实现函数优化的目标函数(jfg_f)

Function f=jfg_f(x);

s=50;qy=1;ds=4;fx=0;

fa0 = acos(((qy+x(1))^2-x(2)^2+ds^2)/(2*(qy+x(1))*ds));

% 曲柄初始角

pu0 = acos(((qy+x(1))^2-x(2)^2-ds^2)/(2*x(2)*ds));

% 摇杆初始角

for i=1:s

fai=fa0+0.5*pi*i/s;

pui=pu0+2*(fai-fa0)^2/(3*pi);

ri=sqrt(qy^2+ds^2-2*qy*ds*cos(fai));

alfi=acos((ri^2+x(2)^2-x(1)^2)/(2*ri*x(2)));

bati=acos((ri^2+ds^2-qy^2)/(2*ri*ds));

if fai>0 & fai<=pi

你可能喜欢

  • 平面连杆机构设计
  • 机械优化设计
  • 罚函数法
  • 机构动态仿真
  • 平面四杆机构的设计
  • MATLAB工具箱
  • matlab实例教程
  • 转向梯形设计

MATLAB四杆机构程序问题实现函数的优化设计 word相关文档

最新文档

返回顶部