控制系统仿真.docx
《控制系统仿真.docx》由会员分享,可在线阅读,更多相关《控制系统仿真.docx(24页珍藏版)》请在冰点文库上搜索。
控制系统仿真
控制系统仿真
实验报告
指导教师:
幸晋渝老师
学生:
邢伟
学号:
201120307217
2014年06月15日
1.3MATLAB的M文件.........................................................................................5
1.4MATLAB的帮助命令.........................................................................................................6
4心得体会……………………………………。
。
。
。
………………………………………….22
1MATLAB的基础知识
1.1.MATLAB简介
MATLAB(MATrixLABoratory,即矩阵实验室)是美国的CleveMoler教授利用自己研制的基于特征值计算和线性代数软件包开发的一种高级语言。
1990年推出的MATLAB3.5i是第一个可以运行于MicrosoftWindows下的版本,它可以在两个窗口上分别显示命令行计算结果和图形结果。
稍后推出的SimuLAB环境首次引入基于框图的仿真功能,该环境就是我们现在所知的Simulink,其模型输入的方式使得一个复杂的控制系统的数字仿真问题变得十分直观而且相当容易。
经过多年来版本的不断更新,新版本的MATLAB功能已经十分强大,其应用领域日益广泛,速度更快,数值性能更好;用户图形界面设计更趋合理;与C语言接口及转换的兼容性更强;新的虚拟现实工具箱更给仿真结果三维视景下显示带来了新的解决方案
MATLAB具有以下主要特点:
(1)超强的数值运算功能。
(2)语法限制不严格,程序设计自由度大。
(3)程序的可移植性很好。
(4)强大的数据可视化功能。
(5)丰富的工具箱。
1.2MATLAB工作环境
图形窗口“Figure”
M文件窗口
1.3MATLAB的M文件
所谓M文件,就是用户把要实现的命令写在一个以.m为扩展名的文件中
M文件有两种格式(统称为M文件)
程序式M文件用于把很多需要在命令窗口输入的命令放在一起,就是命令的简单叠加
函数式M文件用于把重复的程序段封装成函数供用户调用。
(1)程序式M文件
运行程序,得到结果:
1.4MATLAB的帮助系统
MATLAB具有完善的帮助系统,帮助内容丰富,获取帮助的形式多样。
帮助系统包括:
命令行帮助
联机帮助
演示帮助
充分利用帮助系统,可以更快更准确地掌握MATLAB的使用方法。
命令行帮助
help工具箱或命令名
联机帮助
演示帮助
2MATLAB的基本运算
2.1MATLAB的基本运算
1.MATLAB的基本语句结构
(1)变量
变量命名的规则为:
1)变量的名称必须以字母开头,其后可以为字母、数字或者下划线。
2)变量名长度不超过63个字符,超过的部分将会被忽略。
3)变量名区分字母的大小写;
MATLAB中还设置了如下一些特殊变量:
ans
计算结果默认的变量名
eps
浮点数相对精度变量
pi
圆周率
Inf
正无穷大变量,由n/0或者溢出产生
NaN
不确定量,由0/0或者∞-∞产生
i或j
虚数单位变量
realmax
最大可用正实数,realmax=1.7977e+308
realmin
最小可用正实数,realmin=2.2251e-308
(4)常用操作命令
clc
清除命令窗口的内容,对工作环境中的全部变量无任何影响
clear
清除工作空间的所有变量
clearall
清除工作空间的所有变量、函数和MEX文件
save
将工作空间里的变量保存到磁盘文件
load
将磁盘文件里的变量加载到工作空间
close
关闭当前的Figure窗口
closeall
关闭所有的Figure窗口
what
列出当前目录下所有的M文件
which
显示出某个MATLAB函数的路径
dir
查询当前目录下所有的文件
type
在命令窗口显示文件
cd
删除文件
cdpath
显示当前目录
delete
进入目录
2.MATLAB的基本运算
加(+)、减(-)、乘(*)、除(/)、幂(^)等运算操作
MATLAB还提供几乎所有的运算函数
初等运算函数
三角函数
正弦函数sin()
余弦函数cos()
正切函数tan()
反正弦函数asin()
反余弦函数acos()
反正切函数atan()
双曲正弦函数sinh()
反双曲正弦函数asinh()
数据统计分析函数
最大值max()
最小值min()
计算平均值mean()
计算中间值median()
求和sum()
计算元素之积prod()
元素排序sort()
䦋㌌㏒㧀좈琰茞ᓀ㵂Ü
:
3.矩阵运算
MATLAB中所有的计算都是以矩阵为基本单元进行的,MATLAB对矩阵的运算功能最齐全,也最强大。
矩阵输入时一行中各元素间用逗号“,”或空格,行间用分号“;”或直接回车,整个矩阵以括号“[”和“]”表示开始和结束。
例2-2输入以下MATLAB语句
a=[123;456;789]
b=[1,1+2i;2+3i,exp(-1)]
运行程序,得到结果:
a=
123
456
789
b=
1.00001.0000+2.0000i
2.0000+3.0000i0.3679
2.2MATLAB的绘图
强大的图形功能是MATLAB受到人们广泛欢迎的一个重要原因。
MATLAB软件提供了丰富的用于绘制图形、标注图形以及输出图形的基本命令
1.二维图形
(1)曲线绘图函数
格式:
plot(x)
plot(x1,y1,x2,y2…)
plot(x1,y1,’plotstyle’…)
plot函数是MATLAB中绘制基本二维曲线图形的函数,它的基本功能是打开一个新的图形窗口绘制曲线。
若已经存在一个图形窗口,则自动将该窗口的原内容清除,然后再绘制新的图形。
·plot(x1,y1,x2,y2…)
绘制以(x1,y1),(x2,y2)…确定的多条曲线。
·plot(x1,y1,’plotstyle’…)
绘制由字符串“plotstyle”定义的颜色、线型的多条曲线。
其中“plotstyle”
(2)绘图辅助函数
·title(‘字符串’)
用于给图形添加标题,将字符串添加在图形上方的中部。
·xlabel(‘字符串’)
用于对图形的x轴进行说明,将字符串添加在图形x轴下方。
·ylabel(‘字符串’)
用于对图形的y轴进行说明,将字符串添加在图形y轴左方。
·text(x,y,‘字符串’)
用于在图形指定位置(x,y)添加字符串对图形进行说明。
·gtext(‘字符串’)
与text功能类似,只是在执行命令后会在图形中出现一个十字线,可用鼠标来指定添加字符串的位置。
grid
用于给图形添加栅格,有3种格式:
>>gridon;给图形添加栅格
>>gridoff;去除栅格
>>grid;在添加栅格和去除栅格两种状态中切换
·axis()
用于对绘图坐标系进行控制和修饰。
常用格式:
>>axis(‘equal’)得到一个方正的坐标系
>>axis(‘square’)得到相同比例的坐标系
>>axis([x1,x2,y1,y2])指定x坐标轴和y坐标轴的范围
·figure
创造新的图形窗口。
hold
用于进行图形保持。
想在已经存在的图形上添加曲线时,需用hold函数。
调用格式与grid类似。
·subplot(mnp)
用于在指定位置建立坐标,可实现在一个图形窗口内绘制多个坐标系。
subplot(mnp)表示将屏幕分割成m×n个区域(m和n均小于4),p代表当前绘图区域的序号,序号以从左到右,从上到下的顺序编号。
2.3.1例:
已知H(S)=7S/(s^2+6s+205)分析它的零极点图、伯德图、阶跃响应
程序图
2.3.2画出函数f(t)=6sin18*pi*t+20cos20*pi*t-3的曲线
仿真图
3Simulink
3.1仿真工具Simulink简介
Simulink是MATLAB的重要组成部分面向结构图方式的仿真环境作为系统建模和仿真的工具
Simulink主要功能
实现动态系统建模、仿真与分析
预先对系统进行仿真与分析,做适当的实时修改,达到仿真的最佳效果
调试及整定控制系统的参数,以提高系统的性能
提高开发系统的效率
3.2Sim2ulink界面
1打开Simulink库浏览器
2.模块的创建与操作
1)创建模块
1)模块的选择
2)模块复制
①在选定模块处,按住鼠标右键并拖动至适当位置
②选定模块,在工具栏中选择“Copy”与“Paste”按钮
③在选定的模块处点击鼠标右键,在弹出的菜单中选择“Copy”与“Paste”选项
④按住“Ctrl”键,按下鼠标左键,将选定的模块拖动至适当的位置。
3)模块的连接。
4)连接分支线
3.3利用Simulink进行数字仿真
1.窗口运行仿真
2.仿真参数设置
运行Simulink模型之前,如果不采用系统默认参数,就必须对各种仿真参数进行设置,尤其对复杂系统的仿真,仿真参数的合理设置尤为重要
仿真参数可以由模型窗口Simulation│ConfigurationParameters选项或直接按快捷键“Ctrl+E”
3.4.1例:
单相桥式电路的仿真
电路仿真图
a=60时晶闸管电流(上)电压(下)波形
a=60负载电流波形
a=60负载电流波形
例3.4.2单闭环直流系统仿真图
例3.4.3双闭环直流系统仿真图
4.实验心得
通过这次电子电力、运动控制仿真课程仿真设计,我们才把学到的东西与实践相结合。
从中对我们学的知识有了更进一步的理解,而且更进一步地熟悉了软件的其具体的使用方法。
也锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。
虽然这只是一次简单的课程设计,但通过这次课程设计我们了解了课程设计的一般步骤,和设计中应注意的问题。
设计本身并不是有很重要的意义,而是同学们对待问题时的态度和处理事情的能力。
各个芯片能够完成什么样的功能,使用软件时应该注意那些要点。
同一个电路可以用那些芯片实现,各个芯片实现同一个功能的区别。
另外,我还渐渐熟悉了MATLAB这个仿真软件的各个功能,让我体会到了期中的乐趣,还在电脑制做文档的过程中,使我对办公软件有了更进一步的了解和掌握。
课程设计是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识的能力,独立思考和解决问题的能力。
它不仅加深了我对单片机课程的理解,还让我感受到了设计电路的乐趣。
在这次设计中,我一点也不怕麻烦,反复设计、绘图与修改,就是希望能把这次课程设计做好。
因此这次课程设计非常有意义。