中南大学控制系统仿真matlab实验报告自主知识产权优秀版
中南大学Matlab实验报告(优选.)
最新文件---------------- 仅供参考--------------------已改成-----------word文本 --------------------- 方便更改赠人玫瑰,手留余香。
Matlab实验报告姓名:班级:班学号:目录实验一熟悉MATLAB环境 (3)实验二数值数组创建、应用及可视化 ................................ 错误!未定义书签。
实验三字符串数组的使用、简单脚本文件和函数的编写错误!未定义书签。
实验四数据可视化方法 .. (22)Matlab实验报告实验室名称:综合实验楼4楼实验日期:2014年12月[实验目的]1 .熟悉 MATLAB 主界面,并学会简单的菜单操作。
2 .学会简单的矩阵输入与信号输入。
3 .掌握部分绘图函数。
[实验原理]MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。
它提供了各种矩阵的运算与操作,并有较强的绘图功能。
用户第一次使用 MATLAB 时,建议首先在屏幕上键入 demo 命令,它将启动 MATLAB 的演试程序,用户可在此演示程序中领略MATLAB 所提供的强大的运算与绘图功能。
也可以键入 help 进行进一步了解。
MATLAB 启动界面如图所示:操作界面主要的介绍如下:指令窗(Command Window ),在该窗可键入各种送给MATLAB 运作的指令、函数、表达式,并显示除图形外的所以运算结果。
历史指令窗( Command History ),该窗记录已经运行过的指令、函数、表达式;允许自己的编写文件。
MATLAB 工作时,基本搜索过程为:首先在工作空间,即MATLAB 内存中进行检查,看输入的指令是不是变量;如不是,则检查输入指令是不是内建函数(比如sin 函数等);如不是,则在当前目录上,检查是否有与输入指令相同的M 文件存在;如还没有,则在 MATLAB 定义的搜索路径其他目录中,检查是否有该 M 文件存在。
MATLABSimulink与控制系统仿真实验报告
MATLABSimulink与控制系统仿真实验报告MATLAB/Simulink与控制系统仿真实验报告姓名:喻彬彬学号:K031541725实验1、MATLAB/Simulink仿真基础及控制系统模型的建立一、实验目的1、掌握MATLAB/Simulink仿真的基本知识;2、熟练应用MATLAB软件建立控制系统模型。
二、实验设备电脑一台;MATLAB仿真软件一个三、实验内容1、熟悉MATLAB/Smulink仿真软件。
2、一个单位负反馈二阶系统,其开环传递函数为G(s)10。
用Simulink建立该s23s控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
3、某控制系统的传递函数为Y(s)G(s)s50。
用Simulink建其中G(s)2X(s)1G(s)2s3s立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
4、一闭环系统结构如图所示,其中系统前向通道的传递函数为20,而且前向通道有一个[-,]的限幅环节,图中用N 表G(s)s12s20s示,反馈通道的增益为,系统为负反馈,阶跃输入经倍的增益作用到系统。
用Simulink建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。
五、实验思考题总结仿真模型构建及调试过程中的心得体会。
1题1、利用Simulink的Library窗口中的【File】→【New】,打开一个新的模型窗口。
分别从信号源库、输出方式库、数学运算库、连续系统库中,用鼠标把阶跃信号发生器、示波器、传递函数和相加器4个标准功能模块选中,并将其拖至模型窗口。
实验报告基于Matlab的控制系统仿真1
实验一 基于Matlab 的控制系统模型姓名 学号 班级机械一、实验目的1) 熟悉Matlab 的使用环境,学习Matlab 软件的使用方法和简单编程方法。
2) 学习使用Matlab 软件进行拉氏变换和拉式反变换的方法。
3) 学习使用Matlab 软件建立、转换连续系统数学模型的方法。
4) 学习使用Matlab 软件分析控制系统稳定性的方法。
二、实验原理1. 拉氏变换和反拉氏变换(1) 拉氏变换syms a w tf1=exp(-a*t)laplace(f1)f2=2laplace(f2)f3=t*exp(-a*t)laplace(f3)f4=sin(w*t)laplace(f4)f5=exp(-a*t)*cos(w*t)laplace t-t (f5)(2) 拉氏反变换syms s a wf 1=1/silaplace(f 1)f 2=1/(s+a)ilaplace(f 2)f 3=1/s^2ilaplace(f 3)f 4=w/(s^2+w^2)ilaplace(f 4)f 5=1/(s*(s+2)^2*(s+3))ilaplace(f 5)…2. 控制系统模型的建立和转化传递函数模型:112m 112+()+m m n n nb s b s b num G s den a s a s b --++==++…… 零极点增益模型:1212()()()()()()()m n s z s z s z G s k s p s p s p ---=--- (1) 建立系统传递函数模型22(1)()(2)(3)56s s s s G s s s s s ++==++++ num=[1,1,0]den=[1,5,6]Gs1=tf(num,den)(2) 建立系统的零极点模型z=[0,-1]p=[-2,-3]k=[1]Gs1=zpk(z,p,k)(3) 传递函数模型转化为零极点模型num=[1,1,0]den=[1,5,6]Gs1=tf(num,den)[z,p,k]=tf2zp(num,den)Gs2=zpk(z,p,k)(4) 零极点模型转化为传递函数模型z=[0,-1]p=[-2,-3]k=[1]Gs1=zpk(z,p,k)[num,den]=zp2tf(z',p',k)Gs2=tf(num,den)3. 用Matlab 进行传递函数部分分式展开5434321139+52s+26()1035+50s+241 2.530.5 1s+4s+3s+2s+1num s s s G s den s s s ++==++-=++++num=[1 11 39 52 26]den=[1 10 35 50 24][r,p,k]=residue(num,den)4. 连续系统稳定性分析已知传递函数,试求该系统的闭环极点并判断系统的稳定性。
MATLAB与控制系统仿真实验报告
MATLAB与控制系统仿真实验报告第一篇:MATLAB与控制系统仿真实验报告《MATLAB与控制系统仿真》实验报告2013-2014学年第 1 学期专业:班级:学号:姓名:实验三 MATLAB图形系统一、实验目的:1.掌握绘制二维图形的常用函数。
2.掌握绘制三维图形的常用函数。
3.熟悉利用图形对象进行绘图操作的方法。
4.掌握绘制图形的辅助操作。
二、实验原理:1,二维数据曲线图(1)绘制单根二维曲线plot(x,y);(2)绘制多根二维曲线plot(x,y)当x是向量,y是有一维与x同维的矩阵时,则绘制多根不同颜色的曲线。
当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
(3)含有多个输入参数的plot函数plot(x1,y1,x2,y2,…,xn,yn)(4)具有两个纵坐标标度的图形plotyy(x1,y1,x2,y2)2,图形标注与坐标控制1)title(图形名称);2)xlabel(x轴说明)3)ylabel(y轴说明)4)text(x,y图形说明)5)legend(图例1,图例2,…)6)axis([xmin xmax ymin ymax zmin zmax])3, 图形窗口的分割 subplot(m,n,p)4,三维曲线plot3(x1,y1,z1,选项1,x2,y2,选项2,…,xn,yn,zn,选项n)5,三维曲面mesh(x,y,z,c)与surf(x,y,z,c)。
一般情况下,x,y,z是维数相同的矩阵。
X,y是网格坐标矩阵,z是网格点上的高度矩阵,c用于指定在不同高度下的颜色范围。
6,图像处理1)imread和imwrite函数这两个函数分别用于将图象文件读入matlab工作空间,以及将图象数据和色图数据一起写入一定格式的图象文件。
2)image和imagesc函数这两个函数用于图象显示。
为了保证图象的显示效果,一般还应使用colormap函数设置图象色图。
中南大学系统仿真实验报告
实验一MATLAB 中矩阵与多项式的基本运算实验任务1. 了解MATLAB命令窗口和程序文件的调用。
2 •熟悉如下MATLAB的基本运算:①矩阵的产生、数据的输入、相关元素的显示;②矩阵的加法、乘法、左除、右除;③特殊矩阵:单位矩阵、“ 1 ”矩阵、“0”矩阵、对角阵、随机矩阵的产生和运算;④多项式的运算:多项式求根、多项式之间的乘除。
基本命令训练1、>> eye(2)ans =1 00 1>> eye(4)ans =1 0 0 00 1 0 00 0 1 00 0 0 12、>> ones(2)1 1ans =1 1>> ones(4)ans =1 1 1 11 1 1 11 1 1 11 1 1 1 >> ones(2,2)ans =1 11 1>> ones(2,3)ans =1 1 11 1 1>> ones(4,3)ans =1 1 11 1 11 1 11 1 1 3、>> zeros(2)ans =0 00 0>> zeros(4)ans =0 0 0 00 0 0 00 0 0 00 0 0 0>> zeros(2,2)ans =0 00 0>> zeros(2,3)ans =0 0 00 0 0>> zeros(3,2)ans =0 00 0004、随机阵>> rand(2,3) ans =0.2785 0.9575 0.15760.5469 0.9649 0.9706 >> rand(2,3)ans =0.9572 0.8003 0.42180.4854 0.1419 0.9157 5、>> diag(5)ans =5>> diag(5,5) ans =0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0>> diag(2,3)ans =0 0 0 20 0 0 00 0 0 00 0 0 0 6、(inv (A)为求A的逆矩阵) >> B=[5 3 1;2 3 8;1 1 1],inv(B)5 3 12 3 81 1 1ans =0.6250 0.2500 -2.6250-0.7500 -0.5000 4.75000.1250 0.2500 -1.1250>> A=[2 3;4 4],B=[5 3;3 8],inv(A),inv(B);A\B,A/B,inv(A)*B,B*inv(A) A =2 34 4B =5 33 8ans =-1.0000 0.75001.0000 -0.5000ans =-2.7500 3.00003.5000 -1.0000ans =0.2258 0.29030.6452 0.2581ans =-2.7500 3.00003.5000 -1.0000 ans =-2.0000 2.25005.0000 -1.75007、>> p =[1,-6,-72,-27], roots(p)p =1 -6 -72 -27ans =12.1229-5.7345-0.3884>> p=[2,3,6],roots(p)p =2 3 6ans =-0.7500 + 1.5612i-0.7500 - 1.5612i8、( A 为n*n 的方阵)>> A=[0 1 0;-4 4 0;-2 1 2],poly(A),B=sym(A),poly(B) A =0 1 0-4 4 0-2 1 2 ans =1 -6 12 -8B =[ 0, 1,0][ -4, 4, 0][ -2, 1, 2]ans =x A3-6*x A2+12*x-89, 、( conv 是多项式相乘,deconv 是多项式相除) >> u=[1 2 4 6 ],v=[5 0 0 -6 7],conv(u,v)u =1 2 4 6v =5 0 0 -67ans =5 10 20 24 -5 -10 -8 42 >> v=[1 2 46 ],u=[5 0 0 -6 7],deconv(u,v) v =1 2 4 6u =5 0 0 -67 ans =5 -1010、(点乘是数组的运算,没有点的乘是矩阵运算)>> a = [2 5;3 4], b =[3 1;4 7],a.*b,a*ba =2 53 4b =3 14 7ans =6 512 28ans =26 3725 31>> a = [2 3]; b = [4 7];a.*b = [8 21];a*b %错误a*b' = 29;11、(who 可以看到你用过的一些变量,来了)>> whowhos 是把该变量及所存储的大小等信息都显示出Your variables are:A B a ans b p u>> whosName Size BytesClass Attributes2x2 32 doubleB 2x2 32 doublea 1x2 16 d oubleans 1x2 16 d oubleb 1x2 16 d oublep1x3 24 d oubleu 1x5 40 d oublev 1x4 32 d ouble12、>> A=[2 5 3;6 5 4],disp(A),size(A),length(A)A =2 5 36 5 42 5 36 5 4ans =2 3ans =3实验二MATLAB 绘图命令实验任务熟悉MATLAB基本绘图命令,掌握如下绘图方法:1.坐标系的选择、图形的绘制;2 •图形注解(题目、标号、说明、分格线)的加入;3 •图形线型、符号、颜色的选取基本命令训练1、>>t=[0:pi/360:2*pi];x=cos(t)+ cos(t*4);y=si n( t)+ sin (t*4);xlabel('x 轴');ylabel('y 轴');plot(y,x),grid;2、>>t=0:0.1:100; x=3*t;y=4*t;z=si n( 2*t);■15 i 0 5 0 05 1 1 5 2 plot3(x,y,z, 'g:')3、>>x = linspace(-2*pi,2*pi,40);y=si n( x);stairs(x,y)4、>>t=[0:pi/360:2*pi]; x=cos(t)+cos(t*4) + sin (t*4);y=si n( t)+ si n( t*4);plot(y,x, 'r:');xlabel('x 轴');ylabel('y 轴');6、>>th=[0:pi/20:2*pi];x=exp(j*th);plot(real(x),imag(x),'r-.');grid; text(0,0,'中心');5、>>th=[0:pi/1000:2*pi]';r=cos(2*th);polar(th,r);title( '四叶草图')四叶草图107、>>x=-2:0.01:2; 8、y=-2:0.01:2; 9、[X,Y] = meshgrid(x,y); Z = Y.*exp(-X.A 2-Y.A 2); [C,h] = con tour(X, YZ); set(h,'ShowText','o n','TextStep',get(h,'LevelStep')*2)_1O S•I,52■n.s o o.s8、>>x = 0:0.2:10; y = 2*x+3; subplot(411);plot(x,y); grid;title('y 的原函数');subplot(412) ;semilogy(x,y); grid;title('对 y 取对数'); 丫的原画数40 ----------- 1 ------------------------------------------- 1 --------------------- 1 ----------------------1 ------------------------------------------- 1 --------------------- 1---------------------1 --------l|Ip|il■|i|I九 ____ 1-___ — ___ I ____ L ___ :……: ___ J _ _______ L ___ ui|I|lI, il _ -■」 " jI■I__ h- ____________ II■Q 」【I1FIIIIIIIIIT 101 □123456r69 10, 对y 取对数对弋观对数subplot(413) ;semilogx(x,y);10 10 id101lZ10w10104020 0 对好对数grid;title('对x 取对数');subplot(414) ;loglog(x,y);grid;title('对xy均取对数');9、>>x = -3:0.3:3;bar(x,exp(-x.*x),'g')实验三MATLAB程序设计实验任务1 •熟悉MATLAB 程序设计的方法和思路;2 •掌握循环、分支语句的编写,学会使用look for、help命令程序举例1、>>f=[1,1];i=1;while f(i)+f(i+1)<1000f(i+2)=f(i)+f(i+1);i=i+1;endf,if =Columns 1 through 141 123 5 8 13 21 34 55 89 144 233 377 Columns 15 through 16610 987i =152、>>m=3;n=4;for i=1:mfor j=1:na(i,j)=1/(i+j-1);endendformat rat1 1/2 1/3 1/2 1/3 1/4 1/31/41/5 (分数格式形式。
MATLAB实验报告3-控制系统仿真
MATLAB 实验报告3 控制系统仿真1、一个传递函数模型: )6()13()5(6)(22++++=s s s s s G 将该传递函数模型输入到MATLAB 工作空间。
num=6*[1,5];den=conv(conv([1,3,1],[1,3,1]),[1,6]);tf(num,den)2、 若反馈系统为更复杂的结构如图所示。
其中2450351024247)(234231+++++++=s s s s s s s s G ,s s s G 510)(2+=,101.01)(+=s s H 则闭环系统的传递函数可以由下面的MATLAB 命令得出:>> G1=tf([1,7,24,24],[1,10,35,50,24]);G2=tf([10,5],[1,0]);H=tf([1],[0.01,1]);G_a=feedback(G1*G2,H)得到结果:Transfer function:0.1 s^5 + 10.75 s^4 + 77.75 s^3 + 278.6 s^2 + 361.2 s + 120 -------------------------------------------------------------------- 0.01 s^6 + 1.1 s^5 + 20.35 s^4 + 110.5 s^3 + 325.2 s^2 + 384 s + 1203、设传递函数为:61166352)(2323++++++=s s s s s s s G 试求该传递函数的部分分式展开num=[2,5,3,6];den=[1,6,11,6];[r,p,k]=residue(num,den)图 复杂反馈系统4、给定单位负反馈系统的开环传递函数为:)7()1(10)(++=s s s s G 试画出伯德图。
利用以下MATLAB 程序,可以直接在屏幕上绘出伯德图如图20。
>> num=10*[1,1];den=[1,7,0];bode(num,den)5、已知三阶系统开环传递函数为:)232(27)(23+++=s s s s G画出系统的奈氏图,求出相应的幅值裕量和相位裕量,并求出闭环单位阶跃响应曲线。
matlab自控仿真实验报告
目录实验一 MATLAB及仿真实验(控制系统的时域分析) (1)实验二 MATLAB及仿真实验(控制系统的根轨迹分析) (4)实验三 MATLAB及仿真实验(控制系统的频域分析) (7)实验一 MATLAB 及仿真实验(控制系统的时域分析)学习利用MATLAB 进行以下实验,要求熟练掌握实验内容中所用到的指令,并按内容要求完成实验。
一、实验目的学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点1、 系统的典型响应有哪些?2、 如何判断系统稳定性?3、 系统的动态性能指标有哪些? 三、实验方法(一) 四种典型响应1、 阶跃响应:阶跃响应常用格式:1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。
2、),(Tn sys step ;表示时间范围0---Tn 。
3、),(T sys step ;表示时间范围向量T 指定。
4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。
2、 脉冲响应:脉冲函数在数学上的精确定义:0,0)(1)(0〉==⎰∞t x f dx x f其拉氏变换为:)()()()(1)(s G s f s G s Y s f ===所以脉冲响应即为传函的反拉氏变换。
脉冲响应函数常用格式: ① )(sys impulse ; ②);,();,(T sys impulse Tn sys impulse③ ),(T sys impulse Y =(二) 分析系统稳定性 有以下三种方法:1、 利用pzmap 绘制连续系统的零极点图;2、 利用tf2zp 求出系统零极点;3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.四、实验内容 (一) 稳定性1. 系统传函为()27243645232345234+++++++++=s s s s s s s s s s G ,试判断其稳定性den=[1 3 4 2 7 2]; p=roots(den) 输出结果是:p =-1.7680 + 1.2673i -1.7680 - 1.2673i 0.4176 + 1.1130i 0.4176 - 1.1130i -0.2991有实部为正根,所以系统不稳定。
《MATLAB与控制系统仿真》实验报告
《MATLAB与控制系统仿真》实验报告一、实验目的本实验旨在通过MATLAB软件进行控制系统的仿真,并通过仿真结果分析控制系统的性能。
二、实验器材1.计算机2.MATLAB软件三、实验内容1.搭建控制系统模型在MATLAB软件中,通过使用控制系统工具箱,我们可以搭建不同类型的控制系统模型。
本实验中我们选择了一个简单的比例控制系统模型。
2.设定输入信号我们需要为控制系统提供输入信号进行仿真。
在MATLAB中,我们可以使用信号工具箱来产生不同类型的信号。
本实验中,我们选择了一个阶跃信号作为输入信号。
3.运行仿真通过设置模型参数、输入信号以及仿真时间等相关参数后,我们可以运行仿真。
MATLAB会根据系统模型和输入信号产生输出信号,并显示在仿真界面上。
4.分析控制系统性能根据仿真结果,我们可以对控制系统的性能进行分析。
常见的性能指标包括系统的稳态误差、超调量、响应时间等。
四、实验步骤1. 打开MATLAB软件,并在命令窗口中输入“controlSystemDesigner”命令,打开控制系统工具箱。
2.在控制系统工具箱中选择比例控制器模型,并设置相应的增益参数。
3.在信号工具箱中选择阶跃信号,并设置相应的幅值和起始时间。
4.在仿真界面中设置仿真时间,并点击运行按钮,开始仿真。
5.根据仿真结果,分析控制系统的性能指标,并记录下相应的数值,并根据数值进行分析和讨论。
五、实验结果与分析根据运行仿真获得的结果,我们可以得到控制系统的输出信号曲线。
通过观察输出信号的稳态值、超调量、响应时间等性能指标,我们可以对控制系统的性能进行分析和评价。
六、实验总结通过本次实验,我们学习了如何使用MATLAB软件进行控制系统仿真,并提取控制系统的性能指标。
通过实验,我们可以更加直观地理解控制系统的工作原理,为控制系统设计和分析提供了重要的工具和思路。
七、实验心得通过本次实验,我深刻理解了控制系统仿真的重要性和必要性。
MATLAB软件提供了强大的仿真工具和功能,能够帮助我们更好地理解和分析控制系统的性能。
基于MATLAB控制系统仿真实验报告
tf 4
y0
0 1
6、求出 G1(s)
2 (s2 2s 1) 与 G2 (s)
1 (2s3
3s2
1)
的单位阶跃响应,并分别
求出状态空间模型。
解:(1) G1(s) 2 (s2 2s 1) 的状态空间模型求解如下:
function shiyan2 b1=[2];
D(z)
0.62(1 0.136z 1)(1 0.183z (1 0.045z 1)(1 0.53z 1)
1 )
分别用仿真算法得到系统在单位阶跃输入作用下的响应,系统在单位速度输
入是的输出响应。
解:(1)首先将 W1(s)转换为 W1(z),采样周期 T=0.2s,程序清单如下: function shiyan42 num=[10];den=[0.005 0.15 1 0]; ts=0.2;[nc,dc]=c2dm(num,den,ts)
INTRO(注意:intro 为一个用 MATLAB 语言编写的幻灯片程序,主要演示
常用的 MATLAB 语句运行结果。)
然后,根据现实出来的幻灯片右面按钮进行操作,可按 START——NEXT—
—NEXT 按钮一步步运行,观察。
3、自编程序并完成上机编辑,调试,运行,存盘:
(1)用 MATLAB 命令完成矩阵的各种运算,例如:
5、利用 ode23 或 ode45 求解线性时不变系统微分方程 y(t) Ay(t) ,并绘制出 y(t)
曲线,式中
A
0.5
1
1 0.5
t t0 t 如下: function xdot=fun21(t,x) A=[-0.5 1;-1 -0.5]; xdot=A*x; function fzsy22 t0=0;tf=4;tol=1e-6; x0=[0;1];trace=1; [t,x]=ode23('fun21',t0,tf,x0,tol,trace); plot(t,x) 得到的实验结果如下图所示:
Matlab实验报告
Matlab实验报告院系名称:信息科学与工程学院专业班级:通信工程1303指导老师:陈科文,支国明,张金焕,周扬学生姓名:学号:目录实验一熟悉MATLAB环境 (3)实验二数值数组创建、应用及可视化 (7)实验三字符串数组的使用、简单脚本文件和函数的编写 (12)实验四数据可视化方法 (22)实验一一、实验目的1 .熟悉MATLAB 主界面,并学会简单的菜单操作;2 .学会简单的矩阵输入与信号输入;3 .掌握部分绘图函数。
二、实验内容及要求1.用户工作目录和当前目录的建立和设置;2.熟悉简单的矩阵输入;3.常用基本命令的使用;4.基本序列运算;三、实验步骤及结果测试1.用户工作目录和当前目录的建立和设置2.熟悉简单的矩阵输入四、实验体会及心得这是我第一次做Matlab实验,一打开页面就有很多地方都不明白,因为页面大部分是英文,由于上课时对Matlab操作页面还有一些记忆,感觉还可以:本次试验是我对Matlab这门课有了一定的了解,对矩阵在Matlab中的运用也有了初步的认识。
实验二一、 实验目的1 .掌握二维数组的创建、寻访,区分数组运算与矩阵运算的区别;2 .掌握标准数组生成函数和数组构造技法;3 .进一步熟悉 M 脚本文件编写的方法和技巧。
二、实验内容及要求1.数组的创建和寻访 ;2.编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。
三、实验步骤及结果测试仿照问题 1 中方法找出数组⎥⎦⎤⎢⎣⎡----=5311342024A 中所有绝对值大于 3 的元素。
程序如下图:运行指令 rand(‘state ’,11),A=rand(3,10000);B=(A>0.5);C=2*B -1;首先预测( C*C’)/100 的运行结果,然后再在机器上验证。
(本方法提供了产生通信等仿真中常需若干独立的双随机码的方法原型。
)A :B :C :编写如图所示波形的 MATLAB 脚本文件,图中虚线为正弦波,要求它分别在21 及22处削顶。
自动控制原理MATLAB仿真实验报告
实验一 典型环节的MATLAB 仿真 一、实验目的1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、实验内容① 比例环节1)(1=s G 和2)(1=s G ;Simulink 图形实现:示波器显示结果:② 惯性环节11)(1+=s s G 和15.01)(2+=s s GSimulink 图形实现:示波器显示结果:③ 积分环节s s G 1)(1Simulink 图形实现:示波器显示结果:④ 微分环节s s G )(1Simulink 图形实现:波器显示结果:⑤ 比例+微分环节(PD )2)(1+=s s G 和1)(2+=s s G1)、G1(s )=s+2Simulink 图形实现:示波器显示结果:2)、G2(s)=s+1 Simulink图形实现:示波器显示结果:⑥ 比例+积分环节(PI )s s G 11)(1+=和s s G 211)(2+=1)、G1(1)=1+1/sSimulink 图形实现:示波器显示结果:2)G2(s)=1+1/2s Simulink图形实现:示波器显示结果:三、心得体会通过这次实验我学到了很多,对课本内容加深了理解,熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法,加深对各典型环节响应曲线的理解,这为对课程的学习打下了一定基础。
实验二线性系统时域响应分析一、实验目的1.熟练掌握step( )函数和impulse( )函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的响应。
2.通过响应曲线观测特征参量ζ和nω对二阶系统性能的影响。
3.熟练掌握系统的稳定性的判断方法。
二、实验内容1.观察函数step( )的调用格式,假设系统的传递函数模型为243237()4641s s G s s s s s ++=++++绘制出系统的阶跃响应曲线?2.对典型二阶系统222()2n n n G s s s ωζωω=++1)分别绘出2(/)n rad s ω=,ζ分别取0,0.25,0.5,1.0和2.0时的单位阶跃响应曲线,分析参数ζ对系统的影响,并计算ζ=0.25时的时域性能指标,,,,p r p s ss t t t e σ。
《MATLAB与控制系统。。仿真》实验报告
《MATLAB与控制系统仿真》实验报告班级:学号:姓名:时间:2013 年 6 月目录实验一 MATLAB环境的熟悉与基本运算(一)实验二 MATLAB环境的熟悉与基本运算(二)实验三 MATLAB语言的程序设计实验四 MATLAB的图形绘制实验五基于SIMULINK的系统仿真实验六控制系统的频域与时域分析实验七控制系统PID校正器设计法实验八线性方程组求解及函数求极值实验一 MATLAB环境的熟悉与基本运算(一)一、实验目的1.熟悉MATLAB开发环境2.掌握矩阵、变量、表达式的各种基本运算二、实验基本原理1.熟悉MATLAB环境:MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。
2.掌握MATLAB常用命令表1 MATLAB常用命令3.MATLAB变量与运算符3.1变量命名规则3.2 MATLAB的各种常用运算符表3 MATLAB关系运算符表4 MATLAB逻辑运算符| Or 逻辑或~ Not 逻辑非Xor逻辑异或符号功能说明示例符号功能说明示例:1:1:4;1:2:11 .;分隔行..,分隔列…()% 注释[] 构成向量、矩阵!调用操作系统命令{} 构成单元数组= 用于赋值4.MATLAB的一维、二维数组的寻访表6 子数组访问与赋值常用的相关指令格式三、主要仪器设备及耗材计算机四.实验程序及结果1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。
3、学习使用help命令。
4、窗口命令closeclose allclchold onhold off5、工作空间管理命令whowhosclear6、随机生成一个2×6的矩阵,观察command window、command history和workspace等窗口的变化结果,实现矩阵左旋90°或右旋90°的功能。
控制系统matlab仿真实验报告1
r= 3.1583 -0.0831 + 2.9088i -0.0831 - 2.9088i -2.6044 -0.3876
4.创建两个字符串,并使用函数将两个字符串进行连接
>> a='Hello' a= Hello >> b=' World !' b= World ! >> c=strcat(a,b) c= Hello World ! %连接
>> E=A*B %矩阵相乘 E= 19 43 22 50 %矩阵乘方
>> F=A^2 F= 7 10 15 22
3.矩阵运算,方程组求解和多项式运算
1)求矩阵的逆,特征值和特征向量:创建一个2维矩阵,并求它的 逆,特征值和特征向量 >> A=rand(3,3) A= 0.8462 0.6721 0.6813 0.5252 0.8381 0.3795 0.2026 0.0196 0.8318 >> B=inv(A) %求逆 B= 2.9596 -2.3417 -1.3557 -1.5445 2.4281 0.1573 -0.6846 0.5132 1.5288 >> [X,d]=eig(A) X= %特征向量 -0.7510 -0.8135 -0.3483 -0.6246 0.5268 -0.6320 -0.2142 0.2464 0.6922
d= %对角线为特征值 1.5996 0 0 0 0.2046 0 0 0 0.7119 2)方程组求解:创建一个方程组,并用2种以上的方法求解 >> A=rand(3,3) A= 0.5028 0.7095 0.4289 0.3046 0.1897 0.1934 0.6822 0.3028 0.5417
《MATLAB与控制系统仿真》实验报告
《MATLAB与控制系统仿真》实验报告实验报告:MATLAB与控制系统仿真引言在现代控制工程领域中,仿真是一种重要的评估和调试工具。
通过仿真技术,可以更加准确地分析和预测控制系统的行为和性能,从而优化系统设计和改进控制策略。
MATLAB是一种强大的数值计算软件,广泛应用于控制系统仿真。
实验目的本实验旨在掌握MATLAB在控制系统仿真中的应用,通过实践了解控制系统的建模与仿真方法,并分析系统的稳定性和性能指标。
实验内容1.建立系统模型首先,根据控制系统的实际情况,建立系统的数学模型。
通常,控制系统可以利用线性方程或差分方程进行建模。
本次实验以一个二阶控制系统为例,其传递函数为:G(s) = K / [s^2 + 2ζω_ns + ω_n^2],其中,K表示放大比例,ζ表示阻尼比,ω_n表示自然频率。
2.进行系统仿真利用MATLAB软件,通过编写代码实现控制系统的仿真。
可以利用MATLAB提供的函数来定义传递函数,并通过调整参数来模拟不同的系统行为。
例如,可以利用step函数绘制控制系统的阶跃响应图像,或利用impulse函数绘制脉冲响应图像。
3.分析系统的稳定性与性能在仿真过程中,可以通过调整控制系统的参数来分析系统的稳定性和性能。
例如,可以改变放大比例K来观察系统的超调量和调整时间的变化。
通过观察控制系统的响应曲线,可以判断系统的稳定性,并计算出性能指标,如超调量、调整时间和稳态误差等。
实验结果与分析通过MATLAB的仿真,我们得到了控制系统的阶跃响应图像和脉冲响应图像。
通过观察阶跃响应曲线,我们可以得到控制系统的超调量和调整时间。
通过改变放大比例K的值,我们可以观察到超调量的变化趋势。
同时,通过观察脉冲响应曲线,我们还可以得到控制系统的稳态误差,并判断系统的稳定性。
根据实验结果分析,我们可以得出以下结论:1.控制系统的超调量随着放大比例K的增大而增大,但当K超过一定值后,超调量开始减小。
2.控制系统的调整时间随着放大比例K的增大而减小,即系统的响应速度加快。
中南大学最优控制实验报告
实验一 无限时间状态调节器问题的最优控制MATLAB 仿真1.实验目的:(1) 通过上机操作,加深最优控制理论知识的理解。
(2) 学习并掌握连续线性二次型最优控制的MATLAB 实现。
(3) 通过上机实验,提高动手能力,提高分析和解决问题的能力。
2.实验步骤:(1)实验一中的状态方程如下:(1)⎩⎨⎧==)()(221t x x t u x ⎩⎨⎧==0)0(0)0(21x x (2)[]xy u x x 0011006411000`10=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---= 根据状态方程(1),令输出量y(t)=x 1(t),写出对应的A,B,C,D 矩阵如下:0001A ⎡⎤=⎢⎥⎣⎦10B ⎡⎤=⎢⎥⎣⎦ []10C = 0D = 根据状态方程(2),写出对应的A,B,C,D 矩阵如下:010001146A ⎡⎤⎢⎥=⎢⎥⎢⎥---⎣⎦ 001B ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦ []100C = D=0(2)判定上述两个系统的可控性,分别求的第一个系统的秩判据[]rank B AB =1<2,因此对应的系统不完全可控,所以无法设计对应的状态调节器。
第二个系统对应的秩判据2rank BAB A B ⎡⎤⎣⎦=3,满足条件,因此可设计出对应的状态调节器。
(3)根据从系统中得到的四个状态矩阵,由于是三维矩阵,对应的Q 矩阵也为三维矩阵,取性能指标为:0()T T J x Qx u Ru dt ∞=+⎰,其中矩阵Q 的对角线上的值分别为:Q11、Q22、Q33,令R=1,则接下来就是通过改变Q11、Q22、Q33的值,即三个状态量在整个性能指标所占比重,来找到一组比较合适的数以使控制效果相对最优。
(4)运用Matlab 编写M-file 求出对应不同Q 矩阵权重值的控制向量K ,改变权重,便可得到不同的控制向量K ,比较对应得到的阶跃响应信号及状态量的变化曲线,分析实验结果。
(5)由得到的控制向量K ,可知:u Kx =-。
控制系统计算机仿真(matlab)实验五实验报告
实验五 控制系统计算机辅助设计一、实验目的学习借助MATLAB 软件进行控制系统计算机辅助设计的基本方法,具体包括超前校正器的设计,滞后校正器的设计、滞后-超前校正器的设计方法。
二、实验学时:4 学时 三、实验原理1、PID 控制器的设计PID 控制器的数学模型如公式(5-1)、(5-2)所示,它的三个特征参数是比例系数、积分时间常数(或积分系数)、微分时间常数(或微分系数),因此PID 控制器的设计就是确定PID 控制器的三个参数:比例系数、积分时间常数、微分时间常数。
Ziegler (齐格勒)和Nichols (尼克尔斯)于1942提出了PID 参数的经验整定公式。
其适用对象为带纯延迟的一节惯性环节,即:s e Ts Ks G τ-+=1)( 5-1式中,K 为比例系数、T 为惯性时间常数、τ为纯延迟时间常数。
在实际的工业过程中,大多数被控对象数学模型可近似为式(5-1)所示的带纯延迟的一阶惯性环节。
在获得被控对象的近似数学模型后,可通过时域或频域数据,根据表5-1所示的Ziegler-Nichols 经验整定公式计算PID 参数。
表控制器的参数。
假定某被控对象的单位阶跃响应如图5-4所示。
如果单位阶跃响应曲线看起来近似一条S 形曲线,则可用Ziegler-Nichols 经验整定公式,否则,该公式不适用。
由S 形曲线可获取被控对象数学模型(如公式5-1所示)的比例系数K 、时间常数T 、纯延迟时间τ。
通过表5-1所示的Ziegler-Nichols 经验整定公式进行整定。
如果被控对象不含有纯延迟环节,就不能够通过Ziegler-Nichols 时域整定公式进行PID 参数的整定,此时可求取被控对象的频域响应数据,通过表5-1 所示的Ziegler-Nichols 频域整定公式设计PID 参数。
如果被控对象含有纯延迟环节,可通过pade 命令将纯延迟环节近似为一个四阶传递函数模型,然后求取被控对象的频域响应数据,应用表5-1求取PID 控制器的参数。
控制系统matlab仿真实验报告4
控制系统仿真 实验报告实验4.基于MATLAB 的时域分析班级:09自动化 报告人:张家明 完成时间:2012-11-16 1.已知系统传递函数如下,1)用MA TLAB 建立系统模型并将所建立的系统模型相互转换为tf 、zpk 或ss 形式。
2)通过连接函数的方式实现系统G1和G2的串联和并联1).程序:z=[-2]; %G1(s) p=[-0.4,-15,-25]; k=18; sys1=zpk(z,p,k) [num,den]=zp2tf(z,p,k); sys2=tf(num,den) [A,B,C,D]=zp2ss(z,p,k) sys3=ss(A,B,C,D)运行结果; Zero/pole/gain: 18 (s+2) --------------------- (s+0.4) (s+15) (s+25)Transfer function: 18 s + 36 ---------------------------- s^3 + 40.4 s^2 + 391 s + 150 a =[]36018000101011501394.40)3(==⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=D C B Ax1 x2 x3 x1 -0.4 0 0x2 1.6 -40 -19.36x3 0 19.36 0b =u1x1 1x2 1x3 0c =x1 x2 x3 y1 0 0 0.9295d =u1y1 0程序:num=[1,2]; %G2(S) den=[1,1,10];sys1=tf(num,den)[z,p,k]=tf2zp(num,den)sys2=zpk(z,p,k)[A,B,C,D]=tf2ss(num,den)sys3=ss(A,B,C,D)运行结果:Transfer function:s + 2------------s^2 + s + 10Zero/pole/gain:(s+2)---------------(s^2 + s + 10)a =x1 x2x1 -1 -10x2 1 0b =u1x1 1x2 0c =x1 x2y1 1 2d =u1y1 0程序:A=[-40.4 -139 -150;1 0 0;0 1 0]; B=[1;0;0];C=[0 18 360];D=0;sys1=ss(A,B,C,D)[num,den]=ss2tf(A,B,C,D);sys2=tf(num,den)[z,p,k]=ss2zp(A,B,C,D);sys3=zpk(z,p,k)运行结果:a =x1 x2 x3 x1 -40.4 -139 -150x2 1 0 0x3 0 1 0b =u1x1 1x2 0x3 0c =x1 x2 x3y1 0 18 360d =u1y1 0Continuous-time model.Transfer function:18 s + 360----------------------------s^3 + 40.4 s^2 + 139 s + 150Zero/pole/gain:18 (s+20)---------------------------------(s+36.73) (s^2 + 3.674s + 4.084)2).程序:clcz=[-2]; %G1(s)p=[-0.4,-15,-25];k=18;sys1=zpk(z,p,k);num=[1,2]; %G2(S)den=[1,1,10];sys2=tf(num,den);sys=series(sys1,sys2)tf(sys)sys=parallel(sys1,sys2)tf(sys)运行结果Zero/pole/gain:18 (s+2)^2----------------------------------------------- (s+15) (s+25) (s+0.4) (s^2 + s + 10)Transfer function:18 s^2 + 72 s + 72-----------------------------------------------------------------s^5 + 41.4 s^4 + 441.4 s^3 + 945 s^2 + 4060 s + 1500Zero/pole/gain:(s+50.42) (s+7.055) (s+2) (s+0.9278)-----------------------------------------------(s+0.4) (s+15) (s+25) (s^2 + s + 10)Transfer function:s^4 + 60.4 s^3 + 525.8 s^2 + 1148 s + 660------------------------------------------------------------------s^5 + 41.4 s^4 + 441.4 s^3 + 945 s^2 + 4060 s + 15002. 使用2种以上的方法判断以下系统的稳定性(1).方法一:程序:clcnumo=[1];deno=[1 1 2 23];[numc,denc]=cloop(numo,deno)[z,p,k]=tf2zp(numc,denc)i=find(real(p)>0)n=length(i)if n>0disp('system is unstable')elsedisp('system is stable')end运行结果:numc =0 0 0 1denc =1 12 24z =Empty matrix: 0-by-1p =-3.00001.0000 +2.6458i1.0000 -2.6458ik =1i =23n =2system is unstable(2).方法二:程序:clcnumo=[1];deno=[1 1 2 23];[numc,denc]=cloop(numo,deno,-1) pzmap(numc,denc)运行结果:P ole-Zero MapReal AxisI m a g i n a r y A x i s-3.5-3-2.5-2-1.5-1-0.500.51-3-2-11233. 已知2输入2输出系统状态方程如下, 1) 试求系统的传递函数。
控制系统计算机仿真(matlab)仿真实验一实验报告
实验一MATLAB基本操作与矩阵运算一、实验目的1、熟悉Matlab软件的基本操作方法2、掌握Matlab矩阵和数组的基本运算3、了解Matlab的常用函数的使用方法二、实验学时:2学时三、实验原理MATLAB环境是一种为数值计算、数据分析和图形显示服务的交互式的环境。
打开MATLAB软件弹出如图1-1所示的图形窗口。
MATLAB有3种子窗口,即:命令窗口(Command Window)、m-文件编辑窗口(Edit Window)和图形窗口(Figure Window)。
图1-1 MATLAB R2008a基本界面1.命令窗口(The Command Window)当MATLAB 启动后,出现的最大的窗口就是命令窗口。
用户可以在提示符“>>”后面输入交互的命令,这些命令就立即被执行。
在MATLAB 中,一连串命令可以放置在一个文件中,不必把它们直接在命令窗口内输入。
在命令窗口中输入该文件名,这一连串命令就被执行了。
因为这样的文件都是以“.m ”为后缀,所以称为m-文件。
2.m-文件编辑窗口(The Edit Window )我们可以用m-文件编辑窗口来产生新的m-文件,或者编辑已经存在的m-文件。
在MATLAB 主界面上选择菜单“File/New/M-file ”就打开了一个新的m-文件编辑窗口;选择菜单“File/Open ”就可以打开一个已经存在的m-文件,并且可以在这个窗口中编辑这个m-文件。
3.图形窗口(The Figure Window )图形窗口用来显示MATLAB 程序产生的图形。
图形可以是2维的、3维的数据图形,或其它棒状图、极坐标图等。
MATLAB 常用操作命令和运算符如下:clear ——清除工作空间变量clc ——清除命令窗口内容path ——设置路径cd ——设置当前目录符+——矩阵的加法运算符-——矩阵的减法运算符*——矩阵的乘法运算符\——矩阵的左除运算符/——矩阵的右除运算符^——矩阵的乘方linspace ——产生线性等分向量inv ——矩阵求逆poly ——创建多项式polyval ——多项式求值polyfit ——多项式拟合四、实验内容1.自由练习Matlab 软件的操作2、已知矩阵 A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡987654321。
matlab 控制系统仿真实验报告
控制系统仿真实验报告自动化0903 杨一君学号09090911072012-5-27前面是胡杨老师上课时时留的思考题,实验指导书对应报告在17页开始思考题1:diag(a)求a的对角阵,当a为非n阶方阵时,调用diag()出现的情况:(1) >> a = [1 2 3 ; 4 5 6 ;7 8 9]a =1 2 34 5 67 8 9>> diag(a)ans =159%正常方阵(2) >> a = [1 1 1]a =1 1 1>> diag(a)ans =1 0 00 1 02 / 490 0 1%只有一行元素时(3) >> a =[1 2 3;4 5 6 ]a =1 2 34 5 6>> diag(a)ans =15(4) >> a = [1 2 3; 4 5 6 ;7 8 9; 0 0 0]a =1 2 34 5 67 8 90 0 0>> diag(a)ans =3 / 49159(5) >> a =[1 2 3]a =1 2 3>> diag(a)ans =1 0 00 2 00 0 3(6) >> a = [1;2;3]a =1234 / 49>> diag(a)ans =1 0 00 2 00 0 3思考题2:求逆函数inv(a),当a为不可逆时,inv(a)所求结果如何>> a = ones(4)a =1 1 1 11 1 1 11 1 1 11 1 1 1>> inv(a)Warning: Matrix is singular to working precision.ans =Inf Inf Inf Inf5 / 49Inf Inf Inf InfInf Inf Inf InfInf Inf Inf Inf%矩阵所有元素变为无穷思考题3:当inv(a)函数求逆,当a为非n阶方阵时inv(a)的结果>> a =[1 2 3]a =1 2 3>> inv(a)??? Error using ==> invMatrix must be square.程序报错思考题4:conv()多项式乘法函数是否可以用两个以上的参数实现多个多项式的乘法?如果不可以,如何实现多个多项式的乘法?>> p1 = [1 2 1]p1 =1 2 1>> p2 = [2 3 2]6 / 49p2 =2 3 2>> conv(p1,p2)ans =2 7 10 7 2>> p3 = [3 4 3]p3 =3 4 3>> conv(p1,p2,p3)??? Error using ==> conv %不可以,报错Too many input arguments.>> conv(conv(p1,p2),p3) %用conv()函数的嵌套来实现3个以上多项式的乘法ans =7 / 496 29 64 82 64 29 6思考题5:deconv(p1,p2)函数,当p1不能被p2整除时会有什么样的情况>> p1 = [1 3 2]p1 =1 3 2>> p2 = [1 1]p2 =1 1>> deconv(p1,p2)ans =1 2>> p1 = [3 4 5];>> p2 = [ 1 1 ];>> deconv(p1,p2)8 / 49ans =3 1>> p1 = [1 3 3]p1 =1 3 3>> p2 = [ 1 1]p2 =1 1>> deconv(p1,p2)ans =1 2 %只保留商思考题6:如何实现将一个语句拆成几行?>> a = [ 1 1 1 1 1 ;9 / 492 2 2 2 2 ]a =1 1 1 1 12 2 2 2 2%用分号思考题1:如果去掉subplot(3,3,1)或其他位置的图,及其绘图代码,绘出的曲线成何种形式?影不影响其他曲线?>> subplot(3,3,9); >> subplot(3,3,2); >> subplot(3,3,2); >> subplot(3,3,2);05102040024-1110 / 49>> t = [0:0.01 :6];>> y = t.*t;>> plot(t,y);>> subplot(3,3,9);>> t = [0:0.02:4];>> y = sin(t);>> plot(t,y);%不影响其他函数思考题2:plotyy()最多可以画几条曲线?>> x1=[0:pi/10:2*pi];>> y1 = sin(x1);>> x2 = [0:pi/400:8*pi];>> y2 = cos(x2);>> plot(x1,y1,x2,y2)>> plotyy(x1,y1,x2,y2 );11 / 4912 / 49>> x1=[0:pi/10:2*pi];0510********-1-0.8-0.6-0.4-0.20.20.40.60.81-1-0.500.51051015202530>> y1 = sin(x1);>> x2 = [0:pi/400:8*pi];>> y2 = cos(x2);>> x3 = [0:pi/300:3*pi];>> y3 = sin(x3);>> plot(x1,y1,x2,y2,x3,y3);>> plotyy(x1,y1,x2,y2,x3,y3);??? Error using ==> fevalArgument must contain a string or function_handle.Error in ==> plotyy>fevalfun at 286h = feval(func,x,y);Error in ==> plotyy at 59[h1,ax(1)] = fevalfun(fun1,ax(1),x1,y1,caxspecified); >>13 / 4914 / 49所以ploytt()最多画两个函数0510********-1-0.8-0.6-0.4-0.20.20.40.60.8115 / 49>> th = [0:pi/10:2*pi];>> x1 = exp(j*th);>> plot(real(x1),imag(x1),...real(2*x1),imag(2*x1),...real(3*x1),imag(3*x1),...real(4*x1),imag(4*x1),...real(5*x1),imag(5*x1));-5-4-3-2-1012345-5-4-3-2-112345>> t = [0:0.05:100];>> x = t;>> y = sin(t);>> z = sin(2*t);>> plot3(x,y,z);16 / 4917 / 49>> t = [0:pi/20:2*pi];>> y = sin(t);>> stairs(t,y);01234567-1-0.8-0.6-0.4-0.20.20.40.60.8118 / 49思考题3:复数是否能参加逻辑运算?是什么样子?>> x = [5+2*i,3+4j,2,6-7*j];>> y = [5+2*1,4+3j,2,7j];>> c = x&y??? Error using ==> andOperands to AND must not be complex.>> c = x|y??? Error using ==> orOperands to OR must not be complex.>> c = ~x??? Error using ==> not-101234567-1-0.8-0.6-0.4-0.20.20.40.60.8119 / 49Operands to NOT must not be complex.报错,说明复数不能参加逻辑运算实验一 MATLAB 语言编程一、 实验目的1、熟悉Matlab 语言及其环境,掌握编程方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
控制系统数字仿真
实验报告
所在学院:机电工程学院专业班级:
学生姓名:
学生学号:
实验一数字仿真方法验证
一、实验目的
1.掌握基于数值积分法的系统仿真、了解各仿真参数的影响;
2.掌握基于离散相似法的系统仿真、了解各仿真参数的影响;
3.熟悉MATLAB语言及应用环境。
二、实验环境
网络计算机系统,MATLAB语言环境
三、实验内容
1.将示例1的问题改为ode45函数求解
程序:
function dy = vdp( t,y )
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
dy=[y-2*t/y];
end
[t,y]=ode45('vdp',[0 1],1);
figure(1);
plot(t,y,'r-');
xlabel('t');
ylabel('y');
hold on;
2. 试用四阶RK 法编程求解下列微分方程初值问题。
仿真时间2s ,取步长h=0.1。
⎪⎩⎪⎨⎧=-=1
)0(2y t y dt dy
程序: clear t0=0; u0=1; h=0.1; n=2/h; u(1)=1; t(1)=0; for i=1:n
k1=u0-t0*t0;
k2=(u0+h*k1/2)-(t0+h/2)*(t0+h/2); k3=(u0+h*k2/2)-(t0+h/2)*(t0+h/2); k4=(u0+h*k3)-(t0+h)*(t0+h); u1=u0+h*(k1+2*k2+2*k3+k4)/6; t1=t0+h; u0=u1; t0=t1; u(i+1)=u1; t(i+1)=t1; end
figure(1)
plot(t,u,'r');
3.试求示例3分别在周期为5s的方波信号和脉冲信号下的响应,仿真时间20s,采样周期Ts=0.1。
程序:
clear
% Create system model
A=[-0.5572 -0.7814 ;0.7814 0];
B=[1;0];
C=[1.9691 6.4493];
D=0;
sys=ss(A,B,C,D);
% Squre response of the system
subplot(2,2,1);
[u,t]=gensig('square',5,20,0.1);
plot(t,u,'r--');
hold on;
lsim(sys,u,t);
hold off;
grid on;
% impulse response of the system
subplot(2,2,2);
impulse(sys,20);
grid on;
实验二SIMULINK动态仿真
一、实验目的
1.掌握SIMULINK动态仿真;
2.熟悉MATLAB语言及应用环境。
二、实验环境
网络计算机系统,MATLAB语言环境
三、实验内容
(一)Simulink的基本操作
(1)运行Simulink
(2)常用的标准模块
(3)模块的操作
(二)系统仿真及参数设置
(1)算法设置(Solver)
(2)工作空间设置(Workspace I/O)
四、实验内容、要求
(一)某系统框图如图所示,试用SIMULINK进行仿真,并比较在无饱和非线性环节下系统仿真结果。
(二)已知系统结构图如下
已知输入为信号电平从1~6,非线性环节的上下限为±1,取步长h=0.1,仿真时间为10秒,试绘制系统的响应曲线。
实验三PID控制器设计
一、实验目的
1.了解PID控制原理,掌握相应PID控制器设计仿真程序的应用;
2.掌握计算机辅助系统瞬态性能指标的计算;
3.掌握计算机辅助系统频率性能分析;
二、实验环境
网络计算机系统,MATLAB语言环境
三、实验内容、要求
已知如图所示单位反馈系统
要求:
1.绘制系统的开环Nyquist图和Bode图,并判断该闭环系统是否稳定。
程序:
clear
num=[500 500];
den=[1 33 337 1775 4950 5000];
sys=tf(num,den);
% Draw the Nyquist plot
figure(1)
nyquist(sys)
[Re,Im,w1]=nyquist(sys);
grid on
% Draw the Bode plot
figure(2)
bode(sys)
[mag,phase,w2]=bode(sys);
grid on
sysclose=feedback(sys,1);
[z,p,k]=zpkdata(sysclose,'v');%'v' means whant
% Check system stability
ii=find(real(p)>0);
np=length(ii);
if np>0
disp('the system is not stable')
else
disp('the system is stable')
End
2.应用Ziegler—Nichols方法设计P控制器、PI控制器和PID控制器。
程序:
clear
num=[500 500];
den=[1 33 337 1775 4950 5000];
sys=tf(num,den);
sysgroup=feedback(sys,1);
%Design P-PI -PIDControler
for i=1:3
type=i;
[sysc,Kp,Ti,Td]=pidmargin(sys,type);
sysopen=sysc*sys;
sysclose=feedback(sysopen,1);
sysgroup=append(sysgroup,sysclose);
end
clf
for i=1:4
subplot(2,2,i)
step(sysgroup(i,i))
End
3.计算比较原系统与P控制系统、PI控制系统、PID控制系统的瞬态性能指标程序:
clear
num=[500 5000];
den=[1 33 337 1775 4950 5000];
sys=tf(num,den);
sysgroup=feedback(sys,1);
%Design P-PI -PIDControler
for i=1:3
type=i;
[sysc,Kp,Ti,Td]=pidmargin(sys,type);
sysopen=sysc*sys;
sysclose=feedback(sysopen,1);
sysgroup=append(sysgroup,sysclose);
end
clf
for i=1:4
subplot(2,2,i)
step(sysgroup(i,i))
% Compute steady value
[num,den] = tfdata(sysgroup(i,i),'v');
Finalvalue(i)=polyval(num,0)/polyval(den,0)
% Compute overshoot
[y,t]=step(sysgroup(i,i));
[Ymax,k]=max(y);
Peaktime(i)=t(k)
OvershootPercent(i)=100*(Ymax-Finalvalue(i))/Finalvalue(i) % Compute rise time
n=1;
while y(n)<0.1*Finalvalue(i),n=n+1;end
m=1;
while y(m)<0.9*Finalvalue(i),m=m+1;end
RiseTime(i)=t(m)-t(n)
% Compute settling time
r=length(t);
while (y(r)>0.98*Finalvalue(i) & y(r)<1.02*Finalvalue(i)) r=r-1;
end
SettlingTime(i)=t(r)
End
实验四 模糊逻辑控制器设计
一、实验目的
4.了解模糊逻辑控制原理;
5.掌握MATLAB 辅助模糊逻辑控制器设计流程;
二、实验环境
网络计算机系统,MATLAB 语言环境
三、实验内容、要求
设有前后两车(目标车与本车),其速度y 与油门控制输入u 间的传递函数均为
4
27.024)()(2+**+=s s s U s Y
现要求设计一模糊控制器,使得
1)控制汽车(本车)由静止启动,追赶200m外时速90km的汽车(目标车)并与其保持30m距离。
2)目标车速度改为时速110km时,仍与其保持30m距离。
3)目标车速度改为时速70km时,仍与其保持30m距离。