汽车转向梯形优化设计
图1 理想的内、外车轮转角关系简图
若自变角为θo,则因变角θi的期望值为:
?i?f(?o)?arccot(cot?0?K/L) (2)
现有转向梯形机构仅能近似满足上式关系。以图所示的后置梯形机构为例,
'?在图上作辅助用虚线,利用余弦定理可推得转向梯形所给出的实际因变角i为
?i'???arcsinsin(???0)K?K??1?2cos(???0)??m?m?2K?2cos??cos(???0)?cos2??m?arccos(3)
K?K??1?2cos(???0)??m?m?2式中:m为梯形臂长;γ为梯形底角。
所设计的转向梯形给出的实际因变角?i,应尽可能接近理论上的期望值?i。其偏差在最常使用的中间位置附近小角范围内应尽量小,以减少高速行驶时轮胎的磨损;而在不经常使用且车速较低的最大转角时,可适当放宽要求。因此,再引入加权因子
'?()0???omax,构成评价设计优劣的目标函数为f(x)
??ii(?oi)??i(?oi)? f(x)???(?oi)???100% (4)?(?)?oi?1ioi??由以上可得:
汽车转向梯形优化设计
??arcsinsin(???0i)2K?K????1?2cos(???0i)m?m?K??arccot?cot?oi??L???omaxf(x)???(?oi)?100% (5) K??2cos??cos(???)?cos2??oi?10marccos?K?K????1?2cos(???0i)m?m?K??arccot?cot?oi??L??2?x1????式中:x为设计变量,x??????;θomax为外转向车轮最大转角,由图2
?x2??m?得 ?omax?arcsinLDmin?a2 (6)
式中,Dmin为汽车最小转弯直径;a为主销偏移距。
考虑到多数使用工况下转角θo小于20°,且10°以内的小转角使用得更加频繁,因此取:
?1.5???(?o)??1.0?0.5??0???o?10?10???o?20?20???o??omax (7)
建立约束条件时应考虑到:设计变量m及γ过小时,会使横拉杆上的转向力过大;当m过大时,将使梯形布置困难,故对m的上、下限及对γ的下限应设置约束条件。因γ越大,梯形越接近矩形,值就越大
,而优化过程是求
的极小值,故可不必对γ的上限加以限制。综上所述,各设计变量的取值范围构成的约束条件为:
m?mmin?0mmax?m?0 (8)
???min?0梯形臂长度m设计时常取在mmin=0.11K,mmax=0.15K。梯形底角γmin=70°
汽车转向梯形优化设计
此外,由机械原理得知,四连杆机构的传动角δ不宜过小,通常取δ≥δmin=40°。如图5-2所示,转向梯形机构在汽车向右转弯至极限位置时达到最小值,故只考虑右转弯时δ≥δmin即可。利用该图所作的辅助用虚线及余弦定理,可推出最小传动角约束条件为:
cos?min?2cos??cos(???omax)2m??0 (9)
(cos?min?cos?)cos?K
式中:δmin为最小传动角。δmin=40°,故由式?omax?arcsinLDmin?a2可知,δmin
为设计变量m及γ的函数。
由式(6)、式(7)、式(8)和式(9)四项约束条件所形成的可行域,如图3所示的几种情况。
图3b适用于要求δmin较大,而γmin可小些的车型;图5-3c适用于要求γmin较大,而δmin小些的车型;图3a适用介于图3b、c之间要求的车型。
图3 转向梯形机构优化设计的可行域
四、整体式转向梯形程序编写
(1)优化编程所需数据:
轴距:L=2775mm 轮距:K=1560mm 最小转弯半径:R=5300mm 转向梯形臂:m 计算可得底边长:L-2*a (2)function fuun.m 编辑过程 在MATLAB窗口新建一个空白M文件
汽车转向梯形优化设计
将下式输入
function c=theatar() %建立主函数
global options L b r a K thetamax cl cr fi0 %定义全局变量
K=1638; %input('输入主销中心线间距(mm)'); %依次给予几个变量赋值 L=3308; %input('输入轴距(mm)');
thetamax=40; %input('输入外转向轮最大转角(度)'); x(1)=175; %input('臂长(mm)'); x(2)=74.5; %input('底角(度)'); b=8; %input('内倾角(度)'); r=2; %input('后倾角(度)'); a=1; %input('外倾角(度)');
thetamax=thetamax*pi/180; %单位转换,弧度与度数转变 lb(1)=0.11*K; %设置上下限 lb(2)=1.2217; ?ot(K/(1.2*L)); ub(1)=0.13*K; ub(2)=pi/2;
fil=linspace(0,thetamax,61); lb=[lb(1),lb(2)]; ub=[ub(1),ub(2)]; x0=[x(1),x(2)];
% A=[0.251 0.372]; % b=[0.143];
[y,fval]=fmincon('fuun',x0,[],[],[],[],lb,ub,[]);
%利用工具箱中的x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon)进行计算 Y=y;
%[y,resnorm]=lsqnonlin('fuun',x0,lb,ub,options) ?tae(i) y = fmincon(fuun,x0,[],[],[],[],lb,ub) for i=1:61 %设置60个区域 fil=linspace(0,thetamax,61); ?tae(i)=acot(cot(fil(i))-(K/L));
fi=fii(r*pi/180,b*pi/180);%以下将各公式单位转换,并代入公式 dt=delta(r*pi/180,fii(r*pi/180,b*pi/180));%=dt
d=Di(fii(r*pi/180,b*pi/180),a*pi/180,delta(r*pi/180,fii(r*pi/180,b*pi/180)));%=d
Mid_w=Ww(a*pi/180,delta(r*pi/180,fii(r*pi/180,b*pi/180)),Di(fii(r*pi/180,b*pi/180),a*pi/180,delta(r*pi/180,fii(r*pi/180,b*pi/180))));%=w a1(i)=alfa(fi,d,fil(i),Mid_w);
A(i)=K*cos(b*pi/180)-x(1)*cos(2*(b*pi/180))*cos(x(2)*pi/180+fil(i)); B(i)=x(1)*sin(x(2)*pi/180+fil(i));
C(i)=K*cos(b*pi/180)*cos(x(2)*pi/180+fil(i))-2*K*cos(b*pi/180)*cos(x(2)*pi/180)+2*x(1)*(cos(b*pi/180)^2)*(cos(x(2)*pi/180)^2)-x(1); fir(i)=abs(fiir(A(i),B(i),C(i),x(2)*pi/180)); a2(i)=alfa2(fi,d,fir(i),Mid_w);