1、MATLAB与系统仿真实验手册MATLAB与控制系统仿真实验指导书河北大学电子信息工程学院20010年9月目录实验一 MATLAB基本操作与基本运算 1实验二 M文件及数值积分仿真方法设计 3实验三 MATLAB 的图形绘制 4实验四 函数文件设计和控制系统模型的描述 6实验五 控制系统的分析与设计 7实验六 连续系统离散化仿真方法设计 8实验七 SIMULINK 仿真 9实验八 SIMULINK 应用进阶 10附录 MATLAB常用函数 12实验一 MATLAB基本操作与基本运算 一、实验目的及要求: 1熟悉MATLAB6.5的开发环境; 2掌握MATLAB6.5的一些常用命令; 3掌握矩阵
2、、变量、表达式的输入方法及各种基本运算。 二、实验内容: 1.熟悉MATLAB6的开发环境: MATLAB的各种窗口: 命令窗口、命令历史窗口、启动平台窗口、工作空间窗口、当前路径窗口。 图1 MATLAB界面窗口路径的设置: 建立自己的文件夹,加入到MATLAB路径中,并保存。 设置当前路径,以方便文件管理。改变命令窗口数据的显示格式 format short format long然后键入特殊变量:pi (圆周率),比较显示结果。2.掌握MATLAB常用命令 who %列出工作空间中变量 whos %列出工作空间中变量,同时包括变量详细信息 save test %将工作空间中变量存储到te
3、st.mat文件中 load test %从test.mat文件中读取变量到工作空间中 clear %清除工作空间中变量 help 函数名 %对所选函数的功能、调用格式及相关函数给出说明 lookfor %查找具有某种功能的函数但却不知道该函数的准确名称 如: lookfor Lyapunov 可列出与Lyapunov有关的所有函数。 3. 在MATLAB的命令窗口计算:1) 2) 4. 设计M文件计算: 已知求出: 1) a+b a-b a+b*5 a-b+I(单位阵) 2) a*b a.*b a/b3) a2 a.2 注意:点运算 . 的功能,比较结果。5. 设计M文件计算: x=0:0.
4、1:10当sum1000时停止运算,并显示求和结果及计算次数。三、实验报告要求: 1)体会1、2的用法;2)对3、4、5写出程序及上机的结果。 实验二 M文件及数值积分仿真方法设计一、实验目的及要求: 1. 掌握MATLAB程序设计方法,会编写M 文件; 2. 掌握用数值积分方法对连续系统建立仿真模型的方法。二、实验内容: M文件设计:仿真时间01秒,计算步长h=0.1,初始值y(0)=1,对连续系统 采用以下方法建立仿真模型:1 前向Euler: 2 后向Euler:3 梯形法:4 改进Euler:5 经典RK4:6 Adams法:7 Milne法: 并与精确解的结果进行比较。三、实验报告要
5、求: 写出程序及上机的结果(保存程序,以便下次实验使用)。 实验三 MATLAB 的图形绘制一、实验目的及要求: 1.掌握MATLAB 绘图的基本方法,熟悉各种绘图函数的使用; 2.掌握图形的修饰方法和标注方法; 3.了解MATLAB 中图形窗口的操作。二、实验内容: 1、x=2,2,y1=sinx、y2=cosx、y3=sin2x、y4=cos 2x用MATLAB语言分四个区域分别绘制的曲线,并且对图形标题及横纵坐标轴进行标注(如下图所示)。图2 四分区绘制曲线 另建一个窗口,不分区,用不同颜色、线型绘出四条曲线,并标注图例注解。 图2 四分区绘制曲线图3 同一窗口绘制多条曲线 (选做)在图
6、形窗口可利用Figure窗口菜单提供的功能进行操作,并保存成* .fig文件。 2、在实验二的基础上分别用分区域绘制和同一窗口绘制多条曲线的方法绘制7种算法和精确解的结果。图4 仿真算法与精确解曲线分区域比较图5 仿真算法与精确解曲线同一窗口比较三、实验报告要求: 写出1、(对图形的修饰写出第一个子区域即可)和的程序。实验四 函数文件设计一、实验目的及要求: 1. 掌握函数文件的设计方法; 2. 掌握函数文件的调用方法。二、实验内容: 1、阶乘函数的设计: 设计一个函数文件实现一个阶乘运算,并设计程序调用该函数。 为保证函数的通用性,当输入负数或小数时,显示出错提示: disp(Input p
7、arameter must be a positive integer!) 提示:fix(x) 对零方向取整数 ceil(x) 对+方向取整数 round(x) 四舍五入取整数 2、非线性限幅函数的设计:正整数 并要求:对输入的一个数列,以x为横坐标,y为纵坐标绘制红色实线,图形的x轴范围限定在x最小值-1 x最大值+1,y轴范围限定在-1.5*a 1.5*a,如下左图:(右图为利用Figure窗口的功能进行添加,选做) 三、实验报告要求: 写出程序及上机的结果。实验五 控制系统的分析与设计一、实验目的及要求: 1. 掌握控制系统数学模型的基本描述方法。 2. 掌握控制系统频域与时域分析基本方
8、法。 3. 掌握现代控制理论的基本设计方法。二、实验内容: 1、已知两个传递函数分别为: 在MATLAB中分别用传递函数、零极点、和状态空间法表示; 在MATLAB中分别求出通过反馈、串联、并联后得到的系统模型; 2已知两个单位负反馈系统中前向通道的传递函数分别为: , 分别绘制开环系统的bode图和nyquist曲线; 分别绘制闭环系统的根轨迹; 分别绘制闭环系统的阶跃响应曲线,分析静态误差; 分别绘制闭环系统的单位斜坡输入响应曲线,分析静态误差。 3已知某被控对象的状态空间表达式为: 判断能控性; 期望极点为p=(-1,-2,-3); 设计状态反馈K进行极点配置; 分别绘制校正前后系统的阶
9、跃响应曲线。三、实验报告要求: 写出程序及上机的结果,并对结果进行分析。实验六 连续系统离散化仿真方法设计一、实验目的及要求: 1. 掌握用替换法建立连续系统仿真模型的方法; 2. 掌握用离散相似法建立连续系统仿真模型的方法。二、实验内容: 1、替换法建立连续系统仿真模型: 设连续系统传递函数为 ,用简单替换法求其Z传递函数和差分方程(采样周期T=0.1s); 若已知:输入作用为单位阶跃函数U(t)=1(t),起始值y(0)=0、y(0.1)= 0.004251,仿真时间t=0,10, 在的基础上设计程序求出响应结果Y(t),并绘制响应曲线;并与控制系统step( )函数得出的响应结果比较。2
10、、离散相似法建立连续系统仿真模型: 若系统传递函数为,当采用零阶保持器,采样周期T=0.1S时,用Z域离散相似法求出系统的脉冲传递函数G(z),并写出差分方程; 若输入作用为斜坡函数U(t)=t,仿真时间t=0,10,在的基础上设计程序求出响应结果Y(t),并绘制响应曲线;并与控制系统lsim( )函数得出的响应结果比较。三、实验报告要求: 写出用简单替换法和离散相似法建立差分方程的过程,并写出程序。实验七 SIMULINK 仿真单回路控制系统及PID控制器参数整定一、实验目的及要求: 1.熟悉SIMULINK 工作环境及特点; 2.熟悉控制线性系统仿真常用基本模块的用法; 3.掌握SIMUL
11、INK 的建模与仿真方法。二、实验内容: 用SIMULINK建立被控对象的传递函数为,系统输入为单位阶跃,采用PID控制器进行闭环调节。练习模块、连线的操作,并将仿真时间定为300 秒,其余用缺省值;试用稳定边界法(过程控制P5工程整定法之一)设置出合适的PID参数,得出满意的响应曲线。设计M文件在一个窗口中绘制出系统输入和输出的曲线,并加图解。三、实验报告要求: 阐述用SIMULINK进行控制系统仿真的一般过程;说明用工程整定法稳定边界法整定PID参数的过程。实验八 SIMULINK 应用进阶子系统封装及复杂系统仿真一、实验目的及要求: 1. 掌握SIMULINK子系统模块化和封装技术; 2
12、. 熟悉SIMULINK对复杂控制系统仿真时常用的方法。二、实验内容: 1、用SIMULINK建立系统:,为输入,为输出,为常数。对该系统进行封装,要求通过对话框能修改的值。 图6 系统封装后的效果图 2、在第一题的基础上, 加入实验四建立的阶乘函数,实现ax3+bx+c+n!的运算;将模型中的a、b、c、n表示为字母形式的变量名,设计M文件在文件中为模型参数赋值,然后运行仿真模型; 在中的M文件中实现用命令行运行仿真模型,并用plot语句绘曲线。 图7 SIMULINK仿真模型图三、实验报告要求: SIMULINK仿真中进行封装的目的以及封装的步骤;说明实验内容2的实现步骤和编制的M文件程序
13、。附录 MATLAB常用函数 1、常用矩阵函数命令说明d=eig(A)矩阵特征值v,d=eig(A)矩阵特征值和特征向量det(A)行列式计算inv(A)求逆poly(A)特征多项式trace(A)对角元素之和orth(A)正交化2、常用特殊矩阵命令说明A= 空矩阵A=eye( n )N维单位矩阵A=ones(n,m)全部元素都为1的矩阵A=zeros(n,m)全部元素都为0的矩阵A=rand(n,m)元素为0到1之间均匀分布的随机矩阵A=randn(n,m)元素为零均值单位方差正态分布的随机矩阵3、图形绘制和修饰(1)坐标轴调整axis(xmin xmax ymin ymax) 图形的x轴范
14、围限定在xmin xmax y轴范围限定在ymin ymaxaxis(控制字符串) 根据字符串控制图形set(gca,xtick,标示向量) 按照向量设置X坐标的刻度标示set(gca,ytick,标示向量) 按照向量设置Y坐标的刻度标示set(gca,xticklabel,字符串|字符串) 按字符串设置X坐标的刻度标示set(gca,yticklabel,字符串|字符串) 按字符串设置Y坐标的刻度标示 (2)文字标示title(字符串) 图形标题xlabel(字符串) x轴标注ylabel(字符串) y轴标注 text(x,y,字符串) 在坐标处标注说明文字gtext(字符串) 用鼠标在特定
15、处标注说明文字 (3)网格控制grid on 在所画的图形中添加网格线grid off 在所画的图形中去掉网格线(4)图例注解legend(字符串1,字符串2,参数) 为区分各条曲线以字符串进行注解说明,参数确定注解在图形中的位置。(5)图形的保持hold on 保持当前图形及轴系的所有特性hold off 解除命令 (6)图形窗口的分割 可把一个绘图窗口分割成几个区域,分别绘图。subplot(m,n,p) 将当前绘图窗口分割成m行n列区域,指定第p个编号区域为当前绘图区。 区域编号原则:“先上后下,先左后右”。4、线性系统分析设计 (1)模型描述状态空间:写为A、B、C、D四个矩阵的形式;
16、也可用SYS = SS(A,B,C,D) 传递函数:用分子、分母的多项式表示;可用SYS = TF(NUM,DEN)建立tf模型零极点:用增益k、分子零点向量z、分母极点向量p表示,同样可用 SYS = ZPK(Z,P,K)建立zpk模型部分分式:传递函数没有相同极点时,可与部分分式相互转换: r,p,k=residue(num,den) 传递函数变换为部分分式形式 num,den=residue(r,p,k) 部分分式变换为传递函数形式闭环系统feedback 反馈连接 SYS = feedback(SYS1,SYS2,sign) A,B,C,D=feedback(A1,B1,C1,D1,A
17、2,B2,C2,D2,sign)num,den=feedback(num1,den1,num2,den2,sign) sign=+(-)1反馈极性,缺省-1为负反馈类似地,有 parallel系统并联 series系统串联(2)模型转换ss状态空间、tf传递函数、zp零极点 num,den=ss2tf(a,b,c,d,iu) 状态空间到传递函数 z,p,k=ss2zp(a,b,c,d,iu) 状态空间到零极点 a,b,c,d=tf2ss(num,den) 传递函数到状态空间 z,p,k=tf2zp(num,den) 传递函数到零极点 a,b,c,d=zp2ss(z,p,k) 零极点到状态空间
18、num,den=zp2tf(z,p,k) 零极点到传递函数 r,p,k=residue(num,den) 传递函数到部分分式 num,den=(r,p,k) 部分分式到传递函数(3)系统分析 (以下模型描述也可以用状态空间表达式的A、B、C、D) step(num,den) 直接画出单位阶跃响应曲线,时间是自动给定y,x =step(num,den,T) 求系统在T时间向量下的单位阶跃响应输出,y是列 向量,并返回状态x的变化。 Impulse,lism 用法类似step bode(num,den,w) 直接绘出bode图。 m,p= bode(num,den,w) 求出幅值和相角,可再用半对
19、数坐标画图 Nyquist(num,den,wmin,wmax) 直接绘Nyquist曲线,wmin,wmax频率范围 real,imag,ww= Nyquist(num,den,wmin,wmax) 得到实部、虚部,可再绘图。 rlocus(num,den) 直接绘出根轨迹 r,k= rlocus(num,den) 返回增益和对应的复极点 r= rlocus(num,den,k) 返回给定增益对应的复极点(4)状态反馈设计 M=ctrb(A,B) 系统的能控矩阵 M=B AB A2B An-1B N=obsv(A,C) 求取系统的能观矩阵 N=C CA CA2 CAn-1 k=acker(A,B,p) (单输入)对于期望极点p,求出系统的状态反馈增益阵k
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1