当前位置:文档之家› 完整word版,倒立摆在matlab的simulink库下的仿真

完整word版,倒立摆在matlab的simulink库下的仿真

完整word版,倒立摆在matlab的simulink库下的仿真
完整word版,倒立摆在matlab的simulink库下的仿真

倒立摆在matlab的simulink库下的仿真

倒立摆是处于倒置不稳定状态,人为控制使其处于动态平衡的一种摆。对于倒立摆系统的控制研究长期以来被认为是控制理论及其应用领域里引起人们极大兴趣的问题,倒立摆系统是一个典型的快速、多变量、非线性、不稳定系统。研究倒立摆控制能有效地反映控制中的许多问题,倒立摆研究具有重要的理论价值和应用价值,理论上,它是检验各种新的控制理论和方法的有效实验装置。应用上,倒立摆广泛应用于控制理论研究!航空航天控制,机器人、杂技顶杆表演等领域,在自动化领域中具有重要的价值。另外,由于此装置成本低廉,结构简单,便于用模拟、数字等不同方式控制,在控制理论教学和科研中也有很多应用。

本论文中,以一级倒立摆为研究对象,对它的起摆以及稳定控制做了研究,主要研究工作如下:

1.首先介绍了倒立摆系统的组成和控制原理,建立了一级倒立摆的数学模型,对倒立摆系统进行定性分析,但在平衡点是能控的、能观的。

2.分析了倒立摆的起摆过程,对倒立摆的起摆能量反馈控制进行分析与说明。

3.在matlab2014a的simulink库下对倒立摆构造单级倒立摆状态反馈控制系统的仿真模型和构造具有状态观测器的单级倒立摆状态反馈控制系统的仿真模型。

4.对这次仿真的总结。

一、倒立摆的控制目标

倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。

二、建立单级倒立摆系统的状态空间模型

其中,质量为M的小车在水平方向滑动,质量为m的球连在长度为L的刚性摆一端,x表示小车的位移,u是作用在小车上的力,通过移动小车使带有小球的摆杆始终处于垂直的位置。为了简单起见,假设小车和摆仅在一个平面内运动,且不考虑摩擦、摆杆的质量和空气阻力。如图1

图1

设系统的动态特性可以用小车的位移和速度及杆偏离垂线的角度θ和角速度?

θ来描述。设小车位移为x ,则小球中心位置是θlsin x + 在水平方向,应用牛顿第二定律:

222

2d x d (x sin )d d M m l u t t θ++=

在垂直于摆杆方向,应用牛顿第二定律:

2

2d (x sin )sin d m l mg t

θθ+=

求微分方程得:

θθθ&?=)(cos )(sin d d t

θθθθθ&&&?+?-=cos )sin ()(sin d d 222t

θθθ&?-=)sin ()(cos d d t

θθθθθ&&&?-+?-=)sin ()cos ()(cos d d 222t

线性化:当和较小时 ,有

?

θ

θ

较小时 ,有

01

cos s ≈?≈≈?

θθθθθin

化简得

u

ml y m M ≈++θ&&&&)(θ

θmg ml y m ≈+&&&&化简得

u

M

M mg y 1

+-=θ&&u

Ml Ml g m M 1)(-+=θθ&&

选择状态变量

小车的位移、小车的速度、小车的角度、小车的角速度分别为

.43.

21θ

θ====x x y x y x

u 为输入,y 为系统的输出

状态图为

三、单级倒立摆系统的极点配置

1. 状态反馈系统的极点配置及其MATLAB/Simulink 仿真

取适当的参数 M 小车质量 0.1 Kg m 小球质量

0.01Kg

l 摆杆的长度

1m

u 加在小车上的力 y 小车位移

θ

摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下

;0100

10

00000001

114321)(43

21u x x x x x x x x Ml M Ml

g m M M mg ?????

???????-+????????????????????????-=????????????+&&&&[]?????

???????=43210001x x x x y

g 重力加速度为 10g/2

s

接下来使用matlab 和线性系统的能控性判据,通过是否为满秩来判断能控性

根据判别系统能控性的定理,该系统的能控性矩阵满秩,所以该系统是能控的。因为系统是能控的,所以,可以通过状态反馈来任意配置极点。 不失一般性,不妨将极点配置在

61-=s ; 5.62-=s ;73-=s ;5.74-=s

在matlab 下输入命令

得到状态反馈矩阵为

[]175.1495.488175

.12275.204K ----=

采用MATLAB/Simulink 构造单级倒立摆状态反馈控制系统的仿真模型,如下图所示。

将参数代入后得到新的矩阵

u

x x x x x

x x x ?

?

???

?

??????-+????????????????????????-=????????????1010011001000010000

1

0432143

21&&&&[]???

?

????????=43210001x x x x y

首先,在MATLAB的Command Window中输入各个矩阵的值,并且在模型中的积分器中设置非零初值(这里我们设置为[0 0 0.1 0]。然后运行仿真程序。

得到的仿真曲线

从仿真结果可以看出,可以将倒立摆的杆子与竖直方向的偏角控制在 =0(即小球和杆子被控制保持在竖直倒立状态),另外说明下黄线代表位移,紫线代表角度。

2.设计状态观测器实现状态反馈极点配置及其仿真

首先,使用MATLAB,判断系统的能观性矩阵是否为满秩。输入以下程序

因为该系统的能观测性矩阵满秩,所以该系统是能观测的。因为系统是能观测的,所以,可以设计状态观测器。而系统又是能控的,因此可以通过状态观测器实现状态反馈。

设计状态观测器矩阵,使的特征值的实部均为负,且其绝对值要大于状态反馈所配置极点的绝对值。通过仿真发现,这样才能保证状态观测器有足够快的收敛速度,才能够保证使用状态观测器所观测到的状态与原系统的状态充分接近。不妨取状态观测器的特征值为:

23

s 22s 21s 20s 4321-=-=-=-=

输入以下的命令

得到状态观测器矩阵G

如果采用MATLAB/Simulink 构造具有状态观测器的单级倒立摆状态反馈控制系统的仿真模型,如下图所示。

首先,在MATLAB的Command Window中输入各个矩阵的值,并且在模型中的积分器中设置非零初值这里设置初值为[0 0 0.1 0]。然后运行仿真程序。得到的仿真曲线。

从仿真结果可以看出,可以将倒立摆的杆子与竖直方向的偏角控制在 =0

(即小球和杆子被控制保持在竖直倒立状态),另外说明下黄线代表位移,紫线代表角度。

3.总结

由仿真结果对比可知,加不加观测器都可以很好的控制摆杆不倒,完全可以达到控制要求。但是加观测器的系统控制效果要优于没有加观测器的系统。

参考文献

[1]郑大钟.线性系统理论(第2版):清华大学出版社(2002-2012)

[2]欧阳黎明.MATLAB 控制系统设计[M].北京:国防工业出版社,2001.

[3]线性系统理论和设计,仝茂达编著,出版社:中国科学技术大学出版社,1998

[4]线性系统理论,段广仁编著,哈尔滨工业大学出版社1996

[5]曾水平的PPT.

基于MATLAB(矩阵实验室)的倒立摆控制系统仿真

基于MATLAB(矩阵实验室)的倒立摆控制系统仿真 摘要 自动控制原理(包括经典部分和现代部分)是电气信息工程学院学生的一门必修专业基础课,课程中的一些概念相对比较抽象,如系统的稳定性、可控性、收敛速度和抗干扰能力等。倒立摆系统是一个典型的非线性、强耦合、多变量和不稳定系统,作为控制系统的被控对象,它是一个理想的教学实验设备,许多抽象的控制概念都可以通过倒立摆直观地表现出来。本文以一级倒立摆为被控对象,用经典控制理论设计控制器(PID控制器)的设计方法和用现代控制理论设计控制器(极点配置)的设计方法,通过MATLAB仿真软件的方法来实现。 关键词:一级倒立摆PID控制器极点配置

Inverted pendulum controlling system simulation based on the MATLAB ABSTRACT Automatic control theory (including classical parts and modern parts) is a compulsory specialized fundamental course of the students majored in electrical engineering. Some of the curriculum concept is relatively abstract, such as the stability, controllability, convergence rate and the anti-interference ability of system. Inverted pendulum system is a typical nonlinear, strong coupling, multivariable and unstable system. It is an ideal teaching experimental equipment as a controlled object, by which many abstract control concepts can be came out directly. This paper chose first-order inverted pendulum as the controlled object. First, the PID controller was designed with classical control theory. Then pole-assignment method was discussed with modern control theory. At last, the effectness of the two methods was verified by MATLAB simulation software. KEY WORDS: First-order inverted pendulum PID controller pole-assignment

Matlab Simulink 仿真步骤

MATLAB基础与应用简明教程 张明等编著 北京航空航天大学出版社(2001.01) MATLAB软件环境是美国New Mexico大学的Cleve Moler博士首创的,全名为MATrix LABoratory(矩阵实验室)。它建立在20世纪七八十年代流行的LINPACK(线性代数计算)和ESPACK(特征值计算)软件包的基础上。LINPACK和ESPACK软件包是从Fortran语言开始编写的,后来改写为C语言,改造过程中较为复杂,使用不便。MA TLAB是随着Windows环境的发展而迅速发展起来的。它充分利用了Windows环境下的交互性、多任务功能语言,使得矩阵计算、数值运算变得极为简单。MA TLAB语言是一种更为抽象的高级计算机语言,既有与C语言等同的一面,又更为接近人的抽象思维,便于学习和编程。同时,它具有很好的开放性,用户可以根据自己的需求,利用MA TLAB提供的基本工具,灵活地编制和开发自己的程序,开创新的应用。 本书重点介绍了MA TLAB的矩阵运算、符号运算、图形功能、控制系统分析与设计、SimuLink仿真等方面的内容。 Chap1 MATLAB入门与基本运算 本章介绍MATLAB的基本概念,包括工作空间;目录、路径和文件的管理方式;帮助和例题演示功能等。重点介绍矩阵、数组和函数的运算规则、命令形式,并列举了可能得到的结果。由于MA TLAB的符号工具箱是一个重要分支,其强大的运算功能在科技领域有特殊的帮助作用。 1.1 MATLAB环境与文件管理 1.2 工作空间与变量管理 1.2.1 建立数据 x1=[0.2 1.11 3]; y1=[1 2 3;4 5 6]建立一维数组x1和二维矩阵y1。分号“;”表示不显示定义的数据。 MATLAB还提供了一些简洁方式,能有规律地产生数组: xx=1:10 %xx从1到10,间隔为1 xx=-2:0.5:1 %xx从-2到1,间隔为0.5 linespace命令等距离产生数组,logspace在对数空间中等距离产生数组。对于这一类命令,只要给出数组的两端数据和维数就可以了。 xx=linespace(d1,d2,n) %表示xx从d1到d2等距离取n个点 xx=logspace(d1,d2,n) %表明xx从10d1到10d2等距离取n个点 1.2.2 who和whos命令 who: 查看工作空间中有哪些变量名 whos: 了解这些变量的具体细节 1.2.3 exist命令 查询当前的工作空间内是否存在一个变量,可以调用exist()函数来完成。 调用格式:i=exist(…A?); 式中,A为要查询的变量名。返回的值i表示A存在的形式: i=1 表示当前工作空间内存在一个变量名为A的矩阵; i=2 表示存在一个名为A.m的文件; i=3 表示MATLAB的工作路径下存在一个名为A.mex的文件;

基于matlab的一级倒立摆自适应仿真

第一章绪论 1.1倒立摆系统的简介 1.1.1倒立摆系统的研究背景及意义 倒立摆系统的最初分析研究开始于二十世纪五十年代,是一个比较复杂的不稳定、多变量、带有非线性和强耦合特性的高阶机械系统,它的稳定控制是控制理论应用的一个典型范例[1]。倒立摆系统存在严重的不确定性,一方面是系统的参数的不确定性,一方面是系统的受到不确定因素的干扰。通过对它的研究不仅可以解决控制中的理论问题,还将控制理论涉及的相关主要学科:机械、力学、数学、电学和计算机等综合应用。在多种控制理论与方法的研究和应用中,特别是在工程中,存在一种可行性的实验问题,将其理论和方法得到有效的验证,倒立摆系统可以此提供一个从控制理论通过实践的桥梁。近些年来,国内外不少专家、学者一直将它视为典型的研究对象,提出了很多控制方案,对倒立摆系统的稳定性和镇定问题进行了大量研究,都在试图寻找不同的控制方法实现对倒立摆的控制,以便检查或说明该方法的严重非线性和绝对不稳定系统的控制能力,其控制方法在军工、航天、机械人领域和一般工业过程中都有着广泛的用途,如精密仪器的加工、机器人行走过程中的平衡控制、火箭发射中的垂直度控制、导弹拦截控制、航空对接控制、卫星飞行中的姿态控制等方面均涉及到倒置问题。因此,从控制这个角度上讲,对倒立摆的研究在理论和方法论上均有着深远意义。倒立摆系统是一个典型的自不稳定系统,其中摆作为一个典型的振动和运动问题,可以抽象为许多问题来研究。随着非线性科学的发展,以前的采用线性化方法来描述非线性的性质,固然无可非议,但这种方法是很有局限性,非线性的一些本质特征往往不是用线性的方法所能体

现的。非线性是造成混乱、无序或混沌的核心因素,造成混乱、无序或混沌并不意味着需要复杂的原因,简单的非线性就会产生非常的混乱、无序或混沌。在倒立摆系统中含有极其丰富和复杂的动力学行为,如分叉、分形和混沌动力学,这方面的问题也值得去探讨和研究。 无论哪种类型的倒立摆系统都具有如下特性[2]: (1)非线性倒立摆是一个典型的非线性复杂系统。实际中可以通过线性化得到系统的近似模型,线性化处理后再进行控制,也可以利用非线性控制理论对其进行控制,倒立摆的非线性控制正成为一个研究的热点。 (2)不确定性主要是指建立系统数学模型时的参数误差、量测噪声以及机械传动过程中的减速齿轮间隙等非线性因素所导致的难以量化的部分。 (3)欠冗余性一般的,倒立摆控制系统采用单电机驱动,因而它与冗余机构,比如说冗余机器人有较大的不同。之所以采用欠冗余的设计是要在不失系统可靠性的前提下节约经济成本或者节约有效的空间。研究者常常是希望通过对倒立摆控制系统的研究获得性能较为突出的新型控制器设计方法,并验证其有效性及控制性能。 (4)耦合特性倒立摆摆杆和小车之间,以及多级倒立摆系统的上下摆杆之间都是强耦合的。这既是可以采用单电机驱动倒立摆控制系统的原因,也是使得控制系统的设计、控制器参数调节变得复杂的原因。 (5)开环不稳定性倒立摆系统有两个平衡状态:垂直向下和垂直向上。垂直向下的状态是系统稳定的平衡点(考虑摩擦力的影响),而垂直向上的状态是系统不稳定的平衡点,开环时微小的扰动都会使系统离开垂直向上的状态而进入到垂直向下的状态中。 (6)约束限制由于实际机构的限制,如运动模块行程限制,电机力矩限制等。为制造方便和降低成本,倒立摆的结构尺寸和电机功率都尽量要求最小,行程限制对于倒立

MATLAB命令画出simulink示波器图形

毕业论文答辩已经结束很长时间了,现在总结一下我在做毕业论文时的用MATLAB命令画出simulink示波器图形的一点方法,我也是MATLAB初学者,所用方法不算高明方法,并且这些方法在论坛应该都能找到,请大家见谅。 第一步,将你的示波器的输出曲线以矩阵形式映射到MATLAB的工作空间内。 如图1所示,双击示波器后选择parameters目录下的Data history,将Save data to workspace勾上,Format选择Array,Variable name即你输入至工作空间的矩阵名称,这里我取名aa。在这之后运行一次仿真,那么你就可以在MATLAB的工作空间里看到你示波器输出曲线的矩阵aa。如图2所示。 第二步,用plot函数画出曲线 双击曲线矩阵aa,将可以看到详细情况,我这里的aa矩阵是一个1034行,3 列的矩阵,观察这个矩阵即可以发现,这个矩阵的第一列是仿真时间,而由于我仿真时示波器内输出的是两条曲线,所以第二列和第三列即分别代表了这2条曲线。同时大家要注意,在simulink中我们有时往往在示波器中混合输出曲线,那么就要在示波器前加一个MUX混合模块,因此示波器内曲线映射到的工作空间的矩阵是和你的MUX的输入端数有关,如果你设置了3个MUX输入端,而实际上你只使用了2个,那么曲线矩阵仍然会有4列,并且其中一列是零,而不是3列。 理解曲线矩阵的原理之后,我们就可以用plot函数画出示波器中显示的图形了。 curve=plot(aa(:,1),aa(:,2),aa(:,1),aa(:,3),'--r') %aa(:,1)表示取aa的第一列,仿真时间 %aa(:,2)表示取aa的第二列,示波器的输入一 %aa(:,3)表示取aa的第三列,示波器的输入二 %--r表示曲线2显示的形式和颜色,这里是(red) set(curve(1),'linewidth',3) %设置曲线1的粗细 set(curve(2),'linewidth',3) %设置曲线2的粗细 legend('Fuzzy','PID') %曲线名称标注 xlabel('仿真时间(s)') %X坐标轴名称标注 ylabel('幅值') %Y轴坐标轴标注 title('Fuzzy Control VS PID') %所画图的名称 grid on %添加网格 运行上述命令后即可以看到用MATLAB命令画出的图形了,你可以在图形出来之后继续进行编辑。

倒立摆系统的建模及Matlab仿真资料

第1 页共11 页 倒立摆系统的建模及Matlab仿真 1.系统的物理模型 考虑如图(1)所示的倒立摆系统。图中,倒立摆安装在一个小车上。这里仅考虑倒立摆在图面内运动的二维问题。 图(1)倒立摆系统 假定倒立摆系统的参数如下。 摆杆的质量:m=0.1g l=1m小车的质量:摆杆的长度:2重力加速度:g=9.8m/M=1kg s摆杆的质量在摆杆的中心。 设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量?≤10%,调节时间ts ≤4s ,通过小车的水平运动使倒立摆保持在垂直位置。 2.系统的数学模型 2.1建立倒置摆的运动方程并将其线性化。 为简化问题,在数学模型中首先假设:1)摆杆为刚体;2)忽略摆杆与支点之间的摩擦;3)忽略小车与接触面间的摩擦。 ?),在u设小车瞬时位置为z,摆心瞬时位置为(作用下,小车及摆均产生加速远 动,sin?lz根据牛顿第二定律,在水平直线远动方向的惯性力应与u平衡,于是有 22dzd?)?sinu?M?m(zl22dtdt???2????z(M?mml?)cos?mlusin? 即:??①

绕摆轴转动的惯性力矩与重力矩平衡,因而有. 第2 页共11 页 2??d??? sin??lcosm(z?lsinmgl)??2dt?????22???????即: nis?l?ocgcosincoszs?ls??② 以上两个方程都是非线性方程,为求得解析解,需作线性化处理。由于控制的目的是保持倒立摆直?2?????且可忽略则,立,在试驾合适的外力条件下,假定θ很小,接近于零时合理的,1sincos??,项。于是有 ???M?zm?u?ml??)(③ ????g?z?l??④联立求解可得1mg?u?z????MM 1)?m(M????u??MlMl 列写系统的状态空间表达式。2.2??T xx,x,x,,选取系统变量则 xx,x,xx?,42134123xx??211mgux???x?32MM x?x?431)(M?mu?x?x? 34MlMl 即00100????z??1mg??????000?z?????d MM??Bu?Ax?xux????????00001???dt????1gm?(M)????000??????? MlMl??????Cx?0?y?xx1001代入数据计算得到:0100????000?1??????T0D,?0??1BA?,?001,C100??1000??00011?? 11 页3 页共第 3.设计控制器3.1判断系统的能控性和稳定性 1100????0011????23BBAABAB?Q?故被控对象完全可控, rank()=4,Q kk??11?0?10??011?10???22???11?。出现大于零的特征值,故被,,0 解得特征值为 0由特征方程0??11I?A?)(控对象不稳定3.2确定希望的极点, 另一对为远极点,认为系统性能主要由主导,选其中一对为主导极点和希望的极点n=4ss21极点决定,远极点只有微小影响。根据二阶系统的关系式,先确定主导极点???42??1????10.?e??t1.67?有,闭环可得;取误差带,于是取,则6.?059?0.02.?0? pns??n2????1?js??=-10.8j,远极点选择使它和原点的距离大于主导极点与原点 距离主导极点为?n,21s??15倍,取的54,33.3采用状态反馈方法使系统稳定并配置极点 ??kkkk?k;状态反馈系统的状态方程,馈状态反的控制规律为为kxu??3102?,其

MATLAB编程与SIMULINK仿真简介

348 数字信号处理 MATLAB编程与SIMULINK仿真简介 A.1 MATLAB编程基础 MATLAB6.5提供了丰富的编程语句结构和实用函数,MATLAB产品组是支持你从概念设计、算法开发、建模仿真到实时实现的理想的集成环境。无论是进行科学研究还是产品开发,MATLAB产品族都是必不可少的工具。这里介绍一些常用的编程技巧和方法,以便同学们能尽快地启动起来,更好地应用MATLAB。 1. MATLAB文件的编写与调试环境 M文件的编写与调试在MATLAB Editor/Debugger下进行(图B1-1),这个集成环境可以方便地进行新建、修改、存储,选择Debug菜单中的Run命令就可以运行程序,运行结果显示在MATLAB Command Window 中。程序的调试应用Debug菜单就可以进行调试,其他高级语言中的Set/Clear Breakpoint、Single Step、Stop if error等选项都有,可以方便的调试程序。 图B1-1 M文件的编写与调试窗口 在MATLAB Editror/Debugger下按照MATLAB编程的规则键入相关的语句并存盘,就可以得到一个后缀为.m的文本文件。

2. MATLAB脚本文件和函数文件 在MATLAB中,无论是问题的提出还是结果的表达都采用你习惯的数学描述方法,而不需要用传统的编程语言进行处理。应用MATLAB编写出来的程序可以是M脚本文件(Script 。file),也可以是M函数文件(Function file),这些文件都由纯ASCII字符构成,其后缀m MATLAB下 M脚本文件是一串按用户意图排列而成的(包括控制流向指令在内)MATLAB 指令集合,可以直接执行,用户只需在Command Window中MATLAB提示符>>后键入文件名即可执行。脚本文件运行后所产生的所有变量都驻留在MATLAB的基本工作空间(Base workspace)中,只要用户不加以清除且MATLAB指令窗不关闭,则这些变量将一直保存在基本工作空间。与脚本文件不同,函数文件犹如一个“黑箱”,从外界只看到传给它的输入量和送出来的计算结果,内部运作是看不见的,并且函数文件的第一行总是以“function”引导的“函数申明行”。M函数文件必须由其它的语句来调用,在一般情况下用户不能单独键入其文件名来运行一个M函数。 MATLAB下的大多数的应用程序由M函数文件形式给出,例如求取系统特征方程的根的root ()函数和绘制零极点图的pzmap ()函数等。除了M函数文件之外,MATLAB还提供了大量的底层函数(内部),这类文件是不可读的,与M函数一起统称为函数。 3. M文件的一般结构 从结构上看脚本文件只是比函数文件少一个“函数申明行”,所以脚本文件和函数文件除第一行不同外,其余的结构都是一样的。 典型M函数文件的基本结构可由以下几部分构成: (1)函数申明行(Function declaration line),位于函数文件的首行,以MATLAB 关键字function 开头,函数名以及函数的输入输出宗量都在这一行中定义; (2)H1行(The first help text line):紧随函数申明行之后以%开头的第一行注释行。H1行包括大写体的函数名和运用关键词简要描述的函数功能,该行供lookfor关键词查询和help在线帮助查询使用; (3)在线帮助文本(Help text)区:H1行及其之后的连续以%开头的第一行的所有注释行构成在线帮助文本; (4)编写和修改记录:标志编写及修改该M文件的作者、日期,便于档案管理; (5)函数体(Function body):该部分由实现M函数功能的MATLAB指令组成。它接收输入宗量,进行程序流程控制,得到输出宗量。从运算角度看“函数申明行”和“函数体”两部分是构成M函数文件所必不可少的。 函数文件(Function file)由function()语句引导,其基本格式为: function 返回变量名=函数名(输入变量列表) 注释说明语句段 函数体语句 在编制程序的过程中输入和返回的变量分别由nargin和nargout两个MATLAB的保留参数给出,返回变量要多于1个,应该用方括号括起来,输入变量用逗号隔开。注释语句

Matlab中的Simulink和SimMechanics做仿真

这里我们利用Matlab中的Simulink和SimMechanics做仿真,那么先来看看相关的资料。 SimMechanics ——机械系统建模和仿真 SimMechanics 扩展Simscape? 在三维机械系统建模的能力。用户可以不进行方程编程,而是借助该多刚体仿真工具搭建模型,这个模型可以由刚体、铰链、约束以及外力组成。自动化3-D动画生成工具可做到仿真的可视化。用户也可通过从CAD系统中直接导入模型的质量、惯量、约束以及三维几何结构。Real-Time Workshop可以对SimMchanics模型进行自动化C代码生成,并在硬件在回路仿真过程中可以使用生成的代码而不是硬件原型测试嵌入式控制器。 SimMechanics可以用于开发悬架、机器手臂、外科医疗设备、起落架和大量的其它机械系统。用户也可以在SimMechanics环境下集成其它的MathWorks物理建模工具,这样做可以实现更加复杂跨领域的物理建模。 特点: ?提供了三维刚体机械系统的建模环境 ?包含了一系列分析机械运动和设计机械元件尺寸的仿真技术 ?三维刚体可视化仿真 ?SimMechanics Link utility,提供Pro/ENGINEER 和SolidWorks CAD平台的接口并且也提供了API函数和其它CAD平台的接口

?能够把模型转化为C代码(使用Real-Time Workshop) ?由于集成在Simulink环境中,因此可以建立高精度、非线性的模型以支持控制系统的开发和测试。 强大功能: 搭建机械系统模型 使用SimMechanics用户仅需要收集物理系统信息即可建立三维机械系统模型。使用刚体、坐标系、铰链和作用力元素定义和其它Simulink模型直接相连的部分。这个过程可以重用Simulink模型以及扩展了SimMechanics工具的能力。用户还可把Simulink模型和SimMechnics模型集成为一个模块,并可封装成可在其它模型中复用的子系统。 机械系统建模仿真和分析 SimMechanics包含如下子系统: ?使用Simulink查表模块和SimMechanics传感器和作动器定义的非线性的弹性单元 ?用来定义航空器件压力分布的空气动力学拖曳模块,例如副翼和方向舵 ?车辆悬架系统,例如防侧翻机械装置和控制器 ?轮胎模型

matlabsimulink初级教程

S i m u l i n k仿真环境基础学习Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1)在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(SimulinkLibraryBrowser)窗口,如图7.1所示。

图7.1Simulink界面 (2)单击工具栏上的图标或选择菜单“File”——“New”——“Model”,新建一个名为“untitled”的空白模型窗口。 (3)在上图的右侧子模块窗口中,单击“Source”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink下的Source子模块库,便可看到各种输入源模块。 (4)用鼠标单击所需要的输入信号源模块“SineWave”(正弦信号),将其拖放到的空白模型窗口“untitled”,则“SineWave”模块就被添加到untitled窗口;也可以用鼠标选中“SineWave”模块,单击鼠标右键,在快捷菜单中选择“addto'untitled'”命令,就可以将“SineWave”模块添加到untitled窗口,如图7.2所示。

(5) Scope ”模块(示波器)拖放到“untitled ”窗口中。 (6)在“untitled ”窗口中,用鼠标指向“SineWave ”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope ”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7)开始仿真,单击“untitled ”模型窗口中“开始仿真”图标 ,或者选择菜单“Simulink ”——“Start ”,则仿真开始。双击“Scope ” 模块出现示波器显示屏,可以看到黄色的正弦波形。如图7.4所示。 图7.2Simulink 界面

simulink-matlab仿真教程

simulink matlab 仿真环境教程 Simulink 是面向框图的仿真软件。 演示一个Simulink 的简单程序 【例1.1】创建一个正弦信号的仿真模型。 步骤如下: (1) 在MATLAB 的命令窗口运行simulink 命令,或单击工具栏中的图标,就可以打开Simulink 模块库浏览器 (Simulink Library Browser) 窗口,如图1.1所示。 (2) 单击工具栏上的图标或选择菜单“File ”——“New ”——“Model ”,新建一个名为“untitled ”的空白 模型窗口。 (3) 在上图的右侧子模块窗口中,单击“Source ”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink 下的Source 子模块库,便可看到各种输入源模块。 (4) 用鼠标单击所需要的输入信号源模块“Sine Wave ”(正弦信号),将其拖放到的空白模型窗口“untitled ”,则“Sine Wave ”模块就被添加到untitled 窗口;也可以用鼠标选中“Sine Wave ”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'”命令,就可以将“Sine Wave ”模块添加到untitled 窗口,如图1.2 所示。 图7.1 Simulink 界面

(5) 用同样的方法打开接收模块库“Sinks”,选择其中的“Scope ”模块(示波器)拖放到“untitled”窗口中。 (6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图1.3所示。 (7) 开始仿真,单击“untitled”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。双击“Scope”模块出现示波器显示屏,可以看到黄色的正弦波形。如图1.4所示。 (8) 保存模型,单击工具栏的图标,将该模型保存为“Ex0701.mdl”文件。 1.2 Simulink的文件操作和模型窗口 1.2.1 Simulink的文件操作 1. 新建文件 新建仿真模型文件有几种操作: ?在MATLAB的命令窗口选择菜单“File”“New”“Model”。 图7.2 Simulink界面 图7.3 Simulink模型窗口 图7.4 示波器窗口

matlab-simulink 初级教程

Simulink仿真环境基础学习 Simulink是面向框图的仿真软件。 7.1演示一个Simulink的简单程序 【例7.1】创建一个正弦信号的仿真模型。 步骤如下: (1) 在MATLAB的命令窗口运行simulink命令,或单击工具栏中的图标,就可以打开Simulink模块库浏览器(Simulink Library Browser) 窗口,如图7.1所示。

(2) 单击工具栏上的图标或选择菜单“File ”——“New ”——“Model ”,新建一个名为“untitled ”的空白模型窗口。 (3) 在上图的右侧子模块窗口中,单击“Source ”子模块库前的“+”(或双击Source),或者直接在左侧模块和工具箱栏单击Simulink 下的Source 子模块库,便可看到各种输入源模块。 (4) 用鼠标单击所需要的输入信号源模块“Sine Wave ”(正弦信号),将其拖放到的空白模型窗口“untitled ”,则“Sine Wave ”模块就被添加到untitled 窗口;也可以用鼠标选中“Sine Wave ”模块,单击鼠标右键,在快捷菜单中选择“add to 'untitled'”命令,就可以将“Sine Wave ”模块添加到untitled 窗口,如图7.2所示。 图7.1 Simulink 界面

(5) 用同样的方法打开接收模块库“Sinks”,选择其中的“Scope”模块(示波器)拖放到“untitled”窗口中。 (6) 在“untitled”窗口中,用鼠标指向“Sine Wave”右侧的输出端,当光标变为十字符时,按住鼠标拖向“Scope”模块的输入端,松开鼠标按键,就完成了两个模块间的信号线连接,一个简单模型已经建成。如图7.3所示。 (7) 开始仿真,单击“untitled ”模型窗口中“开始仿真”图标,或者选择菜单“Simulink”——“Start”,则仿真开始。双击“Scope”模块出现示波器显示屏, 可以看到黄色的正弦波形。如图7.4所示。 图7.2 Simulink界面

倒立摆系统的建模及Matlab仿真

倒立摆系统的建模及Matlab 仿真 1.系统的物理模型 考虑如图(1)面内运动的二维问题。 图(1)倒立摆系统 假定倒立摆系统的参数如下。 摆杆的质量:m=0.1g 摆杆的长度:l =1m 小车的质量: M=1kg 重力加速度:g=9.8m/2s 摆杆的质量在摆杆的中心。 设计一个控制系统,使得当给定任意初始条件(由干扰引起)时,最大超调量δ ≤10%,调节时 间ts ≤4s ,通过小车的水平运动使倒立摆保持在垂直位置。 2.系统的数学模型 2.1建立倒置摆的运动方程并将其线性化。 为简化问题,在数学模型中首先假设:1)摆杆为刚体;2)忽略摆杆与支点之间的摩擦;3)忽略小车与接触面间的摩擦。 设小车瞬时位置为z,摆心瞬时位置为(θsin l z +),在u 作用下,小车及摆均产生加速远动,根据牛顿第二定律,在水平直线远动方向的惯性力应与u 平衡,于是有 u l z dt d m dt z d M =++)sin (22 22θ 即: u ml ml z m M =-++θθθθsin cos )(2&&&&& ① 绕摆轴转动的惯性力矩与重力矩平衡,因而有

θθθsin cos )sin (22mgl l l z dt d m =??? ????+ 即: θθθθθθθsin cos sin cos cos 22g l l z =-+&&&&& ② 以上两个方程都是非线性方程,为求得解析解,需作线性化处理。由于控制的目的是保持倒立摆直 立,在试驾合适的外力条件下,假定θ很小,接近于零时合理的,则1cos ,sin ≈≈θθθ,且可忽略θ θ2&项。于是有 u ml z m M =++θ&&&& )( ③ θθg l z =+&&&& ④ 联立求解可得 u Ml Ml m M u M M mg z 1)(1 -+=+- =θθθ&&&& 2.2列写系统的状态空间表达式。 选取系统变量4321,,,x x x x , []T x x x x x 4321,,,=则 u Ml x Ml m M x x x u M x M mg x x x 1 )(134433221-+= =+-==&&&& 即 []Cx x x y Bu Ax u Ml M x Ml g m M M mg z z dt d x ===+=?????? ? ???????-+?????????? ??? ? +- =???? ????????=000110100)(0 010 0000000 1 1θθ&&& 代入数据计算得到: [][]0,0001,1010,01100 1000010000 1 0==-=? ? ??? ? ??? ???-=D C B A T

Matlab与Simulink系统仿真学习心得PDF.pdf

Matlab与Simulink系统仿真学习心得 班级:07610 学号:072019 姓名:马楠 第一部分:Matlab学习心得以及实践 Matlab是迄今为止我所见到过的功能最为强大实用范围宽广的软件。的确Matlab适用于教学,航天,网络仿真等等。而且提供了很多功能强大的工具箱,并且最为突出的是它自带的很全面细致的帮助文档,无论你是初学者还是老手都会惊叹于此,你也不必去花很多时间去熟悉那些繁杂的命令,并且很容易通过这些帮助文档得到关于这些函数最精准的用法。 Matlab是一个建立在矩阵操作上的软件,我想要想真正懂得并理解Matlab与一般的语言比如C或者java的区别,那么你就应该真正理解矩阵的思想。而且要熟悉Matlab对矩阵存储的方式(在下文中我会详细解释与之相关的内容),这样对提高你的代码执行效率与易懂性都有很大的帮助。 但是Matlab究竟应该怎么定位呢?一个编程软件,一个数学工具,一个工具箱,一个开发引擎,一个仿真工具,一个虚拟现实软件……的确要精准的说出Matlab的作用很难,或许去定义这个东西到底是用来干什么的并不重要,It is just a tool。 关于Matlab的学习方法,我想与别的语言有很大不同,对于汇编或者C,我们应当很注重底层的一些操作,比如栈或者队列存储数据的方式,int或者double类型转换的时候产生的数据丢失,或者指针方面很头疼的一些东西,但是对于Matlab你根本不必去注重这些东西,也不必去清除的记得那个函数的具体调用方式,那个函数的内容与结构等等。你需要的只是相当用一个笔记本写下你一步一步实现目标的步骤而已。一种草稿纸式的语言。你所学的东西很大部分都是为你要做的目标来服务的,也许这就是当初面向对象式语言产生的原因,但是Matlab就是这种语言的一个代表。 好了,就说到这里了,接下来是我自己学习中对Matlab的一些应用中所遇到的问题以及思考方式和解决办法。 1 离散信号卷积: N1=input('N1=');%输入N1 N2=input('N2=');%输入N2 k1=0:(N1-1);%定义序列f1的对应序号向量 k2=0:(N2-1);% 序列f2的对应序号向量 f1=ones(1,N1);%f1为阶跃序列 f2=0.5*k2;%f2为斜坡序列 [f,k]=dconv(f1,f2,k1,k2)%求离散卷积 其中dconv函数的代码为: function [f,k]=dconv(f1,f2,k1,k2) %The function of compute f=f1*f2 % f: 卷积和序列f(k)对应的非零样值向量 % k:序列f(k)的对应序号向量 % f1: 序列f1(k)非零样值向量 % f2: 序列f2(k)的非零样值向量 % k1: 序列f1(k)的对应序号向量 % k2: 序列f2(k)的对应序号向量

Invertedpendulum倒立摆的matlab建模

ECE451 Controll Engineering Inverted pendulum 09/29/2013 Introduction: Inverted pendulum is a typical fast, multi-varaibles, nonlinear, unstable system, it

has significant meaning. We choose the PID controller to fot the inverted pendulum. Assume the input is a step signal , the gravitational acceleration g=9.8m/s^2 and linearize the nonlinear model around the operating point. 1.Mathematic Modling M mass of the car 0.5 kg m mass of the pendulum 0.2 kg b coefficient of friction for cart 0.1 N/m/sec l length to pendulum center of mass 0.3 m I mass moment of inertia of the pendulum 0.006 kg.m^2 F force applied to the cart x coordinate of cart position

θpendulum angle from vertical (down) N and F are the force from horizontal and vertical direction. ) Force analysis Consider the horizontal direction cart force, we get the equation: Consider the horizontal direction pendulum force, we get the equation: To get rid of P and N, we get this equation: Merge these two equations, about to P And N, to obtain a second motion equation: u to represent the controlled object with the input force F, linearized two motion equations Apply Laplace transform to the equation above The transfer function of angle and position

(完整word版)MATLABsimulink中的基本模块的参数、含义、应用..

电力线路模块 PI Section Line 单项π型线路单相传输线模块。 电阻,电感和电容的传输线,沿着线是均匀分布的。级联几个相同的PI部分是通过以下方式获得一个近似的分布参数线路模型的Three-Phase PI Section Line 三相电力线路模块实现了一个平衡的三相传输线模型参数集中在π部分。相反,沿着线的电阻,电感和电容是均匀分布的分布参数线路模型,三相PI剖面线块肿块行参数在一个单一的π部分所示,在图中只有一相下代表。 被指定为正序和零序的,要考虑到的参数之间的感性和容性耦合的三相导体,以及地面参数的参数R,L,和C线。在此方法的指定行参数假设,这三个阶段是平衡的。 使用一个单一的PI部分的模型是适当的传输线或短,在感兴趣的频率范围是有限的基频周围建模。你可以得到更准确的模型通过级联多个相同的块。见PI剖面线的最大频率范围的说明,通过PI线模型,可以实现。

频率用于R L C规范 指定行参数所用的频率,以赫兹(Hz)。这通常是标称系统频率(50赫兹或60赫兹)。 正序和零序电阻 正序和零序电阻欧姆/公里(Ω/公里)。 正序和零序电感 正序和零序电感:亨利/公里(H/公里)。 正序和零序电容 正序和零序电容法拉/公里(F /公里)。 线路段长度(KM) 该生产线部分长度在千米(公里)。 Three-Phase Transformer (Two Windings) 三相变压器(两个绕组) 使用三个单相变压器,三相变压器三相变压器两个绕组块实现了。您可以模拟饱和的核心不是简单地通过在参数菜单中设置相应的复选框块。线性变压器块和可饱和变压器块部分的单相变压器的电气模型的详细说明,请参阅。 可以以下列方式连接的两个绕组的变压器: 1)Y 2)Y与中性点 3)接地Y 4)三角洲三角洲(D1),30度的滞后Y通过 5)D11)三角洲,三角洲领先的Y通过30度 Three-Phase V-I Measurement 三相电压-电流测量

基于matlab的倒立摆仿真设计

基于matlab的倒立摆的仿真与设计姓名:贾永伟专业:测控技术与仪器学号:1123105950 年级:2011级 摘要:倒立摆系统是一个典型的快速、多变量、非线性、不稳定系统,对倒 立摆的控制研究无论在理论上和方法上都有深远的意义。 本论文以实验室原有的直线一级倒立摆实验装置为平台,重点研究其PID控制方法,设计出相应的PID控制器,并将控制过程在MATLAB上加以仿真。 关键词:一级倒立摆,PID,MATLAB仿真 一、倒立摆模型的研究意义 倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制都有重要意义 倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实卫星飞行中的姿态控制等。故其研究意义广泛。 二、倒立摆模型的数学建模 质量为m的小球固结于长度为L的细杆(可忽略杆的质量)上,细杆又和质量为M的小车铰接相连。由经验知:通过控制施加在小车上的力F(包括大小和方向)能够使细杆处于θ=0的稳定倒立状态。在忽略其他零件的质量以及各种摩擦和阻尼的条件下,推导小车倒立摆系统的数学模型 分析过程如下: 如图所示,设细杆摆沿顺时针方向转动为正方向,水平向右方向为水平方向上的正方向。当细杆摆顺时针往右运动时水平方向施加的力应该为水平向右。 现对小车和细杆摆分别进行隔离受力分析:

matlab仿真命令集

simulink命令集(转载) 仿真命令: sim ---仿真运行一个simulink模块 sldebug ---调试一个simulink模块 simset ---设置仿真参数 simget ---获取仿真参数 线性化和整理命令: linmod ---从连续时间系统中获取线性模型(状态方程) linmod2 ---也是获取线性模型,采用高级方法 dinmod ---从离散时间系统中获取线性模型 trim ---为一个仿真系统寻找稳定的状态参数 构建模型命令: open_system --打开已有的模型 close_system --关闭打开的模型或模块 new_system --创建一个新的空模型窗口 load_system --加载已有的模型并使模型不可见 save_system --保存一个打开的模型 add_block --添加一个新的模块 add_line --添加一条线(两个模块之间的连线) delete_block --删除一个模块 delete_line --删除一根线 find_system --查找一个模块 hilite_system --使一个模块醒目显示 replace_block --用一个新模块代替已有的模块 set_param --为模型或模块设置参数 get_param --获取模块或模型的参数 add_param --为一个模型添加用户自定义的字符串参数delete_param --从一个模型中删除一个用户自定义的参数bdclose --关闭一个simulink窗口 bdroot --根层次下的模块名字 gcb --获取当前模块的名字 gcbh --获取当前模块的句柄 gcs --获取当前系统的名字 getfullname --获取一个模块的完全路径名 slupdate --将1.x的模块升级为3.x的模块 addterms --为未连接的端口添加terminators模块 boolean --将数值数组转化为布尔值 slhelp --simulink的用户向导或者模块帮助 封装命令: hasmask --检查已有模块是否封装

相关主题
文本预览
相关文档 最新文档