控制系统MATLAB仿真基础
- 格式:pdf
- 大小:627.86 KB
- 文档页数:28
控制系统仿真[教学目的]掌握数字仿真基本原理控制系统的数学模型建立掌握控制系统分析[教学内容]一、控制系统的数学模型sys=tf(num,den) %多项式模型,num为分子多项式的系数向量,den为分母多项式的系%数向量,函数tf()创建一个TF模型对象。
sys=zpk(z,p,k) %z为系统的零点向量,p为系统的极点向量,k为增益值,函数zpk()创建一个ZPK模型对象。
(一)控制系统的参数模型1、TF模型传递函数num=[b m b m-1 b m-2…b1 b0]den=[a m a m-1 a m-2…a1 a0]sys=tf(num,den)【例1】系统的传递函数为。
>>num=[0 1 12 44 48];>>den=[1 16 86 176 105];>>sys=tf(num,den);>>sysTransfer function:s^3 + 12 s^2 + 44 s + 48-------------------------------------s^4 + 16 s^3 + 86 s^2 + 176 s + 105>>get(sys)>>set(sys)>>set(sys,'num',[2 1 2])>> sysTransfer function:2 s^2 + s + 2-------------------------------------s^4 + 16 s^3 + 86 s^2 + 176 s + 105【例2】系统的传递函数为。
>>num=conv([20],[1 1]);>>numnum =20 20>>den=conv([1 0 0],conv([1 2],[1 6 10]));>>sys=tf(num,den)Transfer function:20 s + 20-------------------------------s^5 + 8 s^4 + 22 s^3 + 20 s^2【例3】系统的开环传递函数为,写出单位负反馈时闭环传递函数的TF模型。
基于MATLAB控制系统的仿真与应用毕业设计论文目录一、内容概括 (2)1. 研究背景和意义 (3)2. 国内外研究现状 (4)3. 研究目的和内容 (5)二、MATLAB控制系统仿真基础 (7)三、控制系统建模 (8)1. 控制系统模型概述 (10)2. MATLAB建模方法 (11)3. 系统模型的验证与校正 (12)四、控制系统性能分析 (14)1. 稳定性分析 (14)2. 响应性能分析 (16)3. 误差性能分析 (17)五、基于MATLAB控制系统的设计与应用实例分析 (19)1. 控制系统设计要求与方案选择 (20)2. 基于MATLAB的控制系统设计流程 (22)3. 实例一 (23)4. 实例二 (25)六、优化算法在控制系统中的应用及MATLAB实现 (26)1. 优化算法概述及其在控制系统中的应用价值 (28)2. 优化算法介绍及MATLAB实现方法 (29)3. 基于MATLAB的优化算法在控制系统中的实践应用案例及分析对比研究31一、内容概括本论文旨在探讨基于MATLAB控制系统的仿真与应用,通过对控制系统进行深入的理论分析和实际应用研究,提出一种有效的控制系统设计方案,并通过实验验证其正确性和有效性。
本文对控制系统的基本理论进行了详细的阐述,包括控制系统的定义、分类、性能指标以及设计方法。
我们以一个具体的控制系统为例,对其进行分析和设计。
在这个过程中,我们运用MATLAB软件作为主要的仿真工具,对控制系统的稳定性、动态响应、鲁棒性等方面进行了全面的仿真分析。
在完成理论分析和实际设计之后,我们进一步研究了基于MATLAB 的控制系统仿真方法。
通过对仿真模型的建立、仿真参数的选择以及仿真结果的分析,我们提出了一种高效的仿真策略。
我们将所设计的控制系统应用于实际场景中,通过实验数据验证了所提出方案的有效性和可行性。
本论文通过理论与实践相结合的方法,深入探讨了基于MATLAB 控制系统的仿真与应用。
基于MATLAB自动控制系统时域频域分析与仿真MATLAB是一款强大的数学软件,也是自动控制系统设计的常用工具。
它不仅可以进行时域分析和频域分析,还可以进行相关仿真实验。
本文将详细介绍MATLAB如何进行自动控制系统的时域和频域分析,以及如何进行仿真实验。
一、时域分析时域分析是指对系统的输入信号和输出信号进行时域上的观察和分析,以了解系统的动态特性和稳定性。
MATLAB提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。
1.时域响应分析通过时域响应分析,可以观察系统对于不同的输入信号的响应情况。
在MATLAB中,可以使用`lsim`函数进行系统的时域仿真。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
-定义输入信号。
- 使用`lsim`函数进行时域仿真,并绘制系统输出信号。
例如,假设我们有一个二阶传递函数模型,并且输入信号为一个单位阶跃函数,可以通过以下代码进行时域仿真:```num = [1];den = [1, 1, 1];sys = tf(num, den);t=0:0.1:10;u = ones(size(t));[y, t, x] = lsim(sys, u, t);plot(t, y)```上述代码中,`num`和`den`分别表示系统的分子和分母多项式系数,`sys`表示系统模型,`t`表示时间序列,`u`表示输入信号,`y`表示输出信号。
通过绘制输出信号与时间的关系,可以观察到系统的响应情况。
2.稳态分析稳态分析用于研究系统在稳态下的性能指标,如稳态误差和稳态标准差。
在MATLAB中,可以使用`step`函数进行稳态分析。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
- 使用`step`函数进行稳态分析,并绘制系统的阶跃响应曲线。
例如,假设我们有一个一阶传递函数模型,可以通过以下代码进行稳态分析:```num = [1];den = [1, 1];sys = tf(num, den);step(sys)```通过绘制系统的阶跃响应曲线,我们可以观察到系统的稳态特性。
MATLAB/Simulink与控制系统仿真实验报告姓名:喻彬彬学号:K031541725实验1、MATLAB/Simulink 仿真基础及控制系统模型的建立一、实验目的1、掌握MATLAB/Simulink 仿真的基本知识;2、熟练应用MATLAB 软件建立控制系统模型。
二、实验设备电脑一台;MATLAB 仿真软件一个三、实验内容1、熟悉MATLAB/Smulink 仿真软件。
2、一个单位负反馈二阶系统,其开环传递函数为210()3G s s s =+。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
3、某控制系统的传递函数为()()()1()Y s G s X s G s =+,其中250()23s G s s s+=+。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
4、一闭环系统结构如图所示,其中系统前向通道的传递函数为320.520()0.11220s G s s s s s+=+++,而且前向通道有一个[-0.2,0.5]的限幅环节,图中用N 表示,反馈通道的增益为1.5,系统为负反馈,阶跃输入经1.5倍的增益作用到系统。
用Simulink 建立该控制系统模型,用示波器观察模型的阶跃响应曲线,并将阶跃响应曲线导入到MATLAB 的工作空间中,在命令窗口绘制该模型的阶跃响应曲线。
四、实验报告要求实验报告撰写应包括实验名称、实验内容、实验要求、实验步骤、实验结果及分析和实验体会。
五、实验思考题总结仿真模型构建及调试过程中的心得体会。
题1、(1)利用Simulink的Library窗口中的【File】→【New】,打开一个新的模型窗口。
(2)分别从信号源库(Sourse)、输出方式库(Sink)、数学运算库(Math)、连续系统库(Continuous)中,用鼠标把阶跃信号发生器(Step)、示波器(Scope)、传递函数(Transfern Fcn)和相加器(Sum)4个标准功能模块选中,并将其拖至模型窗口。
如何使用Matlab进行控制系统仿真概述控制系统在工程领域中扮演着重要角色,它用于控制和管理各种工程过程和设备。
而控制系统仿真则是设计、开发和测试控制系统的关键环节之一。
Matlab作为一种功能强大的工程计算软件,提供了丰富的工具和功能,可以帮助工程师进行控制系统仿真。
本文将简要介绍如何使用Matlab进行控制系统仿真,以及一些实用的技巧和建议。
1. Matlab的基础知识在开始控制系统仿真之前,有一些Matlab的基础知识是必要的。
首先,了解Matlab的基本语法和命令,熟悉Matlab的工作环境和编辑器。
其次,学会使用Matlab的集成开发环境(IDE)进行编程和数学建模。
熟悉Matlab的常用函数和工具箱,并了解如何在Matlab中导入和导出数据。
2. 定义系统模型在进行控制系统仿真之前,需要定义系统的数学模型。
根据具体情况选择合适的建模方法,如传递函数、状态空间或差分方程等。
在Matlab中,可以使用tf、ss 或zpk等函数来创建系统模型,并指定系统的参数和输入信号。
此外,Matlab还提供了Simulink这一强大的图形化建模环境,方便用户以图形化界面设计系统模型。
3. 设计控制器控制系统仿真的关键是设计合适的控制器,以实现所需的控制目标。
Matlab提供了各种控制器设计方法和工具,如PID控制器、根轨迹法、频域方法等。
用户可以使用Matlab的Control System Toolbox来设计和分析控制器,并在仿真中进行验证。
此外,Matlab还支持自适应控制和模糊控制等高级控制方法,可根据具体需求选择合适的方法。
4. 进行仿真实验在完成系统模型和控制器设计后,可以开始进行控制系统仿真实验。
首先,确定仿真实验的输入信号,如阶跃信号、正弦信号或随机信号等。
然后,使用Matlab中的sim函数将输入信号应用到系统模型中,并观察系统的输出响应。
通过调整控制器参数或设计不同的控制器,分析系统的性能和稳定性,并优化控制器的设计。
系统仿真§ 4.1控制系统的数学模型1、传递函数模型(tranfer function)2、零极点增益模型(zero-pole-gain)3、状态空间模型(state-space)4、动态结构图(Simulink结构图)一、传递函数模型(transfer fcn-----tf)1、传递函数模型的形式传函定义:在零初始条件下,系统输出量的拉氏变换C(S)与输入量的拉氏变换R(S)之比。
C(S) b1S m+b2S m-1+…+b mG(S)=----------- =- --------------------------------R(S) a1S n + a2S n-1 +…+ a nnum(S)= ------------den(S)2、在MATLAB命令中的输入形式在MATLAB环境中,可直接用分子分母多项式系数构成的两个向量num、den表示系统: num = [b1, b2, ..., b m];den = [a1, a2, ..., a n];注:1)将系统的分子分母多项式的系数按降幂的方式以向量的形式输入两个变量,中间缺项的用0补齐,不能遗漏。
2)num、den是任意两个变量名,用户可以用其他任意的变量名来输入系数向量。
3)当系统种含有几个传函时,输入MATLAB命令状态下可用n1,d1;n2,d2…….。
4)给变量num,den赋值时用的是方括号;方括号内每个系数分隔开用空格或逗号;num,den方括号间用的是分号。
3、函数命令tf( )在MATLAB中,用函数命令tf( )来建立控制系统的传函模型,或者将零极点增益模型、状态空间模型转换为传函模型。
tf( )函数命令的调用格式为:圆括号中的逗号不能用空格来代替sys = tf ( num, den ) [G= tf ( num, den )]其中,函数的返回变量sys或G 为连续系统的传函模型;函数输入参量num和den分别为系统的分子分母多项式的系数向量。
s+5【例4-1】G(S)=---------------------------s4+2s3+3s2+4s+5解:num=[1,5];den=[1,2,3,4,5];G=tf(num,den)5【例4-2】G(S)=--------------------2s3+3s2+4s解: num=[5];den=[2 3 4 0];G=tf(num,den)★conv( )函数为标准的MATLAB函数,用来求取2个向量的卷积,多项式乘法也可用此函数来计算。
conv( )函数允许任意地多层嵌套,从而表示复杂的计算。
【例4-3】6(S+5)G(S)=-------------------------------------------(S2+3S+1)2(S+6)(S3+6S2+5S+3)解:num=6*[1,5];den=conv(conv(conv([1,3,1],[1,3,1]),[1,6]),[1,6,5,3]);G=tf(num,den)den=conv(conv(conv([1,6],[1,6,5,3]),[1,3 1]),[1,3,1]);二、零极点增益模型(zeropole----zpk)1、零极点增益模型形式(S-Z1)(S-Z2)…(S-Z m)G(S)= k -------------------------------(S-P1)(S-P2)…(S-P n)式中: k: 系统增益;z1,z2,…,z m: 系统零点;p1,p2,…,p n: 系统极点;注:对实系数的传函模型来说,系统的零极点或者为实数,或者以共轭复数的形式出现。
系统的传函模型给出以后,可以立即得出系统的零极点模型。
2、在MATLAB下的输入形式在MATLAB里,连续系统可直接用向量z、p、k构成的矢量组【z,p,k】表示系统,即:k=[k];z=[z1;z2;……;z m];p=[p1;p2;……;p n];3、函数命令zpk( )在MATLAB中,用函数命令zpk( )来建立控制系统的零极点增益模型,或者将传函模型或者状态空间模型转换为零极点增益模型。
zpk( )函数命令的调用格式为:sys = zpk ( z,p,k )【例4-4】6(S+1.9294)(S+0.0353±0.9287i)G(S)=----------------------------------------------------(S+0.9567±1.2272i)(S-0.0433±0.6412i)解:k = 6;z = [-1.9294;-0.0353+0.9287*i;-0.0353-0.9287*i];p = [-0.9567+1.2272*i;-0.9567-1.2272*i;+0.0433+0.6412*i;+0.0433-0.6412*i];G = zpk(z,p,k)三、状态空间模型 (state-space-----ss)1、状态空间模型的形式单变量线性的不变系统可以写成:X(t) = Ax(t)+Bu(t) A BG(S)= (1)Y(t) = Cx(t)+Du(t) C D式中,u,x,y分别为控制输入向量、状态向量、输出向量;A为状态矩阵,由控制对象的参数决定;B为控制矩阵;C为输出矩阵;D为直接传输矩阵。
A、B、C分别为列向量行向量,D为标量,2、在MATLAB下的输入形式在MATLAB中,连续系统可直接用矩阵组【A,B,C,D】表示系统。
A=[a11,a12,…,a1n;a21,a22,…a2n; … ;a n1,a n2,…,a nn];B=[b1;b2;……b n];C=[c1,c2,……c n];D=d;这样MALAB工作空间中的(A,B,C,D)则可表示式(1)式给出的系统状态方程模型。
注:MALAB下的(A,B,C,D)表示同样适合于多变量系统。
3、函数命令ss( )在MATLAB中,用函数命令ss( )来建立控制系统的状态空间模型,或者将传函模型、零极点增益模型的表达式转换为状态空间模型。
ss( )函数命令的调用格式为:ss(A,B,C,D)【例4-5】2.25 -5 -1.25 -0.5 4 6X= 2.25 -4.25 -1.25 -0.25 x + 2 4 u0.25 -0.5 -1.25 -1 2 21.25 -1.75 -0.25 -0.75 0 20 0 0 1 0 0Y = x + u0 2 0 2 0 0解:A=[2.25,-5,-1.25,-0.5;2.25,-4.25,-1.25,-0.25;0.25,-0.5,-1.25,-1;1.25,-1.75,-0.25,-0.75];B= [4,6;2,4;2,2;0,2];C= [0,0,0,1;0,2,0,2];D= zeros(2,2);G= ss(A,B,C,D)四、三种不同模型对象间的相互转换解决实际问题时,常常需要对自控系统的数学模型进行转换,因为他们彼此间都是等效的。
sys = tf (G)sys = zpk(G )sys = ss(G)【例4-6】设系统的零极点模型为:6(S+1.9294)(S+0.0353±0.9287i)G(S)=----------------------------------------------------(S+0.9567±1.2272i)(S-0.0433±0.6412i)试转化成等效的传函模型和状态空间模型。
解:k = 6;z = [-1.9294;-0.0353+0.9287*j;-0.0353-0.9287*j];p = [-0.9567+1.2272*j;-0.9567-1.2272*j;+0.0433+0.6412*j;+0.0433-0.6412*j];G = zpk(z,p,k);sys1= tf(G)sys2=ss(G)【例4-7】若系统的状态方程模型如下:0 1 0 0 0X= 0 0 -1 0 x+ 1 u Y = [ 1,0,0,0] x0 0 0 1 00 0 5 0 -2求系统的传函模型及零极点表达式。
解: A= [0,1,0,0;0,0,-1,0;0,0,0,1;0,0,5,0];B= [0;1;0;-2];C= [1,0,0,0];D= 0;G=ss(A,B,C,D);G1= tf(G)G2=zpk(G)五、SIMULINK模型窗口的动态结构图六、具有延迟环节数学模型的建立G(S)= e-TSpade(T,n):求延迟T的n阶逼近式。
可以绘制N阶pade逼近e-TS的单位阶跃响应曲线和对数相频特性曲线。
[num,den]=pade(T,n)可以返回N阶传递函数的LIT模型来逼近e-TS。
其中,行向量num和den分别是传递函数的分子分母多项式系数和分母多项式,并按降幂排列。
【例】试在matlab命令窗口建立输入下述传递函数:e-S(10S+1)(5S+1)G(S)=解:num1=1;den1=conv([10,1],[5,1]);g1=tf(num1,den1);[num2,den2]=pade(1,10);g2=tf(num2,den2);g12=g1*g2§ 4.2环节方框图形的化简一、环节串联连接的化简→ G1 → G2 →series( ):函数命令可以将两个环节串联连接进行等效化简,它既适用于连续时间系统,也适用于离散时间系统。
如果已知两个环节的传函分别为:G1(S) =G2(S) =则两个环节串联连接的等效变换传函:G(S)=G1(S)G2(S) ==使用series( )函数命令,不必做多项式的乘除运算即可实现2个环节传函(sys1与sys2)串联连接即实现等效传函的运算。
如果 sys1 = tf(num1,den1),sys2 = tf(num2,den2)其命令格式:sys=series(sys1,sys2)。
sys = series( sys1,sys2,…,sysn) sys=sys1*sys2*……*sysn【例4-8】已知双环调速系统电流环内前向通道三个模块的传函为G1(S)=G2(S)=G3(S)=试求三个模块串联连接的等效传函及等效状态空间模型。
解:n1 = [0.0128 1] ; d1 = [0.04 0] ; sys1 = tf (n1,d1);n2 = [30] ; d2 = [0.00167 1]; sys2 = tf( n2,d2);n3 = [2.5] ; d3 = [0.0128 1]; sys3 =tf ( n3,d3);sys123=sys1*sys2*sys3sys=ss(sys123)二、环节并联连结的化简G2(s)G1(s)parallel( )函数命令可以将2个环节并联连接进行等效化简。