《动态系统模型及其Simulink表示》由会员分享,可在线阅读,更多相关《动态系统模型及其Simulink表示(67页珍藏版)》请在金锄头文库上搜索。
1、第3章 第第3章章 动态系统模型及其动态系统模型及其Simulink表示表示 3.1 简单系统模型及表示简单系统模型及表示 3.2 离散系统模型及表示离散系统模型及表示 3.3 连续系统模型及表示连续系统模型及表示 3.4 混合系统模型及表示混合系统模型及表示第3章 3.1 简单系统模型及表示简单系统模型及表示 3.1.1 简单系统的基本概念不同系统具有不同数量的输入与输出;一般来说,输入输出数目越多,系统越复杂。最简单的系统一般只有一个输入与一个输出,而且任意时刻的输出只与当前时刻的输入有关。本节首先介绍简单系统的基本概念以及简单系统的Simulink表示。第3章 【定义3.1】简单系统。对
2、于满足下列条件的系统,我们称之为简单系统:(1)系统某一时刻的输出直接且唯一依赖于该时刻的输入量。(2)系统对同样的输入,其输出响应不随时间的变化而变化。(3)系统中不存在输入的状态量,所谓的状态量是指系统输入的微分项(即输入的导数项)。第3章 设简单系统的输入为x,系统输出为y,x可以具有不同的物理含义。对于任何系统,都可以将它视为对输入变量x的某种变换,因此可以用T表示任意一个系统,即yT x对于简单系统,x一般为时间变量或其它的物理变量,并具有一定的输入范围。系统输出变量y仅与x的当前值相关,从数学的角度来看,y是x的一个函数,给出一个x值,便有一个y值与之对应。第3章 【例3.1】对于
3、如下的一个系统:其中为系统的输入变量,为时间变量,y为系统的输出变量。输入变量。很显然,此系统服从简单系统的条件,为一简单系统。系统输出仅由系统当前时刻的输入决定。第3章 3.1.1 简单系统的描述方式一般来讲,简单系统都可以采用代数方程与逻辑结构相结合的方式进行描述。 1. 代数方程采用数学方程对简单系统进行描述,可以很容易由系统输入求出系统输出,并且由此可方便地对系统进行定量分析。 2. 逻辑结构一般来说,系统输入都有一定的范围。对于不同范围的输入,系统输出与输入之间遵从不同的关系。由系统的逻辑结构可以很容易了解系统的基本概况。第3章 3.1.1 简单系统的Simulink描述本章主要介绍
4、动态系统的基本知识,为使用Simulink进行系统仿真打下基础。因此这里并不准备建立系统的Simulink模型,而是采用编写M脚本文件的方式对系统进行描述并进行简单的仿真。下面以【例3.1】中的简单系统为例,说明在Simulink中如何对简单系统进行描述。第3章 【例3.1】中的简单系统,编写如下的systemdemo1.m脚本文件进行描述与分析。%systemdemo1.m文件u=0:0.1:10;%设定系统输入范围与仿真步长leng=length(u);%计算系统输入序列长度fori=1:leng%计算系统输出序列ifu(i)num=215;den=1362;dbode(num,den,1
5、)grid;此离散系统的Bode图如图3.3所示。第3章 当然也可以用下面的语句求出系统的幅值与相位而不绘制图形:mag,phase=dbode(num,den,1);第3章 图3.3线性离散系统的Bode图第3章 此外,在MATLAB中,离散系统的不同描述模型之间可以进行相互转化。这里给出几个比较常用的函数:zeros,poles,k=tf2zp(num,den)%将系统传递函数模型转化为零极点模型num,den=zp2tf(zeros,poles,k)%将系统零极点模型转化为传递函数模型。其中num,den分别为系统的传递函数表%示;zeros,poles,k为系统的零极点模型第3章 至于
6、线性离散系统的状态空间模型描述,这里不再介绍,感兴趣的读者可以参考其它有关的书籍。这里给出它与传递函数模型、零极点模型相互转化的函数命令:zeros,poles,k=ss2zp(F,G,C,D)%将系统状态空间模型转化为零极点模型F,G,C,D=zp2ss(zeros,poles,k)%将系统零极点模型转化为状态空间模型num,den=ss2tf(F,G,C,D)%将系统状态空间模型转化为传递函数模型F,G,C,D=tf2ss(num,den)%将系统传递函数模型转化为状态空间模型第3章 例3.5以线性离散系统为例说明系统模型的转化。解:将传递函数模型转化为零极点模型:num=215;den=
7、1362;zeros,poles,k=tf2zp(num,den)结果为第3章 zeros=1.8508-1.3508poles=-1.2980+1.8073i-1.2980-1.8073i-0.4039k=2.0000第3章 将传递函数模型转化为状态空间模型:num=2-1-5;den=1362;F,G,C,D=tf2ss(num,den)结果为F=-3.0000-6.0000-2.00001.00000001.00000第3章 G=100C=2.00001.00005.0000D=0第5章将对系统仿真作详细的介绍,在此不再赘述。第3章 3.3 连续系统模型及表示连续系统模型及表示 3.1.
8、1 连续系统的基本概念与离散系统不同,连续系统是指系统输出在时间上连续变化,而非仅在离散的时刻采样取值。连续系统的应用非常广泛,下面给出连续系统的基本概念。第3章 【定义3.4】连续系统。满足如下条件的系统为连续系统:(1)系统输出连续变化。变化的间隔为无穷小量。(2)对系统的数学描述来说,存在系统输入或输出的微分项(导数项)。(3)系统具有连续的状态。在离散系统中,系统的状态为时间的离散函数,而连续系统的状态为时间连续量。第3章 3.1.1 连续系统的数学描述设连续系统的输入变量为,其中为连续取值的时间变量,设系统的输出为;由连续系统的基本概念可以写出连续系统的最一般的数学描述,即系统的实质
9、为输入变量到输出变量的变换,注意这里系统的输入变量与输出变量既可以是标量(单输入单输出系统),也可以是向量(多输入多输出系统);而且在系统的数学描述中含有系统输入或输出的导数。第3章 除了采用最一般的数学方程描述连续系统外,还可以使用连续系统的微分方程形式对连续系统进行描述,即这里分别为连续系统的状态变量、状态变量的微分。对于线性连续系统来说,由连续系统的微分方程描述可以容易地推导出连续系统的状态空间模型。这与使用差分方程对离散系统进行描述相类似。下面举例说明连续系统的数学描述。第3章 【例3.6】对于如下的连续系统:显然此系统为单输入单输出连续系统,且含有输入变量的微分项。由此方程可以很容易
10、得出系统的输出变量为t0t0第3章 3.3.3 连续系统的Simulink描述前面给出了连续系统的基本概念与系统的基本描述方法:数学方程描述与微分方程描述。本部分使用【例3.6】给出的连续系统说明如何利用Simulink对连续系统进行描述,并在此基础上对连续系统进行简单分析。与前面类似,在此并不建立系统的Simulink模型进行仿真,而是采用编写M脚本文件从原理上对连续系统进行说明,并进行简单的仿真。第3章 【例3.7】编写脚本文件systemdemo3.m,对【例3.6】中的连续系统进行分析。%systemdemo3.m脚本文件t=0:0.1:5;%系统仿真范围,时间间隔为0.1sut=t+
11、sin(t);%系统输入变量utdot=1+cos(t);%系统输入变量的导数yt=ut+utdot;%系统输出plot(yt);grid;%绘制系统输出曲线图3.4为此连续系统在时间0,5内的输出曲线。由此可见,使用简单的MATLAB语句可对系统性能进行简单的分析。第3章 图3.4连续系统输入输出关系图第3章 3.3.4 线性连续系统在介绍线性离散系统时,已经给出线性系统的基本概念,这里做一个简单的回顾并介绍线性连续系统的概念。连续系统可以用如下的方式来表达:【定义3.5】线性连续系统。如果一个连续系统能够同时满足如下的性质:(1)齐次性。对于任意的参数,系统满足第3章 (2)叠加性。对于任
12、意输入变量与,系统满足则此连续系统为线性连续系统。下面举例说明。如对【例3.6】中的连续系统:t0第3章 3.3.5 线性连续系统的数学描述线性连续系统最一般的描述为连续系统的输入输出方程形式,即,也可以使用连续系统的微分方程模型进行描述:除了使用这两种连续系统通用的形式描述线性连续系统之外,还可以使用传递函数、零极点模型与状态空间模型对其进行描述。与线性离散系统相类似,线性连续系统的传递函数模型与零极点模型采用连续信号的拉氏变换来实现。第3章 拉氏变换具有如下两个性质:(1)线性性。即对于连续信号和,设它们的拉氏变换分别为与,则拉氏变换的线性性是指拉氏变换满足下面的关系:(2)设连续信号的拉
13、氏变换为,则的拉氏变换为,的拉氏变换为。第3章 同时对等式的两边进行拉氏变换,则有。将其化为分式的形式,则有这便是系统的传递函数模型。一般来说,线性连续系统的拉氏变换总可以写成如下传递函数的形式:第3章 将其进行一定的等价变换,可以得出线性连续系统的零极点模型:其中为线性连续系统的零点,、为系统的极点,为系统的增益。线性连续系统的另外一种模型为状态空间模型。前面已经提到,对于线性连续系统,使用其微分方程很容易推导出系统的状态空间模型。这里给出线性连续系统用状态空间模型进行描述的一般方式:第3章 其中,为线性连续系统的状态变量,分别为系统的输入与输出变量,可以为标量,也可以为向量。下面介绍如何在
14、Simulink中实现对线性连续系统的描述。第3章 3.1.1 线性连续系统的Simulink描述一般来说,在Simulink中对线性连续系统的描述方式有以下三种:(1)线性连续系统的传递函数模型描述:在Simulink中,传递函数表示为num=n0,n1;den=d0,d1,d2;其中num表示传递函数的分子系数向量,den为分母系数向量。第3章 (2)线性连续系统的零极点模型描述:在Simulink中,零极点模型表示为gain=k;zeros=z1;poles=p1,p2;其中gain表示系统增益,zeros表示系统零点,poles表示系统极点。(3)线性连续系统的状态空间模型描述:如果系
15、统的状态空间表示为则在Simulink中直接输入变换矩阵A,B,C,D即可。第3章 一般来说,线性连续系统的不同模型之间可以相互转化,MATLAB中有内置的函数可以完成线性连续系统模型间的转化。我们在线性离散系统模型间转化中已经做了介绍,这里仅列出这些函数原型:zeros,poles,k=tf2zp(num,den);num,den=zp2tf(zeros,poles,k);zeros,poles,k=ss2zp(A,B,C,D);A,B,C,D=zp2ss(zeros,poles,k)num,den=ss2tfA,B,C,D)A,B,C,D=tf2ss(num,den)第3章 【例3.8】对
16、于如下采用传递函数模型进行描述的线性连续系统:要求绘制此系统的Bode图、Nyquist图,并求取系统的零极点模型与状态空间模型描述。解:在MATLAB中输入下面的语句即可: num=1,-3; den=2,-3,-5; w=logspace(-1,1);第3章 subplot(2,1,1);bode(num,den,w);subplot(2,1,2);nyquist(num,den,w);zeros,poles,k=tf2zp(num,den)A,B,C,D=tf2ss(num,den)系统的Bode图与Nyquist图如图3.5所示。第3章 图3.5线性连续系统的Bode图与Nyquist
17、图第3章 系统的零极点模型与状态空间模型如下所示:zeros=3poles=2.5000-1.0000k=0.5000A=1.50002.50001.00000第3章 B=10C=0.5000-1.5000D=0第3章 3.4 混合系统模型及表示混合系统模型及表示 3.4.1 混合系统的数学描述混合系统是由不同类型的系统共同构成的,因此混合系统的数学描述可以由不同类型系统描述共同构成。但是由于混合系统的复杂性,一般难以用单独的数学模型进行描述或表达,因此混合系统一般都是由系统各部分输入与输出间的数学方程所共同描述的,下面举例说明。第3章 【例3.9】对于如下的一个混合系统:设系统的输入为一离散
18、变量,系统由离散系统与连续系统串联构成,其中离散系统输出经过一个零阶保持器后作为连续系统的输入。其中离散系统的输入输出方程为且,系统采样时间为Ts=1s。连续系统的输入输出方程为由于此混合系统中离散系统的输出经过一零阶保持器后作为连续系统的输入,因此与的数学关系为第3章 其中Ts=1s为离散系统的采样时间。故此混合系统的输入与输出之间的关系可以由下面的方程来描述:第3章 3.4.2 混合系统的Simulink描述与简单分析在对单独离散系统或连续系统进行描述时,由于系统一般比较简单,因而可以采用诸如差分方程、传递函数、状态空间等模型表示。但对于混合系统,由于系统本身的复杂性,即使是很简单的混合系
19、统,如【例3.9】给出的例子,都难以用一个简单的模型进行描述。因此,这里采用简单的数学方式对系统进行描述与分析。第3章 【例3.10】编写M脚本文件systemdemo4.m,对【例3.9】中的混合系统进行分析。%systemdemo4.m文件t=1:0.1:99.9;%表示在时间1,99.9范围内分析系统。时间间隔0.1sn=1:100;%表示系统输入时刻为1100sun=0.5*n;%表示系统输入u(n)yn=un+1;%表示系统中离散部分的输出,即连续部分的输入fori=1:length(n)-1forj=1:length(t)第3章 ift(j)=n(i)&t(j)n(i+1)%判断连
20、续部分的输入时间范围y(j)=sqrt(yn(n(i)+sin(yn(n(i);%计算系统输出endendendplot(t,y);grid;%绘制系统输出曲线图系统输出曲线图如图3.6所示。第3章 图3.6混合系统输入输出关系图第3章 从系统输出曲线图3.6中可以看出:由于系统中离散部分的输出经过零阶保持器后作为连续部分的输入,而零阶保持器具有阶跃的特性,在系统仿真结果中出现阶跃现象。另外,系统呈现类似正弦发散的特征表明系统为一发散不稳定系统。本章对动态系统做了简单的介绍,其中涉及到简单系统、离散系统、线性离散系统、连续系统、线性连续系统、混合系统等系统的概念以及数学描述和Simulink描述,并且使用简单的MATLAB语句对不同的系统进行了简单的仿真与分析。至于使用Simulink进行动态系统建模、仿真与分析将在第二部分进行详细介绍。