整体式转向梯形优化设计MATLAB程序

整体式转向梯形优化设计MATLAB程序
第一个m文件 objfun22.m

function f=objfun22(x)
L=4430;
M=2150;
M1=2360;
gam=x(1)*pi/180;
m=x(2);
for i=1:35;
    afa(i)=i*pi/180;
    N=sqrt(M^2+m^2-2*M*m*sin(gam+afa(i)));
    deta1=asin(m*cos(gam+afa(i))/N);
    b=M-2*m*sin(gam);
    beta=gam+deta1-asin((N^2+m^2-b^2)/(2*N*m));
    beta0=atan(1/(M1/L+1/tan(afa(i))));
    c(i)=abs(beta-beta0)*180/pi;
end
f=max(c);

解释:
L为轴距
M 为两转向主销的轴线延长线与地面交点之间的距离
afa(i) 外侧转角
beta 实际转角
beta0 理论转角

第二个m文件 confun22.m

function[c,ceq]=confun22(x)
L=4430;
M=2150;
M1=2360;
gam=x(1)*pi/180;
m=x(2);
afa35=35*pi/180;
N=sqrt(M^2+m^2-2*M*m*sin(gam+afa35));
 deta1=asin(m*cos(gam+afa35)/N);
    b=M-2*m*sin(gam);
    beta35=gam+deta1-asin((N^2+m^2-b^2)/(2*N*m));
    dlt=180-acos((b^2-M^2+2*M*x(2)*sin(gam-beta35))/(2*b*x(2)))*180/pi;
    c=[x(1)-40;(90-atan(1.2*L/M)*180/pi)-x(1);x(2)-0.22*M;0.11*M-x(2);30-dlt];
    ceq=[];

解释:
afa35 外侧转角35度
beta35 实际转角
dlt 外转角35度时的传动角
主程序

clear all
x0=[15,210];
options=optimset('largescale','off');
[x,fval]=fmincon('objfun22',x0,[],[],[],[],[],[],'confun22',options)
L=4430;
M=2150;
M1=2360;
gam=x(1)*pi/180;%将布置角转化为弧度
m=x(2);
for i=1:35;
     afa(i)=i*pi/180;%外侧转角
    N=sqrt(M^2+m^2-2*M*m*sin(gam+afa(i)));
    deta1=asin(m*cos(gam+afa(i))/N);
    b=M-2*m*sin(gam);
    beta=gam+deta1-asin((N^2+m^2-b^2)/(2*N*m));%实际内转角
    beta0=atan(1/(M1/L+1/tan(afa(i))));%理论内转角
    c(i)=abs(beta-beta0)*180/pi;
   bt0(i,:)=beta0.*180/pi;%建立理论外侧转角数组
    bt(i,:)=beta.*180/pi;%建立实际外侧转角数组
   ai(i,:)=afa(i).*180/pi;
end
plot(ai,bt0,ai,bt)%画出实际与理论转角曲线
figure(2)
plot(ai,c)

按照这个给定条件得到结果为:
x =

21.9551 236.4940

转向梯形角为 21.9551度 梯形臂长度236.4940mm
fval =

0.5773——外侧理论与实际转角误差

你可能感兴趣的:(MATLAB,matlab,转向梯形,优化)