以图示六杆机构为例,已知构件1的运动,确定机构中其它构件的运动(包括位移、速度、加速度)

参考书籍:《机械原理matlab辅助设计》

一.建立数学模型

对六杆机构进行运动分析时,可以将其拆分成两个四杆机构,采用封闭矢量多边形法求解。首先建立机构封闭位置矢量方程式,之后对位置方程求一次导和二次导得到其速度和加速度方程,求解即可。

二.程序设计框图

每个平面连杆机构运动分析MATLAB程序都由主程序和子函数两部分组成,其程序设计流程如下图。

三.确立数学解析式

为了对机构进行运动分析,以A为原点建立直角坐标系,并将各构件表示为杆矢。假设x轴正方向为水平向右,分别代表杆1,2,4,5与X轴正方向的距离(变量命名详见函数注释)。

1.位置分析

如图所示,由封闭图形ABCA可写出机构各杆矢所构成的封闭矢量方程

将矢量方程分别投影到x轴和y轴可得

同理写出封闭图形CDEC各杆矢所构成的封闭矢量方程,联立可得六杆机构位置方程。

2.速度分析

将位置矢量方程对时间t求一次导数, 得速度关系

若用矩阵形式来表示,则上式可写为

求解可得角速度w2和滑块速度v3。

3. 加速度分析

将式(1-2)对时间t求二次导数,可得加速度关系表达式

同理,加速度矩阵方程如下

求解可得角加速度a2和滑块加速度a3。

由封闭图形CDEC可写出机构各杆矢所构成的封闭矢量方程,位置分析、速度分析与加速度分析同理;联立两个四杆机构分析方程即可解出机构中每一构件的运动。

四.matlab程序分析

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

% 调用fsolve函数求解位移方程
function f=pos_6(theta,theta1,length1,length2,length4,length5,L1,L2)
f(1)=length1*cos(theta1)+length2*cos(theta(1))-theta(4);
f(2)=length1*sin(theta1)+length2*sin(theta(1));
f(3)=length4*cos(theta(2))+length5*cos(theta(3))-L1+theta(4);
f(4)=length5*sin(theta(3))+length4*sin(theta(2))-L2;
end
% theta1、theta2、theta4、theta5分别代表杆1,2,4,5与X轴正方向的距离
% omega2、omega4、omega5代表杆2,4,5的角速度
% length3表示滑块3和A点的距离
% velocity表示滑块3的线速度
% alpha_line表示滑块3的加速度
% theta2=theta(1);
% theta4=theta(2);
% theta5=theta(3);
% length3=theta(4);

这里我采用的是matlab用来求解非线性方程组的fsolve函数,求解原理就是利用最小二乘法解方程组。其中fsolve返回值为函数的解,pos_6是用于定义需求解的非线性方程组的函数文件名,X0是求根过程的初值,options为最优化工具箱的选项设定。Display选项决定函数调用时中间结果的显示方式,其中off为不显示,optimset(‘Display’,‘off’)将设定Display选项为off其中初值X0的取值。

function [theta,omega,alpha] = analysis_data_6(theta1,omega1,alpha1,length1,length2,length4,length5,L1,L2)
options=optimset('display','off');
x0=[-1,0,1,100];
theta=fsolve(@pos_6,x0,options,theta1,length1,length2,length4,length5,L1,L2);
% theta=theta.';   % 矩阵转置
theta2=theta(1);
theta4=theta(2);
theta5=theta(3);
length3=theta(4);% 计算角速度 omega
A=[-length2*cos(theta2),0,0,0;0,(length4)*sin(theta4),(length5)*sin(theta5),-1;0,length4*cos(theta4),length5*cos(theta5),0;-(length2)*sin(theta2),0,0,-1];
B=[length1*cos(theta1);0;0;(length1)*sin(theta1)];
omega = A\(B*omega1);
omega2 = omega(1);
omega4 = omega(2);
omega5 = omega(3);
velocity = omega(4);   % 滑块3的线速度% 计算角加速度alpha
A1 = [length2*cos(theta2),0,0,0;0,length4*sin(theta4),length5*sin(theta5),-1;0,length4*cos(theta4),length5*cos(theta5),0;-length2*sin(theta2),0,0,-1];
At = [-omega2*length2*sin(theta2),0,0,0;0,omega4*length4*cos(theta4),omega5*length5*cos(theta5),0;0,-omega4*length4*sin(theta4),-omega5*length5*sin(theta5),0;-omega2*length2*cos(theta2),0,0,0];
Bt = [omega1*length1*sin(theta1);0;0;omega1*length1*cos(theta1)];
alpha = A1\(-At*omega+omega1*Bt);
end

主程序如下

length1=0.025;
length2=0.071;
length4=0.038;
length5=0.030;
L1=0.1;
L2=0.04;
omega1 = 10;
alpha1 = 0;
hd = pi/180;
du = 180/pi;%调用函数计算六杆机构的位移、速度、加速度
for n1 = 1:361theta1 = (n1-1)*hd;        % 将角度转换为弧度制[theta,omega,alpha] = analysis_data_6(theta1,omega1,alpha1,length1,length2,length4,length5,L1,L2);theta2(n1) = theta(1);        % 杆2的角位移theta4(n1) = theta(2);        % 杆4的角位移theta5(n1) = theta(3);        % 杆5的角位移length3(n1) = theta(4);omega2(n1) = omega(1);        % 杆2的角速度omega4(n1) = omega(2);        % 杆4的角速度omega5(n1) = omega(3);        % 杆5的角位移velocity(n1) = omega(4);alpha2(n1) = alpha(1);    % 杆2的角加速度alpha4(n1) = alpha(2);    % 杆4的角加速度alpha5(n1) = alpha(3);  % 杆5的角加速度alpha_line(n1) = alpha(4);
endn1 = 1:361; % 绘制图像subplot(2,2,1);
plot(n1,theta2,n1,theta4,n1,theta5,'k');    % 杆2、杆4、杆5随角度变化
xlabel('曲柄转角 \theta1/\circ');
ylabel('角位移/\circ');
legend('theta2','theta4','theta5');
grid on;
hold on;
% 以构件5的分析为例
subplot(2,2,2);
% plot(n1,(theta5-theta5(1))*length5,'k');    % 杆5角位移随角度变化
plot(n1,theta5*du,'k');    % 杆5角位移随角度变化
xlabel('曲柄转角 \theta1/\circ');
ylabel('角位移/\circ');
legend('theta5');
grid on;
hold on;subplot(2,2,3);     % 杆5角速度变化
plot(n1,omega5,'k');
xlabel('曲柄转角 \theta1/\circ');
ylabel('角速度/ rad\cdots^{-1}');
legend('w5');
grid on;
hold on;subplot(2,2,4);     %杆5角加速度变化
plot(n1,alpha5,'k');
xlabel('曲柄转角 \theta1/\circ');
ylabel('角加速度/ m\cdots^{-1}');
legend('a5');
grid on;
hold on;

运行结果如下图

最后做了一个机构运动仿真模拟六杆机构的运动

j=0;
for n1= 1:5:360
clf;
j=j+1;
x(1)=0;
y(1)=0;
x(2)=length1* cos((n1 - 1)*hd);
y(2)=length1* sin((n1 - 1)*hd);
x(3)=length3(n1);
y(3)=0;
x(4)=length3(n1)+length4*cos(theta4(n1));
y(4)=length4*sin(theta4(n1));
x(5)=L1;
y(5)=L2;
x(6)=0;
y(6)=0;
plot(x,y);
grid on;hold on;
plot(x(1),y(1),'o');
plot(x(2),y(2),'o');
plot(x(3),y(3),'o');
plot(x(4),y(4),'o');
plot(x(5),y(5),'o');
plot(x(6),y(6),'o');
axis([-0.05 0.14,-0.05 0.14]);
xlabel('mm');
ylabel('mm');
m(j) = getframe;        %getframe函数的作用是捕获坐标区或图窗作为影片帧。
%     f(:,j)=getframe;
end
movie(m);

仿真结果就不上传了,主要是没整明白怎么上传动图

matlab六杆机构运动分析相关推荐

  1. matlab 运动分析,实验二基于matlab的运动分析

    实验二基于matlab的运动分析 实验二 基于 Matlab 的运动分析目的:1.掌握利用 Matlab 求解状态转移矩阵的方法:2.掌握利用 Matlab 求解系统的各种时间响应的方法.相关命令:利 ...

  2. aws 安全组 acl_对AWS安全组和网络ACL进行故障排除时应了解的知识

    aws 安全组 acl AWS网络 (AWS Networking) If you have been working on AWS for some time, either managing in ...

  3. 加加速度matlab,关于加加速度的若干机械运动分析及MATLAB模拟

    收稿日期:2004 - 04 - 06 基金项目:遵义师范学院科研基金资助项目(2003012) 作者简介:董水金(1946 -) ,男 ,江苏无锡人 ,遵义师范学院物理系副教授 ,主要从事电子技术和 ...

  4. 平面四杆机构+一种六杆机构求解(汽车扰流板)+Matlab动画制作(附完整源码)

    文章目录 一.平面四杆机构的求解 方法一:几何法 方法二:数值解 二.一种六杆机构求解--汽车扰流板设计 E点的求解 F点的求解 G点的求解 J点的求解 H点的求解 运动学分析 项目地址 三.动画的绘 ...

  5. MATLAB仿真 铰链四连杆运动分析,曲柄摇杆,四连杆机构,曲柄+RRR杆组组成,曲线分析

    MATLAB仿真 铰链四连杆运动分析,曲柄摇杆,四连杆机构,曲柄+RRR杆组组成,曲线分析,增加位移速度加速度曲线分析 ID:6699672621482314起床码MATLAB

  6. 用matlab分析时间响应教程,基于Matlab的多自由度耦合滑移模型的动力响应可靠度分析...

    Hi~我是mania 参考资料: (1)基于耦合滑移模型的岩体地震可靠性分析方法 (3)结构可靠度分析:方法与程序 简化模型及运动平衡方程 如下图1所示的多层隔震建筑,当受到地震作用时每层结构体都会产 ...

  7. matlab nurbs闭合曲面,nurbs_toolbox Matlab 非均匀有理B样条函数,能生成B 曲线和曲面 238万源代码下载- www.pudn.com...

    文件名称: nurbs_toolbox下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 37 KB 上传时间: 2014-11-05 下载次数: 7 提 供 者 ...

  8. 牛头刨机械原理matlab代码

    报告链接:https://www.cnblogs.com/zhou1106/p/13398663.html 下载链接:https://download.csdn.net/download/RONNIE ...

  9. 背景扣除matlab_基于背景减法的目标检测在Matlab中的实现方法

    云 南 大 学 学 报 ( 自 然 科 学 版 ) , 2009, 31 ( S2) : 59 - 61 CN 53 - 1045 /N I SSN 0258 - 7971 Journa l of Y ...

最新文章

  1. qt能使用logback_使用ELK系统分析SpringBoot日志
  2. SQL 关于apply的两种形式cross apply 和 outer apply
  3. FreeBSD基金会添加新成员,梁莉成为第一位来自微软和中国的基金会董事
  4. Ubuntu Server下配置UTF-8中文/英文环境
  5. elasticsearch常见属性单词解释
  6. Apache Kafka-通过设置Consumer Group实现广播模式
  7. 使用RMAN验证备份的有效性
  8. xmx java_为什么我的Java进程比Xmx消耗更多的内存?
  9. 下载丨7月数据库技术通讯:LINUX OS配置问题导致数据库重启
  10. Windows Mobile 开发系列文章收藏 - Windows Mobile 6.x
  11. python网络爬虫爬取视频_Python网络爬虫——爬取小视频网站源视频!自己偷偷看哦!...
  12. BZOJ1345 [Baltic2007]序列问题Sequence
  13. CodeForces - 589B
  14. JAVA计算机毕业设计宠物店管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
  15. 【gp数据库】十条实用数据库SQL优化建议
  16. win10 应用商店打不开解决
  17. Vue Mapbox-GL 在地图中增加图标、线条、标记点击弹窗、地图平移
  18. BottomNavigationView与Navigation使用
  19. php /x20有啥用,什么才是逆光摄影 用了全面屏vivo X20恍然大悟
  20. 响应式织梦模板齿轮设备类网站

热门文章

  1. 一个在线音乐软件的故事(一、故事的由来)
  2. NC过程中遇到中文转拼音问题
  3. 孝心至上自强不息南阳何志强感动济源
  4. 如何利用迅雷下载百度云
  5. 服务器查看硬盘状态在哪里看,hpacucli查看HP服务器硬盘状态
  6. 中国培训师竞争力排行榜获奖名单
  7. 123我爱你计算机音谱大全,抖音123我爱你尤克里里琴谱 123我爱你简谱
  8. Linux启动lumerical服务,Lumerical 2016a build 736 WinLinuxMac
  9. rviz可视化点云_rviz三维可视化平台的使用
  10. 村田 IMU SCC2000系列芯片驱动