南昌大学《MATLAB与控制系统仿真》实验报告_第1页
南昌大学《MATLAB与控制系统仿真》实验报告_第2页
南昌大学《MATLAB与控制系统仿真》实验报告_第3页
南昌大学《MATLAB与控制系统仿真》实验报告_第4页
南昌大学《MATLAB与控制系统仿真》实验报告_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 报 告实验课程: MATLAB与控制系统仿真姓 名:学 号:专业班级: 2016年 6月目 录实验一 MATLAB的环境与基本运算(一)实验二 MATLAB的环境与基本运算(二)实验三 MATLAB语言的程序设计实验四 MATLAB的图形绘制实验五 基于SIMULINK的系统仿真实验六 控制系统的频域与时域分析实验七 控制系统PID校正器设计法实验八 线性方程组求解及函数求极值 实验一 MATLAB的环境与基本运算(一)一、实验目的1 熟悉MATLAB开发环境2掌握矩阵、变量、表达式的各种基本运算二、实验基本原理1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助

2、信息浏览器、工作空间浏览器、文件和搜索路径浏览器。2.掌握MATLAB常用命令表1 MATLAB常用命令clc 清除命令窗口中内容clear 清除工作空间中变量help 对所选函数的功能、调用格式及相关函数给出说明lookfor 查找具有某种功能的函数但却不知道该函数的准确名称3.MATLAB变量与运算符31变量命名规则32 MATLAB的各种常用运算符表2 MATLAB算术运算符操作符 功能说明 操作符 功能说明 + 加 矩阵左除- 减. 数组左除* 矩阵乘/ 矩阵右除.* 数组乘./ 数组右除 矩阵乘方' 矩阵转置. 数组乘方.' 数组转置 表3 MATLAB关系运算符操作

3、符 功能说明 = 等于= 不等于> 大于< 小于>= 大于等于<= 小于等于表4 MATLAB逻辑运算符逻辑运算符 逻辑运算 说明 & And 逻辑与| Or 逻辑或 Not 逻辑非Xor逻辑异或表5 MATLAB特殊运算符号 功能说明示例 符号 功能说明示例 : 1:1:4;1:2:11 . ; 分隔行 . , 分隔列 () % 注释 构成向量、矩阵 ! 调用操作系统命令 构成单元数组= 用于赋值 4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式三、主要仪器设备及耗材 计算机四、实验内容 1新建一个文件夹(自己的名字命名,在机器的

4、最后一个盘符) 2启动MATLAB,将该文件夹添加到MATLAB路径管理器中。3学习使用help命令。4窗口命令l closel close alll clcl hold onl hold off了解其功能和作用,观察command window、command history和workspace等窗口的变化结果。5工作空间管理命令l whol whosl clear6随机生成一个2×6的矩阵,写出实现矩阵左旋(以第1行第1列为中心逆时针)90°或右旋(顺时针)90°的命令。左旋:rot90(a);右旋:rot90(flipud(fliplr(a)(先左右翻转,上

5、下翻转,在左旋90°)7求高阶方程的的根,求高阶多项式的值。8创建一个二维数组A(4×8)。查询数组A第2行、第3列的元素;查询数组A第2行的所有元素;查询数组A第6列的所有元素;查询数组A按列拉长形成新的数组B;查询数组A按行拉长形成新的数组C。查询数组A按列拉长形成新的数组B:B=A(:)查询数组A按行拉长形成新的数组C:B=A;D=B(:);C=D五、实验程序及结果1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符) 2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。3、学习使用help命令。4、窗口命令l closel close alll cl

6、cl hold onl hold off5、工作空间管理命令l whol whosl clear3、程序如下:%随机生成一个2×6的矩阵a=rand(2,6)%左旋90度a1=rot90(a)%右旋90度a2=rot90(flipud(fliplr(a)%创建一个二维数组A(4×8)。查询数组A第2行、第3列的元素;查询数组A第2行的所有元素;%查询数组A第6列的所有元素;查询数组A按列拉长形成新的数组B;查询数组A按行拉长形成新的数组CA=1 2 3 4 5 6 7 8;9 10 11 12 13 14 15 16; 17 18 19 20 21 22 23 24;25

7、26 27 28 29 30 31 32 ;A1=A(2,3)A2=A(2,:)A3=A(:,6)B=A(:)B1=A'D=B1(:);C=D'求高阶方程的的根,求高阶多项式的值。六、实验总结 通过第一次做实验,熟悉了一些的基本功能。掌握矩阵、变量、表达式的各种基本运算,让自己感觉到了MATLAB功能的强大,因此我们必须学习使用这个软件,让它更好的为我们服务。实验二 MATLAB的环境与基本运算(二)一、实验目的1 熟悉MATLAB开发环境2掌握矩阵、变量、表达式的各种基本运算二、实验基本原理1.MATLAB的基本运算表1 两种运算指令形式和实质内涵的异同表2MATLAB的常用

8、函数三、实验内容 1设有3个二维数组A(2×4),B(2×4),C(2×2),参照表1写出所有由2个数组参与的合法的数组运算和矩阵指令及结果。2学习使用表2列出的常用函数。3学习使用表3列出的数组操作函数。4生成下列矩阵,并取出方框内的数组元素四、主要仪器设备及耗材计算机五、实验程序及结果实验程序:%1、设有3个二维数组A(2×4),B(2×4),C(2×2),参照表1写出所有由2个数组参与的合法的数组运算和矩阵指令及结果。A=1 2 3 4;5 6 7 8;B=9 10 11 12;13 14 15 16;C=17 18;19 20

9、;s=30;n=5;p=1.2;A.'A=ss+Bs-BB-ss.*As./BB./sA.nA.pA+BA-BA.*BA./BB.Aexp(A)log(A)sqrt(A)A's*As*inv(C)AnApA*BA/BBAexpm(A)logm(A)sqrtm(A)diag(C)eye(4)magic(5)ones(5)ones(4,5)rand(6)rand(6,2)randn(3)randn(3,6)zeros(5)zeros(3,7)size(C)rot90(B)det(C)rank(C) %4、生成一个指定的矩阵,并按要求取出其中的数组元素 方法一D=1:5;10:-1:

10、6;11:15;16:20;21:25D(2,2:3)D(2:4,4)D(4:5,1:3)方法二>>A=1,2,3,4,5;10,9,8,7,6;11,12,13,14,15;16,17,18,19,20A = 1 2 3 4 5 10 9 8 7 6 11 12 13 14 1516 17 18 19 20>> A(2,2:3)ans = 9 8>> A(2:4,4)ans = 7 1419>> A(4:5,1:3)ans= 16 17 18 21 22 23六、实验总结 在第一次实验的基础上,自己这次实验要相对上一次比较顺利,一些基本功能也能

11、更好的掌握,但是对matlab这个软件的强大功能还不能很好的应用,因此我要加强对该软件的学习,让它更好的处理各个学科的知识,总而言之,这次实验的收获还是比较大的。实验三 MATLAB语言的程序设计一、实验目的1熟悉MATLAB程序编辑与设计环境2掌握各种编程语句语法规则及程序设计方法 3函数文件的编写和设计 4了解和熟悉跨空间变量传递和赋值 二、实验基本原理1程序流程控制语句 for循环结构语法:for i初值:增量:终值 语句1 语句n end 说明:1i初值:终值,则增量为1。 2初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。while 循环结构 语法:while

12、逻辑表达式 循环体语句 end 说明:(1)whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。(2)为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。) (3)while循环也可以嵌套、其结构如下: while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end if-else-end分支结构if

13、 表达式 1 语句1 else if 表达式 2(可选) 语句2 else(可选) 语句3 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)当表达式的值与

14、case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。程序流程控制指令break、return、pause 2函数文件的结构和编写方法 函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。M函数文件的结构(1) 函数定义行(function) (2) H1行(函数帮助文本的第一行) (3) 函数帮助文本(4) 函数体(5) 注释函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。三、主要仪器设备及耗材计算机四、实验内容 练习A

15、 1熟悉MATLAB程序编辑与设计环境2用for循环语句实现求1100的和3用for循环语句实现编写一个求阶乘n!的函数文件4设y=3,5,7,9,11,16,21,23,25,27,将y向量中属于能整除3的元素传递给向量z。(使用函数rem求余数)。7已知数组A=2,4,6,8,10,B=4,9,6,7,4,求,其中n=5。五、实验程序及结果程序如下:%用for循环语句实现求1100的和sum=0;for i=1:100sum=sum+i;endsum结果为:sum = 5050%用for循环语句实现编写一个求阶乘n!的函数文件function f=factor(n)f=1;for i=1:

16、n f=f*i;End运行结果为: f=factor(10)f = 3628800%设y=3,5,7,9,11,16,21,23,25,27,将y向量中属于能整除3的元素传递给向量z。(使用函数rem求余数)y=3,5,7,9,11,16,21,23,25,27;z=;for i=1:10 a=rem(y(i),3); if a=0 z=z,y(i); endendz 结果为:z = 3 9 21 27%已知数组A=2,4,6,8,10,B=4,9,6,7,4,求,其中n=5。A=2,4,6,8,10;B=4,9,6,7,4;n=5;sum=0;for i=1:5 a(i)=A(i)*B(n-

17、i+1); sum=sum+a(i);endsum结果为:sum = 184六、实验总结 在前两次实验的基础上,掌握了基本的操作,这次实验进一步加深了对软件功能的探索,让自己熟悉MATLAB程序编辑与设计环境,掌握编程语句语法规则及程序设计方法、函数文件的编写和设计,了解和熟悉跨空间变量传递和赋值。让自己掌握了基本的编程方法,受益匪浅。实验四 MATLAB的图形绘制一、实验目的1学习MATLAB图形绘制的基本方法; 2熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 4掌握plot、subplot的指令格式和语

18、法。二、实验基本原理1基本的绘图命令plot(x,y,)2建立图形窗口命令figure(1);figure(2);figure(n)打开不同的图形窗口,以便绘制不同的图形。3grid on:在所画出的图形坐标中加入栅格grid off:除去图形坐标中的栅格。4hold on:把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。hold off:使新图覆盖旧的图形。5axis设定轴的范围axis(xmin xmax ymin ymax)设定x 轴与y轴的最大、最小坐标。axis(equal):将x坐标轴和y坐标轴的单位刻度大小调整为一样。6文字标示l text(x,y,字符串)在图

19、形的指定坐标位置(x,y)处,标示单引号括起来的字符串。l gtext(字符串)利用鼠标在图形的任意位置标示字符串。l title(字符串)在所画图形的最上端显示说明该图形标题的字符串。l xlabel(字符串),ylabel(字符串)设置x,y坐标轴的名称。l 输入特殊的文字需要用反斜杠()开头7subplot(m,n,k):分割图形显示窗口,在同一个窗口中显示多个图形。l m:上下分割个数l n:左右分割个数l k::子图编号8semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。semilogy:绘制以y 轴为对数坐标(以10 为底),x 轴为线性坐标的半

20、对数坐标图形。三、主要仪器设备及耗材计算机四、实验内容 1绘制下列曲线,要求尽可能多地使用二中所列命令。 y=sin(t)sin(9t)2绘制二阶系统阶跃响应,综合演示图形标识。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&

21、#39;,0.95,1,1.05,max(y) grid on title('it y = 1 - e -alphatcosomegat') text(13.5,1.2,'fontsize12alpha=0.3') text(13.5,1.1,'fontsize12omega=0.7') hold on;plot(ts,0.95,'bo','MarkerSize',10);hold off cell_string1='fontsize12uparrow' cell_string2='font

22、size16 fontname隶书镇定时间' cell_string3='fontsize6 ' cell_string4='fontsize14rmt_s = ' num2str(ts); text(ts,0.85,cell_string) xlabel('fontsize14 bft rightarrow')ylabel('fontsize14 bfy rightarrow')五、实验程序及结果1绘制下列曲线,要求尽可能多地使用二中所列命令。 y=sin(t)sin(9t) %绘制下列曲线subplot(2,2,1);

23、x=-5:0.1:5;y=x-x.3/3;plot(x,y);title('图形1');xlabel('x');ylabel('y');grid onsubplot(2,2,2);x=-5:0.1:5;y=1/2/pi*exp(x.2/2);plot(x,y);title('图形2');xlabel('x');ylabel('y');grid onsubplot(2,2,3);t=linspace(0,2*pi,10000);r=2;x=r*sin(t);y=r*cos(t);plot(x,y);t

24、itle('图形3');xlabel('x');ylabel('y');axis('equal')grid onsubplot(2,2,4);t=linspace(0,2*pi,10000);y=sin(t).*sin(9*t);plot(t,y);title('图形4');xlabel('t');ylabel('y');grid on 2绘制二阶系统阶跃响应,综合演示图形标识。六、实验总结 这次实验掌握了MATLAB图形绘制的基本方法,熟悉和了解MATLAB图形绘制程序编辑的基本指

25、令,利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注,掌握plot、subplot的指令格式和语法。让自己对软件的拓展范围加大,自己的使用更加顺利,收获很大。实验五 基于SIMULINK的系统仿真一、实验目的1、熟悉SIMULINK 工作环境及特点2、掌握线性系统仿真常用基本模块的用法3、掌握SIMULINK 的建模与仿真方法4、子系统的创建和封装设计二、实验基本原理1、了解SIMULINK模块库中各子模块基本功能 2、SIMULINK 的建模与仿真方法(1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口中即可。(2)创建子系统:当模型大而复杂时,可创建子

26、系统。(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%,上

27、升时间0.3s,调节时间0.4s的要求。(4)要求对加入的PID控制器封装成一个模块使用。PID调节器 封装模块应用PID调节器后2、用Simulink对以下系统进行仿真 其中为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真时间0<=0t<=100。3、在滑艇的运行过程中,滑艇主要受到如下作用力的控制:滑艇自身的牵引力F,滑艇受到的水的阻力f。其中水的阻力,u为滑艇的运动速度。由运动学的相关定理可知,整个滑艇系统的动力学方程为:其中,m为滑艇的质量。假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。由仿真曲线可知,滑艇在牵引力F

28、(值为1000)的作用下,在经过80s左右的时间后,速度由0上升并稳定在33km/h。四、实验总结 这个实验让我熟悉SIMULINK工作环境及特点,掌握线性系统仿真常用基本模块的用法,熟悉SIMULINK 的建模与仿真方法以及子系统的创建和封装设计.这个实验也体现了MATLAB用途比较广泛,因此我们必须学会使用MATLAB,这样才能更有益于我们的学习。实验六 控制系统的频域与时域分析一、实验目的1、掌握控制系统数学模型的基本描述方法和相互转化2、了解控制系统的稳定性分析方法3、掌握控制系统频域与时域分析基本方法二、实验基本原理1、系统数学模型的几种表示方法 2、在MATLAB工具箱中,提供了子

29、系统的连接处理函数: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、

30、表示下列传递函数模型,并转化成其他的数学模型1. (1)传递函数以及传递函数转化为零极点形式 传递函数转化为状空表达式 (2) 传递函数以及传递函数转化为零极点形式传递函数转化为状空表达式(3) 传递函数以及传递函数转化为零极点形式传递函数转化为状空表达式(4)状空表达式以及状空表达式转化为传递函数 状空表达式转化为零极点形式2、一个单位负反馈开环传递函数为 试绘出系统闭环的根轨迹图;并在跟轨迹图上任选一点,试计算该点的增益K及其所有极点的位置。3、求下面系统在阶跃信号为0.11(t)时系统的响应。并求系统性能指标:稳态值、上升时间、调节时间、超调量。稳态值 0.11、上升时间 4.52、调节

31、时间 10 、超调量 0.113四、实验总结 通过本次实验掌握控制系统数学模型的基本描述方法和相互转化,了解控制系统的稳定性分析方法,掌握控制系统频域与时域分析基本方法,这个对于我们控制理论的学习非常有帮助,通过模拟让我们知道自己运算的结果的正误,让自己能够更好的检验。 实验七 控制系统PID校正器设计法一、实验目的1、熟悉常规PID控制器的设计方法2、掌握PID参数的调节规律3、学习编写程序求系统的动态性能指标 二、实验基本原理1模拟PID控制器典型的PID控制结构如图1所示。比 例积 分微 分对象模型PID控制器r(t)y(t)u(t)e(t) 图1 典型PID控制结构PID调节器的数学描述为2 数字PID控制器在计算机PID控制中,连续PID控制算法不能直接使用,需要采用离散化方法,通常使用数字PID控制器。以一系列采样时刻点kT(T为采样周期)代表连续时间t,以矩形法数值积分近似代替积分,以一阶后向差分近似代替微分,即:离散PID表达式:三、实验程序及结果1、在SIMULINK窗口建立如下模型2、设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论