《MATLAB与控制系统仿真》实验报告班级:学号:姓名:时间:年月-1-目录实验一MATLAB的环境与基本运算(一).......................................2实验二MATLAB的环境与基本运算(二).......................................8实验三MATLAB语言的程序设计...............................................................14实验四MATLAB的图形绘制.................................................................................19实验五基于SIMULINK的系统仿真.....................................................24实验六控制系统的频域与时域分析..................................................29实验七控制系统PID校正器设计法.....................................................37实验八线性方程组求解及函数求极值...............................................40-2-南昌大学实验报告学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称实验一MATLAB的环境与基本运算(一)二、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算三、实验基本知识1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。2.掌握MATLAB常用命令表1MATLAB常用命令clc清除命令窗口中内容clear清除工作空间中变量help对所选函数的功能、调用格式及相关函数给出说明lookfor查找具有某种功能的函数但却不知道该函数的准确名称3.MATLAB变量与运算符3.1变量命名规则3.2MATLAB的各种常用运算符表2MATLAB算术运算符操作符功能说明操作符功能说明+加\矩阵左除-减.\数组左除*矩阵乘/矩阵右除.*数组乘./数组右除^矩阵乘方'矩阵转置.^数组乘方.'数组转置表3MATLAB关系运算符操作符功能说明==等于~=不等于大于小于=大于等于=小于等于-3-表4MATLAB逻辑运算符逻辑运算符逻辑运算说明&And逻辑与|Or逻辑或~Not逻辑非Xor逻辑异或表5MATLAB特殊运算符号功能说明示例符号功能说明示例:1:1:4;1:2:11.;分隔行..,分隔列…()%注释[]构成向量、矩阵!调用操作系统命令{}构成单元数组=用于赋值4.MATLAB的一维、二维数组的寻访表6子数组访问与赋值常用的相关指令格式四、主要仪器设备及耗材计算机五、实验结果1.新建一个文件夹(自己的名字命名,在机器的最后一个盘符)2.启动MATLAB,将该文件夹添加到MATLAB路径管理器中。-4-3.学习使用help命令。4.窗口命令closecloseallclcholdonholdoff了解其功能和作用,观察commandwindow、commandhistory和workspace等窗口的变化结果。5.工作空间管理命令whowhosclear6.随机生成一个2×6的矩阵,写出实现矩阵左旋(以第1行第1列为中心逆时针)90°或右旋(顺时针)90°的命令。A=rand(2,6)%随机生成一个2×6的矩阵-5-B=rot90(A)%左旋(以第1行第1列为中心逆时针)90°C=rot90(fliplr(flipud(A)))%右旋(顺时针)90°的命令。A=0.81470.12700.63240.27850.95750.15760.90580.91340.09750.54690.96490.9706B=0.15760.97060.95750.96490.27850.54690.63240.09750.12700.91340.81470.9058C=0.90580.81470.91340.12700.09750.63240.54690.27850.96490.95750.97060.15767.求高阶方程的的根,求高阶多项式的值。p=[34218];X=roots(p)X=0.2807+1.0987i0.2807-1.0987i-1.2935-0.6012z=polyval(p,2)z=1078.创建一个二维数组A(4×8)。查询数组A第2行、第3列的元素;查询数组A第2行的所有元素;查询数组A第6列的所有元素;查询数组A按列拉长形成新的数组B;查询数组A按行拉长形成新的数组C。D=[01234567;89101112131415;1617181920212223;2425262728293031];DD=6012345678910111213141516171819202122232425262728293031D(2,3)ans=10D(2,:)ans=89101112131415D(:,6)ans=5132129E=D(:)%按列拉长形成新的数组E=0816241917252101826311719274122028513212961422307152331F=D';G=F(:);H=G'%按行拉长形成新的数组H=Columns1through17012345678910111213141516Columns18through32171819202122232425262728293031六、实验体会因为以前就会用matlab处理一些简单的问题,所以这次实验我很快就做完了,但是我深深的知道matlab的功能远远不止着一些,所以学好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个数组参与的合法的数组运算和矩阵指令及结果。A=[1234;5678]A=12345678B=[15165;46576]B=1558546576C=[12;78]C=1278A+Bans=27619109711414A-Bans=0-3-55-11-5902A.*Bans=11017420203904948A./Bans=1.00000.40000.05170.80001.25000.09231.00001.3333B.\Aans=1.00000.40000.05170.80001.25000.09231.00001.3333C*Aans=1114172047627792C*Bans=913572173955546283A/Bans=0.05290.03200.11930.0961B\Aans=00000.07580.08940.10310.11670.01070.02680.04280.05890000C\Aans=0.3333-0.6667-1.6667-2.66670.33331.33332.33333.3333C\Bans=015.0000-75.0000-4.66670.5000-5.000066.50004.83332、学习使用表2列出的常用函数。11E=diag([1234])E=1000020000300004F=eye(4,4)F=1000010000100001H=magic(5)H=17241815235714164613202210121921311182529ones(3,4)ans=111111111111rand(3,4)ans=0.84620.67210.68130.50280.52520.83810.37950.70950.20260.01960.83180.4289randn(3,4)ans=-0.43260.28771.18920.1746-1.6656-1.1465-0.0376-0.18670.12531.19090.32730.7258zeros(3,4)ans=000000000000size(ans)ans=12343、学习使用表3列出的数组操作函数。A=[1234;5678;9101112;13141516]A=12345678910111213141516diag(A)ans=161116flipud(A)ans=13141516910111256781234fliplr(A)ans=43218765121110916151413reshape(A,2,8)ans=19210311412513614715816rot90(A)ans=48121637111526101415913det(A)ans=4.7332e-030rank(A)ans=24、生成下列矩阵,并取出方框内的数组元素13K=[12345;109876;1112131415;1617181920;2122232425]K=12345109876111213141516171819202122232425K(2,2:3)%生成98ans=98K(2:4,4)%生成7,14,19ans=71419K(4:5,1:3)%生成161718ans=212223161718212223六、实验体会这次实验在以前会用matlab的基础上,再加上课堂的训练,自己这次实验要相对上一次比较顺利,一些基本功能也能更好的掌握。Matlab的基本运算比较简单,matlab在处理矩阵方面有着得天独厚的优势,所以要好好学习。14南昌大学实验报告学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:一、实验项目名称实验三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循环体语句3end15if-else-end分支结构if表达式1语句1elseif表达式2(可选)语句2else(可选)语句3endend说明:(1)if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。(2)elseif表达式2与else