MATLAB程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)

合集下载

基于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节点杆单元计算

篇下载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的平⾯四杆机构动态仿真摘要:本⽂基于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软件的引入,解析法已经得到了广泛的应用。

对于四连杆的运动分析,若应用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给定连杆预定位置的四杆机构设计

基于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程序:已知三个位置设计平面四杆机构求解程序(位移矩阵法)

%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解决四杆机构问题

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解决四杆机构角位移和角速度

本科毕业设计(论文)通过答辩本科毕业设计(论文)通过答辩优秀论文设计,答辩无忧,值得下载!优秀论文设计,答辩无忧,值得下载!应用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的微小修正因子,将修正因子与预计值相加求出角位移,将求出的角位移带入⑴中,看是否满足函数值足够小。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 =
顺序到位条件:。

相关文档
最新文档