应用MATLAB解决四杆机构角位移和角速度设计
应用MATLAB解决四杆机构角位移和角速度题 干:已知曲柄摇杆机构的四杆长度为L1=304.8mm,L2=101.6mm, L3=254.0mm,L4=177.8mm.曲柄角速度2=250rad/s,试用M文件编写程序计算连杆3和摇杆4的角位移, ,角速度,并绘制出运动曲线。机构如下图。求解方法及公式:对于四杆机构存在如下公式:闭环矢量方程:写成角位移方程的分量式: 求解角位移方法利用牛顿-辛普森公式将分量式写成如下形式:从示意图可知杆1角位移恒为0,设曲柄2初始角位移为0。对于连杆3,和摇杆4的角位移表示为预计值与微小修正因子之和。表示如下: 将上式按泰勒级数展开,去掉高次项得到如下公式:=0 =0将上式写成矩阵形式: + = 利用矩阵求出连杆3和摇杆4的微小修正因子,将修正因子与预计值相加求出角位移,将求出的角位移带入中,看是否满足函数值足够小。若不满足将求出的角位移作为预计值再次计算,直至函数满足条件。此时便求出的角位移。角速度的求解方法:将角位移方程的分量式求导得到如下公式:将上式写成矩阵形式,具体如下: = 利用上式便可求出连杆3和摇杆4的角速度.编程思路以及程序:设计思路: 杆1作为机架则角位移为0,为已知量,曲柄2的角位移为均匀变化的量,连杆3和摇杆4的角位移为未知量。曲柄2初始角位移从0开始做等步长变化,利用for循环求角位移,每次循环中再利用for循环进行迭代,其中用if语句判断求出的角位移是否满足条件,若满足条件则跳出迭代循环,并将求出的角位移存入定义的矩阵中。最后利用绘图函数绘出角位移曲线。 求解角速度是依据求出的角位移进行计算,用for循环,每次循环将对应的角位移带如公式进行计算,得出的角速度存入角速度矩阵,同样利用绘图函数绘制角速度曲线。程序如下: l1=304.8;l2=101.6;l3=254.0;l4=177.8;dr=pi/180.0;r1=0*dr;r2=0*dr;r3=43*dr;r4=95*dr;zl=12*dr;for n=1:30 for n2=1:5 c=(l2*cos(r2)+l3*cos(r3)-l1-l4*cos(r4); d=(l2*sin(r2)+l3*sin(r3)-l4*sin(r4); if (c*c<0.0000001&d*d<0.0000001) break; else e=-l2*cos(r2),-l3*cos(r3),l1,l4*cos(r4) -l2*sin(r2),-l3*sin(r3),0,l4*sin(r4) f=-l3*sin(r3),l4*sin(r4) l3*cos(r3),l4*cos(r4) x=inv(f)*e; r3=r3+x(1)*dr; r4=r4+x(2)*dr; end end r34(n,:)=r2/dr r3/dr r4/dr; r2=r2+zl;endsubplot(1,2,1)plot(r34(:,1),r34(:,2),r34(:,1),r34(:,3)axis(0 360 0 170)gridxlabel('时间/s')ylabel('从动角位移/度')title('角位移线图')text(110,110,'摇杆4角位移')text(50,55,'连杆3角位移')sd2=250;T=2*pi/sd2;for n=1:30 ct=n*zl; g=-l3*sin(r34(n,2)*dr),l4*sin(r34(n,3)*dr) l3*cos(r34(n,2)*dr),-l4*cos(r34(n,3)*dr); h=sd2*l2*sin(ct) -sd2*l2*cos(ct); sd=inv(g)*h; sd3=sd(1); sd4=sd(2); sd34(n,:)=n sd3 sd4; t(n)=n*T/30;endsubplot(1,2,2)plot(t,sd34(:,2),t,sd34(:,3)axis(0 0.026 -190 250)gridtitle('角速度线图')xlabel('时间/s')ylabel('从动件角速度/rad')text(0.001,170,'摇杆4角速度')text(0.015,130,'连杆3角速度')角位移及角速度曲线如下: