连杆优化设计.ppt
四连杆机构优化设计,平面连杆机构优化设计,平面连杆机构的种类很多,优化设计也涉及到运动学设计及动力学设计等多个方面,类容十分丰富。其中实现给定运动规律的优化设计和再现预期运动轨迹的优化设计,是平面栏杆机构运动学优化设计的两类基本问题。本案例就来介绍曲柄摇杆机构再现预期运动轨迹的优化设计,四连杆机构,平面连杆机构的典型代表:四连杆机构,四连杆机构的分类:,双曲柄双摇杆曲柄摇杆,曲柄摇杆的存在条件:1)最短杆与最长杆的长度 之和小于过等于其余两杆长度之和 2)取最短杆的邻变为机架,四连杆机构,传动角与压力角 传动角是从动件上某点的受力方向与从动件上该点速度方向的所夹的锐角(如图所示)。压力角的余角,是连杆BC与摇杆CD夹的锐角。,四连杆优化设计,课题描述:设计一曲柄摇杆机构,要求 从 转到 时,摇杆 的转角最佳再现一致的运动规律,且已知=1,为极位角,其传动角允许在 范围内变化。建立该优化设计数学模型,并用MATLAB求解该优化问题的最优解。,如图所示,当曲柄 作等速运动时,要求摇杆 按已知运动规律 运动,由此设计各杆件的长度。,四连杆优化设计,课题分析:这是一个曲柄摇杆再现预期的运动轨迹的优化问题。解决优化问题的一半步骤:(1)分析问题,建立优化设计的数学模型(2)选择优化方法(3)编写MATLAB程序,运行得到结果(4)优化方案的评价与决策 解决优化问题的三要素:目标函数,设计变量,约束条件 目标函数是什么呢?,四连杆优化设计,传统机械设计的方法:解析法、图解法、实验法 解析法很多时候不可能得到精确解,只能用时凑近的方法求其近似解。几何实验法与图解法都是近似的设计方法 所以传统的四连杆设计必然存在误差,特别是对于给定运动轨迹的设计。所以本案例的优化目标就是的实际运动轨迹与预期运动轨迹误差最小。,四连杆优化设计,优化目标:一已知运动规律与实际运动规律的偏差最小目标函数:,式中:期望输出角,m 输入角的等分数;实际输出角,四连优化设计,目标函数的化简:如右图,四连杆优化设计,可以进一步将他们化简,如下:,四连杆优化设计,设计变量的选择:、是设计变量么?他们可否用其他量表示?因为=1,而其他杆长则按比例取其倍数,分别设为、。若取曲柄摇杆的初始位置角为极位夹角,则 及相应的摇杆 位置角 为杆长的函数,其关系式为:,四连杆优化设计,在最终的表达式中,目标函数都用、表示了。因此设计变量为、。即,四连杆优化设计,约束条件:(1)边界约束:曲柄摇杆应该满足曲柄存在的条件,即:曲柄为最短杆,最短杆与最长杆之和小于其余两杆之和。因此,,四连杆优化设计,(2)性能约束:曲柄摇杆机构的传动角应在 和 之间,分析知,当曲柄与机架共线时,有最大和最小传动角,可得,,四连杆优化设计,此问题的数学模型为:,四连杆优化设计,编写MATLAB程序建立目标函数的M文件fun0(x).mfunction f=fun0(x)s=60;fx=0 qb0=acos(1+x(1)2x(2)2+x(3)2)/(2*(1+x(1)*x(3)曲柄的初始角yg0=acos(1+x(1)2-x(2)2+x(3)2)/(2*(x(2)*x(3)摇杆的初始角,四连杆优化设计,fx=0 for i=1:s qbi=qb0+0.5*pi*i/s【曲柄转过的角度】ygi=yg0+2*(qbi-qb0)3/(4*pi)【摇杆转过的角度】bdc=sqrt(1+x(3)2-2*x(3)*cos(qbi)【计算】ai=acos(bcd2+x(2)2-x(1)2)/(2*bdc*x(2)【计算】bi=acos(bdc2+x(3)2-1)/(2*bdc*x(3)【计算】if qbi0&qbipi&qbi=2*pi psi=pi-ai+bi end fx=fx+(ygi-psi)2 end f=fx,四连杆优化设计,建立约束函数的M文件con0(x).mfunctionc,ceq=con0(x)c(1)=x(1)2+x(2)2-(x(3)-1)2-2*x(1)*x(2)*cos(45*pi/180)【最小转动角约束】%c(2)=-x(1)2-x(2)2+(x(3)+1)2-2*x(1)*x(2)*cos(135*pi/180)【最大传动角约束】c(3)=1-x(1)c(4)=1-x(2)c(5)=1-x(3)c(6)=1+x(1)-x(2)-x(3)c(7)=1+x(2)-x(1)-x(3)c(8)=1+x(3)-x(2)-x(1)ceq=,四连杆优化设计,在MATLAB命令窗口中输入:A=;b=;Aeq=;beq=;x0=4.5,4,4;vlb=1,1,1;vub=10,10,10;【设定设计变量上限,避免整体尺寸过大】options=optimset(Display,iter,largescale,off);x,fval,exitflag,output,lambad=fmincon(fun0,x0,A,b,Aeq,beq,lb,ub,con0,options),预知运行结果如何,我们下回再说!,谢谢大家!,