范文网 论文资料 matlab仿真的学习心得(精选)

matlab仿真的学习心得(精选)

matlab仿真的学习心得第一篇:matlab仿真的学习心得倒立摆在matlab的simulink库下的仿真倒立摆是处于倒置不稳定状态,人为控制使其处于动态平衡的一种摆。对于倒立摆系统的控制研究长期以来被认为是控制理论及其应用领域里引起人们。

matlab仿真的学习心得

第一篇:matlab仿真的学习心得

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

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

本论文中,以一级倒立摆为研究对象,对它的起摆以及稳定控制做了研究,主要研究工作如下: 1.首先介绍了倒立摆系统的组成和控制原理,建立了一级倒立摆的数学模型,对倒立摆系统进行定性分析,但在平衡点是能控的、能观的。

2.分析了倒立摆的起摆过程,对倒立摆的起摆能量反馈控制进行分析与说明。 3.在matlab2014a的simulink库下对倒立摆构造单级倒立摆状态反馈控制系统的仿真模型和构造具有状态观测器的单级倒立摆状态反馈控制系统的仿真模型。

4.对这次仿真的总结。

一、倒立摆的控制目标

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

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

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

图1 设系统的动态特性可以用小车的位移和速度及杆偏离垂线的角度θ和角速度来描述。设小车位移为x,则小球中心位置是xlsin 在水平方向,应用牛顿第二定律: d2xd2Mm2(xlsin)u2dtdt

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

d2m2(xlsin)mgsindt

求微分方程得:

d(sin)(cos)dt

d22cos(sin)(sin)dt2 d(cos)(sin)dt

d22(sin)(cos)(cos)dt2

化简得

uml(Mm)ymgmlmy

线性化:当和较小时 ,有sincos1和

较小时 ,有

0 化简得 mg1yuMM(Mm)g1uMlMl

选择状态变量

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

x1yx2yx3x4u为输入,y为系统的输出 ..

10xx20x3040x状态图为

10000mgM0(Mm)gMl0x11x102Mu;1x3010x4Mlx1xy10002x3x4

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

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

取适当的参数 M m l u y θ 小车质量

小球质量

摆杆的长度

0.1 Kg 0.01Kg

1m 加在小车上的力 小车位移

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

重力加速度为

10g/s

2

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

10xx20x3040x 100x10x10102u001x300110x41x1xy10002x3x4

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

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

s16; s26.5 ;s37 ;s47.5

在matlab下输入命令

得到状态反馈矩阵为

K204.75122.175488.5149.175

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

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

得到的仿真曲线

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

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

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

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

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

s120s221s322s423输入以下的命令

得到状态观测器矩阵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运动轨迹仿真

clear all;clc; R=50; r=15; L=150; k=1/5; e=12.5; arf0=0;

fx1=@(sita)(cos(arf0-R*r*r/k/L/e/e*sin(sita)-atan(r*cos(sita)/e))*R/k./cos(atan(r*cos(sita)/e)));

fx2=@(sita)(sin(arf0-R*r*r/k/L/e/e*sin(sita)-atan(r*cos(sita)/e))*R/k./cos(atan(r*cos(sita)/e))); sita=0:0.05:4*pi;

for ii=1:length(sita) sita0=sita(ii);

x(ii)=quadl(fx1,0,sita0); y(ii)=quadl(fx2,0,sita0); end

plot(x,y);

基于无碳小车转弯半径计算方法的MATLAB运算

clc;clear all; a=100; b=50; L=150; sita=0.9; arf=0.9; B=100; A=a*cos(sita)/b; beta=atan(sin(arf)/(A+cos(arf))); Rg=b/sin(beta) Rq=Rg*cos(beta)/cos(sita) Of=sqrt(Rg*Rg+b*b-2*Rg*b*sin(beta)) Rw=sqrt(Of*Of+B*B/4+B*Of)

clc;clear all; a=100;

b=50; L=150; sita=-0.9:0.01:0.9; arf=sita; B=100; A=a*cos(sita)/b; beta=atan(sin(arf)./(A+cos(arf))); Rg=b./sin(beta); Rq=Rg.*cos(beta)./cos(sita); Of=sqrt(Rg.*Rg+b*b-2*Rg*b.*sin(beta)); Rw=sqrt(Of.*Of+B*B/4+B*Of); plot(sita,Rg,sita,Rq,sita,Of,sita,Rw); axis(-0.9,0.9)

第三篇:Matlab的学习心得

通过初步对matlab的学习,我觉得收获很大。我了解到matlab是一个功能很大的数学实验软件,即一个很好的计算机数学软件平台。我在学习matlab主要是围绕实验,初步学习了一些简单的矩阵运算以及简单的图形,在做书上的实验中得到了实践各种矩形的计算为我们提供了很多的方便,在我们的生活也有很大的作用。但现在我所学到的matlab技术还是很初步的,但是我已经了解到matlab的实用性很大,学习好这门技术对我日后的发展有很大的帮助,所以在今后的学习中,我会继续深入学习这门技术。 Matlab的功能强大,对我们现在学习的线性代数是非常有帮助的,利用这款软件会是我们原本复杂的计算变得简单明了。Matlab的优点计算方便、快捷、准确、操作方便,流程简单。虽然matlab优点很多,但是我开始对matlab这门技术并不是很了解,开始以为只是一个计算矩形的软件,但是随着学习的深入我对matlab的了解也相应深入,才知道matlab不仅可以运算矩阵,运算处理一些数据,还可以用于编程并且和其他的计算机编程有很大的区别。Matlab是一种专业的计算机程序,主要用于工程科学矩阵数学运算。但我相信在未来的几年里,它会渐渐发展陈一种非常灵活的计算体系,可以解决更多的技术问题。

Matlab是一个高级的矩阵/阵列语言,它包含很多语句,其中有控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行,就象C语言和C++一样可以先定义后使用。并且新版本的MATLAB语言是基于最为流行的C语言和C++语言基础上的,因此语法特征与C++语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB能够深入到科学研究及工程计算各个领域的重要原因

第四篇:MATLAB实验六《SIMULINK交互式仿真》

《计算机仿真及应用》实验教案

实验六 SIMULINK交互式仿真

一、实验目的

1、熟悉SIMULINK交互式仿真集成环境。

2、掌握连续时间系统建模的方法。

二、实验主要仪器与设备

装配有MATLAB7.6软件的计算机

三、预习要求

做实验前必须认真复习第七章SIMULINK交互式仿真集成环境。

四、实验内容及实验步骤

示的SIMULINK模块库浏览器。

《计算机仿真及应用》实验教案

图7.2 SIMULINK模块库浏览器

4、开启空白(新建)模型窗

单机Simulink模块库浏览器工具条上的图标“去的)。

5、从模块库复制所需模块到空白(新建)模型窗(见图7.3)

把连续模块子库中的积分器“拖”进空白模型窗; 再用鼠标点亮该模块,选中下拉菜单项{Format:Flip Block},使增益模块 翻转180度。把SimulinkMath Operations子库中的求和模块“拖”进 空白模型窗;再把SimulinkSinkScope>示波器模块“拖”进空白模型窗。

”;或在选择下拉菜单项{File:

New},引出如图7.3所示的空白模型窗(注:窗中的模块是后一个步骤复制进

《计算机仿真及应用》实验教案

7.3 制进库模块的新建模型窗

6、新建模型窗中的模型再复制

在该新建模型窗中,可以通过再复制,产生建模所需的2个积分模块和2个增益 模块。具体操作方法是:按住[Ctrl]键,用鼠标“点亮并拖拉”积分模块 到适当的位置,便完成积分模块的复制,而这被再复制的积分模块会自动改名为 ,以作区分。

见一个所需的增益模块,可采用类似方法获得。

7、模块连接线的形成方法随信号起始端位置不同而不同,具体如下。

起始端位于模块输出口的信号线生成法。使光标靠近模块输出口;待光标变 为“单线十字叉”时,按下鼠标左键;移动十字叉,拖出一根“虚连线”;光标 与另一个模块输出口靠近到一定程度,单十字叉变为双十字叉;放开鼠标左键, ”虚连线”便变为带箭头的信号连线。

起始端位于其他信号线上的信号线生成法。使光标置于已经存在的其他信号线 之上;按下鼠标右键,光标变为“单线十字叉”;运动鼠标,引出”虚连线”;当 鼠标与待连接模块输入口靠得足够近,单十字叉变为双十字叉;放开鼠标右键, “虚连线”便变为带箭头的信号连线。

双击相应的信号线,给信号线作标注,如x’’,x’,x等。

《计算机仿真及应用》实验教案

图7.4

已构建完成的新建模型窗

8、根据理论数学模型设置模块参数

为使构造的Simulink模型与理论数学模型一致,须对模块进行如下参数设置。

设置增益模块参数:双击模型窗中的增益模块,引出如图7.1-5 所示的参数设置窗;把Gain增益栏中的数字1改写为所需的2;单击【OK】键, 完成设置;此时,新建模型窗中增益模块上会出现数字2。 参照以上方法,把增益模块的增益系数修改为100.

图7.5 参数已经修改为2的Grain增益模块参数设置窗

《计算机仿真及应用》实验教案

修改求和模块输入口的代数符号:双击求和模块,引出如图7.1-6所示的参数设置窗; 把符号列表栏中的默认符号(++)修改成代数符号(--);单击【OK】键,完成设置;

图7.6 改变输出入口符号的求和模块参数设置窗

据初始位移x(0)=0.05m对积分模块的初始状态进行设置:双击积分模块 ,引出如图7.7所示的参数设置窗;把初始条件Initial condition栏中的默认0 初始修改为题目给定的0.05;单击[OK]键,关闭该窗口,完成设置。

《计算机仿真及应用》实验教案

图7.7 实现初始化位移0.05设置的Integrator1设置窗

9仿真运行参数采用默认解算器“ode45”、默认“变步长”和默认仿真终止时间10. 10把新建模型保存为exm070101.mdl. 11试运行,以便发现问题加以改善。

双击示波器模块,引出示波器显示窗,并使它不与exm070101模型窗重叠。 单击exm070101模型窗上的“的运行结果可能如图7.8所示。

”仿真启动键,使该模型运行;在示波器上呈现

图7.8 坐标范围设置不当时的信号

《计算机仿真及应用》实验教案

单击Scope显示窗上的纵坐标范围自动设置图标“”,示波器显示窗改变为图7.9所

示。在显示窗中,可以看到位移x(t)的变化曲线。同时可以发现:纵坐标的适当范 围大致在【-0.06,0.06】;仿真时间取【0,5】即可;显示的曲线不够光滑。

图7.9 采用轴自动设置功能的信号显示

12、据试运行结果,进行仿真参数的再设置

示波器纵坐标设置:用鼠标单击示波器的黑色显示屏,在弹出菜单中选择Axes Properties, 引出纵坐标设置对话窗7.10所示;把纵坐标的下限、上限分别设置为(-0.06)和(+0.06);单 击【OK】,完成设置。

示波器时间显示范围的修改:单击示波器的参数设置图标“

”,引出示波器参数设置窗;

在General卡片的Axes区的Time range栏中,填写5或auto;单击【OK】,完成设置。

图7.10 对显示屏的纵坐标范围进行设置

7.11 对示波器时间显示范围的设置

·仿真终止时间最简捷的修改方法:在exam070101模型窗“仿真终止时 间”栏“

”中的默认值10改变为5。

《计算机仿真及应用》实验教案

·显示曲线的光滑化设置:选中exam070101模型窗的下拉菜单项SimulationConfiguration Parameters,引出仿真参数配置窗,如图7.12所示;再在该窗左侧的选择栏中,选中Data Import/Export项,与之相应的参数设置栏便出现在窗口的右侧;把右半窗下方Save options 区中Refine factor栏中的默认值1改为5;单击OK,完成设置。

7.12 通过仿真参数配置窗设置输出光滑因子

《计算机仿真及应用》实验教案

完成以上修改后的模型窗如图7.13所示。再运行exam070101,可得比较满意的位移变化曲线 (见图7.14所示)。顺便指出:模型运行后,在模块输出口的信号线上会出现double字样。这 表示该信号是采用“双精度”类型数据运算。如果用户不希望这类标识出现,那么应取消对下 拉菜单项FormatPort signal DisplaysPort Data Types的勾选。

图7.13

仿真参数调整运行后的exam070101模型

在模型窗中,x’’,x’,x等信号名称是模型创建者根据需要写入的。标识信号名称的操作方法 是:用鼠标双击信号附近的适当位置后,就会出现一个虚线框,该虚线框中允许输入任何 文字。

13、仿真结果显示

原本比较稀疏的解计算器数据,经设定的“光滑因子”下的插值,增加了用于描绘曲线的 数据点数,因此使示波器显示出更为光滑的曲线,如图7.14所示。

《计算机仿真及应用》实验教案

图7.14 适当地显示仿真所得的位移变化曲线

五、实验小结

第五篇:MATLAB学习心得

MATLAB学习报告

一. 对MATLAB的认识

正如课本《MATLAB教程及实训》中的前言所说,MATLAB是MathWords公司于1984年开发的,目前已经发展成国际上最流行、应用最广泛的科学与工程计算软件之一。MATLAB集合矩阵云运算、数值分析、图形显示和仿真等于一体,被广泛应用于自动控制、数学运算、计算机技术、图像信号处理、汽车工业、语音处理等行业。MATLAB它将计算、可视化和编程等功能同时集于一个易于开发的环境。MATLAB主要应用于数学计算、系统建模与仿真、数学分析与可视化、科学与工程制图和用户界面设计等。

目前,MATLAB已经成为应用代数、自动控制理论、数字信号处理、动态系统仿真和金融等专业的基本数学工具,各国高校纷纷将MATLAB正式列入本科生和研究生课程的教书计划中,成为学生必须掌握的软件之一。

MATLAB是matrix laboratory的缩写,它的产生是与数学计算有密切的关系。从1980年发展到现在已经是一个交互式开发系统,其基本数据要素是矩阵。MATLAB系统是由MATLAB开发环境和MATLAB语言,MATLAB数学函数库、MATLAB图形处理系统和MATLAB应用程序接口(APL)5部分组成。

MATLAB的有以下特点

1运算功能强大

2编程效率高3强大而智能化的作图功能 4可扩展性强 5Simulink 动态仿真功能

二. 我对MATLAB的掌握程度

在短课时选择了本书

1、

2、

3、

4、

5、7章的内容学习

1. MATLAB R2010a软件的概述(略)。 2. MATLAB常见字符及基本运算

在本人的自主学习以及老师的授课下我已经初略的掌握了MATLAB R2010a的基本使用方法:MATLAB R2010a的开发环境、MATLAB R2010a的其他管理、MATLAB的文件处理工具、MATLAB R2010a的帮助系统

(1) 数据类型 数组:字符型、数值型、元胞型、结构体型、Java型和函数句柄,其中数值型有包括单精度型和双精度型。 常数

例如”a” “x”(关键字如if、while 等不能作为变量名) 整数、复数和浮点数的类型与具体用法。

这一整章学习起来毫不费劲,这主要是因为上一学期学习了的c语言。

(2) 矩阵和数组的算数运算

数组的创建,其中包括空数组还有向量的运用法则以及特殊矩阵和数组。 其次是数组的操作,其中数组的元素、子矩阵的产生和数组的赋值以及矩阵的合并与数组的删除。矩阵和数组的函数。

字符串、创建字符串、与字符串函数的熟练运用、日期与时间、日期和时间的表达式、日期时间的函数的使用、关系运算和逻辑运算、关系运算符的使用与逻辑运算符的使用以及运算符的优先级等

总体学习上是有些不足,总是忘记,这得不断重复的记忆才行。

3.数据的可视化掌握

首先MATLAB的数据可视化需要掌握四大点

二维绘图

二维绘图需要掌握其一般步骤以及基本绘图的函数,多个图形的绘制以及设置曲线的方式、坐标轴和图形的注释。 课本P81. 例题3-1绘制一个正弦波形,绘制的正弦曲线图略, 具体操作如下:

》x=0:0.1:10 》y=sin(x);

》plot(x,y)

%根据x和y绘制二位曲线图

程序分析:plot函数自动创建Figure 1图形窗口斌显示绘制的图形,横坐标是x,纵坐标是y。

特殊图形和坐标的绘制 MATLAB的图形窗口 基本三维绘图命令

三维曲线与直线图的绘制重要掌握

4.符号运算

先来一道例题创建符号变量和表达式 》x=sym(’x’); 》syms a b c 》y=a*x~2+b*x+c y= a*x~2+b*x+c 可以在Workspace中看到,x、a、b、c和y都是符号变量,y是由符号变量计算产生的。

此章节符号较多且其运算规则也相对来说比较复杂。但是这一章节却是MATLAB语言以及编程的重点基础,更是要非常熟练的掌握。一分耕耘一分收获,经过不断重复的记忆我已经也能大部分符号运算都能知道其用法以及运算规律。

5.程序设计和M文件

此章节主要有:

分配控制语句:if结构,swich结构 循环控制语句:for循环,while循环 Break和continue语句 错误控制语句 流程控制命令 M文件结构

M文件编辑和调试窗口 M脚本文件和M函数文件

第七章节与C语言大部分相同或者雷士,有C语言的基础学起来不难,但这一章节却异常重要,更是要学会编程的思想,这是有点难度的。程序控制不在多说因为与C语言大体相同。但这一章的函数的使用与C语言不同,需要分开来记忆,总的来看学的还是不错的,但听班上的有些同学说很难记忆,因为与C语言有冲突。这一章节我还学习了M文件的结构、函数的句柄和inline对象,这些倒是和Java语言有的相似。倒也不难理解。还有函数的绘图与数值的分析。

7.MATLAB高级图像设计与simulink仿真环境

三. 收获与心得

收获:

上学期学习高数的时候,总有那么难的数学函数要解答,一些二维或者三维的函数绘图图形又复杂。在学习完这门课程后知道了原来这些绘制的图片可以由MATLAB绘制出来的。这让我知道了MATLAB可以用在数学上。而且是高等数学习者必备的一款软件。现在我也可以绘制一些复杂的函数。我想这也是一项很大的收获。在仿真中可以仿真一些复杂的电路原理图,而我这个专业是跟电路有着密切的关系。其用处之大不言而喻,我想这也将是我最大的收获了。另外值得一提的是学习MATLAB语言可以建立我们另一种思考问题的思维。这种思想难得可贵。

学习心得:

这学期的学习MATLAB,由于前几节课没有认真听,总以为和C语言一样简单也,到后来拉下的课程比较多,老师有说要写学习报告来计算期末成绩,所以不得不自学拉下的课程,这使我非常烦躁和不安,但我们都是这样过来的。以至于一直延续大大一而不可更改,直到这学期的MATLAB学习。

学习有时候并不是一个人的事情,独自一人学习效率不会太,我们可以多向他人请教或许会更好。。

这学期刚开始接触MATLAB语言也是用着以前的学习方法。慢慢的感觉到不对,书本上是学会了,但是一到真枪实战的干就不行了。后来想想就是学习方法的问题。实践、得实践才行。之后我便边学边用电脑实践。果不其然,效果大大提升。总而言之,学习MATLAB的方法是边学习边实践,效果成倍增加。 学习MATLAB语言,其实是学习MATLAB的编程思想,另一种思考问题的思维。它交给我一种建立模型分析问题的结构化思维方式,任何事物,从不同的角度看,都可以想象成一个从头到尾、环环相扣的系统,我们想要了解整个系统的功能就必须以每一块结构为思维对象,层层分析最后得出客观规律的正确结果。

对于这门课程的反思:

当我第一次看到这本书的内容时,觉得有了c语言的基础,学习起来一样好学,所以前面一直没认真听课,也给老师带来了消极的影响,到了后面,我不得不自己学习,这带给我诸多烦恼,后悔没有认真去听课,经过我认真的反思,我才觉悟到在课堂上认真听讲和拥有一个良好的学习态度是多么的重要。最后感谢老师对授与我们这门课的知识。

参考文献:曹弋、刘怀、王恩荣.MATBLE教程及实训【M】.北京:机械工业出版社,2013

MATLAB学习报告

专业班级: 姓名: 学号:

指导老师:

上一篇
下一篇
返回顶部