您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 南昌大学《MATLAB与控制系统仿真》实验报告
实验报告实验课程:MATLAB与控制系统仿真姓名:学号:专业班级:2016年6月1目录实验一MATLAB的环境与基本运算(一)实验二MATLAB的环境与基本运算(二)实验三MATLAB语言的程序设计实验四MATLAB的图形绘制实验五基于SIMULINK的系统仿真实验六控制系统的频域与时域分析实验七控制系统PID校正器设计法实验八线性方程组求解及函数求极值2实验一MATLAB的环境与基本运算(一)一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本原理1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。2.掌握MATLAB常用命令表1MATLAB常用命令clc清除命令窗口中内容clear清除工作空间中变量help对所选函数的功能、调用格式及相关函数给出说明lookfor查找具有某种功能的函数但却不知道该函数的准确名称3.MATLAB变量与运算符3.1变量命名规则3.2MATLAB的各种常用运算符表2MATLAB算术运算符操作符功能说明操作符功能说明+加\矩阵左除-减.\数组左除*矩阵乘/矩阵右除.*数组乘./数组右除^矩阵乘方'矩阵转置.^数组乘方.'数组转置表3MATLAB关系运算符操作符功能说明==等于~=不等于大于小于=大于等于=小于等于表4MATLAB逻辑运算符逻辑运算符逻辑运算说明&And逻辑与|Or逻辑或~Not逻辑非3Xor逻辑异或表5MATLAB特殊运算符号功能说明示例符号功能说明示例:1:1:4;1:2:11.;分隔行..,分隔列…()%注释[]构成向量、矩阵!调用操作系统命令{}构成单元数组=用于赋值4.MATLAB的一维、二维数组的寻访表6子数组访问与赋值常用的相关指令格式三、主要仪器设备及耗材计算机四、实验内容1.新建一个文件夹(自己的名字命名,在机器的最后一个盘符)2.启动MATLAB,将该文件夹添加到MATLAB路径管理器中。3.学习使用help命令。4.窗口命令closecloseallclcholdonholdoff了解其功能和作用,观察commandwindow、commandhistory和workspace等窗口的变化结果。5.工作空间管理命令whowhosclear6.随机生成一个2×6的矩阵,写出实现矩阵左旋(以第1行第1列为中心逆时针)90°或右旋(顺4时针)90°的命令。左旋:rot90(a);右旋:rot90(flipud(fliplr(a)))(先左右翻转,上下翻转,在左旋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、窗口命令closecloseall5clcholdonholdoff5、工作空间管理命令who6whosclear3、程序如下:%随机生成一个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=[12345678;910111213141516;1718192021222324;2526272829303132];A1=A(2,3)A2=A(2,:)A3=A(:,6)B=A(:)7B1=A';D=B1(:);C=D'求高阶方程的的根,求高阶多项式的值。六、实验总结通过第一次做实验,熟悉了一些的基本功能。掌握矩阵、变量、表达式的各种基本运算,让自己感觉到了MATLAB功能的强大,因此我们必须学习使用这个软件,让它更好的为我们服务。8实验二MATLAB的环境与基本运算(二)一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本原理1.MATLAB的基本运算表1两种运算指令形式和实质内涵的异同表2.MATLAB的常用函数9三、实验内容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=[1234;5678];B=[9101112;13141516];C=[1718;1920];s=30;n=5;p=1.2;A.'A=ss+Bs-BB-s10s.*As./BB./sA.^nA.^pA+BA-BA.*BA./BB.\Aexp(A)log(A)sqrt(A)A's*As*inv(C)A^nA^pA*BA/BB\Aexpm(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、生成一个指定的矩阵,并按要求取出其中的数组元素11方法一D=[1:5;10:-1:6;11:15;16:20;21:25]D(2,2:3)D(2:4,4)D(4:5,1:3)方法二六、实验总结在第一次实验的基础上,自己这次实验要相对上一次比较顺利,一些基本功能也能更好的掌握,但是对matlab这个软件的强大功能还不能很好的应用,因此我要加强对该软件的学习,让它更好的处理各个学科的知识,总而言之,这次实验的收获还是比较大的。A=[1,2,3,4,5;10,9,8,7,6;11,12,13,14,15;16,17,18,19,20]A=1234510987611121314151617181920A(2,2:3)ans=98A(2:4,4)ans=71419A(4:5,1:3)ans=16171821222312实验三MATLAB语言的程序设计一、实验目的1.熟悉MATLAB程序编辑与设计环境2.掌握各种编程语句语法规则及程序设计方法3.函数文件的编写和设计4.了解和熟悉跨空间变量传递和赋值二、实验基本原理1.程序流程控制语句for循环结构语法:fori=初值:增量:终值语句1……语句nend说明:1.i=初值:终值,则增量为1。2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。while循环结构语法:while逻辑表达式循环体语句end说明:(1)whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则程序执行end之后的语句。(2)为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。)(3)while循环也可以嵌套、其结构如下:while逻辑表达式1循环体语句1while逻辑表达式2循环体语句2end循环体语句3endif-else-end分支结构if表达式1语句1elseif表达式2(可选)语句2else(可选)语句313endend说明:(1)if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。(2)elseif表达式2与else为可选项,这两条语句可依据具体情况取舍。(3)注意:每一个if都对应一个end,即有几个if,记就应有几个end。switch-case结构语法:switch表达式case常量表达式1语句组1case常量表达式2语句组2……otherwise语句组nend说明:(1)switch后面的表达式可以是任何类型,如数字、字符串等。(2)当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。程序流程控制指令break、return、pause2.函数文件的结构和编写方法函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。M函数文件的结构(1)函数定义行(function)(2)H1行(函数帮助文本的第一行)(3)函数帮助文本(4)函数体(5)注释函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。三、主要仪器设备及耗材计算机四、实验内容练习A1.熟悉MATLAB程序编辑与设计环境2.用for循环语句实现求1~100的和3.用for循环语句实现编写一个求阶乘n!的函数文件4.设y=[3,5,7,9,11,16,21,23,25,27],将y向量中属于能整除3的元素传递给向量z。(使用函数rem求余数)。147.已知数组A=[2,4,6,8,10],B=[4,9,6,7,4],求]1[][1inBiAni,其中n=5。五、实验程序及结果程序如下:%用for循环语句实现求1~100的和sum=0;fori=1:100sum=sum+i;endsum结果为:sum=5050%用for循环语句实现编写一个求阶乘n!的函数文件functionf=factor(n)f=1;fori=1:nf=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=[];fori=1:10a=rem(y(i),3);ifa==0z=[z,y(i)];endendz结果为:z=392127%已知数组A=[2,4,6,8,10],B=[4,9,6,7,4],求]1[][1inBiAni,其中n=5。15A=[2,4,6,8,10];B=[4,9,6,7,4];n=5;sum=0;fori=1:5a(i)=A(i)*B(n-i+1);sum=sum+a(i);endsum结果为:sum=184六、实验总结在前两次实验的基础上,掌握了基本的操作,这次实验进一步加深了对软件功能的探索,让自己熟悉MATLAB程序编辑与设计环境,掌握编程语句语法规则及程序设计方法、函数文件的编写和设计,了解和熟悉跨空间变量传递和赋值。让自己掌握了基本的编程方法,受益匪浅。16实验四MATLAB的图形绘制一、实验目的1.学习MATLAB图形绘制的基本方法;2.熟悉和了解MATLAB图形绘制程序编辑的基本指令;3.熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;4.掌握plot、subplot的指令格式和语法。二、实验基本原理1.基本的绘图命令plot(x,y,)2.建立图形窗口命令figure(1);figure(2);…;figure(n)打开不同的图形窗口,以便绘制不同的图形。3.gridon:在所画出的图形坐标中加入栅格gridoff:除去图形坐标中的栅格。4.holdon:
本文标题:南昌大学《MATLAB与控制系统仿真》实验报告
链接地址:https://www.777doc.com/doc-5986215 .html