- 機械原理Matlab輔助分析(第二版)
- 李濱城 徐超編著
- 1895字
- 2020-07-01 15:04:50
第三節 曲柄滑塊機構的運動分析
在圖1-4所示的曲柄滑塊機構中,已知各構件的尺寸及原動件1的方位角θ1和勻角速度ω1,需對其位置、速度和加速度進行分析。

圖1-4 曲柄滑塊機構
一、數學模型的建立
為了對機構進行運動分析,先如圖1-4建立直角坐標系,將各構件表示為桿矢,并將各桿矢用指數形式的復數表示。
1.位置分析
如圖1-4所示,由封閉圖形ABCA可寫出機構各桿矢所構成的封閉矢量方程
(1-9)
其復數形式表示為
(1-10)
將式(1-10)的實部和虛部分離,得
(1-11)
由式(1-11)得
(1-12)
2.速度分析
將式(1-10)對時間t求一次導數, 得速度關系
(1-13)
將式(1-13)的實部和虛部分離,得
(1-14)
若用矩陣形式來表示,則式(1-14)可寫為
(1-15)
解式(1-15)即可求得角速度ω2和線速度vC。
3.加速度分析
將式(1-10)對時間t求二次導數,可得加速度關系表達式
(1-16)
解式(1-16)即可求得角加速度α2和線加速度aC。
二、計算實例
【例1-2 】 在圖1-4所示的曲柄滑塊機構中,AB為原動件,以勻角速度ω1=10rad/s逆時針旋轉,曲柄和連桿的長度分別為l1=100mm,l2=300mm。試確定連桿2和滑塊3的位移、速度和加速度,并繪制出運動線圖。
三、程序設計
曲柄滑塊機構MATLAB程序由主程序slider_crank _main和子函數slider_crank兩部分組成。
1. 主程序slider_crank _main文件
********************************************************
%1.輸入已知數據
clear;
l1=100;
l2=300;
e=0;
hd=pi/180;
du=180/pi;
omega1=10;
alpha1=0;
%2.調用子函數 slider_crank 計算曲柄滑塊機構位移,速度,加速度
for n1=1:720
theta1(n1)=(n1-1)*hd;
[theta2(n1),s3(n1),omega2(n1),v3(n1),alpha2(n1),a3(n1)]=slider_crank(theta1(n1),omega1,alpha1,l1,l2,e);
end
%3.位移,速度,加速度和曲柄滑塊機構圖形輸出
figure(11);
n1=1:720;
subplot(2,2,1); % 繪位移線圖
[AX,H1,H2]=plotyy(theta1*du,theta2*du,theta1*du,s3);
set(get(AX(1),'ylabel'),'String','連桿角位移/\circ')
set(get(AX(2),'ylabel'),'String','滑塊位移/mm')
title('位移線圖');
xlabel('曲柄轉角 \theta_1/\circ')
grid on;
subplot(2,2,2); % 繪速度線圖
[AX,H1,H2]=plotyy(theta1*du,omega2,theta1*du,v3)
title('速度線圖');
xlabel('曲柄轉角 \theta_1/\circ')
ylabel('連桿角速度/rad\cdots∧{-1}')
set(get(AX(2),'ylabel'),'String','滑塊速度/mm\cdots∧{-1}')
grid on;
subplot(2,2,3); % 繪加速度線圖
[AX,H1,H2]=plotyy(theta1*du,alpha2,theta1*du,a3)
title('加速度線圖');
xlabel('曲柄轉角 \theta_1/\circ')
ylabel('連桿角加速度/rad\cdots∧{-2}')
set(get(AX(2),'ylabel'),'String','滑塊加速度/mm\cdots∧{-2}')
grid on;
subplot(2,2,4); % 繪曲柄滑塊機構圖
x(1)=0;
y(1)=0;
x(2)=l1*cos(70*hd);
y(2)=l1*sin(70*hd);
x(3)=s3(70);
y(3)=e;
x(4)=s3(70);;
y(4)=0;
x(5)=0;
y(5)=0;
x(6)=x(3)-40;
y(6)=y(3)﹢10;
x(7)=x(3)﹢40;
y(7)=y(3)﹢10;
x(8)=x(3)﹢40;
y(8)=y(3)-10;
x(9)=x(3)-40;
y(9)=y(3)-10;
x(10)=x(3)-40;
y(10)=y(3)﹢10;
i=1:5;
plot(x(i),y(i));
grid on;
hold on;
i=6:10;
plot(x(i),y(i));
title('曲柄滑塊機構');
grid on;
hold on;
xlabel('mm')
ylabel('mm')
axis([-50 400 -20 130]);
plot(x(1),y(1),'o');
plot(x(2),y(2),'o');
plot(x(3),y(3),'o');
%4.曲柄滑塊機構運動仿真
figure(2)
m=moviein(20);
j=0;
for n1=1:5:360
j=j﹢1;
clf;
%
x(1)=0;
y(1)=0;
x(2)=l1*cos(n1*hd);
y(2)=l1*sin(n1*hd);
x(3)=s3(n1);
y(3)=e;
x(4)=(l1﹢l2﹢50);
y(4)=0;
x(5)=0;
y(5)=0;
x(6)=x(3)-40;
y(6)=y(3)﹢10;
x(7)=x(3)﹢40;
y(7)=y(3)﹢10;
x(8)=x(3)﹢40;
y(8)=y(3)-10;
x(9)=x(3)-40;
y(9)=y(3)-10;
x(10)=x(3)-40;
y(10)=y(3)﹢10;
%
i=1:3;
plot(x(i),y(i));
grid on; hold on;
i=4:5;
plot(x(i),y(i));
i=6:10;
plot(x(i),y(i));
plot(x(1),y(1),'o');
plot(x(2),y(2),'o');
plot(x(3),y(3),'o');
title('曲柄滑塊機構');
xlabel('mm')
ylabel('mm')
axis([-150 450 -150 150]);
m(j)=getframe;
end
movie(m)
2.子函數slider_crank 文件
*************************************************
function [theta2,s3,omega2,v3,alpha2,a3]=slider_crank(theta1,omega1,alpha1,l1,l2,e)
%1.計算連桿2的角位移和滑塊3的線位移
theta2=asin((e-l1*sin(theta1))/l2);
s3=l1*cos(theta1)﹢l2*cos(theta2);
%2.計算連桿2的角速度和滑塊3的線速度
A=[l2*sin(theta2),1; -l2*cos(theta2),0 ]; % 機構從動件的位置參數矩陣
B=[-l1*sin(theta1); l1*cos(theta1)]; % 機構原動件的位置參數列陣
omega=A\(omega1*B); % 機構從動件的速度列陣
omega2=omega(1);
v3=omega(2);
%3.計算連桿2的角加速度和滑塊3的線加速度
At=[omega2*l2*cos(theta2),0;
omega2*l2*sin(theta2),0]; % At=dA/dt
Bt=[-omega1*l1*cos(theta1);
-omega1*l1*sin(theta1)]; % Bt=dB/dt
alpha=A\(-At*omega﹢alpha1*B﹢omega1*Bt); % 機構從動件的加速度列陣
alpha2=alpha(1);
a3=alpha(2);
四、運算結果
圖1-5為曲柄滑塊機構的運動線圖和機構運動仿真圖。

圖1-5 曲柄滑塊機構的運動線圖和機構運動仿真圖