MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)
基于matlab的四杆机构运动分析
基于matlab的四杆机构运动分析一、四杆机构基本概念四杆机构是一种通过变换连杆长度,改变机构运动形态的机械系统。
四杆机构通常由固定连杆、推动连杆、连接杆和工作连杆四个连杆组成,其中固定连杆和推动连杆固定不动,连接杆和工作连杆则沿固定轴线的方向做平动或旋转运动。
四杆机构的基本构造如下图所示:四杆机构的四个连杆的长度和构造参数,以及驱动机构的运动决定了机构的运动特性。
在进行四杆机构运动分析时,需要通过求解运动学关系式和动力学方程,得到连杆的运动规律和力学特性。
二、四杆机构运动学分析1.运动学基本方程四杆机构的运动学分析基本方程是连杆长度变化的定理,即:l₁²+l₂²-2l₁l₂cosθ₂=l₃²+l₄²-2l₃l₄cosθ₄其中,l₁,l₂分别为固定连杆和推动连杆长度;l₃,l₄分别为连接杆和工作连杆长度;θ₂,θ₄分别为推动连杆和工作连杆的夹角。
2.运动学求解方法根据四杆机构运动学基本方程,可以求解机构中任意连杆的角度和位置,从而分析机构运动规律。
在matlab程序中,运动分析可以采用分析法或图解法。
分析法通常采用向量法或坐标法,即将四杆机构中各连杆和运动副的运动量表示为向量或坐标,然后根据连杆长度变化的定理,求解四个未知角度θ₁、θ₂、θ₃、θ₄。
图解法则先通过画图确定机构的运动规律,在图上求解连杆的角度。
比如可以采用伯格(Bourgeois)图法或恰普利恩(Chaplygin)图法等。
四杆机构动力学分析基本方程包括平衡方程和力平衡方程。
平衡方程:当四杆机构处于平衡状态时,连杆的受力关系可以表示为:ΣF=0其中ΣF为各连杆受力的合力。
ΣF=m×a其中,m为每个连杆的质量,a为连杆的加速度。
四杆机构动力学求解方法以matlab为工具,可借助matlab的求解器完成求解。
具体可以利用matlab的优化工具箱、控制工具箱和系统动态学工具箱等,来实现机构模型的动态模拟、仿真和优化设计。
matlab4节点杆单元计算
篇下载MATLAB4节点杆单元计算在工程结构分析领域中,节点杆单元是一种常用的有限元分析方法。
它通过将结构划分成多个小单元,然后对每个小单元进行力学分析,最终得出整个结构的受力情况。
MATLAB作为一种强大的工程计算工具,被广泛应用于结构分析中。
本文将介绍如何利用MATLAB进行4节点杆单元计算,并提供相应的代码实例。
1. 理论背景在进行4节点杆单元计算之前,首先需要了解节点杆单元的基本理论。
节点杆单元是将结构划分为多个杆件,并在每个节点处考虑位移和受力。
通过分析每个杆件的受力平衡和位移关系,可以得出整个结构的受力和变形情况。
4节点杆单元是其中的一种常用的单元类型,它由4个节点和2个杆件组成,可以用来模拟各种不同形状和受力情况的结构。
2. MATLAB实现在MATLAB中,可以利用有限元分析工具箱进行4节点杆单元计算。
首先需要定义结构的几何形状和材料性质,并将其转化为有限元模型。
然后可以利用有限元分析工具箱提供的函数进行网格划分和边界条件设置。
接下来可以利用求解器进行结构的力学分析,并得出节点的位移和受力情况。
最后可以利用MATLAB的绘图工具对结果进行可视化展示。
3. 代码实例下面是一个简单的MATLAB代码实例,演示了如何利用有限元分析工具箱进行4节点杆单元计算:```matlab定义结构的几何形状和材料性质L = 1; 结构的长度A = 1; 结构的横截面积E = 1; 结构的弹性模量定义节点坐标node = [0, 0; 0, L; L, L; L, 0];定义单元节点关系element = [1, 2; 2, 3; 3, 4; 4, 1];网格划分和边界条件设置model = createpde();geometryFromEdges(model,(p)struct('p',p','e',[]),(p)ones(size(p,2 ),1));generateMesh(model);结构的力学分析structuralProperties(model,'YoungsModulus',E,'PoissonsRatio',0); structuralBC(model,'Edge',1,'Constraint','fixed');节点的位移和受力情况result = solve(model);可视化展示pdeplot(model,'XYData',result.displacement,'Deformation','on'); ```4. 结论通过以上代码实例,可以看到利用MATLAB进行4节点杆单元计算是非常简单和高效的。
基于matlab的平面四杆机构动态仿真
基于matlab的平⾯四杆机构动态仿真摘要:本⽂基于matlab 强⼤的数值计算功能,借助fsolve 函数,建⽴了⼀个平⾯四杆机构模型,并对此进⾏运动仿真,为平⾯四杆机构的尺⼨优化设计和运动分析提供了⼀条简单实⽤的捷径。
关键词:平⾯四杆机构 matlab fsolve 函数1 背景介绍平⾯四连杆机构是⼯程应⽤中使⽤⼴泛的机械结构。
如果知道相应尺⼨下杆件的运动轨迹,速度⼤⼩,对整个机构的优化设计有重要作⽤。
Matlab 具有强⼤的科学计算机数据处理能⼒,出⾊的图形处理功能,且程序语⾔简单。
基于以上叙述,本⽂⾸先设计了平⾯四杆机构的各连杆参数,然后在matlab 环境下运⽤⽜顿-⾟普顿算法,使⽤fsolve 函数快速实现了运动仿真并以图形的形式将其运动情况显⽰了出来。
2 平⾯四杆机构的运动仿真2.1 ⽤matlab 进⾏⾓位移分析平⾯四杆机构如右图所⽰,4l 为机架,1l 为摇杆,2l 为连杆,3l 为摆杆,设杆长分别为20,mm50mm 35mm,60mm.,摇杆与机架夹⾓1?θ=,连杆与⽔平线夹⾓2δθ=,摇杆与机架夹⾓3ψθ=,且初始⾓度00o ?=,1θ⾓速度为10/rad s ω=。
则可将问题转化为,已知1θ的运动状态,求23,θθ。
由铰链四杆机构复向量坐标,可以写出⾓位移⽅程3121243j j j l e l e l l e θθθ+=+将上式展开,整理的1231122433223112233(,)cos cos cos (,)sin sin sin f l l l l f l l l θθθθθθθθθθ=+--=+-??由上式可知,在1θ给定的情况下建⽴了⼀个⼆元⽅程,通过matlab 联⽴⽅程组可求解出23,θθ。
2.1 ⽤matlab 进⾏⾓速度分析⽤matlab 进⾏速度分析对上式进⾏求导并整理成矩阵形式为1211223312233113sin()sin()sin()cos()cos()cos()l l l l l l θθθθθθθθθ-??-=-运动仿真的实现为了求得23,θθ,可调⽤matlabf 中fsolve 函数。
基于matlab的平面四连杆机构设计以及该机构的运动分析参考模板
基于matlab的平面四连杆机构设计以及该机构的运动仿真分析摘要四连杆机构因其结构方便灵活,能够传递动力并实现多种运动形式而被广泛应用于各个领域,因此对其进行运动分析具有重要的意义。
传统的分析方法主要应用几何综合法和解析综合法,几何综合法简单直观,但是精确度较低;解析法精确度较高,但是计算工作量大。
随着计算机辅助数值解法的发展,特别是MATLAB软件的引入,解析法已经得到了广泛的应用。
对于四连杆的运动分析,若应用MATLAB 则需要大量的编程,因此我们引入proe软件,我们不仅可以在此软件中建立实物图,而且还可以对其进行运动仿真并对其运动分析。
在设计四连杆时,我们利用解析综合法建立数学模型,再根据数学模型在MATLAB中编程可以求得其他杆件的长度。
针对范例中所求得的各连杆的长度,我们在proe软件中画出其三维图(如图4)并在proe软件中进行仿真分析得出CB,的角加速度的变化,从而得到CB,两接触处所受到的力是成周期性变化的,可以看出CB,两点处的疲劳断裂,我们提B,两点处极易疲劳断裂,针对C出了在设计四连杆中的一些建议。
关键字:解析法 MATLAB 软件 proe 软件 运动仿真建立用解析法设计平面四杆机构模型对于问题中所给出的连架杆AB 的三个位置与连架杆CD 的三个位置相对应,即三组对应位置为:332211,,,,,ψϕψϕψϕ,其中他们对应的值分别为: 52,45,82,90,112,135,为了便于写代数式,可作出AB 与CD 对应的关系,其图如下:图—2 AB 与CD 三个位置对应的关系通过上图我们可以通过建立平面直角坐标系并利用解析法来求解,其直角坐标系图如下:φααi θi φi图—3 平面机构直角坐标系通过建立直角坐标系OXY ,如上图所示,其中0α与0φ为AB 杆与CD 杆的初始角,各杆件的长度分别用矢量d c b a ,,,,表示,将各矢量分别在X 轴与Y 轴上投影的方程为⎩⎨⎧=++=+)sin(*)sin(*)sin(*)cos(*)cos(*)cos(*φθαφθαc b a c d b a在上述的方程中我们可以消除θ,从而可以得到α与φ之间的关系如下:)cos(2)cos(2)cos(2)(2222αφαφab ac cd b d c a +-=+-++ (1) 为便于化简以及matlab 编程我们可以令:⎪⎪⎪⎩⎪⎪⎪⎨⎧==-++=c d H a d H ac b d c a H 32222212 (2) 通过将(2)式代入(1)式中则可以化简得到如下等式: )cos()cos()cos(321αφαφH H H +-=+ (3)我们可以通过(3)式将两连架杆对应的位置带入(3)式中,我们可以得到如下方程:⎪⎩⎪⎨⎧+-=++-=++-=+)cos()cos()cos()cos()cos()cos()cos()cos()cos(333332123222211311121ϕψϕψϕψϕψϕψϕψH H H H H H H H H (4) 联立(4)方程组我们可以求得321,,H H H ,再根据(2)中的条件以及所给定的机架d 的长度,我们可以求出其它杆件的长度为:⎪⎪⎪⎩⎪⎪⎪⎨⎧-++===1222322acH d c a b H d c H d a (5)四连杆设计范例:在日常生活中,我们经常看到消防门总能自动关上,其实它是利用四连杆机构与弹簧组成的。
基于MATLAB给定连杆预定位置的四杆机构设计
第14卷第2期2019年6月Vol.14No.2Jun.2019陕西工业职业技术学院学报Journal of Shaanxi Polytechnic Institute基于MATLAB给定连杆预定位置的四杆机构设计韩二豹(陕西工业职业技术学院土木工程学院,陕西咸阳712000)摘要:连杆机构是一种典型的机械机构,运动设计是一个比较复杂和困难的问题,给定连杆预定位置的四杆机构的设计常用的设计方法主要为解析法。
本文以MATLAB语言为基础,利用计算机对给定连杆预定位置的四杆机构进行设计。
结果表明,此方法设计过程简洁,结果合理,准确,效率高。
关键词:四杆机构;MATLAB;预定位置中图分类号:TB121文献标识码:A文章编号=9459-2019(2)-0006-03A MATLAB-based Design of Four-bar Linkage with PresetPosition of Connecting RodHan Erbao(School of Civil Engineering,Shaanxi Polytechnic Institute,Xianyang Shaanxi712000,China)Abstract:Connecting rod is a typical mechanical linkage and its motion design is complex and ually, analytical method is the main method used in the design of four一bar linkage with preset position of connecting rod. In the study,a MATLAB一based design of four bar mechanism was made to link the preset position given by com・puter.The results show that the design process is simple Key words:Four bar linkage;MATLAB;Preset positiono引言MATLAB是一种高级技术语言和发展环境,特提供了一个人机交互的系统环境,并以矩阵作为基础的数据结构,节省编程时间,语法简单、容易掌握、调试方便,可以设置调试断点、快速查找程序错误等优点,可以将使用者从繁重重复的计算中解脱出来,已经被大家认可和广泛使用,充分展现其高效、直观、简单的特点⑷。
MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)
%MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)clear;clc;%凡是变量名前带v的为数值变量,不带的是符号变量vxp1=0; vyp1=0; vsita1=0*pi/180;vxp2=-2; vyp2=6; vsita2=40*pi/180;vxp3=-10; vyp3=8; vsita3=90*pi/180; %精确位置P1,P2,P3及各角度vsita12=vsita2-vsita1;vsita13=vsita3-vsita1;vxa=-10; vya=-2;vxd=-5; vyd=-2; %选定A,D点%所有数值均在此确定,更改此处即可解出不同数值的四杆机构位移矩阵方程syms xp1 yp1 xp2 yp2 xp3 yp3 sita12 sita13;syms xa ya xb1 yb1 xb2 yb2 xb3 yb3;f1='(xb2-xa)^2+(yb2-ya)^2=(xb1-xa)^2+(yb1-ya)^2';f2='(xb3-xa)^2+(yb3-ya)^2=(xb1-xa)^2+(yb1-ya)^2'; %前两个机构方程f3='xb2=cos(sita12)*xb1-sin(sita12)*yb1+xp2-xp1*cos(sita12)+yp1*sin(sita12)';f4='yb2=sin(sita12)*xb1+cos(sita12)*yb1+yp2-xp1*sin(sita12)-yp1*cos(sita12)'; %由第一个位移矩阵方程得出f5='xb3=cos(sita13)*xb1-sin(sita13)*yb1+xp3-xp1*cos(sita13)+yp1*sin(sita13)';f6='yb3=sin(sita13)*xb1+cos(sita13)*yb1+yp3-xp1*sin(sita13)-yp1*cos(sita13)'; %由第二个位移矩阵方程得出f1=subs(f1,{xa,ya},{vxa,vya});f2=subs(f2,{xa,ya},{vxa,vya});f3=subs(f3,{xp1,xp2,yp1,sita12},{vxp1,vxp2,vyp1,vsita12});f4=subs(f4,{xp1,yp1,yp2,sita12},{vxp1,vyp1,vyp2,vsita12});f5=subs(f5,{xp1,xp3,yp1,sita13},{vxp1,vxp3,vyp1,vsita13});f6=subs(f6,{xp1,yp1,yp3,sita13},{vxp1,vyp1,vyp3,vsita13}); %代入具体数值[xb1,xb2,xb3,yb1,yb2,yb3]=solve(f1,f2,f3,f4,f5,f6); %解方程vxb1=vpa(xb1);vyb1=vpa(yb1);vxb2=vpa(xb2);vyb2=vpa(yb2);vxb3=vpa(xb3);vyb3=vpa(yb3);(vxb1-vxa)^2+(vyb1-vya)^2;(vxb2-vxa)^2+(vyb2-vya)^2;(vxb3-vxa)^2+(vyb3-vya)^2; %去掉这三行分号可验证B点三个位置是否距离A点相等syms xd yd xc1 yc1 xc2 yc2 xc3 yc3;f7='(xc2-xd)^2+(yc2-yd)^2=(xc1-xd)^2+(yc1-yd)^2';f8='(xc3-xd)^2+(yc3-yd)^2=(xc1-xd)^2+(yc1-yd)^2'; %前两个机构方程f9='xc2=cos(sita12)*xc1-sin(sita12)*yc1+xp2-xp1*cos(sita12)+yp1*sin(sita12)';f10='yc2=sin(sita12)*xc1+cos(sita12)*yc1+yp2-xp1*sin(sita12)-yp1*cos(sita12)'; %由第一个位移矩阵方程得出f11='xc3=cos(sita13)*xc1-sin(sita13)*yc1+xp3-xp1*cos(sita13)+yp1*sin(sita13)';f12='yc3=sin(sita13)*xc1+cos(sita13)*yc1+yp3-xp1*sin(sita13)-yp1*cos(sita13)'; %由第二个位移矩阵方程得出f7=subs(f7,{xd,yd},{vxd,vyd});f8=subs(f8,{xd,yd},{vxd,vyd});f9=subs(f9,{xp1,xp2,yp1,sita12},{vxp1,vxp2,vyp1,vsita12});f10=subs(f10,{xp1,yp1,yp2,sita12},{vxp1,vyp1,vyp2,vsita12});f11=subs(f11,{xp1,xp3,yp1,sita13},{vxp1,vxp3,vyp1,vsita13});f12=subs(f12,{xp1,yp1,yp3,sita13},{vxp1,vyp1,vyp3,vsita13}); %代入具体数值[xc1,xc2,xc3,yc1,yc2,yc3]=solve(f7,f8,f9,f10,f11,f12); %解方程vxc1=vpa(xc1);vyc1=vpa(yc1);vxc2=vpa(xc2);vyc2=vpa(yc2);vxc3=vpa(xc3);vyc3=vpa(yc3);(vxc1-vxd)^2+(vyc1-vyd)^2;(vxc2-vxd)^2+(vyc2-vyd)^2;(vxc3-vxd)^2+(vyc3-vyd)^2; %去掉这三行分号可验证C点三个位置是否距离D点相等%最终答案xb1,yb1,xc1,yc1Lab=sqrt((vxb1-vxa)^2+(vyb1-vya)^2)Lbc=sqrt((vxb1-vxc1)^2+(vyb1-vyc1)^2)Lcd=sqrt((vxc1-vxd)^2+(vyc1-vyd)^2)Lad=sqrt((vxa-vxd)^2+(vya-vyd)^2) %得到四杆长'曲柄存在条件:'%得出四杆长后计算得到'可靠到位条件:'[vxc1-vxb1,vyc1-vyb1]*[vxc1-vxd,vyc1-vyd]'[vxc2-vxb2,vyc2-vyb2]*[vxc2-vxd,vyc2-vyd]'[vxc3-vxb3,vyc3-vyb3]*[vxc3-vxd,vyc3-vyd]''顺序到位条件:'%未完成输出结果:xb1 =(-7-4*sin(2/9*pi)+4*cos(2/9*pi))/(4*cos(2/9*pi)+4*sin(2/9*pi)-5)yb1 =-1xc1 =-6*(27+24*sin(2/9*pi)-64*cos(2/9*pi))/(-31*cos(2/9*pi)-5+39*sin(2/9*pi))yc1 =-2*(72*cos(2/9*pi)-175+192*sin(2/9*pi))/(-31*cos(2/9*pi)-5+39*sin(2/9*pi))Lab =1.0288436025165976748172169832223Lbc =2.9872531417317691216303250912289Lcd =6.9831476545729886023199865357226Lad =5ans =曲柄存在条件:ans =可靠到位条件:ans =14.605219997928496422368168445525ans =19.799913716084881287517588922012ans =20.814756669957613005391246805307ans =顺序到位条件:。
运用MATLAB解决四杆机构问题
MATLAB 解题1.设有如图所示四杆机构,其中→R 4为机架(常矢),→R1为主动杆,→R3为从动杆,→R 2为连杆。
设在某一工作位置时各杆的角速度和角加速度分别取如下值:ω1=20 rad/s, ε1= 0;ω2=8.5 rad/s, ε2=-10 rad /s 2;ω3=13 rad/s, ε3=-160rad /s 2.试根据上述要求确定该机构尺寸比。
根据图(2),回路闭合方程可写为:→R 1 +→R 2 +→R 3=-→R 4 回路闭合方程对时间求导一次,利用(6)式,可得: 图2 ω1→R 1 +ω2→R 2 +ω3→R 3 = 0回路闭合方程对时间求导两次,利用(7)式,可得c 1→R 1 + c 2 →R 2 + c 3→R 3 = 0其中 c 1=ε1+j ω12 , c 2=ε2+j ω22, c 3=ε3+j ω32解关于→R 1 ,→R 2 和→R 3的线性方程组:⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡→→→001111321321321R R R c c c ωωω→R 4 (13) 可得 →R 1=DDx →R 4, →R 2=DDy →R 4 , →R 3=DDz →R 4注意到上述解中含有相同的分母D,它是一个复数,不妨记为D =k<j α|,被它除的效果是把各杆的长度都缩小k 倍,同时方向都顺时针旋转α角,相当于机构不动,坐标轴逆时针旋转α角。
设计机构时,重要的是机构的形状与尺寸比例。
基于这种考虑,可设→R 4 / D =1,则有→R 1=D x =32320111c c ωω-=1230-j497.3 ; →R 2= D y =311030111c c ωω-=-3200-j1820 ; →R 3= D z =001112121c c ωω-=200+j1955 . 于是:→R 4 = -(→R 1 +→R 2+→R 3) = 1770+j362.3在坐标系上作出上述各杆矢量图,根据各杆矢量图作出机构的闭合矢量图,再根据实际需要选定某一杆长度,其它各杆长度按图比例相似放大。
应用MATLAB解决四杆机构角位移和角速度
本科毕业设计(论文)通过答辩本科毕业设计(论文)通过答辩优秀论文设计,答辩无忧,值得下载!优秀论文设计,答辩无忧,值得下载!应用MATLAB 解决四杆机构角位移和角速度学院:学院:班级:班级:姓名:姓名:学号:学号:题 干:已知曲柄摇杆机构的四杆长度为L1=304.8mm ,L2=101.6mm, L3=254.0mm,L4=177.8mm.曲柄角速度ω2=250rad/s,试用M 文件编写程序计算连杆3和摇杆4的角位移,3q ,4q ,角速度3w ,4w ,并绘制出运动曲线。
机构如下图。
线。
机构如下图。
错误!未指定主题。
求解方法及公式:对于四杆机构存在如下公式:对于四杆机构存在如下公式:闭环矢量方程:4132r r r r +=+写成角位移方程的分量式:写成角位移方程的分量式:)cos()cos()cos()cos(44113322q q q q r r r r +=+)sin()sin()sin()sin(44113322q q q q r r r r +=+求解角位移方法利用牛顿---辛普森公式辛普森公式 将分量式写成如下形式:将分量式写成如下形式:()0)sin()sin()sin()sin(,44113322432=--+=q q q q q q r r r r f⑴()0)cos()cos()cos()cos(,44113322431=--+=q q q q q q r r r r f从示意图可知杆1角位移恒为0,设曲柄2初始角位移为0。
对于连杆3,和摇杆4的角位移表示为预计值与微小修正因子之和。
表示如下:的角位移表示为预计值与微小修正因子之和。
表示如下:3'33q J q D +=4'44q J q D += 将上式按泰勒级数展开,去掉高次项得到如下公式:将上式按泰勒级数展开,去掉高次项得到如下公式:()4'4'3413'4'331'4'31,q q q q q q q q q q D ´¶¶+D ´¶¶+f f f =0()4'4'3423'4'332'4'32,q q q q q q q q q q D ´¶¶+D ´¶¶+f f f =0将上式写成矩阵形式:将上式写成矩阵形式:()'4'32,q q f '4'341'4'331,q q q q q q ¶¶¶¶f f3q D '3q += ()'4'32,q q f'4'342'4'332,q q q q q q ¶¶¶¶f f 4q D '4q利用矩阵求出连杆3和摇杆4的微小修正因子,将修正因子与预计值相加求出角位移,将求出的角位移带入⑴中,看是否满足函数值足够小。
matlab_矩阵位移法编程_结构力学
矩阵位移法编程大作业一、编制原理本程序的原理是基于结构力学矩阵位移法原理,以结构结点位移作基本未知量,将要分析的结构拆成已知节点力—结点力位移关系的单跨梁集合,通过强令结构发生待定的基本未知位移,在各个单跨梁受力分析结果的基础上通过保证结构平衡建立位移法的线性方程组,从而求得基本未知量。
二、程序说明本程序是计算3层11跨框架右侧结点的位移和弯矩的程序,编译过程是按照矩阵位移法的先处理法进行的。
首先将结构杆件的交汇点作为结点,共有36个结点和108个位移编号,然后根据梁、柱、斜杆的不同分别建立单元刚度矩阵,然后转换为整体坐标系下的刚度矩阵,然后将所有杆件的单元刚度矩阵整合成为总体刚度矩阵,在进行整合时连续运用for函数,最终形成108阶的总体刚度矩阵。
然后通过对荷载的分析自己确定出荷载矩阵,直接写进程序。
这样就可以把36个结点的108个位移求得,然后再利用各个单元的单元刚度矩阵和所得的位移求得单元杆件的内力。
离散化编号如下图:三、算法流程结构离散化编号单元分析建立梁、柱、斜杆的局部坐标系下的单元刚度矩阵确定梁、柱、斜杆在整体坐标系下的刚度矩阵先处理法把各个杆件的单元刚度矩阵整合成总体刚度矩阵确定综合结点荷载矩阵建立方程,求解位移利用杆件单元刚度矩阵和所求位移求内力四、源代码%结构力学大作业 3层11跨框架矩阵位移法编程王贝 091210211h=input('输入单层高h:');L=input('输入单跨度L:');EIc=input('输入柱子的抗弯刚度EIc:');EAc=input('输入柱子的抗压刚度EAc:');EIb=input('输入梁的抗弯刚度EIb:');EAb=input('输入梁的抗压刚度EAb:');EIo=input('输入斜杆的抗弯刚度EIo:');EAo=input('输入斜杆的抗压刚度EAo:');q=input('输入侧向均布荷载集度q:');T1=[1,0,0,0,0,0;0,1,0,0,0,0;0,0,1,0,0,0;0,0,0,1,0,0;0,0,0,0,1,0;0,0,0,0,0,1];%角度为0°的转换矩阵T2=[0,1,0,0,0,0;-1,0,0,0,0,0;0,0,1,0,0,0;0,0,0,0,1,0;0,0,0,-1,0,0;0,0,0,0,0,1];%角度为90°的转换矩阵x=atan(h/L);T=[cos(x),sin(x),0,0,0,0;-sin(x),cos(x),0,0,0,0;0,0,1,0,0,0;0,0,0,cos(x),sin(x),0;0,0,0,-sin(x),cos(x),0;0,0,0,0,0,1];%斜杆的转换矩阵T3=T;%梁的单元刚度矩阵kb0=[EAb/L 0 0 -EAb/L 0 0;0 12*EIb/(L*L*L) 6*EIb/(L*L) 0 -12*EIb/(L*L*L) 6*EIb/(L*L);0 6*EIb/(L*L) 4*EIb/L 0 -6*EIb/(L*L) 2*EIb/L;-EAb/L 0 0 EAb/L 0 0;0 -12*EIb/(L*L*L) -6*EIb/(L*L) 0 12*EIb/(L*L*L) -6*EIb/(L*L);0 6*EIb/(L*L) 2*EIb/L 0 -6*EIb/(L*L) 4*EIb/L];%柱子的单元刚度矩阵kc0=[EAc/h 0 0 -EAc/h 0 0;0 12*EIc/(h*h*h) 6*EIc/(h*h) 0 -12*EIc/(h*h*h) 6*EIc/(h*h);0 6*EIc/(h*h) 4*EIc/h 0 -6*EIc/(h*h) 2*EIc/h;-EAc/h 0 0 EAc/h 0 0;0 -12*EIc/(h*h*h) -6*EIc/(h*h) 0 12*EIc/(h*h*h) -6*EIc/(h*h);0 6*EIc/(h*h) 2*EIc/h 0 -6*EIc/(h*h) 4*EIc/h;];%斜杆的单元刚度矩阵H=sqrt(h*h+L*L);ko0=[EAo/H 0 0 -EAo/H 0 0;0 12*EIo/(H*H*H) 6*EIo/(H*H) 0 -12*EIo/(H*H*H) 6*EIo/(H*H);0 6*EIo/(H*H) 4*EIo/H 0 -6*EIo/(H*H) 2*EIo/H;-EAo/H 0 0 EAo/H 0 0;0 -12*EIo/(H*H*H) -6*EIo/(H*H) 0 12*EIo/(H*H*H) -6*EIo/(H*H);0 6*EIo/(H*H) 2*EIo/H 0 -6*EIo/(H*H) 4*EIo/H];kb=T1'*kb0*T1;%总体坐标下梁的单元刚度矩阵kc=T2'*kc0*T2;%总体坐标下柱子的单元刚度矩阵ko=T3'*ko0*T3;%总体坐标斜杆的单元刚度矩阵X=zeros(108,108);Y=zeros(108,108);Z=zeros(108,108);%定义108阶0矩阵K1=zeros(108,108);K2=zeros(108,108);K3=zeros(108,108);K4=zeros(108,108);K5=zeros(108,108);K6=zeros(108,108);K7=zeros(108,108);K8=zeros(108,108);K9=zeros(108,108);%把梁杆单元矩阵整合到总体刚度矩阵的循环语句for ii=1:11X(3*ii-2:3*ii+3,3*ii-2:3*ii+3)=kb;K1=K1+X;X=zeros(108,108);endfor ii=13:23Y(3*ii-2:3*ii+3,3*ii-2:3*ii+3)=kb;K1=K1+Y;Y=zeros(108,108);endfor ii=25:35Z(3*ii-2:3*ii+3,3*ii-2:3*ii+3)=kb;K1=K1+Z;Z=zeros(108,108);end%把柱杆单元矩阵整合到总体刚度矩阵的循环语句for jj=1:36K2(3*jj-2:3*jj,3*jj-2:3*jj)=kc(4:6,4:6);endfor jj=1:24K3(3*jj-2:3*jj,3*jj-2:3*jj)=kc(1:3,1:3);endfor jj=1:24K4(3*jj-2:3*jj,3*jj+34:3*jj+36)=kc(1:3,4:6);endfor jj=1:24K5(3*jj+34:3*jj+36,3*jj-2:3*jj)=kc(4:6,1:3);end%把斜杆杆单元矩阵整合到总体刚度矩阵的循环语句for gg=3:12:27K6(3*gg-2:3*gg,3*gg-2:3*gg)=ko(4:6,4:6);endfor gg=2:12:14K7(3*gg-2:3*gg,3*gg-2:3*gg)=ko(1:3,1:3);endfor gg=2:12:14K8(3*gg-2:3*gg,3*gg+37:3*gg+39)=ko(1:3,4:6);endfor gg=2:12:14K9(3*gg+37:3*gg+39,3*gg-2:3*gg)=ko(4:6,1:3);endK=K1+K2+K3+K4+K5+K6+K7+K8+K9;%总体刚度矩阵P=zeros(108,1);P(1,1)=h*q;P(37,1)=h*q;P(73,1)=h*q/2;P(75,1)=q*h*h/12; A=K\P;%结构位移B1=kb*A(103:108,1);B2=kb*A(67:72,1);B3=kb*A(31:36,1);D1=zeros(6,1);D1(1:3,1)=A(70:72,1);D1(4:6,1)=A(106:108,1);D2=zeros(6,1);D2(1:3,1)=A(34:36,1);D2(4:6,1)=A(70:72,1);C1=kc*D1;C2=kc*D2;C3=kc(4:6,4:6)*A(34:36,1);M1(1,1)=B1(6,1);M2(1,1)=C1(6,1);M3(1,1)=B2(6,1);M4(1,1)=C2(6,1);M5(1,1)=C1(3,1);M6(1,1)=B3(6,1);M7(1,1)=C3(3,1);M8(1,1)=C2(3,1);for i=1:3m=36*i-2;fprintf('第%d层最右侧节点的位移是%d\n',i,A(m,1))endfprintf('第1层最右侧节点左侧杆的弯矩是%f\n',M6)fprintf('第1层最右侧节点下侧杆的弯矩是%f\n',M7)fprintf('第1层最右侧节点上侧杆的弯矩是%f\n',M8)fprintf('第2层最右侧节点左侧杆的弯矩是%f\n',M3)fprintf('第2层最右侧节点下侧杆的弯矩是%f\n',M4)fprintf('第2层最右侧节点上侧杆的弯矩是%f\n',M5)fprintf('第3层最右侧节点左侧杆的弯矩是%f\n',M1)fprintf('第3层最右侧节点下侧杆的弯矩是%f\n',M2)五、试算算例输入数据:输入单层高h:1输入单跨度L:1输入柱子的抗弯刚度EIc:1输入柱子的抗压刚度EAc:1输入梁的抗弯刚度EIb:1输入梁的抗压刚度EAb:1输入斜杆的抗弯刚度EIo:1输入斜杆的抗压刚度EAo:1输入侧向均布荷载集度q:1计算结果:第1层最右侧节点的位移是-6.219850e-003 第2层最右侧节点的位移是-2.152659e-002第3层最右侧节点的位移是-4.131873e-002第1层最右侧节点左侧杆的弯矩是0.000729第1层最右侧节点下侧杆的弯矩是0.008642第1层最右侧节点上侧杆的弯矩是-0.009371第2层最右侧节点左侧杆的弯矩是0.000074第2层最右侧节点下侧杆的弯矩是0.004158第2层最右侧节点上侧杆的弯矩是-0.004232第3层最右侧节点左侧杆的弯矩是-0.000761第3层最右侧节点下侧杆的弯矩是0.000761。
matlab四杆机构源程序
1.角位移M函数:function y=jweiyi(x)% Input parameters% x(1)=theta-1% x(2)=theta-2 guess value% x(3)=theta-3 guess value% x(4)=r1% x(5)=r2% x(6)=r3% x(7)=r4% Output parameters% y(1)=theta-2% y(2)=theta-3theta2=x(2);theta3=x(3);%epsilon=1.0E-6;%f=[x(4)*cos(x(1))+x(5)*cos(theta2)-x(7)-x(6)*cos(theta3);x(4)*sin(x(1))+x(5)*sin(theta2)-x(6)*sin(theta3)];%while norm(f)>epsilonJ=[-x(5)*sin(theta2) x(6)*sin(theta3);x(5)*cos(theta2) -x(6)*cos(theta3)];dth=inv(J)*(-1.0*f);theta2=theta2+dth(1);theta3=theta3+dth(2);f=[x(4)*cos(x(1))+x(5)*cos(theta2)-x(7)-x(6)*cos(theta3);x(4)*sin(x(1))+x(5)*sin(theta2)-x(6)*sin(theta3)];norm(f);end;y(1)=theta2;y(2)=theta3;2. r1旋转360°时,θ2,θ3的M文件程序:r(1)=50;r(2)=150;r(3)=300;r(4)=400;dr=pi/180;th(1)=0;th(2)=58.4119*dr;th(3)=154.7912*dr;y=jweiyi([th(1),th(2),th(3),r(1),r(2),r(3),r(4)])dth=1*dr;for i=1:360y=jweiyi([th(1),th(2),th(3),r(1),r(2),r(3),r(4)]);th23(i,:)=[th(1)/dr,th(2)/dr,th(3)/dr];th(1)=th(1)+dth;th(2)=y(1);th(3)=y(2);endfigure(1)plot(th23(:,1),th23(:,2),th23(:,1),th23(:,3),th23(:,1),th23(:,1)) axis([0,360,0,360])grid ontitle('角位移线图')xlabel('曲柄转角th(1)')ylabel('从动件转角th(2),th(3)')text(300,50,'角th(2)')text(300,150,'角th(3)')text(200,200,'角th(1)')3.角速度的M函数:function y=rrrvel(x)% Input parameters%% x(1)=theta-1% x(2)=theta-2% x(3)=theta-3% x(4)=dtheta-1% x(5)=r1% x(6)=r2% x(7)=r3%% Output parameters%% y(1)=dtheta-2% y(2)=dtheta-3%A=[-x(6)*sin(x(2)) x(7)*sin(x(3));x(6)*cos(x(2)) -x(7)*cos(x(3))];B=[x(5)*sin(x(1));-x(5)*cos(x(1))]*x(4);y=inv(A)*B;4. r1旋转360°时ω2,ω3的M文件程序:th(1)=0;dr=pi/180;dth(1)=36;dth(2)=58.4119*dr;dth(3)=154.7912*dr;dth1=1*dr;r(1)=50;r(2)=150;r(3)=300;r(4)=400;for j=1:360x=rrrvel([th(1),dth(2),dth(3),dth(1),r(1),r(2),r(3)]);y=jweiyi([th(1),dth(2),dth(3),r(1),r(2),r(3),r(4)]);dth(2)=y(1);dth(3)=y(2);th(1)=th(1)+dth1;dth23(j,:)=[th(1)/dr,x(1)/dr,x(2)/dr];endfigure(2)plot(dth23(:,1),dth23(:,2),dth23(:,1),dth23(:,3))axis([0,360,-800,2000])grid ontitle('角速度线图')xlabel('曲柄旋转角度')ylabel('从动件角速度dth(2),dth(3)(rad/s)')text(250,200,'连杆2角速度')text(50,100,'摇杆3角速度')5. r1旋转360°时,α2,α3程序M文件:r(1)=50;r(2)=150;r(3)=300;r(4)=400;th(1)=0;dr=pi/180;dth(2)=58.4119*dr;dth(3)=154.7912*dr;dth(1)=36;dth2=1*dr;for k=1:360x=rrrvel([th(1),dth(2),dth(3),dth(1),r(1),r(2),r(3)]);y=jweiyi([th(1),dth(2),dth(3),r(1),r(2),r(3),r(4)]);dth(2)=y(1);dth(3)=y(2);w1=x(1);w2=x(2);C=[-r(2)*sin(dth(2)),r(3)*sin(dth(3));r(2)*cos(dth(2)),-r(3)*cos(dth(3))];D=-[-w1*r(2)*cos(dth(2)),w2*r(3)*cos(dth(3));-w2*r(2)*sin(dth(2)),w2*r(3)*sin(dth(3))]*[w1;w 2]+10*[10*r(1)*cos(th(1));10*r(1)*sin(th(1))];a=inv(C)*D;a2(k)=a(1);a3(k)=a(2);jiao(k)=th(1);th(1)=th(1)+dth2;endfigure(3)plot(jiao/dr,a2,jiao/dr,a3)axis([0,360,-5000,5000])grid ontitle('角加速度线图')xlabel('曲柄旋转转角')ylabel('从动件角加速度(rad/s^2)')text(200,40,'连杆2的角加速度')text(150,-40,'摇杆3的角加速度')。
matlab矩阵位移法
matlab矩阵位移法
其中,`k11, k12, k13`等表示刚度矩阵的元素,`f1, f2, f3`表示外部载荷矩阵的元素,`b1, b2, b3`表示位移边界矩阵的元素。`U`即为求解得到的节点位移。
需要根据具体的结构和问题进行相应的刚度矩阵、外部载荷矩阵和位移边界矩阵的定义和 计算。
2. 外部载荷矩阵:将外部施加在结构上的载荷按照节点自由度的顺序组合起来,得到外部 载荷矩阵。
matlab矩阵位移法
3. 位移边界条件:根据结构的边界条件,将位移边界条件转化为位移边界矩阵。
4. 静力平衡方程:根据静力平衡方程,可以得到结构的位移方程。将结构刚度矩阵、外部 载荷矩阵和位移边界矩阵代入位移方程,得到一个线性方程组。
5. 解线性方程组:通过求解线性方程组,可以得到结构的节点位移。
在MATLAB中,可以使用矩阵运算和线性方程组求解函数来实现矩阵位移法。以下是一个 简单的示例:
matlab矩阵位移法
假设有一个简单的梁结构,其刚度矩阵为K,外部载荷矩阵为F,位移边界矩阵为B。可以 通过以下代码求解结构的节点位移:
```matlab % 定义刚度矩阵K、外部载荷矩阵F和位移边界矩阵B K = [k11, k12, k13; k21, k22, k23; k31, k32, k33]; % 刚度矩阵 F = [f1; f2; f3]; % 外部载荷矩阵 B = [b1; b2; b3]; % 位移边界矩阵 % 解线性方程组,得到节点位移 U = K \ (F - B); ```
matlab矩阵位移法
在MATLAB中,矩阵位移法(Matrix Displacement Method)是一种用于求解结构静力 平衡的方法,常用于结构力学和有限元分析中。矩阵位移法基于以下原理:
基于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,以此类推。
基于matlab GUI的平面四杆机构的运动分析
基于matlab GUI的平面四杆机构的运动分析一、目的通过matlab对平面四杆机构进行运动仿真,并以GUI界面方式实现输入输出的参数化,对平面四杆机构进行位置分析、速度分析、加速度分析和静力学分析。
此外,通过动画演示,更加形象直观地观察机构的运动过程。
最后,将程序编译成.exe独立可执行文件,可以在其它没有安装matlab的机器上运行。
二、设计思路通过matlab的GUI功能模块,创建一个图形用户界面,在自动生成的代码框架中对初始化函数和回调函数等进行编辑,建立与控件相关联的程序:控件属性、位置分析、速度分析、加速度分析、静力学分析、动画演示等。
图1是平面四杆机构的示意图,输入角q的运动规律为q=pi/50*t^2+q0,r1、r2是从动角。
对t时刻沿着杆长距离原点A的任意一点进行分析。
注意:输入输出角的单位为度,时间t的取值范围为0:0.05:10,任意点lx的取值范围为0~a1+a2+a3,估算的从动角r1、r2的迭代初始值不能偏离平衡位置太大。
图1、平面四杆机构示意图三、设计流程1、通过GUI模块创建图形用户界面命令方式:在Matlab命令窗口键入>>guide;菜单方式:在Matlab的主窗口中,选择File>New>GUI命令,就会显示GUI的设计模板。
如图1所示。
图2、创建图形界面2、设计图形界面在创建之后的图形界面中插入坐标轴axes,静态文本框static text,编辑文本框edit text,按钮push button等等。
如图所示。
图3、图形界面设计3、编辑回调函数1)位置分析:输入角的函数为:q=pi/50*t^2+q0。
在时间t=0~10s内,每一个时间点估算两个初始从动角,根据牛顿-拉普森迭代得到准确的机构位置。
10s刚好主动角经历了360度,记录每一时刻的位置,便可以动画演示。
2)速度分析:输入角速度为:dq=pi/25*t。
选择杆件上的任意一点(坐标表示为质点沿着杆件到原点A的距离)做分析,正确表达出角速度系数和速度系数,便可以求出质点的速度。
用matlab分析四杆机构
⽤matlab分析四杆机构⾸先创建函数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,L4th2=[0:1/6:2]*pi; %曲柄输⼊⾓度从0⾄360度,步长为pi/6th34=zeros(length(th2),2); %建⽴⼀个N⾏2列的零矩阵,第⼀列存放options=optimset('display','off'); %θ_3,第⼆列存放θ_3 for m=1:length(th2) %建⽴for循环,求解θ_3,θ_4th34(m,:)=fsolve('fourbarposition',[1 1],…%调⽤fsove函数求解关于θ_3,θ_4options,th2(m),L2,L3,L4,L1); %的⾮线性超越⽅程,结果保存在th34中endy=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);endfigure(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);endfigure(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)')gridxlabel('主动件转⾓\theta_2(度)')ylabel('从动件⾓速度(rad\cdot 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);endfigure(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)')gridxlabel('从动件⾓加速度')ylabel('从动件⾓加速度(rad\cdot s^{-2})')title('⾓加速度线图')disp '曲柄转⾓连杆转⾓-摇杆转⾓-连杆⾓速度-摇杆⾓速度-连杆加速度-摇杆加速度' ydcs=[th2'*180/pi,th34(:,1)*180/pi,th34(:,2)*180/pi,w3',w4',a3',a4'];disp(ydcs)>> * * * * * * 平⾯四杆机构的运动分析* * * * * *曲柄转⾓连杆转⾓-摇杆转⾓-连杆⾓速度-摇杆⾓速度-连杆加速度-摇杆加速度1.0e+004 *0 0.0044 0.0097 -0.0125 -0.0125 -0.5478 4.84580.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.01131.33282.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.0133 -0.0006 0.0147 1.1404 -0.6481 0.0135 0.0012 0.0136 -0.0002 0.0145 1.2544 -0.9455 0.0140 0.0012 0.0139 0.0002 0.0141 1.3967 -1.2743 0.0145 0.0012 0.0142 0.0008 0.0136 1.5677 -1.63680.0150 0.0012 0.0144 0.0013 0.0129 1.7648 -2.0314 0.0155 0.0012 0.0147 0.0020 0.0121 1.9807 -2.4495 0.0160 0.0013 0.0149 0.0027 0.0112 2.2018 -2.8735 0.0165 0.0013 0.0151 0.0035 0.0101 2.4071 -3.2754 0.0170 0.0014 0.0153 0.0044 0.0089 2.5697 -3.6186 0.0175 0.0015 0.0155 0.0053 0.0076 2.6616 -3.8650 0.0180 0.0016 0.0156 0.0063 0.0063 2.6609 -3.9849 0.0185 0.0018 0.0157 0.0072 0.0049 2.5591 -3.9674 0.0190 0.0019 0.0158 0.0080 0.0035 2.3638 -3.8244 0.0195 0.0021 0.0159 0.0088 0.0022 2.0959 -3.5866 0.0200 0.0023 0.0159 0.0095 0.0010 1.7823 -3.2931 0.0205 0.0025 0.0159 0.0100 -0.0001 1.4487 -2.9815 0.0210 0.0027 0.0159 0.0105 -0.0011 1.1152 -2.6809 0.0215 0.0029 0.0159 0.0108 -0.0020 0.7942 -2.4103 0.0220 0.0031 0.0158 0.0111 -0.0028 0.4916 -2.1794 0.0225 0.0033 0.0158 0.0112 -0.0035 0.2086 -1.9913 0.0230 0.0036 0.0157 0.0112 -0.0042 -0.0565 -1.8450 0.0235 0.0038 0.0156 0.0111 -0.0048 -0.3071 -1.7375 0.0240 0.0040 0.0155 0.0110 -0.0054 -0.5475 -1.6650 0.0245 0.0042 0.0154 0.0108 -0.0060 -0.7817 -1.6233 0.0250 0.0044 0.0153 0.0104 -0.0065 -1.0139 -1.6089 0.0255 0.0046 0.0151 0.0100 -0.0071 -1.2479 -1.6181 0.0260 0.0048 0.0150 0.0096 -0.0077 -1.4868 -1.6480 0.0265 0.0050 0.0148 0.0090 -0.0082 -1.7336 -1.6955 0.0270 0.0052 0.0146 0.0084 -0.0088 -1.9905 -1.7574 0.0275 0.0054 0.0145 0.0076 -0.0095 -2.2588 -1.8304 0.0280 0.0055 0.0143 0.0068 -0.0101 -2.5391 -1.9100 0.0285 0.0056 0.0141 0.0058 -0.0108 -2.8305 -1.9910 0.0290 0.0057 0.0138 0.0048 -0.0115 -3.1300 -2.06600.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的⼏个位置点图4 ⾓加速度线图图5 ⾓加速度线图。
基于matlab的4连杆机构设计
基于matlab的4连杆机构设计第一篇:基于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 机构运动分析的任务、目的和方法曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
基于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,以此类推。
基于MATLAB实现平面四杆机构运动仿真
文章编号:1002-6886(2005)04-0050-03基于M AT LAB 实现平面四杆机构运动仿真王静文,刘舜尧,莫江涛(中南大学机电工程学院,湖南 长沙 410083) 作者简介:王静文(1977—),女,中南大学机电工程学院硕士研究生。
收稿日期:2005-3-18摘要:本文利用MAT LAB 软件实现平面四杆机构及其演化形式的运动仿真,为平面四杆机构的设计与分析提供一条便捷的途径。
关键词:平面四杆机构 运动仿真 MAT LABK i n e ma ti c S i m ul a ti on of Pl anar Four 2bar M echan is m Ba sed on M AT LABW ANG J i n g 2wen,L I U Shun 2rao,MO J i a ng 2t aoAbstract:This paper focus on the kine matic si m ulati on of p lanar four 2bar mechanis m and its evoluti ons with s oft w are MAT LAB ,which give another efficaci ous way f or the design and analysis of p lanar f our 2bar mechanis m.Key words:p lanar four 2bar mechanis m;kine matic si m ulati on;MAT LAB1 前言平面四杆机构是一类工程中广泛使用的典型运动机构,它的运动分析是机构学中典型的机构运动分析之一。
如果设计平面四杆机构时能及时图示其运动轨迹,从而将图示结果与设计要求相比较,可以使设计者及时修改设计中的偏差,提高设计效率。
目前,MAT LAB 已成为国际上最流行的科学与工程计算软件,它在国内外高校和科研部门正扮演着越来越重要的角色,功能也越来越强大。
matlab四杆机构优化算法
matlab四杆机构优化算法四杆机构是机械工程中常用的一种机构,广泛应用于机械传动、机械臂以及其他工程领域。
四杆机构由四个连杆组成,其中两个连杆为主动连杆,另外两个连杆为从动连杆。
四杆机构的运动特性和性能对于机械系统的设计和优化具有重要意义。
本文将介绍一种基于Matlab的四杆机构优化算法,以提高机构的运动性能和效率。
需要明确优化算法的目标。
在四杆机构的优化中,常见的目标包括最小化机构的运动误差、最大化机构的工作范围、最小化机构的能量消耗等。
根据具体应用的需求,可以选择不同的优化目标。
本文以最小化机构的运动误差为例进行讨论。
在四杆机构中,运动误差是指机构在理想情况下应有的运动轨迹与实际运动轨迹之间的差异。
运动误差的大小直接影响到机构的精度和稳定性。
为了最小化运动误差,可以采用以下步骤进行优化。
需要建立四杆机构的运动学模型。
四杆机构的运动学模型描述了机构各个连杆之间的几何关系和运动规律。
根据四杆机构的结构和运动约束条件,可以建立四杆机构的运动学方程。
在Matlab中,可以利用符号运算工具箱求解运动学方程。
需要确定优化的变量和约束条件。
四杆机构的运动性能受到各个连杆的长度、角度等参数的影响。
在优化中,可以将这些参数作为优化的变量,通过调整这些变量来最小化运动误差。
同时,还需要考虑到机构的实际制造和使用条件,设置相应的约束条件,如连杆长度的范围、运动角度的限制等。
接下来,可以采用优化算法对四杆机构进行优化。
常用的优化算法包括遗传算法、粒子群算法、模拟退火算法等。
这些算法可以在给定的变量范围内搜索最优解,通过迭代的方式逐步优化机构的运动性能。
在Matlab中,可以利用优化工具箱中的相应函数进行优化计算。
需要对优化结果进行评估和验证。
优化算法得到的结果可能并不是唯一的最优解,因此需要对优化结果进行评估,判断其是否满足设计要求。
可以通过仿真和实验验证的方式对优化结果进行验证,进一步改进和优化机构的设计。
基于Matlab的四杆机构优化算法可以帮助改善机构的运动性能和效率。
VC++调用MATLAB引擎实现可视化综合三位置铰链四杆机构的方法
VC++调用MATLAB引擎实现可视化综合三位置铰链四杆机
构的方法
李振华;徐学林;高自成
【期刊名称】《林业机械与木工设备》
【年(卷),期】2006(34)11
【摘要】介绍了在VC++中调用MATIAB引擎步骤.利用MATLAB强大的数值计算功能和数据可视化能力进行综合过程可视化,并绘出连杆轨迹曲线和机构传动角曲线图,从而缩短了程序的开发周期.该方法操作简单,交互性强,非常方便设计人员对机构的综合.并给出了具体计算实例.
【总页数】3页(P32-34)
【作者】李振华;徐学林;高自成
【作者单位】中南林业科技大学,湖南,长沙,410004;中南林业科技大学,湖南,长沙,410004;中南林业科技大学,湖南,长沙,410004
【正文语种】中文
【中图分类】TS6
【相关文献】
1.基于调用MATLAB引擎的数值模拟可视化实现 [J], 聂万胜;庞建国;陈新华;庄逢辰
2.VC++调用Matlab实现斜拉桥可视化调索软件的方法及其应用 [J], 李明;张宇峰
3.FORTRAN程序调用MATLAB引擎实现计算可视化 [J], 聂万胜;庄逢辰;黄玲;邹勤
4.四位置铰链四杆机构综合与分析的可视化软件系统 [J], 谭晓兰;韩建友;陈立周
5.用数值比较法实现平面四杆机构的函数综合——平面四杆机构综合可视化方法之
一 [J], 王知行;褚悦
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
%MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)
clear;clc;
%凡是变量名前带v的为数值变量,不带的是符号变量
vxp1=0; vyp1=0; vsita1=0*pi/180;
vxp2=-2; vyp2=6; vsita2=40*pi/180;
vxp3=-10; vyp3=8; vsita3=90*pi/180; %精确位置P1,P2,P3及各角度
vsita12=vsita2-vsita1;
vsita13=vsita3-vsita1;
vxa=-10; vya=-2;
vxd=-5; vyd=-2; %选定A,D点
%所有数值均在此确定,更改此处即可解出不同数值的四杆机构位移矩阵方程
syms xp1 yp1 xp2 yp2 xp3 yp3 sita12 sita13;
syms xa ya xb1 yb1 xb2 yb2 xb3 yb3;
f1='(xb2-xa)^2+(yb2-ya)^2=(xb1-xa)^2+(yb1-ya)^2';
f2='(xb3-xa)^2+(yb3-ya)^2=(xb1-xa)^2+(yb1-ya)^2'; %前两个机构方程
f3='xb2=cos(sita12)*xb1-sin(sita12)*yb1+xp2-xp1*cos(sita12)+yp1*sin(sita12)';
f4='yb2=sin(sita12)*xb1+cos(sita12)*yb1+yp2-xp1*sin(sita12)-yp1*cos(sita12)'; %由第一个位移矩阵方程得出
f5='xb3=cos(sita13)*xb1-sin(sita13)*yb1+xp3-xp1*cos(sita13)+yp1*sin(sita13)';
f6='yb3=sin(sita13)*xb1+cos(sita13)*yb1+yp3-xp1*sin(sita13)-yp1*cos(sita13)'; %由第二个位移矩阵方程得出
f1=subs(f1,{xa,ya},{vxa,vya});
f2=subs(f2,{xa,ya},{vxa,vya});
f3=subs(f3,{xp1,xp2,yp1,sita12},{vxp1,vxp2,vyp1,vsita12});
f4=subs(f4,{xp1,yp1,yp2,sita12},{vxp1,vyp1,vyp2,vsita12});
f5=subs(f5,{xp1,xp3,yp1,sita13},{vxp1,vxp3,vyp1,vsita13});
f6=subs(f6,{xp1,yp1,yp3,sita13},{vxp1,vyp1,vyp3,vsita13}); %代入具体数值
[xb1,xb2,xb3,yb1,yb2,yb3]=solve(f1,f2,f3,f4,f5,f6); %解方程
vxb1=vpa(xb1);
vyb1=vpa(yb1);
vxb2=vpa(xb2);
vyb2=vpa(yb2);
vxb3=vpa(xb3);
vyb3=vpa(yb3);
(vxb1-vxa)^2+(vyb1-vya)^2;
(vxb2-vxa)^2+(vyb2-vya)^2;
(vxb3-vxa)^2+(vyb3-vya)^2; %去掉这三行分号可验证B点三个位置是否距离A点相等
syms xd yd xc1 yc1 xc2 yc2 xc3 yc3;
f7='(xc2-xd)^2+(yc2-yd)^2=(xc1-xd)^2+(yc1-yd)^2';
f8='(xc3-xd)^2+(yc3-yd)^2=(xc1-xd)^2+(yc1-yd)^2'; %前两个机构方程
f9='xc2=cos(sita12)*xc1-sin(sita12)*yc1+xp2-xp1*cos(sita12)+yp1*sin(sita12)';
f10='yc2=sin(sita12)*xc1+cos(sita12)*yc1+yp2-xp1*sin(sita12)-yp1*cos(sita12)'; %由第一个位移矩阵方程得出
f11='xc3=cos(sita13)*xc1-sin(sita13)*yc1+xp3-xp1*cos(sita13)+yp1*sin(sita13)';
f12='yc3=sin(sita13)*xc1+cos(sita13)*yc1+yp3-xp1*sin(sita13)-yp1*cos(sita13)'; %由第二个位移矩阵方程得出
f7=subs(f7,{xd,yd},{vxd,vyd});
f8=subs(f8,{xd,yd},{vxd,vyd});
f9=subs(f9,{xp1,xp2,yp1,sita12},{vxp1,vxp2,vyp1,vsita12});
f10=subs(f10,{xp1,yp1,yp2,sita12},{vxp1,vyp1,vyp2,vsita12});
f11=subs(f11,{xp1,xp3,yp1,sita13},{vxp1,vxp3,vyp1,vsita13});
f12=subs(f12,{xp1,yp1,yp3,sita13},{vxp1,vyp1,vyp3,vsita13}); %代入具体数值
[xc1,xc2,xc3,yc1,yc2,yc3]=solve(f7,f8,f9,f10,f11,f12); %解方程
vxc1=vpa(xc1);
vyc1=vpa(yc1);
vxc2=vpa(xc2);
vyc2=vpa(yc2);
vxc3=vpa(xc3);
vyc3=vpa(yc3);
(vxc1-vxd)^2+(vyc1-vyd)^2;
(vxc2-vxd)^2+(vyc2-vyd)^2;
(vxc3-vxd)^2+(vyc3-vyd)^2; %去掉这三行分号可验证C点三个位置是否距离D点相等
%最终答案
xb1,yb1,xc1,yc1
Lab=sqrt((vxb1-vxa)^2+(vyb1-vya)^2)
Lbc=sqrt((vxb1-vxc1)^2+(vyb1-vyc1)^2)
Lcd=sqrt((vxc1-vxd)^2+(vyc1-vyd)^2)
Lad=sqrt((vxa-vxd)^2+(vya-vyd)^2) %得到四杆长
'曲柄存在条件:'
%得出四杆长后计算得到
'可靠到位条件:'
[vxc1-vxb1,vyc1-vyb1]*[vxc1-vxd,vyc1-vyd]'
[vxc2-vxb2,vyc2-vyb2]*[vxc2-vxd,vyc2-vyd]'
[vxc3-vxb3,vyc3-vyb3]*[vxc3-vxd,vyc3-vyd]'
'顺序到位条件:'
%未完成
输出结果:
xb1 =
(-7-4*sin(2/9*pi)+4*cos(2/9*pi))/(4*cos(2/9*pi)+4*sin(2/9*pi)-5)
yb1 =
-1
xc1 =
-6*(27+24*sin(2/9*pi)-64*cos(2/9*pi))/(-31*cos(2/9*pi)-5+39*sin(2/9*pi))
yc1 =
-2*(72*cos(2/9*pi)-175+192*sin(2/9*pi))/(-31*cos(2/9*pi)-5+39*sin(2/9*pi))
Lab =
1.0288436025165976748172169832223
Lbc =
2.9872531417317691216303250912289
Lcd =
6.9831476545729886023199865357226
Lad =
5
ans =
曲柄存在条件:
ans =
可靠到位条件:
ans =
14.605219997928496422368168445525
ans =
19.799913716084881287517588922012
ans =
20.814756669957613005391246805307
ans =
顺序到位条件:。