【MATLAB】铰链四杆机构运动分析(GUI设计)

您所在的位置:网站首页 matlab已知正切求角度 【MATLAB】铰链四杆机构运动分析(GUI设计)

【MATLAB】铰链四杆机构运动分析(GUI设计)

2023-06-16 01:26| 来源: 网络整理| 查看: 265

机械原理MATLAB辅助分析

平面机构运动分析,就是按照已知的起始构建运动规律来确定机构中其他构件的运动,具体任务如下:

1、求构件的位置

2、求构件的速度

3、求构件的加速度

一、数学模型的建立

平面连杆机构属于闭环机构,在用解析法进行机构运动分析时,采用封闭矢量多边形法求解较为方便,首先建立机构封闭矢量方程式,然后对时间进行求导得到速度方程,对时间求二阶导数得到加速度方程。

二、程序设计

子函数的任务是求解机构在某一位置时,各构件的位移、速度和加速度;主程序的任务是求机构在一个工作循环内各构件的位移、速度和加速度的变化规律,并用线图表示出来。同时进行机构运动仿真。

三、数学解析式的分析

(参考书籍《机械原理MATLAB辅助分析》)

四、例题分析

四杆的图形如上图片,假设杆1的长度为101.6mm,杆2的长度为254mm,杆3的长度为177.8mm,杆4的长度为304.8mm,原动件1以匀角速度w1 = 250 rad/s 逆时针转动,进行分析:

子程序的分析如下:

function [theta,omega,alpha] = analysis_data(theta1,omega1,alpha1,length1,length2,length3,length4) % analysis_data 通过现有的数据,计算得出杆的位移、速度、加速度 % Author by Mat丶 % theta 角位移 % omega 角速度 % alpha 加速度 % theta1 主动杆1和x轴方向的夹角 % omega1 主动杆的 匀角速度 % length1 杆1的长度 % length2 杆2的长度 % length3 杆3的长度 % length4 杆4的长度 %% %计算角位移 theta2 和 theta3 %构建辅助线 guide_line guide_line = sqrt((length1^2)+(length4^2)-(2*length1*length4*(cos(theta1)))); %构建辅助角 guide_angle_1 = asin((length1./guide_line)*sin(theta1)); guide_angle_2 = acos(((guide_line^2)+(length3^2)-(length2^2))/(2*guide_line*length3)); if guide_angle_2 < 0 guide_angle_2 = guide_angle_2 + pi; end theta3 = pi - guide_angle_1 - guide_angle_2; theta2 = asin((length3*sin(theta3)-length1*sin(theta1))/length2); %可得到角位移 theta = [theta2;theta3]; %% %计算角速度 omega A = [-length2*sin(theta2),length3*sin(theta3); length2*cos(theta2),-length3*cos(theta3)]; B = [length1*sin(theta1); -length1*cos(theta1)]; omega = A\(omega1*B); %修改 %经计算可分别得到 杆2的角速度 omega2,和杆3的角速度 omega3 omega2 = omega(1); omega3 = omega(2); %% %计算从动件的角加速度 alpha A = [-length2*sin(theta2),length3*sin(theta3); length2*cos(theta2),-length3*cos(theta3)]; At = [-1*omega2*length2*cos(theta2),omega3*length3*cos(theta3); -1*omega2*length2*sin(theta2),omega3*length3*sin(theta3)]; B = [length1*sin(theta1); -length1*cos(theta1)]; %机构原动件参数 Bt = [omega1*length1*cos(theta1); omega1*length1*sin(theta1)]; alpha = A\(-At*omega+omega1*Bt+alpha1*B); %修改

创建的GUI界面如下:

因为是要创建GUI,在这里我们考虑以下情况

1、对 edit 获取的内容进行判断(是否为数字)

2、能否构建四杆运动机构

四杆机构又分为曲柄摇杆机构、双曲柄摇杆机构、双摇杆机构,对于双摇杆机构,需要考虑多种情况,在这里就不进行分析讨论了,有兴趣的可以参考该文献。

刘庆, 李春明, 刘晓, 等. 曲柄摇杆机构和双摇杆机构的瞬心线解析法研究 [J]. 应用科技, 2021, 48(1): 93–97. LIU Qing, LI Chun-ming, LIU Xiao, et al. Analytic method for instantaneous velocity center line of a crank-rocker and birocker mechanism[J]. Applied science and technology, 2021, 48(1): 93–97.  

针对1,我们做出以下措施:

if(isempty(temp1)||isempty(temp2)||isempty(temp3)||isempty(temp4)||isempty(temp5))     set(handles.edit6,'String','Error!请输入完整的数据!');     clearAxes(handles);     return; end     %如果用户在获取数据的图框内输入了非数字类型的数据,则提示用户输入正常的 数字类型的数据     %根据输入是 ‘字符’,则str2double()函数返回NaN     % 在利用isnana()函数,进行判断即可     % isnan() 函数:查询目标元素中是否包含NaN值, if(isnan(length1)||isnan(length2)||isnan(length3)||isnan(length4)||isnan(omega1))     set(handles.edit7,'String','Error!请输入非字符的数值!');     clearAxes(handles);     return; end

针对2,我们做出以下措施:

function num = isEstablish(length1,length2,length3,length4) % 周转副存在的条件 % Author by Mat丶 % 最短杆长度+最短杆长度


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3