matlab四连杆 带代码
基于MATLAB的平面四连杆机构运动学分析
一、课程设计内容及要求:1.对连杆机构运动工作原理及运动参数有一定理解2.掌握MATLAB基本命令3.了解MATLAB编程的基本知识,并能编写简单M文件4.了解MATLAB图形界面设计的基本知识5.课程设计说明书:应阐述整个课程设计内容,要突出重点和特色,图文并茂,文字通畅。
应有目录、摘要及关键词、正文、参考文献等内容,字数一般不少于6000字。
二、主要参考资料有关复杂刀具参数计算及结构设计、机械制造工艺与设备的手册与图册。
三、课程设计进度安排指导教师(签名):时间:教研室主任(签名):时间:院长(签名):时间:目录1平面连杆机构的运动分析 (1)1.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 机构运动分析的任务、目的和方法曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。
对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。
还可以根据机构闭环矢量方程计算从动件的位移偏差。
上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。
机构运动分析的方法很多,主要有图解法和解析法。
当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。
基于MATLAB的四杆机构运动分析
石河子大学毕业设计(论文)题目:基于MATLAB的四杆机构运动分析与动画模拟系统院(系):机械电气工程学院专业:机械设计制造及其自动化学号: 2002071189姓名: 娄元建指导教师:葛建兵完成日期:二零零六年五月基于MATLAB的四杆机构运动分析与动画模拟系统[摘要] 本文介绍MATLAB开发机构运动分析和动画模拟系统的方法,并且利用MATLAB软件实现平面四杆机构的运动仿真。
以MATLAB程序设计语言为平台,将参数化设计与交互式相结合,设计出四杆机构仿真系统,能够实现四杆机构的参数化设计,并且能够进行机构的速度和加速度分析。
系统具有方便用户的良好界面,并给出界面设计程序,从而使机构分析更加方便、快捷、直观和形象,设计者只需输几参数就可得到仿真结果,为平面四杆机构的设计与分析提供一条便捷的途径。
[关键词] 机构;运动分析;动画模拟;仿真;参数化;MATLABAbstract:The kinematical analysis and animation method of the mechanism using MATLAB was discussed in the paper , and the kinematic simulation of planar four-bar mechanism with software MATLAB . And emulational system was developed , the system adopted Matlab as a design , It combined parametic design with interactive design and had good interface for user , that can realize parametic design of four-bar mechanism , also to make real speed and acceleration of mechanism 。
Matlab求解理论力学问题系列(二)典型机构的运动分析
—血內 sin(pi — «3^2 sin 巾 一QiS sin 0 = 0 ]
恋91 COS0 +COS02 + 如30 COS0 = 0
〉(5) j
由于0,0,02已在前面求出,因此得到关于內,02 的一组线性方程组。类似X=inv(A)*B可解出角速 度,从而可以获得角速度随时间或随6变化的关系 (图 5)。
步骤(4):类似一元函数的泰勒展开式,= f(xo) + f'(xo){x — X0) + o(x — ®0)> 多兀函数为
fi(x) = f,(x*) + J(x*)dx + o(dx)
1 Matlab中非线性方程的求解及动画演示
案例1:如图1,已知四连杆机构ABCD, AB 杆长为如,BC杆长为a2, CD杆长为a3, AD距离 为cm。若AB杆以匀角速度5转动,初始d0 = Oo 求BC和CD杆的角度、角速度变化规律。
编程计算得到角度的变化关系后,可以算出任 意时刻各较的位置,以及BC杆上不同点的运动轨 迹(图3):很明显B点轨迹是圆,C点轨迹是圆的 一部分(AB杆大范围运动时,CD杆只在小范围运 动),而在BC杆上不同的点轨迹就很复杂了。
各较点的位置并连接起来,就得到了四连杆机构在 某一时刻的图象,延迟一定的时间后再画出下一时 刻的图象,就形成了动画。本问题中动画的源代码 见图4,其中plot函数表示画线段;hl是句柄,定义
ai COS & + Q2 COS 01 + Q3 COS(P2 — «4 = 0 1 ⑴
ai sin 9 + 恋 sin 休 + sin 0 = 0
J
方程(1)是关于转角0和02的非线性方程组,通 常没有解析解,下面给出一般的处理方法。
基于MATLAB空间四连杆引纬机构运动仿真
基于MATLAB空间四连杆引纬机构运动仿真徐永康;张雷【摘要】In order to analyze kinematics characteristics of apace four bar linkage weft insertion mechanism, this paper built mathematical models of every parts of the mechanism with algebra analytical method to obtain motion curve through MATLAB programming, as well as studied of quantitative analysis the influence of movement law induced by the change of rotate speed and crank length. The results show that the motion characteristics curve can meet the weft inserting requirements, and it is feasible to optimize motion curve via adjusting the rotate speed and crank length. [Ch,9 fig. 2 tab. 9 ref. ]%为了分析探讨剑杆织机空间四连杆引纬机构参数变化对其运动学特性的影响,通过代数解析的方法建立了该机构各部分数学模型,编制了MATLAB程序对其进行运动仿真,得出了运动特性曲线,同时定量分析了转速和曲柄长度变化对引纬机构运动规律的影响.分析结果表明,所得的运动特性曲线符合所需引纬要求,可以通过调节转速和曲柄长度优化运动规律曲线.【期刊名称】《轻工机械》【年(卷),期】2012(030)003【总页数】5页(P17-21)【关键词】剑杆织机;空间引纬机构;MATLAB;仿真分析;运动规律【作者】徐永康;张雷【作者单位】浙江理工大学机控学院,浙江杭州310018;浙江理工大学机控学院,浙江杭州310018【正文语种】中文【中图分类】TH112.1;TS103.1340 引言无梭织机代替有梭织机已经成为不可逆转的大趋势。
一、MATLAB之基础入门代码
⼀、MATLAB之基础⼊门代码序⾔本篇旨在列出matlab⼊门及在科研中必须掌握的⼀些基础代码,主要内容包括:matkab矩阵运算、绘图、函数流程控制、⽂件、图像、函数等基本操作,以便于随查随⽤,⾄于常⽤的算法本篇鲜有涉及。
%% matlab总述% matlab中基本数据结构是矩阵,即使单独⼀个数也视为⼀个1*1的矩阵%%%% 矩阵创建&赋值操作a=5;b=[1 2 3];c=[1;2;3];d=[1 2 3;4 5 6;7 8 9];x=[0:0.5:2]; % 0.5是步长x=zeros(4); % 4*4零矩阵x=zeros(2,3);% 2*3零矩阵x=ones(5,5); % 1矩阵x=eye(5); % 5阶单位阵,与Octave语法完全⼀致[r,c]=size(x); % 返回x矩阵的⼤⼩x=linspace(0,3,5); % 0到3间均匀⽣成5个点,⽣成函数的采样点[x,y,z]=meshgrid([],[],[]); % ⽤以⽣成函数的采样点%%%% matlab中的保留字piInf % ⽆穷⼤NaN % 未定式,0/0%%%% 数组计算a=a+b;a=a-b;% 数组加减a=b*c;a=b*inv(x)% 数组乘除 inversea=b.*c; % 对应位操作./ .* .^a=a';a=a(:);% 数组拉直%%%% 数组索引与操作% 括号是索引符号,如([],[])x=a(2,2);x=a(5);x=a(1:2,3:4); %([],[])x(x>72)=x(x>72)-72 % 数组的逻辑索引,x>72⾃⾝就是⼀个0/1⼆维数组,x(x>72)就是访问对应为1位置处的值% 数组赋值/改值a(2,2)=0a(5)=9a(1:2,3:4)=ones(2,2)a(1:2,[3,4,7,11])=ones(2,2) % matlab中[1:9],1:9是基本数据类型%%%% 数组的⽐较和逻辑运算,符合条件的同⼀位置为1,不符合则为0x=[1 2 3 4 5 6 7];y=[1 2 4 5 5 6 8];eq=(x==y); %上⾯说过了,x==y⾃⾝也是⼀个0/1⼆维数组eq=(x>2)&(y<5); % 与 &两边既可以是标量也可以是向量 VS. &&两边只能是标量eq=(x>2)|(y<5); % 或eq=xor(x>4,y<5); % 异或x(x<3)=-1; % (x<3)是⼀个0/1数组,x(x<3)就是把(x<3)数组中1对应位置的位置访问,再将访问到的位置赋值1,⽐较和逻辑运算与数组索引结合xy=[x,y]; xy=[x;y]; % ⽤已有数组构建新数组,数组融合img=cat(3,R,G,B); % ⾼级数组融合xy(:,xy(1,:)<4)=0 %逻辑运算结果矩阵也可以⽤来数组索引%%%% 数组操作函数x=[1 2 3;4 5 6;7 8 9];x=flipud(x);%上下转x=fliplr(x);%左右转x=rot90(x);%逆时针旋转90度x=pinv(x);%数组求(伪)逆sum(x,1); % x每列求和sum(x,2); % x每⾏求和sum(x(:)); % 求全和,:表⽰将数组拉直maxn=max(x);% 返回每列最⼤值maxn=max(x);% 返回每列最⼤值maxn=max(x(:)); % 返回全局最⼤值min(); % ⽤法同max()%%%% 常⽤数学函数% 注意matlab中矩阵是基本数据结构,因此所有函数都是对矩阵中每个x_i操作y=sin(x);y=abs(x);%绝对值y=sqrt(x);%开⽅y=ceil(x);%向上取整y=floor(x);%向上取整y=round(x);%四舍五⼊取整y=rand(r,c);%⽣成随机矩阵b=sum(a,idm);%求和函数,dim=1 表⽰对每⼀列求和,dim=2 表⽰对每⼀⾏求和tabulate(detect_result)% detect_result是⼀个列向量,该函数⽤以频数、频率统计%%%% MATLAB函数基本语句for i=1:2:100 %endwhile 1if a<1breakendendfunction [output1,]=functionname(input1,) % 函数定义command1command2output1=%%%% 基本绘图%plotx=0:0.001*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,'-ob','LineWidth',1.5) % 标出数据点的折线图hold onplot(x,z,'rs') % 散点图drawnow % 动画图xlabel('x')ylabel('y')title('图')axis equal % 两轴单位长度相等axis([-2,2,-2,2]) % 控制坐标轴范围set(gca,'XTick',0:pi/2:4*pi); % 设置坐标轴刻度间距,⼀般与下⼀⾏命令搭配set(gca,'XTickLabel',{'0','0.5*pi','pi','1.5*pi','2*pi','2.5*pi','3*pi','3.5*pi','4*pi'})% 设置坐标轴刻度标号xlim([-2,2]) % 控制坐标轴范围text(0,0,'(0,0)') % 在数据曲线上点(x,y)处,标出'(3,5)'legend('cos(x)','sin(x)','sin(x)-cos(x)') % 依照绘图的顺序依次标注图例saveas(gcf,strcat('ch',num2str(i),'.emf')) % 保存plot图⽚,gcf是plot的句柄plot(X)%绘制⼆维矩阵,以⾏号为横坐标,各列为纵坐标plot(X);% plot制作动图for k=1:10plot (fft(eye(k+10))) % eye()单位阵,fft()傅⾥叶变换,plot()绘制矩阵axis equalM(k)=getframe; % 截取当前窗⼝作为影⽚帧endmovie(M,50) %播放多帧图⽚,M 50次%极坐标plar(theta,r,LineSpec)t=0:0.1:3*pi;polar(t,abs(cos(5*t)));% 快速⽅程绘图fplot('x-cos(x^2)',[-4,4]);% 绘制y=x-cos(x^2)ezplot('y-f(x),[-6 6 -8 8]');% ezplot('⽅程式',[xmin xmax ymin ymax])ezplot('cos(3*t)','sin(3*t)',[0:2*pi]);% ezplot('x参数式','y参数式',[tmin,tmax])%%%% 参数⽅程作图(可以画出很有趣的⾮函数图像)t=0:pi/50:2*pi;x=sin(t);y=cos(t);plot(x,y)axis([-1.1,1.1,-1.1,1.1])axis equal%%%%x=sin(t)y=cos(t)z=tplot3(x,y,z) % 三维曲线参数⽅程作图grid on % 开⽹格%%%%三维曲⾯[x,y]=meshgrid(-pi:0.1:pi); % 画函数采样点z=sin(x).*cos(y);mesh(x,y,z) % 画三维曲⾯figure() % 开新画板surf(x,y,z) % 画中间插值的三维曲⾯(有渲染效果)%%%% ⽂件数据读取% .txt纯数据⽂件⽂件data=load('c:\desktop\score.txt')% .txt⽂本⽂件fid=fopen('score.txt','r')line1=fgetl(fid)%数据按分割%数据类型转换line2=fgetl(fid)fclose(fid);fid=fopen('score.txt','w')fprintf(fid,'会当凌绝顶’)fprintf(fid,'%d⽉⼯资 %6.1f\n',[1,2,3,4;20000,19999,20010,25000,23000])fclose(fid);% excel⽂件data=xlsread('filename.xls','Sheet1','A3:C6');data(isnan(data))=0;%空位补零xlswrite('filename.xls',{'t','w'},'Sheet1','B1:C1')%图⽚⽂件img=imread('leave.jpg')% 图⽚读取image(img) % 图⽚显⽰lip(234:435,112:300,:)%图⽚切⽚imshow(lip) % 图⽚显⽰imwrite(img,'c:\\desktop\\figure.emf')% UI交互式导⼊图⽚[FileName PathName FilterIndex]=uigetfile({'*.jpg','*.bmf'},'请导⼊图⽚','*.jpg','MultiSelect','on') if ~ FilterIndexreturnend%视频⽂件data=VideoReader('sport.avi')% data是⼀结构体frame=read(data,25)% 读取视屏中的某⼀帧,即图⽚imshow(frame)% 对视频处理就是循环处理每⼀帧%%%% 线性⽅程求解、拟合、回归x=A\B%⼀元线性拟合x=[2.410 2.468 2.529 2.571 2.618 2.662 2.715 2.747 2.907 2.959 2.997];y=[0 0.800 1.695 2.290 2.965 3.595 4.365 4.810 7.125 7.890 8.425];a=polyfit(x,y,1)%⼀阶拟合 y=a1 x+ a2y=polyval(a,x) % 获得拟合表达式%⾃定义拟合p=fittype('a*x+b*sin(x)+c');% 指定拟合模型f=fit(x,y,p)% 获得拟合函数,x和y必须为列向量plot(f,x,y)% 画出拟合图%差值 x=[1:10] y=[1:10],线性回归求xi对应的yiyi=interp1(x,y,xi,'linear');%线性回归 y=f(x1,x2,x3)%%%%微分⽅程求解%解析解syms y(x);ode=diff(y,x)-y==0;init=y(0)==1;dsolve(ode,init)%dsolve('D2y+4*Dy+24*y=0','y(0)=0,Dy(0)=15','x')%尤克—库塔数值解%%% 符号对象的创建,matlab中之前都是数值计算,这⾥是符号运算a=sym([1/2 sqrt(5)]);y=sym('2*sin(x)*cos(x)');y=simple(y);syms x y;z=cos(x)*sin(y);% 符号表达式及函数的创建, matlab默认是数值运算,符号运算需要提前声明。
MATLAB在力学机械中的应用举例(课件PPT)
wx=diff(vx)./dt(1:Ldt-1);wy=diff(vy)./dt(1:Ldt-1); %二次导数
[t(2:Ldt),x(2:Ldt),y(2:Ldt),wx,wy]
%显示数据
10
子程序ex713f
函数程序应另存成一个文件ex713f.m function zprime=ex713f(t,z) global vt vm zprime=[0;0]; % 给出t0之前zprime初值 zprime(1)=-vt-vm*z(1)/sqrt(z(1)^2+z(2)^2); zprime(2)=-vm*z(2)/sqrt(z(1)^2+z(2)^2); %上面两句可换成一个矩阵语句: zprime=-vt*[1;0]-vm*z/sqrt(z(1)^2+z(2)^2);
5
线性数学模型
对杆件1:ΣX=0 Nax + Ncx = 0 ΣY=0 Nay + Ncy - G1 = 0; ΣM=0 Ncy*L1*cos(theta1)-Ncx*L1*sin(theta1)-…
G1*L1/2*cos(theta1)=0; 对杆件2: ΣX=0 Nbx - Ncx = 0; ΣY=0 Nby - Ncy - G2 = 0; ΣM=0 Ncy*L2*cos(theta2)+ …
从而 w3 = L1w1cos(π/2-θ1+θ2)/ (L3cos(θ3-π/2-θ2)) 由杆2两端点a和b的速度沿杆长垂直方向的分量之差,可以求
出杆2的角速度. w2 = (-(L3sin(θ3-π/2-θ2))- L1w1sin(π/2-θ1+θ2))/L2 2. 求运动全过程的角位置,角速度,角加速度曲线,这只有借助 于计算工具才能做到,因为用手工算一个点就不胜其烦, 算 几十个点是很难想象的.而由MATLAB编程调用fzero函数时, 要求给出一个近似猜测值,若连续算几十点,前一个解就可 作为后一个解的猜测值,所以反而带来了方便. 这样,本书将提供两个程序ex714a.m和ex714b.m来表述这两种 方法,它们所要调用的函数程序命名为ex714f.m.
基于MATLAB的平面四连杆机构运动仿真.
图2~4分别为θ4角速度、点C的速度变化曲线。
4结论
本文在复数向量坐标系中推导了四连杆机构运动方程,并应用MATLAB软件进行了连杆机构运动数值仿真。从计算结果可以看出,该方法可以方便快捷地得到连杆运动参数,能够有效提高分析效率和计算精度,可进一步推广到多连杆机构设计及优化计算中。
文章编号:1009-9492(201104-0051-02
引言
四连杆机构因其结构灵活、能够传递动力并有效地实现预定动作,在很多领域得到了广泛应用
[1]
。进行连杆机
构运动分析,传统方法主要是图解法或分析法[2]
,无论设
计精度还是设计效率都相对低下,无法满足现代机械高速高精度的要求。随着计算机技术的飞速发展,特别是以
面四杆机构[J ].机械制造, 2002,
(3:26-28.
[3]周进雄,张陵.机构动态仿真[M ].西安:西安交通大学出
版社, 2002.
[4]李娟玲,张建峰.基于C语言的平面连杆机构的运动分析
[J ].机械研究与应用, 2006, 19(5:117-120.
[5]宋兆基. MATLAB6.5在科学计算中的应用[M ].北京:清
华大学出版社, 2005.
[6]王正林.精通MATLAB科学计算[M ].北京:电子工业出
版社, 2009.
[7]曹惟庆.机构设计[M ].北京:机械工业出版社, 2004. [8]李洪涛,徐巍华.基于MATLAB软件对抽油机连杆运动规律
的仿真研究[J ].机械工程师, 2009(5:99-101.
参考文献:
[1]孙桓,陈作模.机械原理[M ].北京:高等教育出版社,
2006.
基于MATLAB的四连杆机构运动分析软件设计开题报告
基于MATLAB的四连杆机构运动分析软件设计开题报告云南农业大学本科生毕业设计开题报告工程技术学院车辆工程专业( 工科) 2008级设计题目:基于MATLAB的四连杆机构运动分析软件设计人机交互界面的设计云南农业大学教务处制2011年10月8日云南农业大学毕业设计开题报告1(本课题所涉及的问题在国内(外)的研究现状综述目前,MATLAB软件是功能强大的科学计算软件,被国内外高校和科研单位所使用。
尤其是基于矩阵运算的数据处理,还可用符号运算计算解析解;还可以实现数值分析、图像处理等若干个领域的计算和图形显示功能。
在工程技术界,MATLAB 也被用来解决一些实际课题和数学模型问题。
典型的应用包括数值计算、算法预设计与验证,以及一些特殊的矩阵计算应用,如自动控制理论、统计、数字信号处理(时间序列分拆)等。
平面连杆机构是一种应用十分广泛的机构。
对它的分析及设计一直是机构学研究的一个重要课题。
但传统方法对于常见的连杆机构的运动学、动力学分析仍然是非常繁琐,以至于很难对它进行深入的研究,如果建立一个连杆机构的仿真系统,使设计人员在进行设计时,从复杂的机构分析和烦琐的计算中摆脱出来,集中精力从事于创新工作,那将是很有意义的。
基于这样一种考虑,本课题尝试建立一个平面连杆机构的运动学仿真系统。
应用Matlab/Simulink对机构领域中应用广泛的基本机构——双曲柄机构、曲柄摇杆机构、曲柄滑块机构等的连杆点轨迹作仿真,该方法编程工作量小、轨迹图形显示便捷,所建模型只需作少量更改即可适应四杆机构的不同特征值,并可推广至多杆机构情况。
建立四杆机构的优化设计模型,用 MATLAB 优化工具箱实现四杆机构的优化设计及仿真,得到的优化结果有足够的精度,能满足设计需求,同时表明MATLAB 优化工具箱在四杆机构优化设计及其相关问题中具有较好的应用前景。
2(本人对课题提出的任务要求及实现预期目标的可行性分析由于连杆机构的性能受机构上繁多的几何参数的影响,呈复杂的非线性关系,无论从性能分析上还是性能综合上都是一个比较困难的工作。
(完整版)在MATLAB环境下开发平面连杆机构运动分析系统毕业设计
在MATLAB环境下开发平面连杆机构运动分析系统摘要建立了铰链四杆机构运动分析的数学模型 ,以MATLAB程序设计语言为平台 ,将参数化设计与交互式相结合 ,设计了铰链四杆机构分析软件 ,该软件具有方便用户的良好界面 ,并给出界面设计程序 ,从而使机构分析更加方便、快捷、直观和形象.设计者只需输入参数就可得到分析结果 ,再将运行结果与设计要求相比较 ,对怎样修改设计做出决策.它为四杆机构设计提供了一种实用的软件与方法.关键词:平面四杆机构,MATLAB软件,运动分析,分析THE DEVELOPMENT OF SYSTEM FOR ANALYSIS OF MOTION IN PLANE FOUR BAR MECHANISM BASED ONMATLAB SOFTWAREAbstractA mathematical model of motion analysis was established in planefour - linkage , and analytical software was developed. The software adopted Matlab as a design language. It combined parametric design with interactive design and as input parameters was imported and the devisers can make decision - making of modification by the comparing analytical result with design demand. It provides an applied software and method for linkage.Key words:Plane Four Bar Mechanism, MATLAB, Analysis of Motion, Analyze目录1 绪论 (1)2 平面连杆机构的设计分析 (4)2.1平面四连杆机构的运动分析 (4)2.2 机构的数学模型的建立 (4)2.2.1 建立机构的闭环矢量位臵方程 (5)2.2.2 求解方法 (7)3 基于MATLAB程序设计 (8)3.1 程序流程 (8)3.2M文件编写 (8)3.3程序运行结果输出 (12)4 基于MATLAB图形界面设计 (23)4.1界面设计 (23)4.2代码设计 (24)5 结论.......................................................................................... 错误!未定义书签。
MATLAB在力学、机械中的应用举例
阵除法X=A\B直接来解。在本题中,X和B都是6×1列向量,而A
是6×6阶方阵。
在编写程序时,尽量用文字变量,先输入已知条件,在程序
开始处给它们赋值,这样得出的程序具有一定的普遍性,若要修
改参数,只需修改头几行的数据即可。
MATLAB在力学、机械中的应用举例
◆ MATLAB程序
G1=200; G2=100; L1= 2; L2=sqrt (2); %给原始参数赋值
MATLAB在力学、机械中的应用举例
MATLAB在力学、机械中的应用举例
7.1 理论力学 7.2 材料力学 7.3 机械振动
MATLAB在力学、机械中的应用举例
7.1 理论力学
【例 7-1-1】 给定由N个力 Fi (i=1,2,…,N)组成的平面
任意力系,求其合力。
解:
◆ 建模
本程序可用来对平面任意力系作简化,得出一个合力。求合
值积分的步长是MATLAB按精度自动选取的,其间隔可变,因此dt
要用数组表示。
主程序exn713:
vt=input(′vt=′); vm=input(′vm=′);
%输入主程序及函数程序共用的参数
z0=input(′[x0;y0]=′); %输入数值积分函数需要的参数
tspan=input(′tspan=[t0,tfinal]=′);
%输入数值积分函数需要的参数
[t,z]=ode23(′exn713f′,tspan,z0);
%进行数值积分
plot(z(∶,1),z(∶,2));
%绘图
MATLAB在力学、机械中的应用举例
%在惯性坐标中,M点位置的导数是相对速度,而其二次导数 则为绝对加速度
dt=diff(t); Ldt=length(dt); %为了求导数,先求各时刻处t的增量
基于MatlabSimulink的液压支架四连杆机构动力学分析
kg / m3 ꎮ 假设铰接点 C 在液压支架升降过程中匀速
运动ꎬ利用 Simulink 模型对四连杆机构动力学进行
数值仿真ꎮ
图 5 和图 6 分别给出了液压支架四连杆机构运
动过程中 各 铰 接 点 在 x 和 y 方 向 上 的 约 束 反 力
曲线ꎮ
连杆与机架的铰接点 E 的约束反力最大ꎬ表明 E 点
16545 / j. cnki. cmet. 2021. 01. 016
基于 Matlab / Simulink 的液压支架四连杆
机构动力学分析
张宝龙
( 平顶山天安煤业股份有限公司ꎬ 河南 平顶山 467000)
扫码移动阅读
摘 要: 在连杆质心运动分析的基础上ꎬ基于牛顿 ̄欧拉法推导了液压支架四连杆机构各构件的
第 42 卷 第 1 期
2021 年 2 月
煤
矿
机
Vol. 42 No. 1
Feb. 2021
电
Colliery Mechanical & Electrical Technology
张宝龙. 基于 Matlab / Simulink 的液压支架四连杆机构动力学分析[ J] . 煤矿机电ꎬ2021ꎬ42(1) :61 ̄63. doi:10.
2021 年第 1 期
张宝龙:基于 Matlab / Simulink 的液压支架四连杆机构动力学分析
得各连杆的位置和速度值ꎬ再将这些运动参数输入
6 3
至动力学模块中进行求解ꎮ
图 4 动力学 Simulink 仿真模型
3 仿真实例
从图中可以看出ꎬ铰接点 C 所受到的约束反力
of constraint reaction force of each joint point of four ̄bar linkage mechanism can be calculatedꎬ which can provide
matlab四连杆机构代码实现
matlab四连杆机构代码实现
下面是一个使用MATLAB实现四连杆机构的简单示例代码:
```matlab
% 定义连杆参数
a = [2 3 2 3]; % 连杆长度
theta = [pi/4 pi/3 pi/2 pi/6]; % 连杆转角
% 计算连杆末端坐标
x = zeros(1,5);
y = zeros(1,5);
for i = 2:5
x(i) = x(i-1) + a(i-1) * cos(theta(i-1));
y(i) = y(i-1) + a(i-1) * sin(theta(i-1));
end
% 绘制机构图像
figure;
hold on;
axis equal;
for i = 1:4
line([x(i) x(i+1)], [y(i) y(i+1)], 'LineWidth', 2);
plot(x(i+1), y(i+1), 'ro', 'MarkerSize', 8);
end
```
在这个例子中,我们使用数组`a`存储了四个连杆的长度,使用数组`theta`存储了四个连杆的转角。
通过循环计算每个连杆末端的坐标,并使用MATLAB的`line`函数和`plot`函数绘制连杆和末端坐标点。
你可以根据实际情况修改连杆长度和转角,然后运行代码来生成相应的机构图像。
希望对你有帮助!。
matlab命令大全(全面)
matlab命令⼤全(全⾯)Matlab命令⼤全A aabs 绝对值、模、字符的ASCII码值acos 反余弦acosh 反双曲余弦acot 反余切acoth 反双曲余切acsc 反余割acsch 反双曲余割align 启动图形对象⼏何位置排列⼯具all 所有元素⾮零为真angle 相⾓ans 表达式计算结果的缺省变量名any 所有元素⾮全零为真area ⾯域图argnames 函数M⽂件宗量名asec 反正割asech 反双曲正割asin 反正弦asinh 反双曲正弦assignin 向变量赋值atan 反正切atan2 四象限反正切atanh 反双曲正切autumn 红黄调秋⾊图阵axes 创建轴对象的低层指令axis 控制轴刻度和风格的⾼层指令B bbar ⼆维直⽅图bar3 三维直⽅图bar3h 三维⽔平直⽅图barh ⼆维⽔平直⽅图base2dec X进制转换为⼗进制bone 蓝⾊调⿊⽩⾊图阵box 框状坐标轴break while 或for 环中断指令brighten 亮度控制C ccapture (3版以前)捕获当前图形cart2pol 直⾓坐标变为极或柱坐标cart2sph 直⾓坐标变为球坐标cat 串接成⾼维数组caxis ⾊标尺刻度cd 指定当前⽬录cdedit 启动⽤户菜单、控件回调函数设计⼯具cdf2rdf 复数特征值对⾓阵转为实数块对⾓阵ceil 向正⽆穷取整cell 创建元胞数组cell2struct 元胞数组转换为构架数组celldisp 显⽰元胞数组内容cellplot 元胞数组内部结构图⽰char 把数值、符号、内联类转换为字符对象chi2cdf 分布累计概率函数chi2inv 分布逆累计概率函数chi2pdf 分布概率密度函数chi2rnd 分布随机数发⽣器chol Cholesky分解clabel 等位线标识cla 清除当前轴class 获知对象类别或创建对象clc 清除指令窗clear 清除内存变量和函数clf 清除图对象clock 时钟colorcube 三浓淡多彩交叉⾊图矩阵colordef 设置⾊彩缺省值colormap ⾊图colspace 列空间的基close 关闭指定窗⼝colperm 列排序置换向量comet3 三维彗星轨迹图compass 射线图compose 求复合函数cond (逆)条件数condeig 计算特征值、特征向量同时给出条件数condest 范-1条件数估计conj 复数共轭contour 等位线contourf 填⾊等位线contour3 三维等位线contourslice 四维切⽚等位线图conv 多项式乘、卷积cool 青紫调冷⾊图copper 古铜调⾊图cos 余弦cosh 双曲余弦cot 余切coth 双曲余切cplxpair 复数共轭成对排列csc 余割csch 双曲余割cumsum 元素累计和cumtrapz 累计梯形积分cylinder 创建圆柱D ddblquad ⼆重数值积分deal 分配宗量deblank 删去串尾部的空格符dec2base ⼗进制转换为X进制dec2bin ⼗进制转换为⼆进制dec2hex ⼗进制转换为⼗六进制deconv 多项式除、解卷delaunay Delaunay 三⾓剖分del2 离散Laplacian差分demo Matlab演⽰diag 矩阵对⾓元素提取、创建对⾓阵diary Matlab指令窗⽂本内容记录diff 数值差分、符号微分digits 符号计算中设置符号数值的精度dir ⽬录列表disp 显⽰数组display 显⽰对象内容的重载函数dlinmod 离散系统的线性化模型dmperm 矩阵Dulmage-Mendelsohn 分解dos 执⾏DOS 指令并返回结果double 把其他类型对象转换为双精度数值drawnow 更新事件队列强迫Matlab刷新屏幕dsolve 符号计算解微分⽅程E eecho M⽂件被执⾏指令的显⽰edit 启动M⽂件编辑器eig 求特征值和特征向量eigs 求指定的⼏个特征值end 控制流FOR等结构体的结尾元素下标eps 浮点相对精度error 显⽰出错信息并中断执⾏errortrap 错误发⽣后程序是否继续执⾏的控制erf 误差函数erfc 误差补函数erfcx 刻度误差补函数erfinv 逆误差函数errorbar 带误差限的曲线图etreeplot 画消去树eval 串演算指令evalin 跨空间串演算指令exist 检查变量或函数是否已定义exit 退出Matlab环境exp 指数函数expand 符号计算中的展开操作expint 指数积分函数expm 常⽤矩阵指数函数expm1 Pade法求矩阵指数expm2 Taylor法求矩阵指数expm3 特征值分解法求矩阵指数ezcontour 画等位线的简捷指令ezcontourf 画填⾊等位线的简捷指令ezgraph3 画表⾯图的通⽤简捷指令ezmesh 画⽹线图的简捷指令ezmeshc 画带等位线的⽹线图的简捷指令ezplot 画⼆维曲线的简捷指令ezplot3 画三维曲线的简捷指令ezpolar 画极坐标图的简捷指令ezsurf 画表⾯图的简捷指令ezsurfc 画带等位线的表⾯图的简捷指令F ffactor 符号计算的因式分解feather ⽻⽑图feedback 反馈连接feval 执⾏由串指定的函数fft 离散Fourier变换fft2 ⼆维离散Fourier变换fftn ⾼维离散Fourier变换fftshift 直流分量对中的谱fieldnames 构架域名figure 创建图形窗fill3 三维多边形填⾊图find 寻找⾮零元素下标findobj 寻找具有指定属性的对象图柄findstr 寻找短串的起始字符下标findsym 机器确定内存中的符号变量finverse 符号计算中求反函数fix 向零取整flag 红⽩蓝⿊交错⾊图阵fliplr 矩阵的左右翻转flipud 矩阵的上下翻转flipdim 矩阵沿指定维翻转floor 向负⽆穷取整flops 浮点运算次数flow Matlab提供的演⽰数据fmin 求单变量⾮线性函数极⼩值点(旧版)fminbnd 求单变量⾮线性函数极⼩值点fnint 利⽤样条函数求积分fnval 计算样条函数区间内任意⼀点的值fnplt 绘制样条函数图形fopen 打开外部⽂件for 构成for环⽤format 设置输出格式fourier Fourier 变换fplot 返函绘图指令fprintf 设置显⽰格式fread 从⽂件读⼆进制数据fsolve 求多元函数的零点full 把稀疏矩阵转换为⾮稀疏阵funm 计算⼀般矩阵函数funtool 函数计算器图形⽤户界⾯fzero 求单变量⾮线性函数的零点G ggamma 函数gammainc 不完全函数gammaln 函数的对数gca 获得当前轴句柄gcbo 获得正执⾏"回调"的对象句柄gcf 获得当前图对象句柄gco 获得当前对象句柄geomean ⼏何平均值get 获知对象属性getfield 获知构架数组的域getframe 获取影⽚的帧画⾯ginput 从图形窗获取数据global 定义全局变量gplot 依图论法则画图gradient 近似梯度gray ⿊⽩灰度grid 画分格线griddata 规则化数据和曲⾯拟合gtext 由⿏标放置注释⽂字guide 启动图形⽤户界⾯交互设计⼯具harmmean 调和平均值help 在线帮助helpwin 交互式在线帮助helpdesk 打开超⽂本形式⽤户指南hex2dec ⼗六进制转换为⼗进制hex2num ⼗六进制转换为浮点数hidden 透视和消隐开关hilb Hilbert矩阵hist 频数计算或频数直⽅图histc 端点定位频数直⽅图histfit 带正态拟合的频数直⽅图hold 当前图上重画的切换开关horner 分解成嵌套形式hot ⿊红黄⽩⾊图hsv 饱和⾊图I iif-else-elseif 条件分⽀结构ifft 离散Fourier反变换ifft2 ⼆维离散Fourier反变换ifftn ⾼维离散Fourier反变换ifftshift 直流分量对中的谱的反操作ifourier Fourier反变换i, j 缺省的"虚单元"变量ilaplace Laplace反变换imag 复数虚部image 显⽰图象imagesc 显⽰亮度图象imfinfo 获取图形⽂件信息imread 从⽂件读取图象imwrite 把imwrite 把图象写成⽂件ind2sub 单下标转变为多下标inf ⽆穷⼤info MathWorks公司⽹点地址inline 构造内联函数对象inmem 列出内存中的函数名input 提⽰⽤户输⼊inputname 输⼊宗量名int 符号积分int2str 把整数数组转换为串数组interp1 ⼀维插值interp3 三维插值interpn N维插值interpft 利⽤FFT插值intro Matlab⾃带的⼊门引导inv 求矩阵逆invhilb Hilbert矩阵的准确逆ipermute ⼴义反转置isa 检测是否给定类的对象ischar 若是字符串则为真isequal 若两数组相同则为真isempty 若是空阵则为真isfinite 若全部元素都有限则为真isfield 若是构架域则为真isglobal 若是全局变量则为真ishandle 若是图形句柄则为真ishold 若当前图形处于保留状态则为真isieee 若计算机执⾏IEEE规则则为真isinf 若是⽆穷数据则为真isletter 若是英⽂字母则为真islogical 若是逻辑数组则为真ismember 检查是否属于指定集isnan 若是⾮数则为真isnumeric 若是数值数组则为真isobject 若是对象则为真isprime 若是质数则为真isreal 若是实数则为真isspace 若是空格则为真issparse 若是稀疏矩阵则为真isstruct 若是构架则为真isstudent 若是Matlab学⽣版则为真iztrans 符号计算Z反变换J j , K kjacobian 符号计算中求Jacobian 矩阵jet 蓝头红尾饱和⾊jordan 符号计算中获得Jordan标准型keyboard 键盘获得控制权kron Kronecker乘法规则产⽣的数组L llaplace Laplace变换lasterr 显⽰最新出错信息lastwarn 显⽰最新警告信息leastsq 解⾮线性最⼩⼆乘问题(旧版)legend 图形图例lighting 照明模式line 创建线对象lines 采⽤plot 画线⾊ln 矩阵⾃然对数load 从MAT⽂件读取变量log ⾃然对数log10 常⽤对数log2 底为2的对数loglog 双对数刻度图形logm 矩阵对数logspace 对数分度向量lookfor 按关键字搜索M⽂件lower 转换为⼩写字母lsqnonlin 解⾮线性最⼩⼆乘问题lu LU分解M mmad 平均绝对值偏差magic 魔⽅阵maple &nb, sp; 运作Maple格式指令mat2str 把数值数组转换成输⼊形态串数组material 材料反射模式max 找向量中最⼤元素mbuild 产⽣EXE⽂件编译环境的预设置指令mcc 创建MEX或EXE⽂件的编译指令mean 求向量元素的平均值median 求中位数menuedit 启动设计⽤户菜单的交互式编辑⼯具mesh ⽹线图meshz 垂帘⽹线图meshgrid 产⽣"格点"矩阵methods 获知对指定类定义的所有⽅法函数mex 产⽣MEX⽂件编译环境的预设置指令mfunlis 能被mfun计算的MAPLE经典函数列表mhelp 引出Maple的在线帮助min 找向量中最⼩元素mkdir 创建⽬录mkpp 逐段多项式数据的明晰化mod 模运算more 指令窗中内容的分页显⽰movie 放映影⽚动画moviein 影⽚帧画⾯的内存预置mtaylor 符号计算多变量Taylor级数展开NaN ⾮数(预定义)变量nargchk 输⼊宗量数验证nargin 函数输⼊宗量数nargout 函数输出宗量数ndgrid 产⽣⾼维格点矩阵newplot 准备新的缺省图、轴nextpow2 取最接近的较⼤2次幂nnz 矩阵的⾮零元素总数nonzeros 矩阵的⾮零元素norm 矩阵或向量范数normcdf 正态分布累计概率密度函数normest 估计矩阵2范数norminv 正态分布逆累计概率密度函数normpdf 正态分布概率密度函数normrnd 正态随机数发⽣器notebook 启动Matlab和Word的集成环境null 零空间num2str 把⾮整数数组转换为串numden 获取最⼩公分母和相应的分⼦表达式nzmax 指定存放⾮零元素所需内存O oode1 ⾮Stiff 微分⽅程变步长解算器ode15s Stiff 微分⽅程变步长解算器ode23t 适度Stiff 微分⽅程解算器ode23tb Stiff 微分⽅程解算器ode45 ⾮Stiff 微分⽅程变步长解算器odefile ODE ⽂件模板odeget 获知ODE 选项设置参数odephas2 ODE 输出函数的⼆维相平⾯图odephas3 ODE 输出函数的三维相空间图odeplot ODE 输出函数的时间轨迹图odeprint 在Matlab指令窗显⽰结果odeset 创建或改写ODE选项构架参数值ones 全1数组optimset 创建或改写优化泛函指令的选项参数值orient 设定图形的排放⽅式orth 值空间正交化P ppack 收集Matlab内存碎块扩⼤内存patch 创建块对象path 设置Matlab搜索路径的指令pathtool 搜索路径管理器pause 暂停pcode 创建预解译P码⽂件pcolor 伪彩图peaks Matlab提供的典型三维曲⾯permute ⼴义转置pi (预定义变量)圆周率pie ⼆维饼图pie3 三维饼图pink 粉红⾊图矩阵pinv 伪逆plot 平⾯线图plot3 三维线图plotmatrix 矩阵的散点图plotyy 双纵坐标图poissinv 泊松分布逆累计概率分布函数poissrnd 泊松分布随机数发⽣器pol2cart 极或柱坐标变为直⾓坐标polar 极坐标图poly 矩阵的特征多项式、根集对应的多项式poly2str 以习惯⽅式显⽰多项式poly2sym 双精度多项式系数转变为向量符号多项式polyder 多项式导数polyfit 数据的多项式拟合polyval 计算多项式的值polyvalm 计算矩阵多项式pow2 2的幂ppval 计算分段多项式pretty 以习惯⽅式显⽰符号表达式print 打印图形或SIMULINK模型printsys 以习惯⽅式显⽰有理分式prism 光谱⾊图矩阵procread 向MAPLE输送计算程序profile 函数⽂件性能评估器propedit 图形对象属性编辑器pwd 显⽰当前⼯作⽬录Q qquad 低阶法计算数值积分quad8 ⾼阶法计算数值积分(QUADL)quit 推出Matlab 环境quiver ⼆维⽅向箭头图quiver3 三维⽅向箭头图R rrand 产⽣均匀分布随机数randn 产⽣正态分布随机数randperm 随机置换向量range 样本极差rank 矩阵的秩rats 有理输出rcond 矩阵倒条件数估计real 复数的实部reallog 在实数域内计算⾃然对数realpow 在实数域内计算乘⽅realsqrt 在实数域内计算平⽅根realmax 最⼤正浮点数realmin 最⼩正浮点数rectangle 画"长⽅框"rem 求余数repmat 铺放模块数组reshape 改变数组维数、⼤⼩residue 部分分式展开return 返回ribbon 把⼆维曲线画成三维彩带图rmfield 删去构架的域roots 求多项式的根rose 数扇形图rot90 矩阵旋转90度rotate 指定的原点和⽅向旋转rotate3d 启动三维图形视⾓的交互设置功能round 向最近整数圆整rref 简化矩阵为梯形形式rsf2csf 实数块对⾓阵转为复数特征值对⾓阵rsums Riemann和S ssave 把内存变量保存为⽂件scatter3 三维散点图sec 正割sech 双曲正割semilogx X轴对数刻度坐标图semilogy Y轴对数刻度坐标图series 串联连接set 设置图形对象属性setfield 设置构架数组的域setstr 将ASCII码转换为字符的旧版指令sign 根据符号取值函数signum 符号计算中的符号取值函数sim 运⾏SIMULINK模型simget 获取SIMULINK模型设置的仿真参数simple 寻找最短形式的符号解simplify 符号计算中进⾏简化操作simset 对SIMULINK模型的仿真参数进⾏设置simulink 启动SIMULINK模块库浏览器sin 正弦sinh 双曲正弦size 矩阵的⼤⼩slice ⽴体切⽚图solve 求代数⽅程的符号解spalloc 为⾮零元素配置内存sparse 创建稀疏矩阵spconvert 把外部数据转换为稀疏矩阵spdiags 稀疏对⾓阵spfun 求⾮零元素的函数值sph2cart 球坐标变为直⾓坐标sphere 产⽣球⾯spinmap ⾊图彩⾊的周期变化spline 样条插值spones ⽤1置换⾮零元素sprandsym 稀疏随机对称阵sprank 结构秩spring 紫黄调春⾊图sprintf 把格式数据写成串spy 画稀疏结构图sqrt 平⽅根sqrtm ⽅根矩阵squeeze 删去⼤⼩为1的"孤维" sscanf 按指定格式读串stairs 阶梯图std 标准差step 阶跃响应指令str2double 串转换为双精度值str2mat 创建多⾏串数组str2num 串转换为数strcat 接成长串strcmp 串⽐较strjust 串对齐strmatch 搜索指定串strncmp 串中前若⼲字符⽐较strrep 串替换strtok 寻找第⼀间隔符前的内容struct 创建构架数组struct2cell 把构架转换为元胞数组strvcat 创建多⾏串数组sub2ind 多下标转换为单下标subexpr 通过⼦表达式重写符号对象subplot 创建⼦图subs 符号计算中的符号变量置换subspace 两⼦空间夹⾓sum 元素和summer 绿黄调夏⾊图superiorto 设定优先级surf 三维着⾊表⾯图surface 创建⾯对象surfc 带等位线的表⾯图surfl 带光照的三维表⾯图surfnorm 空间表⾯的法线svd 奇异值分解svds 求指定的若⼲奇异值switch-case-otherwise 多分⽀结构sym2poly 符号多项式转变为双精度多项式系数向量symmmd 对称最⼩度排序symrcm 反向Cuthill-McKee排序syms 创建多个符号对象T ttan 正切tanh 双曲正切taylortool 进⾏Taylor逼近分析的交互界⾯text ⽂字注释tf 创建传递函数对象tic 启动计时器title 图名toc 关闭计时器trapz 梯形法数值积分treelayout 展开树、林treeplot 画树图tril 下三⾓阵trim 求系统平衡点trimesh 不规则格点⽹线图trisurf 不规则格点表⾯图triu 上三⾓阵try-catch 控制流中的Try-catch结构type 显⽰M ⽂件U uuicontextmenu 创建现场菜单uicontrol 创建⽤户控件uimenu 创建⽤户菜单unmkpp 逐段多项式数据的反明晰化unwrap ⾃然态相⾓upper 转换为⼤写字母V vvar ⽅差varargin 变长度输⼊宗量varargout 变长度输出宗量vectorize 使串表达式或内联函数适于数组运算ver 版本信息的获取view 三维图形的视⾓控制voronoi Voronoi多边形vpa 任意精度(符号类)数值W wwarning 显⽰警告信息what 列出当前⽬录上的⽂件whatsnew 显⽰Matlab中Readme⽂件的内容which 确定函数、⽂件的位置while 控制流中的While环结构white 全⽩⾊图矩阵whitebg 指定轴的背景⾊who 列出内存中的变量名whos 列出内存中变量的详细信息winter 蓝绿调冬⾊图workspace 启动内存浏览器X x , Y y , Z zxlabel X轴名xor 或⾮逻辑yesinput 智能输⼊指令ylabel Y轴名zeros 全零数组zlabel Z轴名zoom 图形的变焦放⼤和缩⼩ztrans 符号计算Z变换MATLAB命令⼤全。
基于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,以此类推。
四连杆机构设计
1 1 1 1 1 1 1 1 1 1 1
3.14 -0.932 -0.719 3.25 2.68 1.99 1.85 0.454 0.212 0.192 0.000538
2.21 Hessian modified 1.34 4.59 Hessian modified 0.852 0.468 0.148 0.0634 0.00521 0.00024 Hessian modified 1.6e-006 Hessian modified 3.17e-006 Hessian modified
1. 问题描述 如图所示,设计要求铰链四杆机构近似地实现期望函数 y log x , 1 x 2 ,试设计此四杆机构。
MAT LAB 作为一种直译式的程序语言 , 具有强大的科学计算能力和良好的数据可视化性能 ,同 时程序结构具有扩展性。应用 MATLAB 对机构进行优化设计可以大大缩短设计时间,提高设计精度。
Jason Zhang (Shantou University, Engineering College)
[Abstract] Analyze the model of four bar linkage mechanism and try to satisfy the movement locus that we excepted. With the strong functions of MATLAB, we can calculate and get the best result quickly. Then write a program to simulate the movement locus of the output and examine whether it satisfy our requirement. [Key Words] Linkage, Movement locus , Optimized Design, MATLAB
基于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主要命令汇总MATLAB函数参考附录1。
1 管理用命令函数名功能描述函数名功能描述addpath 增加一条搜索路径 rmpath 删除一条搜索路径demo 运行Matlab演示程序 type 列出.M文件doc 装入超文本文档 version 显示Matlab的版本号help 启动联机帮助 what 列出当前目录下的有关文件lasterr 显示最后一条信息 whatsnew 显示Matlab的新特性lookfor 搜索关键词的帮助 which 造出函数与文件所在的目录path 设置或查询Matlab路径附录1。
2管理变量与工作空间用命令函数名功能描述函数名功能描述clear 删除内存中的变量与函数 pack 整理工作空间内存disp 显示矩阵与文本 save 将工作空间中的变量存盘length 查询向量的维数 size 查询矩阵的维数load 从文件中装入数据 who,whos 列出工作空间中的变量名附录1.3文件与操作系统处理命令函数名功能描述函数名功能描述cd 改变当前工作目录 edit 编辑。
M文件delete 删除文件 matlabroot 获得Matlab的安装根目录diary 将Matlab运行命令存盘 tempdir 获得系统的缓存目录dir 列出当前目录的内容 tempname 获得一个缓存(temp)文件!执行操作系统命令附录1.4窗口控制命令函数名功能描述函数名功能描述echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面format 设置输出格式附录1。
5启动与退出命令函数名功能描述函数名功能描述matlabrc 启动主程序 quit 退出Matlab环境startup Matlab自启动程序附录2 运算符号与特殊字符附录2.1运算符号与特殊字符函数名功能描述函数名功能描述+ 加 .。
续行标志—减,分行符(该行结果不显示)*矩阵乘;分行符(该行结果显示)。
Matlab在四杆机构运动分析中的应用
Matlab在四杆机构运动分析中的应用MATLAB软件由美国MathWorks公司于1982年推出,经过十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件之一。
MATLAB提供了强大的矩阵处理和绘图功能。
它主要包括两部分内容:核心函数和工具箱。
Matlab编程代码接近数学推导公式,简洁直观,与科技人员的思维方式和书写习惯相适应,操作简易,人机交互性能好,且可以方便迅速地用三维图形、图像、声音、动画等表达计算结果,拓展思路。
编制相应的M函数文件。
Pos.m用于求解位置、角度和角加速度。
th1为初始角度,w1为杆1角速度,其余为杆长。
将课本P35(i)、(ii)、(iii)式用MATLAB语言表述,即可编制为四杆机构求解函数文件pos.m。
function f=pos(th1,w1,l1,l2,l3,l4)syms x21 x31 x22 x32x1=th1*pi/180;x11=cos(x1);x12=sin(x1);eq1=l1*x11+l2*x21-l3*x31-l4;eq2=l1*x12+l2*x22-l3*x32;eq3=x21^2+x22^2-1;eq4=x31^2+x32^2-1;s=solve(eq1,eq2,eq3,eq4,x21,x22,x31,x32);s1=double(s.x21); s2=double(s.x22);s3=double(s.x31); s4=double(s.x32);x2=(acos(s1(1,1)))/pi*180;x3=(acos(s3(1,1)))/pi*180;A=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)];B=[-l1*x12;-l1*x11];w=A\(w1*B);w2=w(1,1);w3=w(2,1);C=[-l2*w(1,1)*s1(1,1),l3*w(2,1)*s3(1,1);l2*w(1,1)*s2(1,1),-l3*w(2,1)*s4(1,1)];D=[w(1,1);w(2,1)];E=[-l1*w1*x11;l1*w1*x12];F=[l2*s2(1,1),-l3*s4(1,1);l2*s1(1,1),-l3*s3(1,1)];t=F\(C*D+w1*E);a2=t(1,1);a3=t(2,1);l1=cat(1,th1,w1,0);l2=cat(1,x2,w2,a2);l3=cat(1,x3,w3,a3);f=(cat(2,l1,l2,l3))';subplot(2,2,1);plot(th1,w2,'r-');hold on;title('连杆2角速度分析');subplot(2,2,2);plot(th1,a2,'b-');hold on;title('连杆2角加速度分析');subplot(2,2,3);plot(th1,w3,'r-');hold on;title('连杆3角速度分析');subplot(2,2,4);plot(th1,a3,'b-');hold on;title('连杆3角加速度分析');return在MA TLAB命令窗口输入命令:>> th1=60;w1=pi/3;l1=20;l2=30;l3=40;l4=45;>> function f=pos(th1,w1,l1,l2,l3,l4)60°,ω=pi/3时的值即可得到theta=采用实时动画的方法编写draw.m文件:function dw = draw(l1,l2,l3,l4,x1,x2,x3)figure(2);th1=x1*pi/180;th2=x2*pi/180;th3=x3*pi/180;x=0:0.001:l4;plot(x,0,'r-');axis([-25,70,-25,60]);hold onfor i=0:0.1:l1;s=i*cos(th1); c=i*sin(th1);plot(s,c,'b-');hold on;end;for x=0:0.1:l3;s2=x*cos(th3)+l4;c2=x*sin(th3);plot(s2,c2);hold on;endfor x=0:0.1:l2;s3=l1*cos(th1)+x*cos(th2); c3=l1*sin(th1)+x*sin(th2);plot(s3,c3);hold on;endreturn代入pos.m中所得的结果,输入命令:>>draw(l1,l2,l3,l4,y(1,1),y(2,1),y(3,1))即可得到当前位置下的四杆图形。
《有限元基础教程》_【MATLAB算例】3.2.5(2)__四杆桁架结构的有限元分析(Bar2D2Node)
【MATLAB 算例】3.2.5(2) 四杆桁架结构的有限元分析(Bar2D2Node)如图3-8所示的结构,各个杆的弹性模量和横截面积都为4229.510/E N mm =⨯, 2100A mm =。
试基于MATLAB 平台求解该结构的节点位移、单元应力以及支反力。
图3-8 四杆桁架结构解答:对该问题进行有限元分析的过程如下。
(1) 结构的离散化与编号对该结构进行自然离散,节点编号和单元编号如图3-8所示,有关节点和单元的信息见表3-1~表3-3。
(2)计算各单元的刚度矩阵(基于国际标准单位)建立一个工作目录,将所编制的用于平面桁架单元分析的4个MA TLAB 函数放置于该工作目录中,分别以各自函数的名称给出文件名,即:Bar2D2Node_Stiffness ,Bar2D2Node_Assembly ,Bar2D2Node_Stress ,Bar2D2Node_Forces 。
然后启动MATLAB ,将工作目录设置到已建立的目录中,在MATLAB 环境中,输入弹性模量E 、横截面积A ,各点坐标x1,y1,x2,y2,x3,y3,x4,y4,角度alpha 1, alpha 2和alpha 3,然后分别针对单元1,2,3和4,调用4次Bar2D2Node_Stiffness ,就可以得到单元的刚度矩阵。
相关的计算流程如下。
>>E=2.95e11;>>A=0.0001;>>x1=0;>>y1=0;>>x2=0.4;>>y2=0;>>x3=0.4;>>y3=0.3;>>x4=0;>>y4=0.3;>> alpha1=0;>> alpha2=90;>> alpha3=atan(0.75)*180/pi;>> k1=Bar2D2Node_Stiffness (E,A,x1,y1,x2,y2,alpha1)k1 = 73750000 0 -73750000 00 0 0 0-73750000 0 73750000 00 0 0 0>> k2=Bar2D2Node_Stiffness (E,A,x2,y2,x3,y3,alpha2)k2 = 1.0e+007 *0.0000 0.0000 -0.0000 -0.00000.0000 9.8333 -0.0000 -9.8333-0.0000 -0.0000 0.0000 0.0000-0.0000 -9.8333 0.0000 9.8333>> k3=Bar2D2Node_Stiffness (E,A,x1,y1,x3,y3,alpha3)k3 = 1.0e+007 *3.7760 2.8320 -3.7760 -2.83202.8320 2.1240 -2.8320 -2.1240-3.7760 -2.8320 3.7760 2.8320-2.8320 -2.1240 2.8320 2.1240>> k4=Bar2D2Node_Stiffness (E,A,x4,y4,x3,y3,alpha1)k4 = 73750000 0 -73750000 00 0 0 0-73750000 0 73750000 00 0 0 0(3) 建立整体刚度方程由于该结构共有4个节点,因此,设置结构总的刚度矩阵为KK (8×8),先对KK 清零,然后四次调用函数Bar2D2Node _Assembly 进行刚度矩阵的组装。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用Matlab对四连杆运动模拟引言四连杆机构因其结构灵活、能够传递动力并有效地实现预定动作,在很多领域得到了广泛应用。
进行连杆机构运动分析,传统方法主要是图解法或分析法,无论设计精度还是设计效率都相对低下,无法满足现代机械高速高精度的要求。
随着计算机技术的飞速发展,特别是以MATLAB为代表的数值计算软件的出现,为进行机构分析提供了有力的工具。
1、四连杆介绍1.1、四连杆介绍与分类所有运动副均为转动副的四杆机构称为铰链四杆机构,它是平面四杆机构的基本形式,其他四杆机构都可以看成是在它的基础上演化而来的。
选定其中一个构件作为机架之后,直接与机架链接的构件称为连架杆,不直接与机架连接的构件称为连杆,能够做整周回转的构件被称作曲柄,只能在某一角度范围内往复摆动的构件称为摇杆。
如果以转动副连接的两个构件可以做整周相对转动,则称之为整转副,反之称之为摆转副。
铰链四杆机构中,按照连架杆是否可以做整圆周转动,可以将其分为三种基本形式,即曲柄摇杆机构,双曲柄机构和双摇杆机构。
曲柄摇杆机构,两连架杆中一个为曲柄一个为摇杆的铰链四杆机构。
双曲柄机构,具有两个曲柄的铰链四杆机构称为双曲柄机构。
其特点是当主动曲柄连续等速转动时,从动曲柄一般做不等速转动。
在双曲柄机构中,如果两对边构件长度相等且平行,则成为平行四边形机构。
这种机构的传动特点是主动曲柄和从动曲柄均以相同的角速度转动,而连杆做平动。
双摇杆机构。
双摇杆机构是两连架杆均为摇杆的铰链四杆机构。
1.2、格拉霍夫定理杆长之和条件:平面四杆机构的最短杆和最长杆的长度之和小于或者等于其余两杆长度之和。
在铰链四杆机构中,如果某个转动副能够成为整转副,则它所连接的两个构件中,必有一个为最短杆,并且四个构件的长度关系满足杆长之和条件。
在有整装副存在的铰链四杆机构中,最短杆两端的转动副均为整转副。
此时,如果取最短杆为机架,则得到双曲柄机构;若取最短杆的任何一个相连构件为机架,则得到曲柄摇杆机构;如果取最短杆对面构件为机架,则得到双摇杆机构。
如果四杆机构不满足杆长之和条件,则不论选取哪个构件为机架,所得到机构均为双摇杆机构。
上述系列结论称为格拉霍夫定理。
运用条件分析:1.Lmax+Lmin>其余两杆之和,------此铰链四杆机构为双摇杆机构;2.Lmax+Lmin≤其余两杆之和,要具体分析:(1)Lmin为机架------为双曲柄机构(2)Lmin为连架杆------为曲柄摇杆机构(Lmin为曲柄)(3)Lmin为连杆------为双摇杆机构1.3、理论分析对图1的四连杆机构列出方程组。
其中L1、L2、L3、L4为四根杆,L4为机架。
L1×cosθ1+L2×cosθ2=L3×cosθ1+L4L1×sinθ1+L2×sinθ2=L3sinθ3由此两个方程消去θ2,便可得到一个关于θ1、θ3的函数F(θ1, θ3)=(L3×cosθ3+L4−L1×cosθ1)2+(L3×sinθ3−L1×sinθ1)2−L22然后用隐函数求出θ3=θ3(θ1)另解出角速度:θ1=w1×tw2=d(θ3)/d(t)2、Matlab的实现(一)数据分析给出了3组数据:a)L1=8;L2=25;L3=20;L4=20;b)L1=7;L2=9;L3=11;L4=4;c)L1=7;L2=6.2;L3=10;L4=6;用格拉霍夫定理进行分析得到:a为曲柄摇杆机构;b为双曲柄机构;c双摇杆机构;(二)Matlab求解并进行动画模拟a)L1=8;L2=25;L3=20;L4=20; (曲柄摇杆机构)θ3=θ3(θ1)图像实时动画模拟(部分截屏)W2的图像说明:其中w2(1)为先符号求导再赋值计算,w2(2)为直接数值求导。
(下同)b)L1=7;L2=9;L3=11;L4=4; (双曲柄机构)θ3=θ3(θ1)图像实时动画模拟(部分截屏)W2的图像c)L1=7;L2=6.2;L3=10;L4=6; (双摇杆机构)θ3=θ3(θ1)图像实时动画模拟(部分截屏)W2的图像3、结果分析对θ3的角速度w2的求值得两种方法中,分析图像知:符号求导再代入数值更容易出现大的偏差(w2的图像中的红线)。
直接用数值求导得到的解更平稳。
4、程序1、函数文件dd.mfunction F=dd(y)global L1 L2 L3 L4 px=p;F=((L3*cos(y)+L4-L1*cos(x))^2)+((L3*sin(y)-L1*sin(x))^2)-(L2^2);2、计算θ3的文件y_figure.mglobal L1 L2 L3 L4 p %传递参数% L1=8;L2=25;L3=20;L4=20; %曲柄摇杆机构% L1=7;L2=9;L3=11;L4=4; %双曲柄机构L1=7;L2=6.2;L3=10;L4=6; %双摇杆机构% L1=9;L2=5;L3=10;L4=7; %双摇杆机构Ltotal=L1+L2+L3+L4;Lmax=max([L1 L2 L3 L4]);[Lmin,I]=min([L1 L2 L3 L4]);m=100; b=0;while (Lmax+Lmin)>=(Ltotal/2)str='双摇杆机构';b=1;breakendwhile (Lmax+Lmin)<(Ltotal/2)if I==4str='双曲柄机构';else if I==1||I==3str='曲柄摇杆机构';else if I==2str='双摇杆机构';b=1;endendendbreakendswitch bcase 0m=100;x=linspace(0,2*pi,m); %确定隐函数自变量的范围y0=0.7341; %第一个方程的初值case 1a=0.58;m=80;x=linspace(a,(2*pi-a),m);y0=1.2465;endy=[];f=[];for k=1:mp=x(k);[y1,fval,exitflag,output] = fzero('dd',y0);y0=y1;y=[y,y1];f=[f,fval];endfigureplot(x(1:m),y(1:m),'r.-'), %绘制隐函数图形grid on3、计算w2的文件w_figure.mglobal L1 L2 L3 L4 w1w1=100;syms xx yy%xx为输入杆转角,yy为输出角转角F=L1*cos(xx)+L2*(1-((L3*sin(yy)-L1*sin(xx))/(L2))^2)^(1/2)-L3*cos(yy)-L4; w=(-1)*(diff(F,xx)/diff(F,yy))*w1;w21=subs(w,{xx,yy},{x,y});%用隐函数求导t=x/w1;w22=diff(y)./diff(t);%直接数值求导plot(w21,'r')hold onplot(w22,'k')4、实时动画文件siliangan.mpic=figure('name',str);set(pic,'color','white');axis equalgrid onaxis([-10,30,-10,20]);axis onglobal L1 L3 L4xa=0;ya=0; %A点坐标xd=L4;yd=0; %D点坐标xb=L1*cos(x(1));yb=L1*sin(x(1));%B点坐标xc=L3*cos(y(1))+L4;yc=L3*sin(y(1));%C点坐标stick_1=line([xa;xb],[ya;yb],'color','red','linewidth',5,'linestyle','-');stick_2=line([xb;xc],[yb;yc],'color','g','linewidth',5,'linestyle','-');stick_3=line([xc;xd],[yc;yd],'color','b','linewidth',5,'linestyle','-');stick_0=line([xd;xa],[yd;ya],'color','y','linewidth',5,'linestyle','-');dot_a=line(xa,ya,'color','r','linestyle','.','markersize',30);dot_b=line(xb,yb,'color','black','linestyle','.','markersize',30);dot_c=line(xc,yc,'color','r','color',[0.1 0.7 0.3],'linestyle','.','markersize',30); dot_d=line(xd,yd,'color','r','linestyle','.','markersize',30);dt=2*pi/m;k=1;while 1if k>m;k=1;endxb=L1*cos(x(k))+xa;yb=L1*sin(x(k))+ya;xc=L3*cos(y(k))+L4;yc=L3*sin(y(k));set(stick_1,'xdata',[xa;xb],'ydata',[ya;yb]);set(stick_2,'xdata',[xc;xb],'ydata',[yc;yb]);set(stick_3,'xdata',[xd;xc],'ydata',[yd;yc]);set(dot_b,'xdata',xb,'ydata',yb);set(dot_c,'xdata',xc,'ydata',yc);set(gcf,'doublebuffer','on');drawnow;pausek=k+1;end。