1、清华大学自动化工程学院试验汇报课程: 控制系统仿真 专业 自动化 班级 122 姓名 学号 指导老师: 时间: 年 10 月 19 日 10 月 28 日目 录试验一 MATLAB环境熟悉和基础运算1试验二 MATLAB语言程序设计6试验三 MATLAB图形绘制9试验四 采取SIMULINK系统仿真 14试验五 控制系统频域和时域分析17试验六 控制系统PID校正器设计法23试验一 MATLAB环境熟悉和基础运算一、试验时间及地点:试验时间:.10.19早晨8:309:30试验地点:计算中心二、试验目标:1 熟悉MATLAB开发环境2 掌握矩阵、变量、表示式多种基础运算三、试验内容:1、 新建
2、一个文件夹(自己名字命名,在机器最终一个盘符)2、 开启MATLAB6.5,将该文件夹添加到MATLAB路径管理器中。3、 保留,关闭对话框4、 学习使用help命令,比如在命令窗口输入help eye,然后依据帮助说明,学习使用指令eye(其它不会用指令,依据此方法类推)5、 学习使用clc、clear,观察command window、command history和workspace等窗口改变结果。6、 初步程序编写练习,新建M-file,保留(自己设定文件名,比如exerc1、exerc2、 exerc3),学习使用MATLAB基础运算符、数组寻访指令、标准数组生成函数和数组操作函数。
3、注意:每一次M-file修改后,全部要存盘。练习A:(1) help rand,然后随机生成一个26数组,观察command window、command history和workspace等窗口改变结果(2) 学习使用clc、clear,了解其功效和作用(3) 输入一个2维数值数组,体会标点符号作用(空格和逗号作用)。(4) 一维数组创建和寻访,创建一个一维数组(18)X,查询X数组第2个元素,查询X数组第3个元素到第6个元素,查询X数组第5个元素到最终一个元素,查询X数组第3、2、1个元素,查询X数组中5元素,将X数组第2个元素重新赋值为111,实例expm1。(5) 二维数组创建和寻访,
4、创建一个二维数组(48)A,查询数组A第2行、第3列元素,查询数组A第2行全部元素,查询数组A第6列全部元素,查询数组A按列拉长形成新数组B(18),查询数组A按行拉长形成新数组C(18),以全元素赋值方法对数组A赋值。(6) 两种运算指令形式和实质内涵比较。设有3个二维数组A24,B24,C22,写出全部由2个数组参与正当数组运算和矩阵指令(7) 学习使用表8列常见函数(经过help方法)(8) 学习使用表9数组操作函数(9) 学习字符串创建,a=This is an example. 串数组大小size(a) 串数组元素标识a14=a(1:4)ra=a(end:-1:1) 对字符串ASCL
5、L码数组操作w=find(a=a&ahelp rand %用help指令学习rand使用方法rand - Uniformly distributed pseudorandom numbers This MATLAB function returns a pseudorandom scalar drawn from the standard uniform distribution on the open interval (0,1). r = rand r = rand(n) r = rand(sz1,.,szN) r = rand(sz) r = rand(classname) r = ra
6、nd(n,classname) r = rand(sz1,.,szN,classname) r = rand(sz,classname) r = rand(like,p) r = rand(n,like,p) r = rand(sz1,.,szN,like,p) r = rand(sz,like,p) rand(2,6) %随机生成一个26数组ans = 0.8147 0.1270 0.6324 0.2785 0.9575 0.15760.9058 0.9134 0.0975 0.5469 0.9649 0.9706 clear %清除命令窗口 1 2;3 4 %输入一个二维数组ans = 1
7、 2 3 4 1,2;3,4 %将空格改为逗号效果一致ans = 1 2 3 4 a=1 2 3 4;5 6 7 8; b=a(2:2,3:4) %逗号前面是行,后面是列,冒号前后数表示所选范围b = 7 8 eye(3) %产生单位矩阵ans = 1 0 0 0 1 0 0 0 1 magic(3) %产生魔方矩阵ans = 8 1 6 3 5 7 4 9 2 flipud(ans) %以数组“水平中线”为对称轴,交换上下对称位置上元素ans = 4 9 2 3 5 7 8 1 6 rot90(ans) %逆时针旋转数组90ans = 2 7 6 9 5 1 4 3 8 a=helloa =
8、hello b=size(a) %字符串a大小为1x5b = 1 5 syms x y p k a b c %创建符号对象 e1=x2*a*c*y+a*p*x2+b*p*x+c*k*y+k*p %创建函数命令 e1 =k*p + a*p*x2 + c*k*y + b*p*x + a*c*x2*y e2=c*y+p e2 =p + c*y e1/e2 ans =(k*p + a*p*x2 + c*k*y + b*p*x + a*c*x2*y)/(p + c*y) a=1 2a = 1 2 c=reshape(a,2,1) %改变数组a行数和列数c = 1 2五、试验结果及讨论 1.熟悉了MATL
9、AB基础软件操作。 2.经过此次试验熟悉了 MATLAB 开发环境掌握了矩阵、变量、表示式多种运算了解了*和.*、/和、和.等区分和绝对值、开方 e阶乘、正弦、正切运算符号。 3.让我明白了MATLAB实用性。试验二 MATLAB语言程序设计一、试验时间及地点:试验时间:.10.19早晨8:309:30试验地点:黄岛老校区计算中心二、试验目标:1、 熟悉MATLAB程序编辑和设计环境2、 掌握多种编程语句语法规则及程序设计方法3、 函数文件编写和设计4、 了解和熟悉跨空间变量传输和赋值三、试验内容:练习A1、 熟悉MATLAB程序编辑和设计环境 2、 用for循环语句实现求1100和3、 用f
10、or循环语句实现编写一个求阶乘函数文件练习B思索题4、 已知一维数组、,用for循环语句实现。求和函数可用5、 (1)编写求解一维数组平均值函数文件。(2)编写求解二维数组平均值函数文件。四、试验操作过程(试验说明)1 用for循环语句实现求1100和,函数名为theSec().程序: a=0;for i=1:100 a=i+a; endfprintf(%dn,a)实施结果: theSec %求1100和50502 用for循环语句实现编写一个求阶乘函数文件,函数名为jiex(x). 程序: function jiex(x)a=1;for i=1:x a=a*i;endfprintf(%dn,
11、a)实施结果: jiex(4) % 求4阶乘243. 已知一维数组、,用for循环语句实现。求和,函数名用ABsum()程序: function y=ABsum()a=2,4,5,8,10;b=4,9,6,7,4;n=5;sum=0;for i=1:n sum=sum+a(1,i)*b(1,n-i+1);endy=sum; 实施结果: ABsum()ans =1784. 编写求解任意数组平均值函数文件,函数名为avg(f).程序: function y=avg(f)m,n=size(f);sum=0;for i=1:m for j=1:n sum=sum+f(i,j); endendy=sum
12、/(m*n);实施结果: a=1,2,3,4;5,6,7,8 %定义一个数组a = 1 2 3 4 5 6 7 8 avg(2*a) %求数组2*a平均值ans = 9五、试验结果及讨论1. 编程语句:循环语句有for循环和while循环,我习惯使用for循环,使用格式以下:for 循环变量=表示式1(初值):表示式2(增量):表示式3(终值)循环语句组end条件判定语句if语句格式为:if表示式实施语句end 试验三 MATLAB图形绘制一、试验时间及地点:试验时间:.10.21早晨8:309:30试验地点:黄岛老校区计算中心二、试验目标:1、学习MATLAB图形绘制基础方法;2、熟悉和了解
13、MATLAB图形绘制程序编辑基础指令;3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形多种标注;4、掌握plot、subplot指令格式和语法。三、试验内容:练习A【1】 二维曲线绘图基础指令演示。t=(0:pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y) plot指令基础操作演示【2】用图形表示连续调制波形 及其包络线。t=(0:pi/100:pi);y1=sin(t)*1,-1;y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,
14、t3,y3,bo)axis(0,pi,-1,1) 【3】经过绘制二阶系统阶跃响应,综合演示图形标识。本例比较综合,包含指令较广。请耐心读、实际做、再看例后说明,定会有匪浅收益。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 ontitle(it y = 1 - e
15、-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 offcell_string1=fontsize12uparrow;cell_string2=fontsize16 fontname隶书镇静时间;cell_string3=fontsize6 ;cell_string4=fontsize14rmt_s = num2str(ts);text(ts,0.85,cell_string)xlabel
16、(fontsize14 bft rightarrow)ylabel(fontsize14 bfy rightarrow) 二阶阶跃响应图标识四、试验操作过程(试验说明)1. 二维曲线绘图基础指令演示: t=(0:pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)实施结果:(图3-1) 图3-12. 用图形表示连续调制波形 及其包络线: t=(0:pi/100:pi);y1=sin(t)*1,-1;y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3
17、,bo)axis(0,pi,-1,1)实施结果:(图3-2) 图3-23. 经过绘制二阶系统阶跃响应,综合演示图形标识: 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 ontitle(it y = 1 - e -alphatcosomegat)text(13.5,
18、1.2,fontsize12alpha=0.3)text(13.5,1.1,fontsize12omega=0.7)hold on;plot(ts,0.95,bo,MarkerSize,10);hold offcell_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)
19、ylabel(fontsize14 bfy rightarrow)实施结果:(图3-3) 图3-3五、试验结果及讨论 1,经过这次试验,我学会了MATLAB 图形绘制基础方法,掌握 了 MATLAB 图形绘制程序编辑基础指令,而且还知道了利用 MATLAB 图形编辑窗口编辑和修改图形界面,并添加图形多种标 注。 2,感觉到了MATLAB 强大,而且很实用。 试验四 采取SIMULINK系统仿真一、试验时间及地点:试验时间:.10.21早晨8:309:30 试验地点:黄岛老校区计算中心二、试验目标:1、熟悉SIMULINK 工作环境及特点2、掌握线性系统仿真常见基础模块使用方法3、掌握SIMUL
20、INK 建模和仿真方法4、子系统创建和封装设计1、 试验内容:练习A1、SIMULINK仿真实际应用,建立双环调速电流环系统方框图模型,模型参数设为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调整器替换图中百分比积分调整器,调整,用使系统满足超调量15%,上升时间0
21、.3s,调整时间0.4s要求。(4)要求对加入PID控制器封装成一个模块使用封装步骤1 创建子系统封装步骤2 封装子系统封装步骤3 设置参数封装步骤4 修改和设计模块图标四、试验操作过程(试验说明)1. 画出双环调速电流环系统方框图模型,并在Simulink集成环境下建立模型:(图4-1) 图4-12. 绘制对应响应曲线:(图4-2) 图4-2五、试验结果及讨论1、SIMULINK基础操作:1) 开启SIMULINK软件包:能够在MATLAB命令窗口键入“SIMULINK”命令,回车后将弹出SIMULINK图形库浏览器(SIMULINK LIBRARY BREWSER)界面,也能够选择“SIM
22、ULINKLIBRARY BREWSER”一样能够打开该界面;2) SIMULINK用户接口:SIMULINK仿真模型编译器界面有菜单栏、工具栏、状态栏等,经过这些接口能够调整仿真运行时间,仿真模式等,能够查看仿真运行进度等信息。3) 构建SIMULINK框图:用鼠标将模块库中所需模块拖至系统模型中,然后添加连线将各个模块连接起来,模型中能够包含WORKSPACE中已定义变量;4) 运行:点击仿真模型编译器界面中运行按钮,系统会在输入信号作用下输出,经过SCOPE模块能够查看输出响应曲线,经过TO WORKSPACE模块能够将输出立即间信号送至工作区。试验五 控制系统频域和时域分析一、试验时间
23、及地点:试验时间:.10.28早晨8:30-9:30 试验地点:黄岛老校区计算中心二、试验目标:1、掌握控制系统数学模型基础描述方法和相互转化2、了解控制系统稳定性分析方法3、掌握控制系统频域和时域分析基础方法三、试验内容:练习A:1、表示下列传输函数模型,并转化成其它数学模型(1)(2)(3)(4)2、 一个单位负反馈开环传输函数为试绘出系统闭环根轨迹图;并在跟轨迹图上任选一点,试计算该点增益及其全部极点位置四、试验操作过程(试验说明) num=4,-2num = 4 -2 den=1 0 2 5den = 1 0 2 5 Gs=tf(num,den)Gs = 4 s - 2 - s3 +
24、2 s + 5 Continuous-time transfer function. num=0.5; den=1 2.5 1; Gs=tf(num,den)Gs = 0.5 - s2 + 2.5 s + 1 Continuous-time transfer function. k=1; num=k; den=2 4.5 1 0; Gs=tf(num,den)Gs = 1 - 2 s3 + 4.5 s2 + s Continuous-time transfer function. Ms=Gs/(Gs+1)Ms = 2 s3 + 4.5 s2 + s - 4 s6 + 18 s5 + 24.25
25、 s4 + 11 s3 + 5.5 s2 + s Continuous-time transfer function. rlocus(Ms) %绘制系统闭环根轨迹图(图5-1) 图5-1 pzmap(Ms) %绘制零极点图(5-2) 图5-2 p,z=pzmap(Ms)p = 0.0000 + 0.0000i -2.1254 + 0.0000i -2.0000 + 0.0000i -0.0623 + 0.4810i -0.0623 - 0.4810i -0.2500 + 0.0000iz = 0 -2.0000 -0.2500 k,poles=rlocfind(Ms)Select a poin
26、t in the graphics windowselected_point = 0.5795 + 0.4927ik = 4.1162poles = 0.0000 + 0.0000i -2.4675 + 0.0000i -2.0000 + 0.0000i 0.1088 + 1.0124i 0.1088 - 1.0124i -0.2500 + 0.0000i五、试验结果及讨论1. MATLAB经过函数tf(num,den)建立传输函数模型,经过zpk(z,p,k)建立零极点增益模型,经过ss(A,B,C,D)建立连续系统状态空间模型;2. MATLAB经过ss2tf(), ss2zp(), tf
27、2ss(), tf2zp(), zp2ss(), zp2tf() 等函数将传输函数模型、零极点增益模型、状态空间模型等模型相互转换;3. 经过函数rlocus(sys) 可绘制系统sys根轨迹图,经过pzmap(sys)可绘制系统sys零极点图,经过k,poles=rlocfind(Ms)在根轨迹图上任选一点可计算出该点增益k及全部极点位置。试验六 控制系统PID校正器设计法一、试验时间及地点:试验时间:.10.28早晨8:30-9:30试验地点:黄岛老校区计算中心 二、试验目标:1、 熟悉常规PID控制器设计方法2、 掌握PID参数调整规律3、 学习编写程序求系统动态性能指标三、试验内容:1
28、、在SIMULINK窗口建立以下模型2、设计PID控制器 ,传输函数模型以下3、修改PID参数、和,讨论参数对系统影响4、 利用稳定边界法对PID参数、和校正设计5、 依据PID参数、和对系统影响,调整PID参数实现系统超调量小于10%四、试验操作过程(试验说明)1. 在SIMULINK窗口建立以下模型:(图6-1) 图6-12. 设计PID控制器:(图6-2) 图6-23. 利用稳定边界法对PID参数、和校正设计:参数数值23.2080.028613.6930.01430.00358校正后响应曲线:(图6-3) 图6-34. 调整PID参数实现系统超调量小于10%:参数数值23.3050.0350.00875图6-4,超调量为9.4% : 图6-4五、试验结果及讨论1. 学会了经过SIMULINK建立动态系统模型并进行仿真,能熟练地利用SIMULINK库,设置模型参数,建立并利用SIMULINK用户接口; 2. 学会了在SIMULINK中依据传输函数模型设计PID控制器,并将其封装成子系统,编辑封装模块显示文本,设置系统参数,和添加子系统帮助文档; 3. 学会了利用稳定边界法对PID参数校正,找到临界稳定增益和临界稳定角频率,设定基于稳定性分析PID参数; 4. 经过不一样PID参数对系统响应曲线影响规律修改PID参数,使系统超调量小于10%。