第一篇:基于matlab的4连杆机构设计
目 录
1平面连杆机构的运动分析…………………………………………………………………………1
1.2 机构的工作原理……………………………………………………………………………………1 1.3 机构的数学模型的建立……………………………………………………………………………1 1.3.1建立机构的闭环矢量位置方程...................................................1 1.3.2求解方法.....................................................................2 2 基于MATLAB程序设计………………………………………………………………………………4 2.1 程序流程图…………………………………………………………………………………………4
2.2 M文件编写…………………………………………………………………………………………6
2.3 程序运行结果输出…………………………………………………………………………………7 3 基于MATLAB图形界面设计…………………………………………………………………………11 3.1界面设计……………………………………………………………………………………………11
3.2代码设计……………………………………………………………………………………………12 4 小结…………………………………………………………………………………………………17
参考文献 ………………………………………………………………………………………………18
平面连杆机构的运动分析
1.1 机构运动分析的任务、目的和方法
曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。还可以根据机构闭环矢量方程计算从动件的位移偏差。上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。
机构运动分析的方法很多,主要有图解法和解析法。当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。而当需要精确地知道或要了解机构在整个运动循环过程中的运动特性时,采用解析法并借助计算机,不仅可获得很高的计算精度及一系列位置的分析结果,并能绘制机构相应的运动线图,同时还可以把机构分析和机构综合问题联系起来,以便于机构的优化设计。1.2 机构的工作原理
在平面四杆机构中,其具有曲柄的条件为: a.各杆的长度应满足杆长条件,即:
最短杆长度+最长杆长度≤其余两杆长度之和。
b.组成该周转副的两杆中必有一杆为最短杆,且其最短杆为连架杆或机架(当最短杆为连架杆时,四杆机构为曲柄摇杆机构;当最短杆为机架时,则为双曲柄机构)。
在如下图1所示的曲柄摇杆机构中,构件AB为曲柄,则B点应能通过曲柄与连杆两次共线的位置。
1.3 机构的数学模型的建立 1.3.1建立机构的闭环矢量位置方程
在用矢量法建立机构的位置方程时,需将构件用矢量来表示,并作出机构的封闭矢量多边形。如图1所示,先建立一直角坐标系。设各构件的长度分别为L1、L2、L3、L4,其方位角为、、、。以各杆矢量组成一个封闭矢量多边形,即ABCDA。其个矢量之和必等于零。即:
式1
式1为图1所示四杆机构的封闭矢量位置方程式。对于一个特定的四杆机构,其各构件的长度和原动件2的运动规律,即程可求得未知方位角、。
为已知,而
=0,故由此矢量方角位移方程的分量形式为:
式2
闭环矢量方程分量形式对时间求一阶导数(角速度方程)为:
式3 其矩阵形式为:
式4 联立式3两公式可求得:
式5
式6
闭环矢量方程分量形式对时间求二阶导数(角加速度方程)矩阵形式为:
式7 由式7可求得加速度:
式8
式9
注:式1~式9中,Li(i=1,2,3,4)分别表示机架
1、曲柄
2、连杆
3、摇杆4的长度;(i=1,2,3,4)是各杆与x轴的正向夹角,逆时针为正,顺时针为负,单位为 rad;是各杆的角速度。
,单位为 rad/s;为各杆的角加速度,单位为 1.3.2求解方法
(1)求导中应用了下列公式:
式10
(2)在角位移方程分量形式(式2)中,由于假定机架为参考系,矢量1与x轴重合,=0,则有非线性超越方程组:
式11
可以借助牛顿-辛普森数值解法或Matlab自带的fsolve函数求出连杆3的角位移和摇杆4的角位移。
(3)求解具有n个未知量(i=1,2,…,n)的线性方程组:
式12 式中,系列矩阵 是一个 阶方阵:
式13 的逆矩阵为;常数项b是一个n维矢量:
式14 因此,线性方程组解的矢量为:
式15
式11是求解连杆3和摇杆4角速度和角加速度的依据。
基于MATLAB程序设计
MATLAB 是Mathworks 公司推出的交互式计算分析软件,具有强大的运算分析功能,具有集科学计算、程序设计和可视化于一体的高度集成化软件环境,是目前国际上公认的最优秀的计算分析软件之一,被广泛应用于自动控制、信号处理、机械设计、流体力学和数理统计等工程领域。通过运算分析,MATLAB 可以从众多的设计方案中寻找最佳途径,获取最优结果,大大提高了设计水平和质量。四连杆机构的解析法同样可以用MATLAB 的计算工具来求值,并结合MATLAB 的可视化手段,把各点的计算值拟合成曲线,得到四连杆机构的运动仿真轨迹。
2.1 程序流程图
2.2 M文件编写
首先创建函数FoutBarPosition,函数fsolve通过他确定。function t=fourbarposition(th,th2,L2,L3,L4,L1)t=[L2*cos(th2)+L3*cos(th(1))-L4*cos(th(2))-L1;L2*sin(th2)+L3*sin(th(1))-L4*sin(th(2))];主程序如下:
disp ' * * * * * *平面四杆机构的运动分析 * * * * * *' L1=304.8;L2=101.6;L3=254.0;L4=177.8;%给定已知量,各杆长L1,L2,L3,L4 th2=[0:1/6:2]*pi;%曲柄输入角度从0至360度,步长为pi/6 th34=zeros(length(th2),2);%建立一个N行2列的零矩阵,第一列存放options=optimset('display','off');%θ_3,第二列存放θ_3
for m=1:length(th2)%建立for循环,求解θ_3,θ_4
th34(m,:)=fsolve('fourbarposition',[1 1], options,th2(m),L2,L3,L4,L1);%的非线性超越方程,结果保存在th34中 end y=L2*sin(th2)+L3*sin(th34(:,1)');%连杆3的D端点Y坐标值 x=L2*cos(th2)+L3*cos(th34(:,1)');%连杆3的D端点X坐标值 xx=[L2*cos(th2)];%连杆3的C端点X坐标值 yy=[L2*sin(th2)];%连杆3的C端点Y坐标值 figure(1)plot([x;xx],[y;yy],'k',[0 L1],[0 0], %绘制连杆3的几个位置点 'k--^',x,y,'ko',xx,yy,'ks')title('连杆3的几个位置点')xlabel('水平方向')ylabel('垂直方向')axis equal %XY坐标均衡
th2=[0:2/72:2]*pi;%重新细分曲柄输入角度θ_2,步长为5度 th34=zeros(length(th2),2);options=optimset('display','off');for m=1:length(th2)th34(m,:)=fsolve('fourbarposition',[1 1], options,th2(m),L2,L3,L4,L1);end figure(2)plot(th2*180/pi,th34(:,1),th2*180/pi,th34(:,2))%绘制连杆3的角位移关于曲柄2的角位移图 plot(th2*180/pi,th34(:,1)*180/pi, th2*180/pi,th34(:,2)*180/pi)%绘制摇杆4的角位移关于曲柄2的角位移图
axis([0 360 0 170])%确定XY边界值 grid %图形加网格 xlabel('主动件转角theta_2(度)')ylabel('从动件角位移(度)')title('角位移线图')text(120,120,'摇杆4角位移')text(150,40,'连杆3角位移')w2=250;%设定曲柄角速度 for i=1:length(th2)A=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];B=[w2*L2*sin(th2(i));-w2*L2*cos(th2(i))];w=inv(A)*B;w3(i)=w(1);w4(i)=w(2);end figure(3)plot(th2*180/pi,w3,th2*180/pi,w4);%绘制角速度线图 axis([0 360-175 200])text(50,160,'摇杆4角速度(omega_4)')text(220,130,'连杆3角速度(omega_3)')grid xlabel('主动件转角theta_2(度)')ylabel('从动件角速度(radcdot s^{-1})')title('角速度线图')for i=1:length(th2)C=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];D=[w2^2*L2*cos(th2(i))+w3(i)^2*L3*cos(th34(i,1))-w4(i)^2*L4*cos(th34(i,2));w2^2*L2*sin(th2(i))+w3(i)^2*L3*sin(th34(i,1))-w4(i)^2*L4*sin(th34(i,2))];a=inv(C)*D;a3(i)=a(1);a4(i)=a(2);end figure(4)plot(th2*180/pi,a3,th2*180/pi,a4);%绘制角加速度线图 axis([0 360-70000 65000])text(50,50000,'摇杆4角加速度(alpha_4)')text(220,12000,'连杆3角加速度(alpha_3)')grid xlabel('从动件角加速度')ylabel('从动件角加速度(radcdot s^{-2})')title('角加速度线图')disp '曲柄转角连杆转角-摇杆转角-连杆角速度-摇杆角速度-连杆加速度-摇杆加速度' ydcs=[th2'*180/pi,th34(:,1)*180/pi,th34(:,2)*180/pi,w3',w4',a3',a4'];disp(ydcs)
2.3 程序运行结果输出
>> * * * * * *平面四杆机构的运动分析 * * * * * * 曲柄转角 连杆转角-摇杆转角-连杆角速度-摇杆角速度-连杆加速度-摇杆加速度
1.0e+004 *
0 0.0044 0.0097-0.0125-0.0125-0.5478 4.8458 0.0005 0.0042 0.0094-0.0126-0.0107 0.2300 5.5630 0.0010 0.0039 0.0092-0.0124-0.0086 0.8946 6.0520 0.0015 0.0037 0.0091-0.0119-0.0065 1.4143 6.2982 0.0020 0.0034 0.0090-0.0114-0.0043 1.7801 6.3174 0.0025 0.0032 0.0089-0.0107-0.0021 2.0027 6.1467 0.0030 0.0030 0.0089-0.0100 0.0000 2.1046 5.8339 0.0035 0.0028 0.0089-0.0093 0.0020 2.1134 5.4272 0.0040 0.0026 0.0090-0.0085 0.0038 2.0566 4.9687 0.0045 0.0025 0.0091-0.0078 0.0054 1.9578 4.4918 0.0050 0.0023 0.0092-0.0072 0.0069 1.8356 4.0198 0.0055 0.0022 0.0093-0.0065 0.0082 1.7040 3.5680 0.0060 0.0021 0.0095-0.0060 0.0094 1.5725 3.1450 0.0065 0.0019 0.0097-0.0055 0.0104 1.4474 2.7545 0.0070 0.0018 0.0099-0.0050 0.0113 1.3328 2.3968 0.0075 0.0017 0.0102-0.0045 0.0121 1.2307 2.0702 0.0080 0.0017 0.0104-0.0041 0.0128 1.1425 1.7716 0.0085 0.0016 0.0107-0.0037 0.0134 1.0687 1.4971 0.0090 0.0015 0.0110-0.0034 0.0138 1.0095 1.2426 0.0095 0.0014 0.0112-0.0030 0.0142 0.9653 1.0035 0.0100 0.0014 0.0115-0.0027 0.0145 0.9364 0.7752 0.0105 0.0013 0.0118-0.0024 0.0148 0.9232 0.5530 0.0110 0.0013 0.0121-0.0020 0.0149 0.9269 0.3319 0.0115 0.0013 0.0124-0.0017 0.0150 0.9485 0.1069 0.0120 0.0012 0.0127-0.0014 0.0150 0.9899-0.1276 0.0125 0.0012 0.0130-0.0010 0.0149 1.0530-0.3773 0.0130 0.0012 0.0135 0.0012 0.0140 0.0012 0.0145 0.0012 0.0150 0.0012 0.0155 0.0012 0.0160 0.0013 0.0165 0.0013 0.0170 0.0014 0.0175 0.0015 0.0180 0.0016 0.0185 0.0018 0.0190 0.0019 0.0195 0.0021 0.0200 0.0023 0.0205 0.0025 0.0210 0.0027 0.0215 0.0029 0.0220 0.0031 0.0225 0.0033 0.0230 0.0036 0.0235 0.0038 0.0240 0.0040 0.0245 0.0042 0.0250 0.0044 0.0255 0.0046 0.0260 0.0048 0.0265 0.0050 0.0270 0.0052 0.0275 0.0054 0.0280 0.0055 0.0285 0.0056 0.0290 0.0057 0.0295 0.0058 0.0300 0.0059 0.0133-0.0006 0.0147 1.1404-0.6481-0.0002 0.0145 1.2544-0.9455 0.0139 0.0002 0.0141 1.3967-1.2743 0.0142 0.0008 0.0136 1.5677-1.6368 0.0144 0.0013 0.0129 1.7648-2.0314 0.0147 0.0020 0.0121 1.9807-2.4495 0.0149 0.0027 0.0112 2.2018-2.8735 0.0151 0.0035 0.0101 2.4071-3.2754 0.0153 0.0044 0.0089 2.5697-3.6186 0.0155 0.0053 0.0076 2.6616-3.8650 0.0156 0.0063 0.0063 2.6609-3.9849 0.0157 0.0072 0.0049 2.5591-3.9674 0.0158 0.0080 0.0035 2.3638-3.8244 0.0159 0.0088 0.0022 2.0959-3.5866 0.0159 0.0095 0.0010 1.7823-3.2931 0.0159 0.0100-0.0001 1.4487-2.9815 0.0159 0.0105-0.0011 1.1152-2.6809 0.0159 0.0108-0.0020 0.7942-2.4103 0.0158 0.0111-0.0028 0.4916-2.1794 0.0158 0.0112-0.0035 0.2086-1.9913 0.0157 0.0112-0.0042-0.0565-1.8450 0.0156 0.0111-0.0048-0.3071-1.7375 0.0155 0.0110-0.0054-0.5475-1.6650 0.0154 0.0108-0.0060-0.7817-1.6233 0.0153 0.0104-0.0065-1.0139-1.6089 0.0151 0.0100-0.0071-1.2479-1.6181 0.0150 0.0096-0.0077-1.4868-1.6480 0.0148 0.0090-0.0082-1.7336-1.6955 0.0146 0.0084-0.0088-1.9905-1.7574 0.0145 0.0076-0.0095-2.2588-1.8304 0.0143 0.0068-0.0101-2.5391-1.9100 0.0141 0.0058-0.0108-2.8305-1.9910 0.0138 0.0048-0.0115-3.1300-2.0660 0.0136 0.0037-0.0122-3.4326-2.1255 0.0133 0.0024-0.0130-3.7297-2.1572 0.0136 0.0305 0.0059 0.0131 0.0011-0.0137-4.0091-2.1451 0.0310 0.0059 0.0128-0.0004-0.0145-4.2538-2.0696 0.0315 0.0059 0.0125-0.0019-0.0152-4.4419-1.9079 0.0320 0.0058 0.0122-0.0035-0.0158-4.5473-1.6352 0.0325 0.0058 0.0119-0.0051-0.0163-4.5411-1.2273 0.0330 0.0056 0.0115-0.0066-0.0166-4.3954-0.6661 0.0335 0.0055 0.0112-0.0081-0.0167-4.0889 0.0551 0.0340 0.0053 0.0109-0.0095-0.0166-3.6129 0.9243 0.0345 0.0051 0.0105-0.0106-0.0161-2.9781 1.9058 0.0350 0.0049 0.0102-0.0115-0.0152-2.2178 2.9395 0.0355 0.0047 0.0099-0.0122-0.0140-1.3857 3.9473 0.0360 0.0044 0.0097-0.0125-0.0125-0.5478 4.8458
图形输出:
图2 连杆3的几个位置点
图3 角位移线图
图4 角加速度线图
图5 角加速度线图 基于MATLAB图形界面设计
所谓图形用户界面, 简称为GU I(Graphic User Interface), 是指包含了各种图形控制对象, 如图形窗口、菜单、对话框以及文本等内容的用户界面。利用这些用户界面, 用户可以和计算机之间进行信息交流。用户可以通过某种方式来选择或者激活这些图形对象, 来运行一些特性的M 文件。最常见的激活方式是利用鼠标或者其它设备来点击这些对象。对于一个用户来说, 图形用户界面就是他所面对的应用程序, 对图形界面的操作直接影响应用程序的应用前途。对于以往专门用于科学计算的语言, 如FORTRAN 语言等, 编写图形界面的功能较弱, 因而用其开发的程序, 其界面往往不够友好, 用户使用起来很不方便。而目前流行的可视化语言, 对科学计算的功能又相对弱一些。MATLAB提供了非常强大的编写图形用户界面的功能。用户只和前台界面下的控件发生交互,而所有运算、绘图等内部操作都封装在内部,终端用户不需要区追究这些复杂过程的代码。图形用户界面大大提高用户使用MATLAB程序的易用性。因此,学习MATLAB图形用户界面编程,即GUI程序的创建,是MATLAB编程用户应该掌握的重要一环。对于一个MATLAB 中的图形用户界面, 它的设计过程一般可以分为两个部分: ①用户界面的外观设计。在这里, 主要是通过不同的对话框、按钮、文本框等许多工具的使用, 设计出一个图形用户界面。同时也应搞清楚这个图形界面的功能是什么, 也即在图形界面上的操作会引发什么样的结果。②图形界面的完成。在这里, 用户将根据在外观设计阶段所确定的图形界面的功能, 针对各个不同的图形对象来编写出能够实现该功能的函数代码, 确保这个图形界面能够完成所预定的功能。3.1 界面设计
首先我们新建一个GUI文件,如下图所示:
图6 新建GUI文件 选择Blank GUI(Default)。
进入GUI开发环境以后添加5个编辑文本框,8个静态文本框,和1个下拉菜单。利用菜单编辑器,创建Open、Print、Close三个菜单。创建好GUI界面需要的各交互控件并调整好大概的位置后,设置这些控件的属性。最后的界面效果如下图示:
图7 界面效果 3.2 代码设计
(1)打开M文件编辑器(M-file Edit),点击
向下的三角图标,可以看到各个对象的回调函数(Callback),某些对象的创建函数或打开函数等。通过选中相应项就可以跳动对应函数位置进行程序编辑。
选中’edit_callback’选项,光标跳到’ function edit1_Callback(hObject, eventdata, handles)’下面空白处,添加以下代码: user_entry=str2double(get(hObject,'String'));if isnan(user_entry)errordlg('请输入数值!','Bad Input')end 该语句严格限制编辑框内必须输入数值,否则出现错误对话框(如下图所示)。同理在其他四个编辑框的回调函数下输入相同的代码。
图8 错误对话框(2)打开M文件编辑器(M-file Edit),点击
向下的三角图标,设置下拉菜单返回函数,光标跳到’ function popupmenu1_Callback(hObject, eventdata, handles)’下面空白处。由于下拉菜单是本界面设计关键控件,与本设计相关的程序都放在这个返回函数下。添加代码如下:L1=str2double(get(handles.edit1,'String'));L2=str2double(get(handles.edit2,'String'));L3=str2double(get(handles.edit3,'String'));L4=str2double(get(handles.edit4,'String'));w2=str2double(get(handles.edit5,'String'));th2=[0:2/72:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');for m=1:length(th2)th34(m,:)=fsolve('fourbarposition',[1 1],options,th2(m),L2,L3,L4,L1);end w2=250;for i=1:length(th2)A=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];B=[w2*L2*sin(th2(i));-w2*L2*cos(th2(i))];w=inv(A)*B;w3(i)=w(1);w4(i)=w(2);end for i=1:length(th2)C=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];D=[w2^2*L2*cos(th2(i))+w3(i)^2*L3*cos(th34(i,1))-w4(i)^2*L4*cos(th34(i,2));...w2^2*L2*sin(th2(i))+w3(i)^2*L3*sin(th34(i,1))-w4(i)^2*L4*sin(th34(i,2))];a=inv(C)*D;a3(i)=a(1);a4(i)=a(2);end val=get(hObject,'Value');str=get(hObject,'String');switch str{val} case '连杆3的几个位置点' th2=[0:1/6:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');for m=1:length(th2)th34(m,:)=fsolve('fourbarposition',[1 1],options,th2(m),L2,L3,L4,L1);end y=L2*sin(th2)+L3*sin(th34(:,1)');x=L2*cos(th2)+L3*cos(th34(:,1)');xx=[L2*cos(th2)];yy=[L2*sin(th2)];plot([x;xx],[y;yy],'k',[0 L1],[0 0],'k--^',x,y,'ko',xx,yy,'ks')title('连杆3的几个位置点')xlabel('水平方向')ylabel('垂直方向')axis equal grid on case '角位移线图' plot(th2*180/pi,th34(:,1)*180/pi,th2*180/pi,th34(:,2)*180/pi)axis([0 360 0 170])grid on xlabel('主动件转角theta_2(度)')ylabel('从动件角位移(度)')title('角位移线图')text(120,120,'摇杆4角位移')text(150,40,'连杆3角位移')case '角速度线图' plot(th2*180/pi,w3,th2*180/pi,w4);axis([0 360-175 200])text(50,160,'摇杆4角速度(omega_4)')text(220,130,'连杆3角速度(omega_3)')grid on xlabel('主动件转角theta_2(度)')ylabel('从动件角速度(radcdot s^{-1})')title('角速度线图')case '角加速度线图' plot(th2*180/pi,a3,th2*180/pi,a4);axis([0 360-50000 65000])text(50,50000,'摇杆4角加速度(alpha_4)')text(220,12000,'连杆3角加速度(alpha_3)')grid on xlabel('主动件转角theta_2(度)')ylabel('从动件角加速度(radcdot s^{-2})')title('角加速度线图')end guidata(hObject,handles)%
其中,guidata(hObject,handles)命令用于更新句柄,当输入不同参数是,程序能够做出相应的相应。
(3)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码: file = uigetfile('*.fig');if ~isequal(file, 0)open(file);end 此菜单用以打开fig文件。其相应界面如图9所示:
向下的三角图标,在Open菜单
图9(4)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码:
向下的三角图标,在Print菜单printdlg(handles.figure1)%用于图形输出。(5)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码:
向下的三角图标,在Close菜单selection = questdlg(['Close ' get(handles.figure1,'Name')'?'],...['Close ' get(handles.figure1,'Name')'...'],'Yes','No','Yes');if strcmp(selection,'No')return;end delete(handles.figure1)此菜单用于关闭界面,其响应界面如图10所示:
图10
(6)完成M文件编写后,运行程序进行检验,单击 图标或M文件工具栏的
图标,在编辑栏输入个构件参数,运行结果如图11:
图11 界面运行效果图
分别点击下拉菜单
小结
在本次基于MATLAB平面四杆机构机构的运动分析课程设计中,不仅用到了MATLAB的m语言编程,还有GUI图形用户界面设计。对于课程的设计来说,m语言本身来说,功能相当强大,但是由于其复杂的编程方法,让大多数初学者望而却步;而GUI图形界面则正好弥补了它的不足,它采用的是所见即所得的编程方式,用它来做软件的界面就如图制作网页一样简单明了,用它制作出来的软件不需要太多的编程知识都可以轻松搞定;在此次课程设计中,本人尽量扬长避短,把这些工具的优点结合到一起,发挥其最大的作用。通过此次课程设计,不仅使我们对使我们对四杆机构有了进一步认识,并且使我们认识到计算机技术对工程应用的重要性。本此设计凝结了团队合作的结晶,是我们利用三周的时间努力学
下各选项,则在绘图区域分别显示图2~图5。习、设计的成果,同时,在设计过成中得到了郑XX老师的悉心指导,在此表示衷心的感谢!
参考文献
[1] 孙桓,陈作模.机械原理[M].7版.北京:高等教育出版社,2006.[2] 符炜.机构设计学.[M].1版.长沙:中南工业大学出版社,1995.[3] MATLAB原理与工程应用[M].1版.北京:电子工业出版社,2002.[4] http:///pro-t2-p137-dzd.html?dk=80288644
首先创建函数FoutBarPosition,函数fsolve通过他确定。function t=fourbarposition(th,th2,L2,L3,L4,L1)t=[L2*cos(th2)+L3*cos(th(1))-L4*cos(th(2))-L1;L2*sin(th2)+L3*sin(th(1))-L4*sin(th(2))];
主程序如下:
disp ' * * * * * *平面四杆机构的运动分析 * * * * * *' L1=304.8;L2=101.6;L3=254.0;L4=177.8;th2=[0:1/6:2]*pi;
th34=zeros(length(th2),2);options=optimset('display','off');
for m=1:length(th2)
th34(m,:)=fsolve('fourbarposition',[1 1], options,th2(m),L2,L3,L4,L1);
end y=L2*sin(th2)+L3*sin(th34(:,1)');
x=L2*cos(th2)+L3*cos(th34(:,1)');
xx=[L2*cos(th2)];
yy=[L2*sin(th2)];
figure(1)plot([x;xx],[y;yy],'k',[0 L1],[0 0], 'k--^',x,y,'ko',xx,yy,'ks')title('连杆3的几个位置点')xlabel('水平方向')ylabel('垂直方向')axis equal th2=[0:2/72:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');for m=1:length(th2)th34(m,:)=fsolve('fourbarposition',[1 1], options,th2(m),L2,L3,L4,L1);end figure(2)plot(th2*180/pi,th34(:,1),th2*180/pi,th34(:,2))
plot(th2*180/pi,th34(:,1)*180/pi, th2*180/pi,th34(:,2)*180/pi)axis([0 360 0 170])grid xlabel('主动件转角theta_2(度)')ylabel('从动件角位移(度)')title('角位移线图')text(120,120,'摇杆4角位移')text(150,40,'连杆3角位移')w2=250;
for i=1:length(th2)A=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];B=[w2*L2*sin(th2(i));-w2*L2*cos(th2(i))];w=inv(A)*B;w3(i)=w(1);w4(i)=w(2);end figure(3)plot(th2*180/pi,w3,th2*180/pi,w4);
axis([0 360-175 200])text(50,160,'摇杆4角速度(omega_4)')text(220,130,'连杆3角速度(omega_3)')grid xlabel('主动件转角theta_2(度)')ylabel('从动件角速度(radcdot s^{-1})')title('角速度线图')for i=1:length(th2)C=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];D=[w2^2*L2*cos(th2(i))+w3(i)^2*L3*cos(th34(i,1))-w4(i)^2*L4*cos(th34(i,2));w2^2*L2*sin(th2(i))+w3(i)^2*L3*sin(th34(i,1))-w4(i)^2*L4*sin(th34(i,2))];a=inv(C)*D;a3(i)=a(1);a4(i)=a(2);end figure(4)plot(th2*180/pi,a3,th2*180/pi,a4);axis([0 360-70000 65000])text(50,50000,'摇杆4角加速度(alpha_4)')text(220,12000,'连杆3角加速度(alpha_3)')grid xlabel('从动件角加速度')ylabel('从动件角加速度(radcdot s^{-2})')title('角加速度线图')disp '曲柄转角连杆转角-摇杆转角-连杆角速度-摇杆角速度-连杆加速度-摇杆加速度' ydcs=[th2'*180/pi,th34(:,1)*180/pi,th34(:,2)*180/pi,w3',w4',a3',a4'];disp(ydcs)
第二篇:基于matlab的连杆机构设计
目 录
1平面连杆机构的运动分析…………………………………………………………………………1
1.2 机构的工作原理……………………………………………………………………………………1 1.3 机构的数学模型的建立……………………………………………………………………………1 1.3.1建立机构的闭环矢量位置方程...................................................1 1.3.2求解方法.....................................................................2 2 基于MATLAB程序设计………………………………………………………………………………4 2.1 程序流程图…………………………………………………………………………………………4
2.2 M文件编写…………………………………………………………………………………………6
2.3 程序运行结果输出…………………………………………………………………………………7 3 基于MATLAB图形界面设计…………………………………………………………………………11 3.1界面设计……………………………………………………………………………………………11
3.2代码设计……………………………………………………………………………………………12 4 小结…………………………………………………………………………………………………17
参考文献 ………………………………………………………………………………………………18
平面连杆机构的运动分析
1.1 机构运动分析的任务、目的和方法
曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。还可以根据机构闭环矢量方程计算从动件的位移偏差。上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。
机构运动分析的方法很多,主要有图解法和解析法。当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。而当需要精确地知道或要了解机构在整个运动循环过程中的运动特性时,采用解析法并借助计算机,不仅可获得很高的计算精度及一系列位置的分析结果,并能绘制机构相应的运动线图,同时还可以把机构分析和机构综合问题联系起来,以便于机构的优化设计。1.2 机构的工作原理
在平面四杆机构中,其具有曲柄的条件为: a.各杆的长度应满足杆长条件,即:
最短杆长度+最长杆长度≤其余两杆长度之和。
b.组成该周转副的两杆中必有一杆为最短杆,且其最短杆为连架杆或机架(当最短杆为连架杆时,四杆机构为曲柄摇杆机构;当最短杆为机架时,则为双曲柄机构)。
在如下图1所示的曲柄摇杆机构中,构件AB为曲柄,则B点应能通过曲柄与连杆两次共线的位置。
1.3 机构的数学模型的建立 1.3.1建立机构的闭环矢量位置方程
在用矢量法建立机构的位置方程时,需将构件用矢量来表示,并作出机构的封闭矢量多边形。如图1所示,先建立一直角坐标系。设各构件的长度分别为L1、L2、L3、L4,其方位角为、、、。以各杆矢量组成一个封闭矢量多边形,即ABCDA。其个矢量之和必等于零。即:
式1
式1为图1所示四杆机构的封闭矢量位置方程式。对于一个特定的四杆机构,其各构件的长度和原动件2的运动规律,即程可求得未知方位角、。
为已知,而
=0,故由此矢量方角位移方程的分量形式为:
式2
闭环矢量方程分量形式对时间求一阶导数(角速度方程)为:
式3 其矩阵形式为:
式4 联立式3两公式可求得:
式5
式6
闭环矢量方程分量形式对时间求二阶导数(角加速度方程)矩阵形式为:
式7 由式7可求得加速度:
式8
式9
注:式1~式9中,Li(i=1,2,3,4)分别表示机架
1、曲柄
2、连杆
3、摇杆4的长度;(i=1,2,3,4)是各杆与x轴的正向夹角,逆时针为正,顺时针为负,单位为 rad;是各杆的角速度。
,单位为 rad/s;为各杆的角加速度,单位为 1.3.2求解方法
(1)求导中应用了下列公式:
式10
(2)在角位移方程分量形式(式2)中,由于假定机架为参考系,矢量1与x轴重合,=0,则有非线性超越方程组:
式11
可以借助牛顿-辛普森数值解法或Matlab自带的fsolve函数求出连杆3的角位移和摇杆4的角位移。
(3)求解具有n个未知量(i=1,2,…,n)的线性方程组:
式12 式中,系列矩阵 是一个 阶方阵:
式13 的逆矩阵为;常数项b是一个n维矢量:
式14 因此,线性方程组解的矢量为:
式15
式11是求解连杆3和摇杆4角速度和角加速度的依据。
基于MATLAB程序设计
MATLAB 是Mathworks 公司推出的交互式计算分析软件,具有强大的运算分析功能,具有集科学计算、程序设计和可视化于一体的高度集成化软件环境,是目前国际上公认的最优秀的计算分析软件之一,被广泛应用于自动控制、信号处理、机械设计、流体力学和数理统计等工程领域。通过运算分析,MATLAB 可以从众多的设计方案中寻找最佳途径,获取最优结果,大大提高了设计水平和质量。四连杆机构的解析法同样可以用MATLAB 的计算工具来求值,并结合MATLAB 的可视化手段,把各点的计算值拟合成曲线,得到四连杆机构的运动仿真轨迹。
2.1 程序流程图
2.2 M文件编写
首先创建函数FoutBarPosition,函数fsolve通过他确定。function t=fourbarposition(th,th2,L2,L3,L4,L1)t=[L2*cos(th2)+L3*cos(th(1))-L4*cos(th(2))-L1;… L2*sin(th2)+L3*sin(th(1))-L4*sin(th(2))];主程序如下:
disp ' * * * * * *平面四杆机构的运动分析 * * * * * *' L1=304.8;L2=101.6;L3=254.0;L4=177.8;%给定已知量,各杆长L1,L2,L3,L4 th2=[0:1/6:2]*pi;%曲柄输入角度从0至360度,步长为pi/6 th34=zeros(length(th2),2);%建立一个N行2列的零矩阵,第一列存放options=optimset('display','off');%θ_3,第二列存放θ_3
for m=1:length(th2)%建立for循环,求解θ_3,θ_4
th34(m,:)=fsolve('fourbarposition',[1 1],…
%调用fsove函数求解关于θ_3,θ_4 options,th2(m),L2,L3,L4,L1);%的非线性超越方程,结果保存在th34中 end y=L2*sin(th2)+L3*sin(th34(:,1)');%连杆3的D端点Y坐标值 x=L2*cos(th2)+L3*cos(th34(:,1)');%连杆3的D端点X坐标值 xx=[L2*cos(th2)];%连杆3的C端点X坐标值 yy=[L2*sin(th2)];%连杆3的C端点Y坐标值 figure(1)plot([x;xx],[y;yy],'k',[0 L1],[0 0],… %绘制连杆3的几个位置点 'k--^',x,y,'ko',xx,yy,'ks')title('连杆3的几个位置点')xlabel('水平方向')ylabel('垂直方向')axis equal %XY坐标均衡
th2=[0:2/72:2]*pi;%重新细分曲柄输入角度θ_2,步长为5度 th34=zeros(length(th2),2);options=optimset('display','off');for m=1:length(th2)th34(m,:)=fsolve('fourbarposition',[1 1],… options,th2(m),L2,L3,L4,L1);end figure(2)plot(th2*180/pi,th34(:,1),th2*180/pi,th34(:,2))%绘制连杆3的角位移关于曲柄2的角位移图
plot(th2*180/pi,th34(:,1)*180/pi,…
th2*180/pi,th34(:,2)*180/pi)%绘制摇杆4的角位移关于曲柄2的角位移图 axis([0 360 0 170])%确定XY边界值 grid %图形加网格 xlabel('主动件转角theta_2(度)')ylabel('从动件角位移(度)')title('角位移线图')text(120,120,'摇杆4角位移')text(150,40,'连杆3角位移')w2=250;%设定曲柄角速度 for i=1:length(th2)A=[-L3*sin(th34(i,1))L4*sin(th34(i,2));… L3*cos(th34(i,1))-L4*cos(th34(i,2))];B=[w2*L2*sin(th2(i));-w2*L2*cos(th2(i))];w=inv(A)*B;w3(i)=w(1);w4(i)=w(2);end figure(3)plot(th2*180/pi,w3,th2*180/pi,w4);%绘制角速度线图 axis([0 360-175 200])text(50,160,'摇杆4角速度(omega_4)')text(220,130,'连杆3角速度(omega_3)')grid xlabel('主动件转角theta_2(度)')ylabel('从动件角速度(radcdot s^{-1})')title('角速度线图')for i=1:length(th2)C=[-L3*sin(th34(i,1))L4*sin(th34(i,2));… L3*cos(th34(i,1))-L4*cos(th34(i,2))];D=[w2^2*L2*cos(th2(i))+w3(i)^2*L3*cos(th34(i,1))-w4(i)^2*L4*cos(th34(i,2));...w2^2*L2*sin(th2(i))+w3(i)^2*L3*sin(th34(i,1))-w4(i)^2*L4*sin(th34(i,2))];a=inv(C)*D;a3(i)=a(1);a4(i)=a(2);end figure(4)plot(th2*180/pi,a3,th2*180/pi,a4);%绘制角加速度线图 axis([0 360-70000 65000])text(50,50000,'摇杆4角加速度(alpha_4)')text(220,12000,'连杆3角加速度(alpha_3)')grid xlabel('从动件角加速度')ylabel('从动件角加速度(radcdot s^{-2})')title('角加速度线图')disp '曲柄转角连杆转角-摇杆转角-连杆角速度-摇杆角速度-连杆加速度-摇杆加速度' ydcs=[th2'*180/pi,th34(:,1)*180/pi,th34(:,2)*180/pi,w3',w4',a3',a4'];disp(ydcs)
2.3 程序运行结果输出
>> * * * * * *平面四杆机构的运动分析 * * * * * * 曲柄转角 连杆转角-摇杆转角-连杆角速度-摇杆角速度-连杆加速度-摇杆加速度
1.0e+004 *
0 0.0044 0.0097-0.0125-0.0125-0.5478 4.8458 0.0005 0.0042 0.0094-0.0126-0.0107 0.2300 5.5630 0.0010 0.0039 0.0092-0.0124-0.0086 0.8946 6.0520 0.0015 0.0037 0.0091-0.0119-0.0065 1.4143 6.2982 0.0020 0.0034 0.0090-0.0114-0.0043 1.7801 6.3174 0.0025 0.0032 0.0089-0.0107-0.0021 2.0027 6.1467 0.0030 0.0030 0.0089-0.0100 0.0000 2.1046 5.8339 0.0035 0.0028 0.0089-0.0093 0.0020 2.1134 5.4272 0.0040 0.0026 0.0090-0.0085 0.0038 2.0566 4.9687 0.0045 0.0025 0.0091-0.0078 0.0054 1.9578 4.4918 0.0050 0.0023 0.0092-0.0072 0.0069 1.8356 4.0198 0.0055 0.0022 0.0093-0.0065 0.0082 1.7040 3.5680 0.0060 0.0021 0.0095-0.0060 0.0094 1.5725 3.1450 0.0065 0.0019 0.0097-0.0055 0.0104 1.4474 2.7545 0.0070 0.0018 0.0099-0.0050 0.0113 1.3328 2.3968 0.0075 0.0017 0.0102-0.0045 0.0121 1.2307 2.0702 0.0080 0.0017 0.0104-0.0041 0.0128 1.1425 1.7716 0.0085 0.0016 0.0107-0.0037 0.0134 1.0687 1.4971 0.0090 0.0015 0.0110-0.0034 0.0138 1.0095 1.2426 0.0095 0.0014 0.0112-0.0030 0.0142 0.9653 1.0035 0.0100 0.0014 0.0115-0.0027 0.0145 0.9364 0.7752 0.0105 0.0013 0.0118-0.0024 0.0148 0.9232 0.5530 0.0110 0.0013 0.0121-0.0020 0.0149 0.9269 0.3319 0.0115 0.0013 0.0120 0.0012 0.0125 0.0012 0.0130 0.0012 0.0135 0.0012 0.0140 0.0012 0.0145 0.0012 0.0150 0.0012 0.0155 0.0012 0.0160 0.0013 0.0165 0.0013 0.0170 0.0014 0.0175 0.0015 0.0180 0.0016 0.0185 0.0018 0.0190 0.0019 0.0195 0.0021 0.0200 0.0023 0.0205 0.0025 0.0210 0.0027 0.0215 0.0029 0.0220 0.0031 0.0225 0.0033 0.0230 0.0036 0.0235 0.0038 0.0240 0.0040 0.0245 0.0042 0.0250 0.0044 0.0255 0.0046 0.0260 0.0048 0.0265 0.0050 0.0270 0.0052 0.0275 0.0054 0.0280 0.0055 0.0285 0.0056 0.0124-0.0017 0.0150 0.9485 0.1069 0.0127-0.0014 0.0150 0.9899-0.1276 0.0130-0.0010 0.0149 1.0530-0.3773 0.0133-0.0006 0.0147 1.1404-0.6481-0.0002 0.0145 1.2544-0.9455 0.0139 0.0002 0.0141 1.3967-1.2743 0.0142 0.0008 0.0136 1.5677-1.6368 0.0144 0.0013 0.0129 1.7648-2.0314 0.0147 0.0020 0.0121 1.9807-2.4495 0.0149 0.0027 0.0112 2.2018-2.8735 0.0151 0.0035 0.0101 2.4071-3.2754 0.0153 0.0044 0.0089 2.5697-3.6186 0.0155 0.0053 0.0076 2.6616-3.8650 0.0156 0.0063 0.0063 2.6609-3.9849 0.0157 0.0072 0.0049 2.5591-3.9674 0.0158 0.0080 0.0035 2.3638-3.8244 0.0159 0.0088 0.0022 2.0959-3.5866 0.0159 0.0095 0.0010 1.7823-3.2931 0.0159 0.0100-0.0001 1.4487-2.9815 0.0159 0.0105-0.0011 1.1152-2.6809 0.0159 0.0108-0.0020 0.7942-2.4103 0.0158 0.0111-0.0028 0.4916-2.1794 0.0158 0.0112-0.0035 0.2086-1.9913 0.0157 0.0112-0.0042-0.0565-1.8450 0.0156 0.0111-0.0048-0.3071-1.7375 0.0155 0.0110-0.0054-0.5475-1.6650 0.0154 0.0108-0.0060-0.7817-1.6233 0.0153 0.0104-0.0065-1.0139-1.6089 0.0151 0.0100-0.0071-1.2479-1.6181 0.0150 0.0096-0.0077-1.4868-1.6480 0.0148 0.0090-0.0082-1.7336-1.6955 0.0146 0.0084-0.0088-1.9905-1.7574 0.0145 0.0076-0.0095-2.2588-1.8304 0.0143 0.0068-0.0101-2.5391-1.9100 0.0141 0.0058-0.0108-2.8305-1.9910 0.0136 0.0290 0.0057 0.0138 0.0048-0.0115-3.1300-2.0660 0.0295 0.0058 0.0136 0.0037-0.0122-3.4326-2.1255 0.0300 0.0059 0.0133 0.0024-0.0130-3.7297-2.1572 0.0305 0.0059 0.0131 0.0011-0.0137-4.0091-2.1451 0.0310 0.0059 0.0128-0.0004-0.0145-4.2538-2.0696 0.0315 0.0059 0.0125-0.0019-0.0152-4.4419-1.9079 0.0320 0.0058 0.0122-0.0035-0.0158-4.5473-1.6352 0.0325 0.0058 0.0119-0.0051-0.0163-4.5411-1.2273 0.0330 0.0056 0.0115-0.0066-0.0166-4.3954-0.6661 0.0335 0.0055 0.0112-0.0081-0.0167-4.0889 0.0551 0.0340 0.0053 0.0109-0.0095-0.0166-3.6129 0.9243 0.0345 0.0051 0.0105-0.0106-0.0161-2.9781 1.9058 0.0350 0.0049 0.0102-0.0115-0.0152-2.2178 2.9395 0.0355 0.0047 0.0099-0.0122-0.0140-1.3857 3.9473 0.0360 0.0044 0.0097-0.0125-0.0125-0.5478 4.8458
图形输出:
图2 连杆3的几个位置点
图3 角位移线图
图4 角加速度线图
图5 角加速度线图 基于MATLAB图形界面设计
所谓图形用户界面, 简称为GU I(Graphic User Interface), 是指包含了各种图形控制对象, 如图形窗口、菜单、对话框以及文本等内容的用户界面。利用这些用户界面, 用户可以和计算机之间进行信息交流。用户可以通过某种方式来选择或者激活这些图形对象, 来运行一些特性的M 文件。最常见的激活方式是利用鼠标或者其它设备来点击这些对象。对于一个用户来说, 图形用户界面就是他所面对的应用程序, 对图形界面的操作直接影响应用程序的应用前途。对于以往专门用于科学计算的语言, 如FORTRAN 语言等, 编写图形界面的功能较弱, 因而用其开发的程序, 其界面往往不够友好, 用户使用起来很不方便。而目前流行的可视化语言, 对科学计算的功能又相对弱一些。MATLAB提供了非常强大的编写图形用户界面的功能。用户只和前台界面下的控件发生交互,而所有运算、绘图等内部操作都封装在内部,终端用户不需要区追究这些复杂过程的代码。图形用户界面大大提高用户使用MATLAB程序的易用性。因此,学习MATLAB图形用户界面编程,即GUI程序的创建,是MATLAB编程用户应该掌握的重要一环。对于一个MATLAB 中的图形用户界面, 它的设计过程一般可以分为两个部分: ①用户界面的外观设计。在这里, 主要是通过不同的对话框、按钮、文本框等许多工具的使用, 设计出一个图形用户界面。同时也应搞清楚这个图形界面的功能是什么, 也即在图形界面上的操作会引发什么样的结果。②图形界面的完成。在这里, 用户将根据在外观设计阶段所确定的图形界面的功能, 针对各个不同的图形对象来编写出能够实现该功能的函数代码, 确保这个图形界面能够完成所预定的功能。3.1 界面设计
首先我们新建一个GUI文件,如下图所示:
图6 新建GUI文件 选择Blank GUI(Default)。
进入GUI开发环境以后添加5个编辑文本框,8个静态文本框,和1个下拉菜单。利用菜单编辑器,创建Open、Print、Close三个菜单。创建好GUI界面需要的各交互控件并调整好大概的位置后,设置这些控件的属性。最后的界面效果如下图示:
图7 界面效果 3.2 代码设计
(1)打开M文件编辑器(M-file Edit),点击
向下的三角图标,可以看到各个对象的回调函数(Callback),某些对象的创建函数或打开函数等。通过选中相应项就可以跳动对应函数位置进行程序编辑。
选中’edit_callback’选项,光标跳到’ function edit1_Callback(hObject, eventdata, handles)’下面空白处,添加以下代码: user_entry=str2double(get(hObject,'String'));if isnan(user_entry)errordlg('请输入数值!','Bad Input')end 该语句严格限制编辑框内必须输入数值,否则出现错误对话框(如下图所示)。同理在其他四个编辑框的回调函数下输入相同的代码。
图8 错误对话框(2)打开M文件编辑器(M-file Edit),点击
向下的三角图标,设置下拉菜单返回函数,光标跳到’ function popupmenu1_Callback(hObject, eventdata, handles)’下面空白处。由于下拉菜单是本界面设计关键控件,与本设计相关的程序都放在这个返回函数下。添加代码如下:L1=str2double(get(handles.edit1,'String'));L2=str2double(get(handles.edit2,'String'));L3=str2double(get(handles.edit3,'String'));L4=str2double(get(handles.edit4,'String'));w2=str2double(get(handles.edit5,'String'));th2=[0:2/72:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');for m=1:length(th2)th34(m,:)=fsolve('fourbarposition',[1 1],options,th2(m),L2,L3,L4,L1);end w2=250;for i=1:length(th2)A=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];B=[w2*L2*sin(th2(i));-w2*L2*cos(th2(i))];w=inv(A)*B;w3(i)=w(1);w4(i)=w(2);end for i=1:length(th2)C=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];D=[w2^2*L2*cos(th2(i))+w3(i)^2*L3*cos(th34(i,1))-w4(i)^2*L4*cos(th34(i,2));...w2^2*L2*sin(th2(i))+w3(i)^2*L3*sin(th34(i,1))-w4(i)^2*L4*sin(th34(i,2))];a=inv(C)*D;a3(i)=a(1);a4(i)=a(2);end val=get(hObject,'Value');str=get(hObject,'String');switch str{val} case '连杆3的几个位置点' th2=[0:1/6:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');for m=1:length(th2)th34(m,:)=fsolve('fourbarposition',[1 1],options,th2(m),L2,L3,L4,L1);end y=L2*sin(th2)+L3*sin(th34(:,1)');x=L2*cos(th2)+L3*cos(th34(:,1)');xx=[L2*cos(th2)];yy=[L2*sin(th2)];plot([x;xx],[y;yy],'k',[0 L1],[0 0],'k--^',x,y,'ko',xx,yy,'ks')title('连杆3的几个位置点')xlabel('水平方向')ylabel('垂直方向')axis equal grid on case '角位移线图' plot(th2*180/pi,th34(:,1)*180/pi,th2*180/pi,th34(:,2)*180/pi)axis([0 360 0 170])grid on xlabel('主动件转角theta_2(度)')ylabel('从动件角位移(度)')title('角位移线图')text(120,120,'摇杆4角位移')text(150,40,'连杆3角位移')case '角速度线图' plot(th2*180/pi,w3,th2*180/pi,w4);axis([0 360-175 200])text(50,160,'摇杆4角速度(omega_4)')text(220,130,'连杆3角速度(omega_3)')grid on xlabel('主动件转角theta_2(度)')ylabel('从动件角速度(radcdot s^{-1})')title('角速度线图')case '角加速度线图' plot(th2*180/pi,a3,th2*180/pi,a4);axis([0 360-50000 65000])text(50,50000,'摇杆4角加速度(alpha_4)')text(220,12000,'连杆3角加速度(alpha_3)')grid on xlabel('主动件转角theta_2(度)')ylabel('从动件角加速度(radcdot s^{-2})')title('角加速度线图')end guidata(hObject,handles)%
其中,guidata(hObject,handles)命令用于更新句柄,当输入不同参数是,程序能够做出相应的相应。
(3)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码: file = uigetfile('*.fig');if ~isequal(file, 0)open(file);end 此菜单用以打开fig文件。其相应界面如图9所示:
向下的三角图标,在Open菜单
图9(4)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码:
向下的三角图标,在Print菜单printdlg(handles.figure1)%用于图形输出。(5)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码:
向下的三角图标,在Close菜单selection = questdlg(['Close ' get(handles.figure1,'Name')'?'],...['Close ' get(handles.figure1,'Name')'...'],'Yes','No','Yes');if strcmp(selection,'No')return;end delete(handles.figure1)此菜单用于关闭界面,其响应界面如图10所示:
图10
(6)完成M文件编写后,运行程序进行检验,单击 图标或M文件工具栏的
图标,在编辑栏输入个构件参数,运行结果如图11:
图11 界面运行效果图
分别点击下拉菜单
小结
在本次基于MATLAB平面四杆机构机构的运动分析课程设计中,不仅用到了MATLAB的m语言编程,还有GUI图形用户界面设计。对于课程的设计来说,m语言本身来说,功能相当强大,但是由于其复杂的编程方法,让大多数初学者望而却步;而GUI图形界面则正好弥补了它的不足,它采用的是所见即所得的编程方式,用它来做软件的界面就如图制作网页一样简单明了,用它制作出来的软件不需要太多的编程知识都可以轻松搞定;在此次课程设计中,本人尽量扬长避短,把这些工具的优点结合到一起,发挥其最大的作用。通过此次课程设计,不仅使我们对使我们对四杆机构有了进一步认识,并且使我们认识到计算机技术对工程应用的重要性。本此设计凝结了团队合作的结晶,是我们利用三周的时间努力学
下各选项,则在绘图区域分别显示图2~图5。习、设计的成果,同时,在设计过成中得到了郑XX老师的悉心指导,在此表示衷心的感谢!
参考文献
[1] 孙桓,陈作模.机械原理[M].7版.北京:高等教育出版社,2006.[2] 符炜.机构设计学.[M].1版.长沙:中南工业大学出版社,1995.[3] MATLAB原理与工程应用[M].1版.北京:电子工业出版社,2002.[4] http:///pro-t2-p137-dzd.html?dk=80288644
第三篇:基于matlab的连杆机构设计
基于matlab的连杆机构设计
班级:热动1001班 姓名:何志杰 学号:201004414 1.1 机构运动分析的任务、目的和方法
曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。还可以根据机构闭环矢量方程计算从动件的位移偏差。上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。
机构运动分析的方法很多,主要有图解法和解析法。当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。而当需要精确地知道或要了解机构在整个运动循环过程中的运动特性时,采用解析法并借助计算机,不仅可获得很高的计算精度及一系列位置的分析结果,并能绘制机构相应的运动线图,同时还可以把机构分析和机构综合问题联系起来,以便于机构的优化设计。1.2 机构的工作原理
在平面四杆机构中,其具有曲柄的条件为: a.各杆的长度应满足杆长条件,即:
最短杆长度+最长杆长度≤其余两杆长度之和。
b.组成该周转副的两杆中必有一杆为最短杆,且其最短杆为连架杆或机架(当最短杆为连架杆时,四杆机构为曲柄摇杆机构;当最短杆为机架时,则为双曲柄机构)。
因此,线性方程组解的矢量为:
式15 式11是求解连杆3和摇杆4角速度和角加速度的依据。
基于MATLAB程序设计
MATLAB 是Mathworks 公司推出的交互式计算分析软件,具有强大的运算分析功能,具有集科学计算、程序设计和可视化于一体的高度集成化软件环境,是目前国际上公认的最优秀的计算分析软件之一,被广泛应用于自动控制、信号处理、机械设计、流体力学和数理统计等工程领域。通过运算分析,MATLAB 可以从众多的设计方案中寻找最佳途径,获取最优结果,大大提高了设计水平和质量。四连杆机构的解析法同样可以用MATLAB 的计算工具来求值,并结合MATLAB 的可视化手段,把各点的计算值拟合成曲线,得到四连杆机构的运动仿真轨迹。
2.1 程序流程图
图3 角位移线图
图4 角加速度线图
图5 角加速度线图
基于MATLAB图形界面设计
所谓图形用户界面, 简称为GU I(Graphic User Interface), 是指包含了各种图形控制对象, 如图形窗口、菜单、对话框以及文本等内容的用户界面。利用这些用户界面, 用户可以和计算机之间进行信息交流。用户可以通过某种方式来选择或者激活这些图形对象, 来运行一些特性的M 文件。最常见的激活方式是利用鼠标或者其它设备来点击这些对象。对于一个用户来说, 图形用户界面就是他所面对的应用程序, 对图形界面的操作直接影响应用程序的应用前途。对于以往专门用于科学计算的语言, 如FORTRAN 语言等, 编写图形界面的功能较弱, 因而用其开发的程序, 其界面往往不够友好, 用户使用起来很不方便。而目前流行的可视化语言, 对科学计算的功能又相对弱一些。MATLAB提供了非常强大的编写图形用户界面的功能。用户只和前台界面下的控件发生交互,而所有运算、绘图等内部操作都封装在内部,终端用户不需要区追究这些复杂过程的代码。图形用户界面大大提高用户使用MATLAB程序的易用性。因此,学习MATLAB图形用户界面编程,即GUI程序的创建,是MATLAB编程用户应该掌握的重要一环。对于一个MATLAB 中的图形用户界面, 它的设计过程一般可以分为两个部分: ①用户界面的外观设计。在这里, 主要是通过不同的对话框、按钮、文本框等许多工具的使用, 设计出一个图形用户界面。同时也应搞清楚这个图形界面的功能是什么, 也即在图形界面上的操作会引发什么样的结果。
②图形界面的完成。在这里, 用户将根据在外观设计阶段所确定的图形界面的功能, 针对各个不同的图形对象来编写出能够实现该功能的函数代码, 确保这个图形界面能够完成所预定的功能。3.1 界面设计
首先我们新建一个GUI文件,如下图所示:
图6 新建GUI文件 选择Blank GUI(Default)。
进入GUI开发环境以后添加5个编辑文本框,8个静态文本框,和1个下拉菜单。利用菜单编辑器,创建Open、Print、Close三个菜单。创建好GUI界面需要的各交互控件并调整好大概的位置后,设置这些控件的属性。最后的界面效果如下图示
图7 界面效果 3.2 代码设计
(1)打开M文件编辑器(M-file Edit),点击
向下的三角图标,可以看到各个对象的回调函数(Callback),某些对象的创建函数或打开函数等。通过选中相应项就可以跳动对应函数位置进行程序编辑。
选中’edit_callback’选项,光标跳到’ function edit1_Callback(hObject, eventdata, handles)’下面空白处,添加以下代码: user_entry=str2double(get(hObject,'String'));if isnan(user_entry)errordlg('请输入数值!','Bad Input')end
(2)打开M文件编辑器(M-file Edit),点击
向下的三角图标,设置下拉菜单返回函数,光标跳到’ function popupmenu1_Callback(hObject, eventdata, handles)’下面空白处。由于下拉菜单是本界面设计关键控件,与本设计相关的程序都放在这个返回函数下。添加代码略。(3)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码: file = uigetfile('*.fig');if ~isequal(file, 0)open(file);end 此菜单用以打开fig文件。其相应界面如图9所示:
向下的三角图标,在Open菜单
图9(4)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码:
向下的三角图标,在Print菜单printdlg(handles.figure1)%用于图形输出。
(5)打开M文件编辑器(M-file Edit),点击 回调函数下添加以下代码:
selection = questdlg(['Close ' get(handles.figure1,'Name')'?'],...['Close ' get(handles.figure1,'Name')'...'],'Yes','No','Yes');if strcmp(selection,'No')return;end delete(handles.figure1)(6)完成M文件编写后,运行程序进行检验,单击
图标或M文件工具栏的向下的三角图标,在Close菜单图标,在编辑栏输入个构件参数,运行结果如图11:
01112-
第四篇:2021基于MATLAB Simulink的平面四连杆机构仿真
基于MATLAB
Simulink的平面四连杆机构仿真
基于MATLAB/Simulink的平面四连杆机构仿真
一、题目及自由度分析
如图1所示,该平面四杆机构中有三根运动的均质钢杆,其中有两根钢杆的一端与接地点连接,第三根杆就与这两根杆剩下的端点连接起来,两个接地点就可认为是第四杆,机构中相关尺寸如图2所示。
计算结构自由度,三个运动杆被限制到平面内运动,因此每个杆都有两个移动和一个转动,即在考虑约束之前,自由度为:
3×(2+1)=9
但是由于每个杆都受到约束,所以并不是每个自由度都是独立的。在二维状态下,刚体间的连接或者刚体与接地点的连接就会增加两个约束。这样就会使得刚体其中一端不能够作为独立的自由运动点,而是要受到邻近刚体的约束。该题中有四个刚体--刚体或刚体—接地点的连接,这就隐含8个约束。
那么最后的自由度为9-8=1.虽然有四个转动自由度,但是,其中三个都是非独立的,只要确定其中一个,就可确定其余三个。
二、模型建立及参数设置
1应用MATLAB/Simulink建立初始模型
2在初始模型的基础上添加Joint
Sensor模块
3依题意设置相关参数
⑴配置Ground模块
由图2可得系统的基本尺寸为:
①固定构件长86.7厘米
②Ground_1表示接地点,在World
CS坐标轴原点右边43.3cm处
③Ground_2表示接地点,在World
CS坐标轴原点左边43.4cm处
④最下端的铰处于X-Z平面内原点以上4cm
图5Ground_1模块参数设置图6Ground_2模块参数设置
4配置Joint模块
三个没有接地的联杆都是在X-Y平面内的,所以Revolute轴必须是Z轴。
⑴依次打开Revolute参数对话框,保持默认值,即Axis
of
rotation[x
y
z]默认设置为[001],Reference
csys都是WORLD。
图7Revolute坐标设置
⑵根据连接情况依次设置Revolute参数对话框中的Connection
parameters参数
图8Revolute模块参数对话框Connection
parameters参数
图9Revolute模块参数对话框Connection
parameters参数
图10Revolute模块参数对话框Connection
parameters参数
图11Revolute模块参数对话框Connection
parameters参数5配置Body模块
本题中Body模块(即Bar)定位方式不是直接相对于WORLD坐标系统,而是采用相对坐标形式,Bar1的CS1相对于Ground_1,Bar2的CS1相对于Bar1,以此类推。
以下为每个Body模块的详细参数设置,其中包括质量(Mass)、惯性矩(Inertia)、重心坐标原点、CS1坐标原点、CS2坐标原点和重心的方向。
图12Bar1的模块参数设置
图13Bar2的模块参数设置
图14Bar3的模块参数设置三、检测运动,运行模型
图15仿真结果动画显示
图16Revolute2和Revolute3的转角时程曲线
三、小结
目前较为主流的动力学仿真软件是Adams,但鉴于本人对该软件接触较少,且MATLAB也具有该功能,故本题采用Simulink中的SimMechanics工具箱对平面四杆机构进行建模仿真,并利用其可视化窗口进行系统运动可视化。
通过仿真结果可以看到,使用已有的计算机仿真软件包Matlab/Simulink来建立机构的仿真模型,仿真求解机构力学和运动参数,可以把用户从复杂烦琐的数学计算中解放出来,提高了求解速度,保证了求解精度。
第五篇:平面连杆机构教学设计
平面连杆机构教学设计
赵县职教中心
翟伟波
[教材分析]平面连杆机构能以简单的结构实现复杂的运动规律,而且更以其独特可靠的低副联接形式,倍受广大机械设计人员的瞩目。其在工业、农业、冶金、化工、纺织、食品等机械中的应用实例不胜枚举。如此重要的教学内容,只有探寻一种形式新颖、方法独特的教学方法,才能收到良好的教学效果。
[教学对象分析]
机械制造专业的学生,普遍存在机械常识匮乏与对现实机械现象的有视无睹,该现象严重阻碍了专业课教学的进程和效果。教师在教学过程中,应充分考虑学生的现实情况,采取有效措施,让学生建立机械意识,以思维理念的变化架起理论与实践相结合的桥梁。
[对教师的要求]
教师在熟练掌握教材的基础上,善于运用生活中饶有兴趣的机械现象导入新课,巧妙地制造悬念,激发学生学习新知识的强烈愿望。教师要发挥主导作用,精心设计教学过程,为学生创造一个学习、发现、探索、创造的情境。教师要正确引导学生思维,让学生积极主动地做到理论与实践相结合。
一、教学目标:
知道:铰链四杆机构的组成。掌握:铰链四杆机构曲柄存在的条件。熟悉:铰链四杆机构三种基本形式的形成条件。
二、教学重点、难点: 铰链四杆机构曲柄存在的条件。铰链四杆机构三种基本形式的形成条件。
三、教学方法: 诱趣探求,思维探索。
四、教具:
投影仪和屏幕、软质细杆:6cm(1根)、10cm(1根)、15cm(1根)、18cm(1根)、50cm(8根)、大头针(若干枚)、小刀(8把)
五、教学过程:
(一)提出问题、引发思维、诱趣探求 导入语:同学们都观看过现场直播的电视节目,在这样的节目当中,摄影师最不想让观众看到的图像是什么?(稍顿)
学生回答:
1、质量不好的画面。
2、灯光不好、有阴影的画面。
3、表演出现 错误的画面。
(一一否定、加强悬念,诱发求知欲)是电视画面中出现摄影架的镜头。摄影师要想把多角度、多层次的电视画面呈现在观众面前,这要归功于摄影机的驱动架。究竟驱动架采用了什么样的结构设计,能够让摄影师随心所欲,运动自如,诀窍就在四根小小的杆件上,下面我们来做一个模拟设计。
(二)示范操作,发展思维
[策略分析] 对于铰链四杆机构曲柄存在条件这一重要知识点的学习,传统的教学方法是根据三角形二边之和大于第三边的理论进行不等式的数学推导,其过程繁琐而刻板,效果欠佳。如果利用教具演示与思维点拨相结合的教学方法,学生会在宽松的课堂气氛中获得非常直观的感性知识,既突破难点,又发展了学生思维。
取出四根杆件(6cm,10cm,15cm,18cm),用大头针组成平面连杆机构。分别以四根杆件为机架,演示并引导学生观察两个连架杆的运动情况.平面连杆机构定义,类型(板书)测量四根杆件的长度并让学生做记录,计算最短杆与最长杆长度之和与其余两杆长度之和的关系.引导学生探求曲柄存在条件 曲柄存在条件(板书).出示投影:铰链四杆机构三种基本形式:曲柄摇杆机构,双曲柄机构,双摇杆机构的形成条件.(三)动手设计
深化思维
[策略分析] 该程序是“思维探索型”教学方法的中心环节,学生感性认识形成以后,要分组进行设计。在设计过程中,充分发挥其主观能动性,边设计,边思考,既巩固了理论知识,又提高了动手能力,从而实现感性知识上升为理性知识,达到理论与实践有效结合。分组:32人,4人/组,共8组,由动手能力强的学生担任组长,发挥骨干作用。组长领取设计材料:软质细杆1根,大头针若干,小刀一把。分配设计任务。
(1,2)组
曲柄摇杆机构(3,4)组
双曲柄机构(5,6)组
双摇杆机构 最长杆+最短杆≤其余两杆长度之和。以最短杆的相对杆为机架。
(7,8)组
双摇杆机构:最长杆+最短杆〉其余两杆长度之和。巡回指导,及时解答学生疑问并纠正设计过程中的错误操作。每组选派一人,表述设计思路,展示设计成果。
(四)探索创新,升华思维
[策略分析]通过展示设计成果,学生心中普遍产生一种成就感,自然的心理倾向是学有所用,此时教师要善于捕捉学生心理,适时提问:究竟谁的设计成果能应用在摄影机的驱动机构上?课堂气氛再度活跃,既升华学生思维,又能达到首尾呼应,探索创新的目的。提问:究竟谁的设计成果能应用在摄影机的驱动机构上?
引导学生进行小组讨论。总结发言:指出应为双摇杆机构。课堂小结:网络知识体系。
教学反馈:自由研读教材当中列举的应用实例。布置作业:P118:3、4、5、6、7、8
附:板书设计:平面连杆机构
一、平面连杆机构
3、基本类型 1、定义、特点
(1)曲柄摇杆机构 2、类型
条件:
二、铰链四杆机构:
(2)双曲柄机构 1、组成 条件: 2、曲柄存在条件
(3)双摇杆机构(1)
条件:(2)