《MATLAB与控制系统。。仿真》实验报告

更新时间:2024-05-29 07:59:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《MATLAB与控制系统仿真》

实验报告

班级:

学号:

姓名:

时间: 2013 年 6 月

目 录

实验一 MATLAB环境的熟悉与基本运算(一) 实验二 MATLAB环境的熟悉与基本运算(二) 实验三 MATLAB语言的程序设计 实验四 MATLAB的图形绘制 实验五 基于SIMULINK的系统仿真 实验六 控制系统的频域与时域分析 实验七 控制系统PID校正器设计法 实验八 线性方程组求解及函数求极值

1

实验一 MATLAB环境的熟悉与基本运算(一)

一、实验目的

1. 熟悉MATLAB开发环境

2.掌握矩阵、变量、表达式的各种基本运算

二、实验基本原理

1.熟悉MATLAB环境:

MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。

2.掌握MATLAB常用命令

表1 MATLAB常用命令

clc clear help lookfor 清除命令窗口中内容 清除工作空间中变量 对所选函数的功能、调用格式及相关函数给出说明 查找具有某种功能的函数但却不知道该函数的准确名称 3.MATLAB变量与运算符

3.1变量命名规则

3.2 MATLAB的各种常用运算符

表2 MATLAB算术运算符 操作符 + - * .* ^ .^ 功能说明 加 减 矩阵乘 数组乘 矩阵乘方 数组乘方 操作符 \\ .\\ / ./ ' .' 功能说明 矩阵左除 数组左除 矩阵右除 数组右除 矩阵转置 数组转置

表3 MATLAB关系运算符

操作符 == ~= > < >= <= 功能说明 等于 不等于 大于 小于 大于等于 小于等于

表4 MATLAB逻辑运算符

逻辑运算符 & 2

逻辑运算 And 说明 逻辑与 | ~ Or Not Xor 逻辑或 逻辑非 逻辑异或

表5 MATLAB特殊运算 符号 功能说明示例 符号 功能说明示例 : ; , () [] {} 1:1:4;1:2:11 分隔行 分隔列 % 构成向量、矩阵 构成单元数组 . .. … ! = 注释 调用操作系统命令 用于赋值

4.MATLAB的一维、二维数组的寻访

表6 子数组访问与赋值常用的相关指令格式

三、 主要仪器设备及耗材

计算机

四.实验程序及结果

1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)

2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。

3、学习使用help命令。

3

4、窗口命令 ??close ??close all

??clc

??hold on

4

3、学习使用表3列出的数组操作函数。 >> A=[1,2,3,4;5,6,7,8;9,10,11,12]; >> A=[1,2;3,4]; >> diag(A) >> reshape(A,1,4) ans = ans = 1 1 3 2 4 6 11 >> rot90(A) >> fliplr(A) ans = ans = 2 4 4 3 2 1 1 3 8 7 6 5 12 11 10 9 >> det(A) >> flipud(A) ans = -2 ans = 9 10 11 12 >> rank(A) 5 6 7 8 ans = 2 1 2 3 4 4、生成下列矩阵,并取出方框内的数组元素

10

>>A=[1,2,3,4,5;10,9,8,7,6;11,12,13,14,15; 16,17,18,19,20] A = 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 16 17 18 19 20 >> A(2,2:3) ans = 9 8

>> A(2:4,4) ans = 7 14 19 >> A(4:5,1:3) ans= 16 17 18 21 22 23

11

实验三 MATLAB语言的程序设计

一、实验目的

1、熟悉MATLAB程序编辑与设计环境

2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计

4、了解和熟悉跨空间变量传递和赋值

二、实验基本原理

1、程序流程控制语句

for循环结构

语法:for i=初值:增量:终值 语句1

…… 语句n end

说明:1.i=初值:终值,则增量为1。

2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 while 循环结构

语法:while 逻辑表达式 循环体语句 end

说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环

体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。

2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。)

3、while循环也可以嵌套、其结构如下: while逻辑表达式1

循环体语句1

while逻辑表达式2 循环体语句2 end

循环体语句3

end

if-else-end分支结构

if 表达式 1

语句1

else if 表达式 2(可选)

语句2

else(可选)

语句3

12

end end

说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。

2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。

switch-case结构

语法:switch表达式

case常量表达式1 语句组1

case常量表达式2 语句组2 …… otherwise 语句组n end

说明:1.switch后面的表达式可以是任何类型,如数字、字符串等。

2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。 程序流程控制指令 break、return、pause

2、函数文件的结构和编写方法

函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。 M函数文件的结构

(1) 函数定义行(function)

(2) H1行(函数帮助文本的第一行) (3) 函数帮助文本 (4) 函数体 (5) 注释

函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。

三、主要仪器设备及耗材

计算机

四、实验程序及结果

练习A

1、熟悉MATLAB程序编辑与设计环境

2、用for循环语句实现求1~100的和 3、用for循环语句实现编写一个求阶乘n!的函数文件

13

4、判断y向量的元素属于3n 3n+1或3n+2,设y=[3,5,7,9,11,16]。(使用函数rem求余数)。

7、已知数组A=[2,4,6,8,10],B=[4,9,6,7,4],求

?A[i]B[n?i?1],其中n=5。

i?1n

五、实验总结

14

在前两次实验的基础上,掌握了基本的操作,这次实验进一步加深了对软件功能的探索,让自己熟悉MATLAB程序编辑与设计环境.

15

实验四 MATLAB的图形绘制

一、实验目的

1、学习MATLAB图形绘制的基本方法;

2、熟悉和了解MATLAB图形绘制程序编辑的基本指令;

3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 4、掌握plot、subplot的指令格式和语法。

二、实验基本原理

1、基本的绘图命令plot(x,y,)

2、建立图形窗口命令figure(1);figure(2);…;figure(n)打开不同的图形窗口,以便绘制不同的图形。

3、grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格。

4、hold on:把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。

hold off:使新图覆盖旧的图形。 5、axis设定轴的范围

axis([xmin xmax ymin ymax])设定x 轴与y轴的最大、最小坐标。 axis(‘equal’):将x坐标轴和y坐标轴的单位刻度大小调整为一样。 6、文字标示

??text(x,y,’字符串’)

在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 ??gtext(‘字符串’)

利用鼠标在图形的任意位置标示字符串。 ??title(‘字符串’)

在所画图形的最上端显示说明该图形标题的字符串。 ??xlabel(‘字符串’),ylabel(‘字符串’) 设置x,y坐标轴的名称。

??输入特殊的文字需要用反斜杠(\\)开头

7、subplot(m,n,k):分割图形显示窗口,在同一个窗口中显示多个图形。

??m:上下分割个数 ??n:左右分割个数 ??k::子图编号

8、semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。 semilogy:绘制以y 轴为对数坐标(以10 为底),x 轴为线性坐标的半对数坐标图形。

三、主要仪器设备及耗材 计算机

四、实验程序及结果

1、绘制下列曲线,要求尽可能多地使用二中所列命令。

16

12x3e ①y?x? ②y?2?3x2

③ ?

?x?rsint ④ y=sin(t)sin(9t)

y?rcost?

clf;t=6*pi*(0:100)/100;y=1-exp(-0.3*t).*cos(0.7*t); tt=t(find(abs(y-1)>0.05));ts=max(tt); plot(t,y,'r-','LineWidth',3) axis([-inf,6*pi,0.6,inf])

set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)]) grid on

title('\\it y = 1 - e^{ -\\alphat}cos{\\omegat}') text(13.5,1.2,'\\fontsize{12}{\\alpha}=0.3')

17

text(13.5,1.1,'\\fontsize{12}{\\omega}=0.7') hold on;plot(ts,0.95,'bo','MarkerSize',10);hold off cell_string{1}='\\fontsize{12}\%uparrow';

cell_string{2}='\\fontsize{16} \\fontname{隶书}镇定时间'; cell_string{3}='\\fontsize{6} ';

cell_string{4}=['\\fontsize{14}\\rmt_{s} = ' num2str(ts)]; text(ts,0.85,cell_string)

xlabel('\\fontsize{14} \\bft \\rightarrow') ylabel('\\fontsize{14} \\bfy \\rightarrow')

五 实验总结

这次实验掌握了MATLAB图形绘制的基本方法,熟悉和了解MATLAB图形绘制程序编辑的基本指令,利用MATLAB图形编辑窗口编辑和修改图形界面.

18

实验五 基于SIMULINK的系统仿真

一、实验目的

1、熟悉SIMULINK 工作环境及特点

2、掌握线性系统仿真常用基本模块的用法 3、掌握SIMULINK 的建模与仿真方法 4、子系统的创建和封装设计

二、实验基本原理

1、了解SIMULINK模块库中各子模块基本功能 2、SIMULINK 的建模与仿真方法

(1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口中即可。 (2)创建子系统:当模型大而复杂时,可创建子系统。 (3)设置仿真控制参数。

三、实验程序及结果

1、SIMULINK仿真实际应用

(1) 双环调速的电流环系统的方框图模型为:

图中参数设为Ks=44;Ts=0.00167;Ta=0.017;R=1;Tm=0.075;Ce=0.1925;Kt=0.01178;T1=0.049;T2=0.088

(1)在Simulink集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,0.3秒后在扰 动信号点输入单位阶跃响应信号。并绘制相应的响应曲线

(2)计算仿真结果的超调量、上升时间、调节时间、稳态误差。

(3)设计PID调节器替代图中的比例积分调节器,调节Kp,Ti,Td,用使系统满足超调量15%,上升时间0.3s,调节时间0.4s的要求。

(4)要求对加入的PID控制器封装成一个模块使用。

19

PID调节器 封装模块

应用PID调节器后

20

2、用Simulink对以下系统进行仿真 y(t)???2u(t)t?308u(t)t?30

?其中u(t)为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真 时间0<=0t<=100。

21

3、在滑艇的运行过程中,滑艇主要受到如下作用力的控制:滑艇自身的牵引力F,滑艇受到的水 的阻力f。其中水的阻力f?u?u,u为滑艇的运动速度。由运动学的相关定理可知,整个滑艇 系统的动力学方程为:

21u?[F?(u2?u)]

m?其中,m为滑艇的质量。假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。

22

由仿真曲线可知,滑艇在牵引力F(值为1000)的作用下,在经过80s左右的时间后,速度由0上升并稳定在33km/h。

四 实验总结

这个实验让我熟悉SIMULINK工作环境及特点,熟悉SIMULINK 的建模与仿真方法以及子系统的创建和封装设计.

23

实验六 控制系统的频域与时域分析

一、实验目的

1、掌握控制系统数学模型的基本描述方法和相互转化 2、了解控制系统的稳定性分析方法

3、掌握控制系统频域与时域分析基本方法

二、实验基本原理

1、系统数学模型的几种表示方法

2、在MATLAB工具箱中,提供了子系统的连接处理函数:

1) series()函数:系统串联实现。 2) parallel()函数:系统并联实现。 3) feedback()函数:系统反馈连接。 3、控制系统根轨迹绘制

1)rlocfind():计算给定根的根轨迹增益 2)rlocus() 函数:功能为求系统根轨迹。 4、控制系统频域分析基本方法 1)Bode图:bode()函数 2)Nyquist图:nyquist()函数

3)稳定裕度计算:margin( )函数 5、线性系统时间响应分析

1)step( )函数---求系统阶跃响应

2)impulse( )函数:求取系统的脉冲响应 3)lsim( )函数:求系统的任意输入下的仿真

三、实验程序及结果

1、表示下列传递函数模型,并转化成其他

1.(1)传递函数以及传递函数转化为零极点形式

24

数学模型

传递函数转化为状空表达式

(2)传递函数以及传递函数转化为零极点形式

传递函数转化为状空表达式

25

(3)传递函数以及传递函数转化为零极点形式

传递函数转化为状空表达式

(4)状空表达式以及状空表达式转化为传递函数

26

状空表达式转化为零极点形式

2、一个单位负反馈开环传递函数为

试绘出系统闭环的根轨迹图;并在跟轨迹图上任选一点,试计算该点的增益K及其所有极点的位置。

27

3、求下面系统在阶跃信号为0.11(t)时系统的响应。

并求系统性能指标:稳态值、上升时间、调节时间、超调量。

28

稳态值 0.11、上升时间 4.52、调节时间 10 、超调量 0.113

四 实验总结

通过本次实验掌握控制系统数学模型的基本描述方法和相互转化,了解控制系统的稳定性分析方法,掌握控制系统频域与时域分析基本方法。

29

《数据结构》实验报告

班级: 自动化101班

学号: 6100310017

姓名: 刘 骏

35

时间: 2013 年 6 月

36

本文来源:https://www.bwwdw.com/article/xau7.html

Top