机械原理课程设计牛头刨程序

更新时间:2024-04-02 05:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

附录:

matlab源程序

clear all; clc;

%初始条件

theta1=linspace(-pi*0.1,1.9*pi,120);%单位度 W1=80*pi/30; %角速度 单位rad/s H=0.60; %行程 单位m

L1=0.1165; %O2A的长度 单位m L3=0.6914; %O3B的长度 单位m L4=0.2074; ?的长度 单位m L6=0.370; %O2O3的长度 单位m L6u=0.6572; %O3D的长度 单位m m4=22; m5=3; m6=52; J4=0.9;

J5=0.015; %角度与弧度之间的转换 uJ4=J4+m4*0.5*0.5*L3*L3;

%求解S3、Theta3、Theta4和S4四个变量 %求出O3A的值

for i=1:120 %求解角度theta3、theta4和S4的长度

S3(i)=((L6)^2+(L1)^2-2*L6*L1*cos(theta1(i)+pi*0.5)).^0.5; theta3(i)=acos(L1*cos(theta1(i))/S3(i)); theta4(i)=asin((L6u-L3*sin(theta3(i)))/L4);

S4(i)=L3*cos(theta3(i))+L4*cos(theta4(i))-L3*cos(theta3(1))-L4*cos(theta4(1)); end%求解完成 %求解完成

%求解VS3、W3、W4和V4四个变量 for i=1:120

J=inv([cos(theta3(i)),-S3(i)*sin(theta3(i)),0,0; sin(theta3(i)),S3(i)*cos(theta3(i)),0,0; 0,-L3*sin(theta3(i)),-L4*sin(theta4(i)),-1; 0,L3*cos(theta3(i)),L4*cos(theta4(i)),0]); K=J*W1*[-L1*sin(theta1(i));L1*cos(theta1(i));0;0]; VS3(i)=K(1); W3(i)=K(2); W4(i)=K(3); V4(i)=K(4); end%求解完成

%求解aS3、a3、a4、aE四个变量 for i=1:120

J=inv([cos(theta3(i)),-S3(i)*sin(theta3(i)),0,0; sin(theta3(i)),S3(i)*cos(theta3(i)),0,0; 0,-L3*sin(theta3(i)),-L4*sin(theta4(i)),-1; 0,L3*cos(theta3(i)),L4*cos(theta4(i)),0]);

W=W1*W1*[-L1*cos(theta1(i));-L1*sin(theta1(i));0;0];

M=[-W3(i)*sin(theta3(i)),-VS3(i)*sin(theta3(i))-S3(i)*W3(i)*cos(theta3(i)),0,0; W3(i)*cos(theta3(i)),VS3(i)*cos(theta3(i))-S3(i)*W3(i)*sin(theta3(i)),0,0; 0,-L3*W3(i)*cos(theta3(i)),-L4*W4(i)*cos(theta4(i)),0; 0,-L3*W3(i)*sin(theta3(i)),-L4*W4(i)*sin(theta4(i)),0]; N=[VS3(i);W3(i);W4(i);V4(i)]; K=J*(-M*N+W); aS3(i)=K(1); a4(i)=K(2); a5(i)=K(3); aE(i)=K(4);

a(i)=L4*cos(theta4(i))/cos(theta3(i)); b=0.5*L4;

L7(i)=((a(i))^2+(b)^2-2*a(i)*b*cos(theta3(i)-theta4(i))).^0.5; theta6(i)=asin(b*sin((theta3(i))-(theta4(i)))/L7(i)); theta9(i)=pi*0.5-theta3(i)-theta6(i);

F5x(i)=-m5*a5(i)*L7(i)*cos(theta6(i))+m5*W4(i)*W4(i)*L7(i)*sin(theta9(i)); F5y(i)=-m5*a5(i)*L7(i)*sin(theta6(i))+m5*W4(i)*W4(i)*L7(i)*cos(theta9(i)); F4x(i)=-m4*a4(i)*L3*0.5*sin(theta3(i))-m4*0.5*W3(i)*W3(i)*L3*cos(theta3(i)); F4y(i)=-m4*a4(i)*L3*0.5*cos(theta3(i))-m4*0.5*W3(i)*W3(i)*L3*sin(theta3(i)); M4(i)=-uJ4*a4(i); M5(i)=-J5*a5(i); F6(i)=-m6*aE(i); end%求解完成 %ü for i=1:120

if((abs(S4(1)-S4(i))>0.05*H && abs(S4(1)-S4(i))<=0.95*H)&&(theta1(i)<=(1.1*pi))) Fc(i)=-1400*9.8; elS4

Fc(i)=0; end

end%赋值完成 for i=1:120

Q=inv([-L1*sin(theta1(i)),-L1*cos(theta1(i)),1,0,0,0,0,0,0,0; 1,0,0,1,0,-1,0,0,0,0; 0,1,0,0,1,0,-1,0,0,0;

-(0.5*L3-S3(i))*sin(theta3(i)),-(0.5*L3-S3(i))*cos(theta3(i)),0,-0.5*L3*sin(theta3(i)),-0.5*L3*cos(theta3(i)),0.5*L3*sin(theta3(i)),-0.5*L3*cos(theta3(i)),0,0,0; 0,0,0,0,0,-1,0,-1,0,0;

0,0,0,0,0,0,1,0,-1,0;

0,0,0,0,0,0.5*L4*sin(theta4(i)),-0.5*L4*cos(theta4(i)),0.5*L4*sin(theta4(i)),-0.5*L4*cos(theta4(i)),0;

0,0,0,0,0,0,0,1,0,0; 0,0,0,0,0,0,0,0,1,1;

1,tan(theta3(i)),0,0,0,0,0,0,0,0]);

T=[0;-F4x(i);m4*9.8-F4y(i);-M4(i);-F5x(i);m5*9.8-F5y(i);M5(i);-F6(i)-Fc(i);m6*9.8;0]; PA=Q*T;

F12x(i)=PA(1); F12y(i)=PA(2); Mp(i)=PA(3); F14x(i)=PA(4); F14y(i)=PA(5); F45x(i)=PA(6); F45y(i)=PA(7); F56x(i)=PA(8); F56y(i)=PA(9); F16(i)=PA(10); end

%求解平衡力矩

uJ4=J4+m4*(0.5*L3)*(0.5*L3);%导杆对点O3的转动惯量 for i=1:120

Ekk(i)=(m6*V4(i)*V4(i)+J5*W4(i)*W4(i)+m5*V4(i)*V4(i)+uJ4*W3(i)*W3(i))/2;%计算总动能 end

dEkk(1)=Ekk(1)-Ekk(120);%动能的改变量 for i=2:120

dEkk(i)=Ekk(i)-Ekk(i-1);%动能的改变量 end

for i=1:120

uMpp(i)=(dEkk(i)-Fc(i)*V4(i))/W1;%求平衡力矩 end k=1;

for i=1:12

uF12x(i)=F12x(k); uF12y(i)=F12y(k); uMp(i)=Mp(k); uF14x(i)=F14x(k); uF14y(i)=F14y(k); uF45x(i)=F45x(k); uF45y(i)=F45y(k); uF56x(i)=F56x(k); uF56y(i)=F56y(k);

uF16(i)=F16(k); k=k+10; end

MM=[uF12x;uF12y;uMp;uF14x;uF14y;uF45x;uF45y;uF56x;uF56y;uF16]'; %画图 figure(1);

plot(theta1,-S4,'g');

xlabel('Theta1(Φ2)'); ylabel('S4'); grid on;

axis([theta1(1) ,theta1(120),-0.03,0.55]); figure(2);

plot(theta1,-V4,'r--'); xlabel('Theta1(Φ2)'); ylabel('V4'); grid on;

axis([theta1(1) ,theta1(120),-4,2]); figure(3);

plot(theta1,-aE,'g');

xlabel('Theta1(Φ2)'); ylabel('aE'); grid on;

axis([theta1(1) ,theta1(120),-30,30]); figure(4);

plot(theta1,-uMpp,'r'); xlabel('Theta1(Φ2)'); ylabel('Mp'); grid on;

axis([theta1(1) ,theta1(120),-10,3000]);

本文来源:https://www.bwwdw.com/article/enhr.html

Top