matlab中的分支结构

matlab中的分支结构
matlab中的分支结构

Matlab中的选择结构或分支结构(1)if else 语句

第一种情形

If 条件

语句

End

第二种情形

If 条件

语句1

Else

语句2

End

第三种情形

If 条件1

语句1

Elseif 条件2

语句2

Elseif 条件3

语句3

.

.

.

Elseif 条件m

语句m

Else

语句m+1

End

(2)switch语句

Switch 条件

Case 常量1

语句1

Case 常量2

语句2

……………

Case 常量m

语句m

Otherwise

语句m+1

End

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;

随机过程matlab程序

基本操作 -5/(4.8+5.32)^2 area=pi*2.5^2 x1=1+1/2+1/3+1/4+1/5+1/6 exp(acos(0.3)) a=[1 2 3;4 5 6;7 8 9] a=[1:3,4:6,7:9] a1=[6: -1:1] a=eye(4) a1=eye(2,3) b=zeros(2,10) c=ones(2,10) c1=8*ones(3,5) d=zeros(3,2,2); r1=rand(2, 3) r2=5-10*rand(2, 3) r4=2*randn(2,3)+3 arr1=[1.1 -2.2 3.3 -4.4 5.5] arr1(3) arr1([1 4]) arr1(1:2:5) arr2=[1 2 3; -2 -3 -4;3 4 5] arr2(1,:) arr2(:,1:2:3) arr3=[1 2 3 4 5 6 7 8] arr3(5:end) arr3(end) 绘图

x=[0:1:10]; y=x.^2-10*x+15; plot(x,y) x=0:pi/20:2*pi y1=sin(x);y2=cos(x); plot(x,y1,'b-'); hold on; plot(x,y2,‘k--’); legend (‘sin x’,‘cos x’); x=0:pi/20:2*pi; y=sin(x); figure(1) plot(x,y, 'r-') grid on 以二元函数图 z = xexp(-x^2-y^2) 为例讲解基本操作,首先需要利用meshgrid 函数生成X-Y平面的网格数据,如下所示: xa = -2:0.2:2; ya = xa; [x,y] = meshgrid(xa,ya); z = x.*exp(-x.^2 - y.^2); mesh(x,y,z); 建立M文件 function fenshu( grade ) if grade > 95.0 disp('The grade is A.'); else if grade > 86.0 disp('The grade is B.'); else

基于matlab的连杆机构设计

基于matlab的连杆机构设计

————————————————————————————————作者: ————————————————————————————————日期:

目录 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 机构运动分析的任务、目的和方法 曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。 对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。还可以根据机构闭环矢量方程计算从动件的位移偏差。上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。 机构运动分析的方法很多,主要有图解法和解析法。当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。而当需要精确地知道或要了解机构在整个运动循环过程中的运动特性时,采用解析法并借助计算机,不仅可获得很高的计算精度及一系列位置的分析结果,并能绘制机构相应的运动线图,同时还可以把机构分析和机构综合问题联系起来,以便于机构的优化设计。 1.2 机构的工作原理 在平面四杆机构中,其具有曲柄的条件为: a.各杆的长度应满足杆长条件,即: 最短杆长度+最长杆长度≤其余两杆长度之和。 b.组成该周转副的两杆中必有一杆为最短杆,且其最短杆为连架杆或机架(当最短杆为连架杆时,四杆机构为曲柄摇杆机构;当最短杆为机架时,则为双曲柄机构)。 在如下图1所示的曲柄摇杆机构中,构件AB为曲柄,则B点应能通过曲柄与连杆两次共线的位置。

matlab程序设计实例

MATLAB 程序设计方法及若干程序实例 樊双喜 (河南大学数学与 信息科学学院开封475004) 摘要本文通过对 MATLAB 程序设计中的若干典型问题做简要的分析和总结,并在此基础上着重讨论了有关算法设计、程序的调试与测试、算法与程序的优化以及循环控制等方面的问题.还通过对一些程序实例做具体解析,来方便读者进行编程训练并掌握一些有关MATLAB 程序设计方面的基本概念、基本方法以及某些问题的处理技巧等.此外,在文章的最后还给出了几个常用数学方法的算法程序, 供读者参考使用.希望能对初学者进行 MATLAB 编程训练提供一些可供参考的材料,并起到一定的指导和激励作用,进而为MATLAB 编程入门打下好的基础. 关键字算法设计;程序调试与测试;程序优化;循环控制 1 算法与程序 1.1 算法与程序的关系算法被称为程序的灵魂,因此在介绍程序之前应先了 解什么是算法.所谓算 法就是对特定问题求解步骤的一种描述.对于一个较复杂的计算或是数据处理的问题,通常是先设计出在理论上可行的算法,即程序的操作步骤,然后再按照算法逐步翻译成相应的程序语言,即计算机可识别的语言. 所谓程序设计,就是使用在计算机上可执行的程序代码来有效的描述用于解决特定问题算法的过程.简单来说,程序就是指令的集合.结构化程序设计由于采用了模块分化与功能分解,自顶向下,即分而治之的方法,因而可将一个较复杂的问题分解为若干子问题,逐步求精.算法是操作的过程,而程序结构和程序流程则是算法的具体体现. 1.2MATLAB 语言的特点 MATLAB 语言简洁紧凑,使用方便灵活,库函数极其丰富,其语法规则与科技人员的思维和书写习惯相近,便于操作.MATLAB 程序书写形式自由,利用其丰富

MATLAB中的单元阵列与结构体及其区别

1、什么是单元阵列? 单元阵列又叫cell(元胞)阵列,以前见过“元胞数组”一词,其实是可以理解成阵列的,比如二维数组,可以理解成2行n列的矩阵或阵列。 2、单元/元胞阵列是如何构成的呢? 我们都熟悉阵列或矩阵的构成,比如一个m*n大小的矩阵,那么它有m行、n列,共有m*n个元素。如果我们只在实数范围内考虑,那么对应的每一个元素就是一个实数,这是一般的实矩阵。单元阵列也可以有m行n列,对应有m*n个元素。所不同的是单元阵列中每个元素是一个cell(元胞),而每个cell可以由不同数据格式的矩阵构成,构成每个cell的矩阵大小也可以不同,可以是一个元素,也可以是一个向量,也可以是一个多维数组。 3、如何创建一个单元阵列? 可使用cell函数创建一个空的单元阵列,具体可参考MATLAB中 help cell内容。也可以使用大括号创建,比如我们要创建一个1x3的单元阵列c,则c={A sum(A) prod(prod(A))},可以把A设为一个向量,具体各cell数据类型读者可以用 c{1}/c{2}/c{3}读出来然后使用whos函数自己验证。其中prod 是求积,若A为一个数组(或一维向量),则一个prod后即可求出所有元素之积,第二个prod则还为原结果。若A为一个矩阵,

则第一个prod后针对各列求积,结果保留为一个数组,第二个prod则对该数组所有元素再求积,那么两个prod的结果即为对矩阵所有元素求积。 4、什么是结构体及其构成? 结构体可以理解为一种特殊的数据类型。一个结构体有若干结构变量或者域构成。每个结构变量/域类似于一个cell,结构变量可以由不同数据类型的数组构成,比如字符串、整型、浮点数……。此处只是可以借用cell的形式来理解结构变量,但二者绝不等同。 5、如何创建结构体? 可以使用struct函数创建结构体。我们定义结构体为 str_array, 则str_array=struct('field1',val1,'field2',val2,……),其中field1、field2为域名,val1、val2为具体值。 6、单元阵列与结构体的不同之处。 结构体(也可称为结构体阵列)中可以使用域名来访问数据,而在单元阵列中则使用矩阵的索引操作。

用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,L4 th2=[0:1/6:2]*pi; %曲柄输入角度从0至360度,步长为pi/6 th34=zeros(length(th2),2); %建立一个N行2列的零矩阵,第一列存放options=optimset('display','off'); %θ_3,第二列存放θ_3 for m=1:length(th2) %建立for循环,求解θ_3,θ_4 th34(m,:)=fsolve('fourbarposition',[1 1],…%调用fsove函数求解关于θ_3,θ_4 options,th2(m),L2,L3,L4,L1); %的非线性超越方程,结果保存在th34中 end y=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)

第4章MATLAB程序流程控制-习题答案

第4章M A T L A B程序流程控制-习题答案

第4章MATLAB程序流程控制 习题4 一、选择题 1.下列关于脚本文件和函数文件的描述中不正确的是()。A A.函数文件可以在命令行窗口直接运行 B.去掉函数文件第一行的定义行可转变成脚本文件 C.脚本文件可以调用函数文件 D.函数文件中的第一行必须以function开始 2.下列程序的输出结果是()。D y=10; ify==10 y=20; elseify>0 y=30 end disp(y) A.1B.30C.10D.20 3.有以下语句: a=eye(5); forn=a(2:end,:) for循环的循环次数是()。C A.3B.4C.5D.10 4.设有程序段 k=10; whilek k=k-1 end 则下面描述中正确的是()。A A.while循环执行10次B.循环是无限循环 C.循环体语句一次也不执行D.循环体语句执行一次 5.有以下程序段: x=reshape(1:12,3,4); m=0;

n=0; fork=1:4 ifx(:,k)<=6 m=m+1; else n=n+1; end end 则m 和n 的值分别是()。C A .66 B .21 C .22 D .12 6.调用 函数时 ,如 果函数 文件名与 函数 名不一 致用()。A A .函数文件名B .函数名 C .函数文件名或函数名均可 D .@函数名 7.如果有函数声明行为“f unction[x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是 ()。B A .x=f1(a,b,c)B .[x,y,z,w]=f1(a,b,c) C .[x,b,z]=f1(a,y,c)D .[a,b]=f1(x,y,z) 8.执行语句“f n=@(x)10*x;”,则fn 是()。A A .匿名函数B .函数句柄C .字符串D .普通函数 9.执行下列语句后,变量A 的值是()。D >>f=@(x,y)log(exp(x+y)); >>A=f(22,3); A .22,3B .22C .3D .25 10.程序调试时用于设置断点的函数是()。A A .dbstopB .dbclearC .dbcontD .dbstack 二、填空题 1.将有 关M A T L A B 命令编成程序存储在展名为.m 的文件中,该文件称 为。M 文件 2.有语句“f ork=[12;34]”引导的循环结构,其循环体执行的次数为。1 3.M A T L A B 中用于控制不确定重复次 数 的 循 环 中需要终止该循用的语句为。while ?end ,break 4.函数文件由语 句引导。在函 数 定 义时,函数数。在调用函数时,输入输出为参数。 function ,形式,形参,实际,实参 5.在MATLAB 中,函数文件中的变量是变量。定义变量是函数间 传递信息的一种手段用命令定义。局部,全局,global 6.应用程序的错误有两类,一类是错误,另一类是运行时的错误,即 2

(完整版)matlab中使用结构体汇总

matlab中使用结构体 结构(struct)数组 要在MALTAB中实现比较复杂的编程,就不能不用struct类型。而且在MATLAB中实现struct比C中更为方便。 4. 3.1 结构数组的创建 MATLAB提供了两种定义结构的方式:直接应用和使用struct函数。 1. 使用直接引用方式定义结构 与建立数值型数组一样,建立新struct对象不需要事先申明,可以直接引用,而且可以动态扩充。比如建立一个复数变量x: x.real = 0; % 创建字段名为real,并为该字段赋值为0 x.imag = 0 % 为x创建一个新的字段imag,并为该字段赋值为0 x = real: 0 imag: 0 然后可以将旗动态扩充为数组: x(2).real = 0; % 将x扩充为1×2的结构数组 x(2).imag = 0; 在任何需要的时候,也可以为数组动态扩充字段,如增加字段scale:x(1).scale = 0;

这样,所有x都增加了一个scale字段,而x(1)之外的其他变量的scale字段为空: x(1) % 查看结构数组的第一个元素的各个字段的内容 ans = real: 0 imag: 0 scale: 0 x(2) % 查看结构数组的第二个元素的各个字段的内容,注意没有赋值的字段为空 ans = real: 0 imag: 0 scale: [] 应该注意的是,x的real、imag、scale字段不一定是单个数据元素,它们可以是任意数据类型,可以是向量、数组、矩阵甚至是其他结构变量或元胞数组,而且不同字段之间其数据类型不需要相同。例如: clear x; x.real = [1 2 3 4 5]; x.imag = ones(10,10); 数组中不同元素的同一字段的数据类型也不要求一样: x(2).real = '123'; x(2).imag = rand(5,1);

第4章matlab程序流程控制_习题答案

第4章 MATLAB程序流程控制 习题4 一、选择题 1.下列关于脚本文件和函数文件的描述中不正确的是()。 A A.函数文件可以在命令行窗口直接运行 B.去掉函数文件第一行的定义行可转变成脚本文件 C.脚本文件可以调用函数文件 D.函数文件中的第一行必须以function开始 2.下列程序的输出结果是()。D y=10; if y==10 y=20; elseif y>0 y=30 end disp(y) A.1 B.30 C.10 D.20 3.有以下语句: a=eye(5); for n=a(2:end,:) for循环的循环次数是()。C A.3 B.4 C.5 D.10 4.设有程序段 k=10; while k k=k-1 end 则下面描述中正确的是()。A A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次5.有以下程序段: x=reshape(1:12,3,4); m=0;

n=0; for k=1:4 if x(:,k)<=6 m=m+1; else n=n+1; end end 则m和n的值分别是()。C A.6 6 B.2 1 C.2 2 D.1 2 6.调用函数时,如果函数文件名与函数名不一致,则使用()。A A.函数文件名 B.函数名 C.函数文件名或函数名均可 D.@函数名 7.如果有函数声明行为“function [x,y,z]=f1(a,b,c)”,则下述函数调用格式中错误的是()。B A.x=f1(a,b,c) B.[x,y,z,w]=f1(a,b,c) C.[x,b,z]=f1(a,y,c) D.[a,b]=f1(x,y,z) 8.执行语句“fn=@(x) 10*x;”,则 fn是()。A A.匿名函数 B.函数句柄 C.字符串 D.普通函数 9.执行下列语句后,变量A的值是()。D >> f=@(x,y) log(exp(x+y)); >> A=f(22,3); A.22,3 B.22 C.3 D.25 10.程序调试时用于设置断点的函数是()。A A.dbstop B.dbclear C.dbcont D.dbstack 二、填空题 1.将有关MATLAB命令编成程序存储在一个扩展名为.m的文件中,该文件称为。M文件 2.有语句“for k=[12;34]”引导的循环结构,其循环体执行的次数为。1 3.MATLAB中用于控制不确定重复次数的循环语句为,若在循环执行过程中需要终止该循环时采用的语句为。while…end,break 4.函数文件由语句引导。在函数定义时,函数的输入输出参数称为参数,简称。在调用函数时,输入输出参数称为参数,简称。 function,形式,形参,实际,实参 5.在MATLAB中,函数文件中的变量是变量。定义变量是函数间传递信息的一种手段,可以用命令定义。局部,全局,global 6.应用程序的错误有两类,一类是错误,另一类是运行时的错误,即错

Matlab使用单元数组和结构数组

Matlab使用单元数组(cell array)和结构数组(struct array) 要在MALTAB中实现比较复杂的编程,就不能不用单元数组(cell array)和结构数组(structarray)。而且在Matlab中实现struct比C中更为方便。 一. 单元数组 单元数组中的每一个元素称为单元(cell). 单元可以包含任何类型的matlab数据, 这些数据类型包括数值数组, 字符, 符号对象, 甚至其他的单元数组和结构体. 不同的单元可以包含不同的数据. 1.1单元数组创建与显示: 1、直接赋值法:按单元索引法和按内容索引法。(其实也就是将花括号放在等式的右边或是左边的区别)。注意:“按单元索引法”和“按内容索引法”是完全等效的,可以互换使用。通过下面实例,我们看到:花括号{}用于访问单元的值,而括号()用于标识单元(即:不用于访问单元的值)。具体理解{}和()区别可以在下面代码最后分别输入A{2,2}和A(2,2)。就会发现“按内容索引法{}”能显示完整的单元内容,而“按单元索引法()”有时无法显示完整的单元内容。 >> A(1,1)={[1 2 3; 4 5 6;7 8 9]}; % 按单元索引法 >> A(1,2)={2+3i}; >> A(2,1)={'A character'}; >> A(2,2)={12:-2:0}; >> A%要想详细显示A中的内容,可用指令:celldisp(A) A = [3x3 double] [2.0000 + 3.0000i] 'A character' [1x7 double] >> B{1,1}=[1 2 3;4 5 6;7 8 9]; % 按内容索引法。 >> B{1,2}=2+3i; >> B{2,1}='A character'; >> B{2,2}=12:-2:0; >>B B = [3x3 double] [2.0000 + 3.0000i] 'A character' [1x7 double] 2、利用cell函数法:即首先用cell函数生成一个空的单元数组,然后再向其中添加所需的数据。下面的代码生成一个2X3的空单元数组: >> C=cell(2,3) C = [] [] [] [] [] [] 利用cell生成空单元数组后,可以采用“按单元索引法”和“按内容索引法”对其进行赋值。在赋值时,用户一定要注意{}和()的用法。 >> C(1,1)={'This does work'} C = 'This does work' [] [] [] [] [] >> C{2,3}='This work' C = 'This does work' [] [] [] [] 'This work'

实验1 MATLAB使用方法和程序设计

实验1 MATLAB 使用方法和程序设计 一、实验目的 1、掌握MATLAB 软件使用的基本方法。 2、熟悉MATLAB 的数据表示、基本运算和程序控制语句。 3、熟悉MATLAB 绘图命令及基本绘图控制。 4、熟悉MATLAB 程序设计的基本方法。 二、实验内容 1.帮助命令 使用Help 命令,查找sqrt (开方)函数的使用方法。 2、矩阵运算 (1)矩阵乘法 已知A=[1 2;3 4];B=[5 5;7 8]; 求A^2*B 。 (2) 矩阵除法 已知A=[1 2 3;4 5 6;7 8 9];B=[1 0 0;0 2 0;0 0 3]; 求A\B,A/B 。 (3) 矩阵的转置及共轭转置 已知A=[5+i ,2-i ,1;6*i ,4,9-i];求A.’,A ’ 。 (4)使用冒号选出指定元素 已知A=[1 2 3 ; 4 5 6 ; 7 8 9]; 求A 中第3列前2个元素;A 中所有列第2,3行的元素。 (5)方括号[] 用magic 函数生成一个4阶魔术矩阵,删除该矩阵的第四列。 3、多项式 (1)求多项式p(x)=x 3-2x-4的根。 (2)求 f (x) = (cos x)2 的一次导数。 (3)求微分方程 的通解,并验证。 4、基本绘图命令 (1)绘制余弦曲线cost =y , ]2,0[π∈t 。 (2)在同一坐标系中绘制余弦曲线 0.25)-cos(t =y 和正弦曲线 )5.0sin(-=t y ,]2,0[π∈t (3)用plot3函数绘制三维螺线: 22x dy xy xe dx -+= sin()cos()x t y t z t =??=??=?( 0 < t < 20 )

基于MATLAB的双摇杆机构运动分析与仿真模板

本科生毕业设计 基于MATLAB的双摇杆机构运动分析与仿真 Based on the MATLAB double rocker organization movement analysis and simulation

基于MATLAB/SIMULINK的双摇杆机构运动学分析与仿 真 邹凯旋 云南农业大学工程技术学院,昆明黑龙潭650201 摘要 平面连杆机构的应用十分广泛,它的分析及设计一直是机构学研究的一个重要课题。MATLAB的Simulink是一个对动态系统建模和仿真分析的软件包,为信号与系统仿真实验提供了很好的平台。借助其强大的模拟仿真分析功能可以方便的实现机构性能分析和动态仿真,降低分析的难度,有效提高设计工作效率、产品开发质量、降低开发成本。本设计课题以MATLAB的simulink\simMechanics 动态模拟仿真工具为平台,对双摇杆机构进行运动分析。结果表明该仿真方法能方便、准确的得到机构的运动、动力数据,能为机构的选择、优化设计提供参考依据。应用此工具可很好地对机械系统的各种运动进行分析,构造出平面连杆机构的数学模型。通过对此数学模型分析,分离出可独立求解的机构模型,并用相应的机构分析方法对它进行求解,建立了平面连杆机构运动学分析专家系统。系统可完成部分平面连杆机构的运动学分析及动画仿真,从而为机械系统的建模仿真提供一个强大而方便的工具。 关键词:连杆机构;动态仿真;SimMechanics;数学模型

Based on the MATLAB double rocker organization movement analysis and simulation Zou kaixuan Faculty of Engineering and Technology Yunan Agricultural University,Heilongtan Kunming 650201 ABSTRACT Planar linkage mechanism used widely, its analysis and design of the study of institutions has been an important subject. MATLAB Simulink is a dynamic system modeling and simulation software package, for signal and system simulation results provide a good platform. With its powerful simulation analysis function is realized the performance analysis and the dynamic simulation institutions, reduce the difficulties of analysis, effectively improve the design work efficiency and product development quality, reduce development costs. This design task to MATLAB simulink \ simMechanics dynamic simulation tools as the platform, on the double rocker organization motion analysis. The results show that the simulation method can conveniently, accurately to get the kinematic and dynamic data organization, for the choice of institutions, optimum design to provide the reference. This tool can application is mechanical system analysis of all kinds of sports, constructed the mathematical model of the planar linkage mechanism. Through mathematical model to analysis, separating out can be independent of solving mechanism model, and the corresponding institutions analysis method to solve it, a planar linkage mechanism kinematic analysis of the expert system. System can finish part of planar linkage mechanism kinematic analysis and animated simulation, thus for mechanical system modeling simulation provide a strong and convenient tool. Key words: linkage;Dynamic Simulation;SimMechanics;mathematical model

基于matlab的平面四连杆机构设计以及该机构的运动分析

基于matlab 的平面四连杆机构设计以及该机构的运动仿真分析 摘要 四连杆机构因其结构方便灵活,能够传递动力并实现多种运动形式而被广泛应用于各个领域,因此对其进行运动分析具有重要的意 义。传统的分析方法主要应用几何综合法和解析综合法,几何综合法简单直观,但是精确度较低;解析法精确度较高,但是计算工作量大。随着计算机辅助数值解法的发展,特别是MATLAB 软件的引入,解析法已经得到了广泛的应用。对于四连杆的运动分析,若应用MATLAB 则需要大量的编程,因此我们引入proe 软件,我们不仅可以在此软件中建立实物图,而且还可以对其进行运动仿真并对其运动分析。 在设计四连杆时,我们利用解析综合法建立数学模型,再根据数学模型在MATLAB 中编程可以求得其他杆件的长度。 针对范例中所求得的各连杆的长度,我们在proe 软件中画出其三维图(如图4)并在proe软件中进行仿真分析得出B,C的角加速度的变化,从而得到B,C两接触处所受到的力是成周期性变化的,可以看出B,C两点处极易疲劳断裂,针对B,C两点处的疲劳断裂,我们提出了在设计四连杆中的一些建议。 关键字:解析法MATLAB软件proe软件运动仿真

建立用解析法设计平面四杆机构模型 对于问题中所给出的连架杆AB的三个位置与连架杆CD的三个位置相对应,即三组对应位置为: f 1」2卜2,「3卜3,其中他们对应的值分别为:135 ,112 ,90 ,82 ,45 ,52,为了便于写代数式,可作出AB与CD对应的关系,其图如下: 图一2 AB与CD三个位置对应的关系 通过上图我们可以通过建立平面直角坐标系并利用解析法来求解,其直角坐标系图如下: 图一3平面机构直角坐标系 通过建立直角坐标系OXY,如上图所示,其中:0与°为AB杆与

matlab 元胞与结构体详解

matlab 元胞与结构体详解 分类:Matlab2011-07-13 20:12979人阅读评论(0)收藏举报用户可以通过两种方式创建一个单元数组:一是通过赋值语句直接创建;二是利用cell 函数先为单元数组分配一个内存空间,然后再给各个单元赋值。 直接赋值法通过给每个单元逐个赋值来创建单元数组。单元数组用花括号表示,在赋值时需要将单元内容用花括号(即{ }) 括起来。 使用cell 函数创建单元数组的步骤为:首先用cell 函数创 建一个空的单元数组,然后再为数组元素赋值。 使用圆括号和花括号对单元数组索引的不同,当采用圆括号时表示的是该单元,而采用花括号时则表示的是单元的内容。在MATLAB单元数组索引中,圆括号用于标志单元,花 括号用于按单元寻址。 若要显示单元数组的内容,可以用celldisp函数。celldisp 函数用于显示单元数组的全部内容,有时候只需要显示单元数组的一个单元,可以使用花括号对单元进行索引。

Matlab支持以图形方式查看的数组单元的内容,使用cellplot 函数,需要注意的是,cellplot只能用于显示二维单元数组的内容。 与单元数组类似,结构体也有两种生成方式,一种是直接输入,另一种是使用结构体生成函数struct. 通过直接输入结构体各元素的方法可以创建一个结构体,输入的同时定义该元素的名称,并使用“.”将变量名与元素名连接。 使用结构体struct函数生成结构体,struct函数的最基本的使用方式是struct_name = struct('field',V1,'field2',V2,...),其中field 是各成员的变量名,Vn为对应的各成员变量的内容。

matlab基本使用方法

1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如:>> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2); 若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开 sign(x):符号函数 (Signum function)。 当x<0时,sign(x)=-1; 当x=0时,sign(x)=0; 当x>0时,sign(x)=1。 > 小整理:MATLAB常用的三角函数 sin(x):正弦函数 cos(x):馀弦函数 tan(x):正切函数

用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,L4 th2=[0:1/6:2]*pi; %曲柄输入角度从0至360度,步长为pi/6 th34=zeros(length(th2),2); %建立一个N行2列的零矩阵,第一列存放options=optimset('display','off'); %θ_3,第二列存放θ_3 for m=1:length(th2) %建立for循环,求解θ_3,θ_4 th34(m,:)=fsolve('fourbarposition',[1 1],…%调用fsove函数求解关于θ_3,θ_4 options,th2(m),L2,L3,L4,L1); %的非线性超越方程,结果保存在th34中 end y=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'); form=1:length(th2)

matlab函数用法

gscatter画散点图 gscatter函数可以按分类或分组来画离散点,适用于画多个类别的离散样本分布图。 使用方法: gscatter(x,y,group) gscatter(x,y,group,clr,sym,siz) gscatter(x,y,group,clr,sym,siz,doleg) gscatter(x,y,group,clr,sym,siz,doleg,xnam,ynam) h = gscatter(...) 函数中,x和y是向量,是该点的x轴和y轴坐标,因为画在二维平面上,所以,如果是多维数据,只能从中选取两特征作为x,y坐标来代表点,或者使用特定的降维投影函数来得到x,y。 group是类别标志或分组向量,对应每一个坐标或样本的类别或分组,可以是多分类样本。clr是点的颜色字符串序列,如“r”代表红色之类,可以不用,所以不做详细介绍了。 使用案例: A=magic(6) group=[1,2,3,3,2,3] gscatter(A(:,1),A(:,2),group) MATLAB中的单元阵列与结构体及其区别 1、什么是单元阵列? 单元阵列又叫cell(元胞)阵列,以前见过“元胞数组”一词,其实是可以理解成阵列的,比如二维数组,可以理解成2行n列的矩阵或阵列。 2、单元/元胞阵列是如何构成的呢? 我们都熟悉阵列或矩阵的构成,比如一个m*n大小的矩阵,那么它有m行、n列,共有m*n个元素。如果我们只在实数范围内考虑,那么对应的每一个元素就是一个实数,这是一般的实矩阵。单元阵列也可以有m行n列,对应有m*n个元素。所不同的是单元阵列中每个元素是一个cell(元胞),而每个cell可以由不同数据格式的矩阵构成,构成每个cell的矩阵大小也可以不

相关文档
最新文档