1、南昌大学MATLAB与控制系统仿真实验报告综述实 验 报 告实验课程: MATLAB与控制系统仿真姓 名:学 号:专业班级: 2016年 6月实验一 MATLAB的环境与基本运算(一)实验二 MATLAB的环境与基本运算(二)实验三 MATLAB语言的程序设计实验四 MATLAB的图形绘制实验五 基于SIMULINK的系统仿真实验六 控制系统的频域与时域分析实验七 控制系统PID校正器设计法实验八 线性方程组求解及函数求极值 实验一 MATLAB的环境与基本运算(一)一、实验目的1 熟悉MATLAB开发环境2掌握矩阵、变量、表达式的各种基本运算二、实验基本原理1.熟悉MATLAB环境: MAT
2、LAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。2.掌握MATLAB常用命令表1 MATLAB常用命令clc 清除命令窗口中内容clear 清除工作空间中变量help 对所选函数的功能、调用格式及相关函数给出说明lookfor 查找具有某种功能的函数但却不知道该函数的准确名称3.MATLAB变量与运算符31变量命名规则32 MATLAB的各种常用运算符表2 MATLAB算术运算符操作符 功能说明 操作符 功能说明 + 加 矩阵左除- 减. 数组左除* 矩阵乘/ 矩阵右除.* 数组乘./ 数组右除 矩阵乘方 矩阵转置. 数组乘方. 数组转置 表3 MAT
3、LAB关系运算符操作符 功能说明 = 等于= 不等于 大于= 大于等于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六、实验总结 在第一次实验的基础上,自己这次实验要相对上一次比较顺利,一些基本功能也能更好的掌握,但是对matlab这个软件的强大功能还不能很好的应用,因此我要加强对该软件的学
4、习,让它更好的处理各个学科的知识,总而言之,这次实验的收获还是比较大的。实验三 MATLAB语言的程序设计一、实验目的1熟悉MATLAB程序编辑与设计环境2掌握各种编程语句语法规则及程序设计方法 3函数文件的编写和设计 4了解和熟悉跨空间变量传递和赋值 二、实验基本原理1程序流程控制语句 for循环结构语法:for i初值:增量:终值 语句1 语句n end 说明:1i初值:终值,则增量为1。 2初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:(1)whiIe结构依据逻辑表达式的值判断是否执行循
5、环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行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
6、 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后面的语句组如果所有的常量表达式的值都
7、与这个表达式的值不相等时,则执行otherwise后的执行语句。程序流程控制指令break、return、pause 2函数文件的结构和编写方法 函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。M函数文件的结构(1) 函数定义行(function) (2) H1行(函数帮助文本的第一行) (3) 函数帮助文本(4) 函数体(5) 注释函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。三、主要仪器设备及耗材计算机四、实验内容 练习A 1熟悉MATLAB程序编辑与设计环境2用for循环语句实现求1100的和3用for循环语
8、句实现编写一个求阶乘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:n f=f*i;End运行结果为: f=factor(10)f = 3628800%设y=
9、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-i+1); sum=sum+a(i);endsum结果为:sum = 184六、实验总结
10、在前两次实验的基础上,掌握了基本的操作,这次实验进一步加深了对软件功能的探索,让自己熟悉MATLAB程序编辑与设计环境,掌握编程语句语法规则及程序设计方法、函数文件的编写和设计,了解和熟悉跨空间变量传递和赋值。让自己掌握了基本的编程方法,受益匪浅。实验四 MATLAB的图形绘制一、实验目的1学习MATLAB图形绘制的基本方法; 2熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 4掌握plot、subplot的指令格式和语法。二、实验基本原理1基本的绘图命令plot(x,y,)2建立图形窗口命令figure(1
11、);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文字标示 text(x,y,字符串)在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。 gtext(字符串)利用鼠标在图形
12、的任意位置标示字符串。 title(字符串)在所画图形的最上端显示说明该图形标题的字符串。 xlabel(字符串),ylabel(字符串)设置x,y坐标轴的名称。 输入特殊的文字需要用反斜杠()开头7subplot(m,n,k):分割图形显示窗口,在同一个窗口中显示多个图形。 m:上下分割个数 n:左右分割个数 k::子图编号8semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。semilogy:绘制以y 轴为对数坐标(以10 为底),x 轴为线性坐标的半对数坐标图形。三、主要仪器设备及耗材计算机四、实验内容 1绘制下列曲线,要求尽可能多地使用二中所列命令。
13、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,0.95,1,1.05,max(y) grid on title(it y = 1 - e -alphatcosomegat) text(13.5,1.2,fontsize12alph
14、a=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=fontsize16 fontname隶书镇定时间; cell_string3=fontsize6 ; cell_string4=fontsize14rmt_s = num2str(ts); text(ts,0.85,cell_string) xlabel(fontsize14 bft rightarrow)ylabel(fon
15、tsize14 bfy rightarrow)五、实验程序及结果1绘制下列曲线,要求尽可能多地使用二中所列命令。 y=sin(t)sin(9t) %绘制下列曲线subplot(2,2,1);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=
16、2;x=r*sin(t);y=r*cos(t);plot(x,y);title(图形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图形绘制程序编辑的基本指令,利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标
17、注,掌握plot、subplot的指令格式和语法。让自己对软件的拓展范围加大,自己的使用更加顺利,收获很大。实验五 基于SIMULINK的系统仿真一、实验目的1、熟悉SIMULINK 工作环境及特点2、掌握线性系统仿真常用基本模块的用法3、掌握SIMULINK 的建模与仿真方法4、子系统的创建和封装设计二、实验基本原理1、了解SIMULINK模块库中各子模块基本功能 2、SIMULINK 的建模与仿真方法(1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口中即可。(2)创建子系统:当模型大而复杂时,可创建子系统。(3)设置仿真控制参数。三、实验程序及结果1、SIMULINK仿
18、真实际应用(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调节器后2、用Simulink对以下系统进行仿真 其中为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真时间0=0t=100。3、在滑艇的运行过程中,滑艇主要受到如下作用力的控制:滑艇自身的牵引力F,滑艇受到的水的阻力f。其中水的阻力,u为滑艇的运动速度。由运动学的相关定理可知,整个滑艇系统的动力学方程为:其中,m为滑艇的质量。假设滑艇的质量为1000kg,建立此系统的Simulink模型并进行分析。由仿真曲线可知,滑艇在牵引力F(值为1000)的作用下,在经过80s左右的时间后,速度由0上升并稳定在33km/h。
20、四、实验总结 这个实验让我熟悉SIMULINK工作环境及特点,掌握线性系统仿真常用基本模块的用法,熟悉SIMULINK 的建模与仿真方法以及子系统的创建和封装设计.这个实验也体现了MATLAB用途比较广泛,因此我们必须学会使用MATLAB,这样才能更有益于我们的学习。实验六 控制系统的频域与时域分析一、实验目的1、掌握控制系统数学模型的基本描述方法和相互转化2、了解控制系统的稳定性分析方法3、掌握控制系统频域与时域分析基本方法二、实验基本原理1、系统数学模型的几种表示方法 2、在MATLAB工具箱中,提供了子系统的连接处理函数:1) series()函数:系统串联实现。2) parallel(
21、)函数:系统并联实现。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)传递函数以及传递函数转化为零极点形式 传递函数转化为状空表达式 (2)传递函数以及传递函数转化为零极点形式传递函数转化为状空表达式(3)传递函数以及传递函数转化为零极点形式传递函数转化为状空表达式
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1