《机电系统与仿真技术》课件-10连续与离散系统建模与仿真2课时_第1页
《机电系统与仿真技术》课件-10连续与离散系统建模与仿真2课时_第2页
《机电系统与仿真技术》课件-10连续与离散系统建模与仿真2课时_第3页
《机电系统与仿真技术》课件-10连续与离散系统建模与仿真2课时_第4页
《机电系统与仿真技术》课件-10连续与离散系统建模与仿真2课时_第5页
已阅读5页,还剩90页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025/10/17机械电子工程教研室第4讲典型系统建模与仿真目标与要求:能够使用Simulink模块库对连续系统、离散系统和混合系统进行建模与仿真,并能使用M文件描述系统。教学内容:0动态系统;1连续系统的建模与仿真;2离散系统的建模与仿真;3混合系统的建模与仿真。2025/10/17系统数学模型

数学模型的类型一方面与所讨论的系统的特性有关,一般说来,系统有线性与非线性、静态与动态、确定型与随机型、微观与宏观、定常(时不变)与非定常(时变)、集中参数与分布参数之分。另一方面系统与研究系统的方法有关,此时有连续模型与离散模型、时域模型与频域模型、输入输出模型与状态空间模型之别。对应的表达方程式如下。数学模型表现形式(方程特性)线性线性方程非线性非线性方程静态联立方程、含有空间变量的偏微分方程动态含有时间变量的微分方程、差分方程、状态方程确定性不含随即变量的各类方程式随机性含随即变量的各类方程式2025/10/17机械电子工程教研室系统数学模型数学模型表现形式微观微分方程、差分方程、状态方程宏观联立方程、积分方程定常(时不变)不含对时间的系数项的各类方程式非定常(时变)含时间的系数项的各类方程式集中参数常微分方程分布参数偏微分方程连续微分方程离散差分方程参数数学表达式(各类方程)非参数图、表时域状态方程、微分方程、差分方程频域频率方程输入输出传递函数、微分方程状态空间状态方程2025/10/17机械电子工程教研室系统数学模型线性方程和非线性方程

线性模型是用来描述线性系统的,一般来说,线性模型一定满足下列算子运算:(A1+A2)X=A1·X+A2·XA1(

A2·

X)=A2(

A1·

X)叠加原理

A1(

X+Y)=A1·

X+A2·

Y

式中,X

和Y

为变量,A1

和A2为算子。非线性模型是用来描述非线性系统的,它们一般不满足叠加原理。●系统线性和关于参数空间线性的区别:如果模型的输出关于输入量是线性的,则称为系统线性。如果模型的输出关于参数空间是线性的,则称之为关于参数空间线性。以模型y=a0+a1·x+a2·x2

为例,输出y关于输入变量x是非线性的(因为不满足叠加原理),但关于参数a0,a1和a2却是线性的(满足叠加原理),因此,该模型是系统非线性,然而是关于参数空间线性的一种模型。2025/10/17机械电子工程教研室系统数学模型

本质线性与非本质线性的区别:如果模型经过适当的数学变换可将本来是非线性的模型转换为线性的模型,那么原来的模型称作非本质线性模型。例如,气体体积V与压强P和温度T之间的状态方程PV=RT

(R为气体通用常数)表面来看,输出V与输入P和T是非线性的,但是,如果经过如下数学变换:Y=logV,x1=-logP,x2=logT,a0=logR则状态方程

PV=RT变成y=a0+x1

+x2新的模型的输出y关于输入x1

和x2

是线性的,所以,理想气体状态方程是一种非本质线性方程。2025/10/17机械电子工程教研室系统数学模型定常与非定常模型系统的输出量不随时间变化而变化,即方程中不含时间变量,该系统的模型为定常(时不变)模型,否则为非定常(时变)模型。动态与静态模型

系统的活动,即系统的状态变化,总是同组成系统的实体之间的能量、物质的传递和变化有关,这种能量流的强度变化是不可能瞬间完成的,而总是需要一定的时间和一个过程,用以描述系统状态变化的过渡过程的数学模型称为动态模型,它常用微分方程来描述。而静态模型则仅仅反映系统在平衡状态下系统特征值间的关系,这种关系常用代数方程描述。2025/10/17系统数学模型微观与宏观模型

微观与宏观模型的差别在于,前者是研究事物内部为小单元的运动规律,一般用微分方程或差分方程表示,如流体微元的运动分析;后者是研究事物的宏观现象,一般用联立方程或积分方程模型。集中参数与分布参数模型

集中参数模型所描述的系统的动态过程可用常微分方程来描述,典型的例子如一个集中质量挂在一根质量可以忽略的弹簧上的系统。分布参数系统要用偏微分方程来描述,如一个管路中的流体的流动,若各点的速度相同,则此时流体的运动规律可作为集中参数系统来处理,否则,应作为分布参数系统来研究。2025/10/17机械电子工程教研室系统数学模型连续与离散模型当系统的状态变化主要表现为连续平滑时,该系统为连续系统;当系统的状态变化主要表现为不连续(离散)的运动时,则称该系统为离散系统。还有一类系统,虽然本身是连续的,但仅在指定的离散时间点上利用与变量有关的信息,这种系统为离散采集系统,或时间离散系统,对于这类系统,要考虑断续采样的影响问题。确定型与随机型模型

当一个系统的输出(状态和活动)完全可以用它的输入(外作用与干扰)来描述,则这种系统称为确定型系统。若一个系统的输出(状态和活动)是随机的,即对于给定的输入(外作用与干扰)有多种可能的输出,则该系统是随机型系统。2025/10/17机械电子工程教研室系统数学模型参数与非参数模型

参数模型即用属性表达式描述的模型,如各种方程;而非参数模型则不是用属性表达式而是用图(曲线)表示的,如阶跃响应曲线、频率特性。时域与频域模型在时间域和频率域内表示的数学模型分别称为时域模型和频域模型,如系统的过渡过程曲线和频率相应曲线。(输入输出模型与状态空间模型

只展现给定输入的系统输出而不提供系统内部有关信息的数学模型为输入输出模型;不仅能完全表达系统性能,而且还能描述系统内部全部状态的数学模型称作状态模型,如状态空间模型。2025/10/17系统数学模型应用——微分方程微分方程:是描述动态特性的系统行为方法之一。

如图所示的弹簧、质量、阻尼系统中,质量块上作用有简谐激振力P(t)=P0Sinωt

,质量为m,弹簧的弹性系数为K,粘性阻尼器的阻尼系数为C,分析其动力学特性。从力的平衡可以得到系统的运动微分方程为:2025/10/17机械电子工程教研室系统数学模型应用——传递函数传递函数:描述动态元件和系统的输入输出特性。

重写上面推导的微分方程为:

假设初始运动参数均为零,进行拉普拉斯变换,结果为:传递函数为:即:2025/10/17机械电子工程教研室系统数学模型应用——框图示例用框图利用时域和s域表示下面的数学表达式:时域S域2025/10/17机械电子工程教研室动态系统建模动态系统方框图表示动态系统既可以是连续系统,也可以是离散系统。例如汽车防抱死刹车系统,在真实系统中制动块在制动过程中,其强度变化是连续的,以制动块作为研究对象应建立其连续系统;但是若使用计算机控制制动块作用于四个车轮,从而引起轮速变化,那么计算机是以时钟频率为基础进行操作的;这时若以计算机操作为建模对象,那么所建动态系统应该是离散系统。2025/10/17机械电子工程教研室动态系统建模——差分方程针对于离散系统,要想描述其动态过程,则需要用差分方程,通常差分方程由两部分组成:输出方程和差分方程。输出方程是用系统的输入、先前的状态、参数和时间函数计算出给定时刻的系统输出响应。差分方程是用系统的输入、先前的状态、参数和时间函数计算当前时刻的系统状态。差分方程通常使用迭代求解。2025/10/17机械电子工程教研室动态系统建模——代数方程代数方程也是一种数学模型,它需要在每一时刻都求解系统的输出,其通常表达式如下:式中,t是时间参数,x是输入变量参数,y是输出变量参数,p是系统参数。对于简单系统,很容易求得系统的输入和输出,但是对于复杂系统尽可能使用数值求解方法,如迭代法等。2025/10/17机械电子工程教研室动态系统建模——代数方程Simulink建模的前提是用户要对研究的既定问题建立起相应的数学模型,也就是说Simulink动态系统仿真是以数学模型为前提的;而数学模型则是以客观存在的物理模型为前提的。因此要建立动态系统仿真模型,首先要建立其数学模型。示例5-1:将摄氏温度转换成开尔文温度。根据气体动理论可知摄氏温度转换成开尔文温度的代数方程如下:第一步分析。由给定的代数方程可以知道,需要的仿真模块有:constant常量模块、斜坡函数ramp模块、sum求和模块、scope显示模块和out输出模块。2025/10/17机械电子工程教研室动态系统建模——代数方程第二步建立模型窗口,选择所需模块。2025/10/17机械电子工程教研室动态系统建模——代数方程第三步将模块摆放到相应位置,并连线。2025/10/17机械电子工程教研室动态系统建模——代数方程第四步修改模块参数以及模块标签。2025/10/17机械电子工程教研室动态系统建模——代数方程第五步设置仿真模型的参数配置,使输入参数在规定的范围内。设置开始时间为0,终止时间为20秒,选择固定步长,龙格库塔法求解器,其他参数为默认参数。2025/10/17机械电子工程教研室动态系统建模——代数方程第六步设置输出Scope显示窗口参数,在此采用系统默认参数。第七步运行仿真模型。第八步双击Scope显示窗口,或者在命令窗口中输入>>plot(tout,yout),获得仿真曲线如图所示。2025/10/17机械电子工程教研室1动态系统仿真过程动态系统仿真过程是指利用模型所提供的信息计算在规定时间段内输入输出的过程。对于计算机而言,整个工作总体可以分为:编译阶段、模型链接阶段、仿真循环阶段、求解阶段、保存与输出仿真结果阶段。2025/10/17机械电子工程教研室动态系统仿真过程——编译阶段在模型编译阶段,首先,Simulink调用模型编译器,由模型编译器把模型转换为可执行形式,这个转换过程称为编译。在这个阶段,Simulink编译器执行下列工作:

(1)求取模型中模块的参数表达式,用以确定表达式的值。

(2)确定模型中未明确指定的信号属性,如信号名称、数据类型、数值类型和信号维数,并检查每个模块输入端可允许的输入信号。2025/10/17机械电子工程教研室动态系统仿真过程——编译阶段

(3)执行模块优化。

(4)用原子系统所包含的模块替代原子子系统,并平铺模型层次。

(5)将模块进行排序,并排列仿真过程中模块的执行顺序,当模型进入仿真执行阶段时,将按照此时的排列顺序执行模块。

(6)对于用户未明确指定采样时间的模块,确定所有这些模块的采样时间。

在仿真过程中,Simulink会在每个时间步内更新一次模型中模块的状态和输出,模块的更新顺序是根据模块类型决定的,Simulink按照一定的方式对模块进行排序。2025/10/17机械电子工程教研室动态系统仿真过程——模型连接阶段

在模型链接阶段,Simulink会为方块图执行过程中的信号、状态和运行时间等参数分配内存,它也会为每个模块中存储运行信息的数据结构分配并初始化内存。对于内嵌模块,模块中主要的运行时间数据结构称为SimBlock,它存储指向模块输入和输出缓存、状态、工作向量的指针。

在这个阶段,Simulink也会创建方法执行列表,这个列表列出了执行模型中模块方法计算模块输出的最有效顺序,Simulink使用在模型编译阶段生成的排序列表来构造方法执行列表。用户也可以指定模块的更新优先权,Simulink会在低优先权模块之前执行高优先权模块的输出方法。

2025/10/17机械电子工程教研室1动态系统仿真过程——仿真循环阶段至此,仿真进入执行阶段。在这个过程中,Simulink利用模型提供的信息,每隔一段时间计算由仿真起始时间到终止时间之间的系统状态和输出。计算状态和输出的这些连续的时间点被称为时间步(timesteps),两个时间步之间的长度称为步长(stepsize),步长的大小取决于用来计算系统连续状态的算法、系统的基本采样时间以及系统的连续状态中是否有不连续因素。

仿真循环阶段包括两个子阶段:循环初始化阶段和循环迭代阶段。初始化阶段在循环过程中只执行一次;迭代阶段在整个仿真过程中的每个时间步内都要重复一次。2025/10/17机械电子工程教研室1动态系统仿真过程——仿真循环阶段在仿真开始时,Simulink首先确定被仿真系统的初始状态和输出。在每一步仿真中,Simulink重新计算系统新的输入值、状态值和输出值,并更新模型以反映所计算的值。当仿真结束时,模型反映的是系统输入、状态和输出的最终值,而且,Simulink还提供了数据显示和记录模块,用户可以在模型中添加这些模块以显示和(或)记录中间的结果数据。2025/10/17机械电子工程教研室1连续系统仿真——微分方程的实现对于大多数的连续系统,其系统方程多是由各阶导数组成的微分方程,求解微分方程可以使用不同的积分算法。Simulink把动态系统模型转变为“状态空间”表达式的形式供求解器使用,而求解器则使用一种非常具体的系统表达式求解系统。这个表达式为:

离散系统→更新方程→输出方程2025/10/17机械电子工程教研室连续系统仿真——微分方程的实现更新方程利用状态前一时刻的值计算当前值,输出方程使用当前的状态值计算当前的输出值,与先前的状态值没有关系。

连续系统在连续系统中,状态的表达式包含状态的一阶导数,在大多数情况下,x是一个向量,它包含若干个状态。2025/10/17机械电子工程教研室连续系统仿真——微分方程的实现在Simulink中,实现微分方程的第一步是确定模型中所需要的Integrator模块的数目,这一点非常重要,因为积分器模块是建立微分方程的基础,一个积分器就表示一阶微分。例如,如果方程中包含y的二阶导数,则需要两个积分器:一个输入d2y/dt2,并且输出dy/dt;第二个输入dy/dt,并且输出y。下图表示的是用Simulink中积分器模块搭建的二阶微分,它说明了变量、变量一阶导数、变量二阶导数之间的关系。2025/10/17机械电子工程教研室1连续系统仿真——微分方程的实现注意:在每个积分器模块中,应当给出状态的初始条件。由于求解器处理连续状态的方式所决定的,不提倡使用导数模块以相反的方式建立模型方程,即Continuous模块库中的Derivative模块,因而只有当微分方程中包含输入的导数时才可使用导数模块,因为这时的输入是已知的。2025/10/17机械电子工程教研室1连续系统仿真——微分方程的实现

Simulink模型指定了模型连续状态的时间导数,但并没有给出状态自身的值。这样,当仿真一个系统时,Simulink求解器必须对状态的微分值进行多次积分以计算连续状态值。Simulink使用的是数值积分算法中最稳定、最高效且精度最好的ODE(常微分方程,OrdinaryDifferentialEquation)算法。用户可以在模型中直接指定这些算法求解器,也可以在运行仿真时指定求解器。2025/10/17机械电子工程教研室1连续系统——连续时间模型连续时间模型:系统的输入、输出和内部变量都是关于时间的连续函数。常见模型常微分方程(组)传递函数状态空间结构框图/信号流图2025/10/17机械电子工程教研室1连续系统——线性连续系统严格说来,一个具体的物理系统通常都是非线性系统,而且是以分布参数的形式存在的,但是由这样的非线性系统建立的数学模型,在需要求解非线性方程和偏微分方程时,是非常困难的。因此,在误差允许的范围内,可以将非线性模型线性化,或者直接用线性集总参数模型描述物理系统。

Simulink中的Continuous模块库提供了适用于建立线性连续系统的模块,包括积分器模块、传递函数模块、状态空间模块和零-极点模块等,这些模块为用户以不同形式建立线性连续系统模型提供了方便。2025/10/17机械电子工程教研室1连续系统——线性连续系统2025/10/17机械电子工程教研室1连续系统——传递函数表达式

传递函数仅适用于单输入单输出的线性定常系统,是线性系统的时域表达式,初始条件为零。

如果连续系统是线性时不变系统,则可以考虑将表达式进一步简化。对微分方程(假定初始状态为0)使用拉普拉斯变换推导出输入/输出关系,从而得出系统的传递函数表达式,拉普拉斯变换保持了模型的线性关系。

以下图中的弹簧—质量—阻尼器系统为例,设k为弹簧的弹性系数,f为阻尼系数,试建立输入为外力u(t),输出为位移y(t)的系统方程。2025/10/17机械电子工程教研室1连续系统——传递函数表达式根据牛顿定律可写出系统的动态方程如下:利用拉普拉斯变换,弹簧—质量—阻尼器微分方程可以转化为传递函数形式:2025/10/17机械电子工程教研室1连续系统——传递函数表达式用户可以利用Continuous模块库中的TransferFcn模块表示传递函数。TransferFcn模块实现的是如下形式的传递函数:2025/10/17机械电子工程教研室1连续系统——传递函数表达式这里,n和m分别是分子和分母的系数数目,num和den参数包含着s按降幂排列的分子和分母系数,num可以是向量或矩阵,den则必须是向量。这两个参数的数值均在TransferFcn模块对话框内指定,分母的阶数必须大于或等于分子的阶数,即m≥n。

TransferFcn模块的初始条件被重置为0。如果需要指定初始条件,则可以用tf2ss命令将模型传递函数转换为状态空间形式,然后使用State-Space模块。tf2ss命令为系统提供了状态空间表达式中的A、B、C和D矩阵。2025/10/17机械电子工程教研室1连续系统——空间状态表达式状态空间表达式不仅适用于单输入单输出系统,也适用于多输入多输出系统。这些系统可以是线性的或非线性的,也可以是定常的或时变的,它是系统的时域表示,允许非零值的初始条件。

状态空间表达式由状态方程和输出方程组成。状态方程是一个一阶微分方程组,它描述系统输入与系统内部状态变化之间的关系,即描述系统的内部行为;输出方程是一个代数方程,它描述系统状态和输出的关系,即系统的外部行为。Continuous模块库中的State-Space模块实现的是如下形式的状态空间方程:2025/10/17机械电子工程教研室1连续系统——空间状态表达式这里,x是状态向量,u是输入向量,y是输出向量。方程中的矩阵系数必须满足如下条件:

A必须是n × n矩阵,n是状态个数;

B必须是n × m矩阵,m是输入个数;

C必须是r × n矩阵,r是输出个数;

D必须是r × m矩阵。2025/10/17机械电子工程教研室1连续系统——空间状态表达式

State-Space模块接受一个输入,产生一个输出,输入向量的宽度由B矩阵和D矩阵的列数决定,输出向量的宽度由C矩阵和D矩阵的行数决定。需要注意的是,这样的表达式并不是唯一的,但总是可能的,这是表达线性系统时最常用的方法,因为它能够在得到输入和输出的同时得到状态。在推导出的弹簧—质点—阻尼系统的表达式中,位置和速度为系统状态,加速度不是状态,因为它的导数没有包含在表达式中。一般,每个表达式中的状态数量是相同的,但是每个状态不一定与一个物理量相对应。弹簧—质点—阻尼系统的状态空间表达式为:2025/10/17机械电子工程教研室1连续系统——空间状态表达式2025/10/17机械电子工程教研室1连续系统——零极点表达式

零—极点表达式与传递函数相同,Continuous模块库中的Zero-Pole模块实现零—极点形式的表达式。对于MATLAB中的单输入单输出系统,零—极点表达式的形式为这里,Z表示零点向量,P表示极点向量,K是增益。模型方程中的极点数目必须大于或等于零点数目。Zero-Pole模块的输入和输出宽度等于零点矩阵的行数。2025/10/17机械电子工程教研室1连续系统——零极点表达式对于一个特定的动态系统,无论是使用积分器模块、传递函数、状态空间或零—极点表达式,在给定相同输入和相同初始条件下,系统的输出响应应该是一致的。以下面的微分方程为例:系统的传递函数形式为系统的零—极点表达式为2025/10/17机械电子工程教研室1连续系统——示例示例:

蹦极跳系统。

想象一下,当你系着弹力绳从桥上跳下来时,会发生什么?这里,我们以蹦极跳作为一个连续系统的例子。按照物理规律,自由下落的物体满足牛顿运动定律:F=ma。在这个系统中,假设绳子的弹性系数为k,它的拉伸影响系统的动力响应。如果定义人站在桥上时绳索下端的初始位置为0位置,x为拉伸位置,那么用b(x)表示绳子的张力,这个影响可以表示为2025/10/17机械电子工程教研室1连续系统——示例设m为人的质量,g是重力加速度,a1、a2是空气阻尼系数,则系统方程可以表示为在MATLAB中建立这个方程的Simulink模型,这里需要使用两个积分器,因为方程中包含的导数的最高阶数为2,一旦x及其导数模型建立完毕,则可以使用一个增益模块(Gain模块)表示空气阻力比例系数,并使用Function模块表示空气阻力中的非线性部分。因为b(x)是通过门槛为0的x条件式确定的,所以这里使用一个Switch模块来实现判断条件。最终的系统Simulink模型方块图如下图所示。2025/10/17机械电子工程教研室1连续系统——示例2025/10/17机械电子工程教研室1连续系统——示例1连续系统——示例设起始位置为绳索的长度30米,起始速度为0,这两个初始值在仿真参数对话框的WorkspaceI/O页内设置。未伸长时绳索的端部距地面为50米,因此,为了得到更真实的曲线,将输出位置减去50。人的质量为90kg,g为9.8m/s2,弹性系数k为20,a1和a2均为1。

运行这个系统,利用示波器查看输出轨迹,如上图所示,可以看到,跳跃者已经撞到了地上!2025/10/17机械电子工程教研室1连续系统——示例

示例

汽车动力学系统。

建立一个行驶控制系统,实现简单的汽车动力学系统。使用一个幅值为500、频率为0.002Hz的方波作为输入信号,汽车的质量m=1000,阻尼因子b=20。

解答:

速度动力学方程为2025/10/17机械电子工程教研室1连续系统——示例根据系统要求,选择的Simulink模块组件如下:

Sources库中的SignalGenerator模块,设置Waveform参数为square,amplitude参数为500,frequency参数为0.002,units设置为Hz。

MathsOperations库中的Gain模块和Sum模块。

Continuous库中的Integrator模块。

Sinks库中的Scope模块。

建立的系统模型如下图(a)所示。为了观察系统的动态行为,可将信号发生器的周期设得足够长,这里设置仿真时间为1000个时间单位,初始条件为零。运行仿真,得到的输出速度曲线如下图(b)所示。2025/10/17机械电子工程教研室1连续系统——示例(a)(b)1连续系统——示例示例3

通信信道。

实现一个信道的动态模型,输入为AM调制信号,在模型中加性噪声干扰,噪声方差为0.01,信号经过大小为1024的缓冲区延迟,信道的动态方程为在示波器中观察输出波形,并尝试使用不同的求解器。2025/10/17机械电子工程教研室1连续系统——示例求解:

通信信道的动态方程转换为传递函数后的形式如下:根据系统要求,选择的Simulink模块组件如下:

Sources模块库中的RandomNumber模块,将模块对话框中的Variance方差设为0.01,Sampletime设为0.001。

Continuous模块库中的TransportDelay模块,设置对话框中Timedelay为1,Initialbuffersize为1024。

Continuous模块库中的TransferFcn模块。

Sinks模块库中的Scope模块。2025/10/17机械电子工程教研室1连续系统——示例最后建立的系统模型如下图(a)所示。在仿真参数对话内选择一种求解器,这里选择变步长ode23s求解器,仿真时间为10个时间单位,得到的输出波形如下图(b)所示。

模型中使用了一个TransportDelay模块,TransportDelay模块将输入信号延迟给定的时间量值,因此可以用它来仿真时间延迟。在仿真开始时,模块输出的是初始输入(Initialinput)参数值,直至仿真时间超过时间延迟(Timedelay)参数值,在此时刻之后模块开始生成被延迟的输入。Timedelay必须是非负值。2025/10/17机械电子工程教研室1连续系统——示例(a)2025/10/17机械电子工程教研室1连续系统——示例(b)2.离散系统仿真——差分方程的实现离散系统是包含有离散状态的系统。Simulink可以仿真离散系统,包括组件以不同速率工作的系统(即多速率系统)和由离散组件和连续组件混合组成的系统(即混合系统)。

在离散系统中,一个状态实际上是一个存储元素,它在一定的周期内保存输入或输出值,这个周期称为这个系统的采样时间。采样时间是离散系统中的一个最重要特性,在Simulink中的所有离散模块中都要给出采样时间,一个离散状态实际上储存的就是上一个采样时刻的信号值。2.离散系统仿真——差分方程的实现离散系统通常用差分方程描述,因为系统当前时刻的输出通常依赖于当前时刻的输入和过去时刻的输入和输出量,例如:在Simulink中,为了实现差分方程,需要一个能够在时间步上提供y(n-1)和u(n-1)的模块,Simulink提供了一个Discrete离散模块库,如图6-3所示。用户可以利用离散模块库中的UnitDelay(单位延迟)模块来实现上述功能。UnitDelay模块是建立离散系统的基础,因为它给出了状态,用来计算系统的输出。2.离散系统仿真——差分方程的实现要实现上面的差分方程,第一步就是确定方程中所需要的UnitDelay模块的数目。这里有两点是必需的:一是y(n-1)来自于y(n);二是u(n-1)来自于u(n)。如果方程中还包含y(n-2),那么这个值应当通过y(n-1)经由另外一个UnitDelay模块传递,然后,以单位延迟模块开头,把它的输入、输出分别标志为(y(n),y(n-1),u(n),u(n-1)),并建立代数关系。2.离散系统仿真——差分方程的实现2.离散系统仿真——差分方程的实现接下来需要设置初始状态和采样时间。Discrete模块库中的所有模块在使用时都应该指定采样时间,这可以通过模块对话框中的Sampletime参数设置,也可以通过前级提供输入的模块明确采样时间,也就是继承前级模块的采样时间,这种情况下采样时间应设置为-1。大多数标准的Simulink模块都可以继承与模块输入相连接模块的采样时间,但Continous库中的模块和没有输入的模块(如Sources库中的模块)是个例外。另外一个有关的参数就是模块输出的初始值。2.离散系统仿真——指定采样时间Simulink允许用户指定任何包含Sampletime参数的模块的采样时间,可以在模块参数对话框中的Sampletime文本框内设置采样时间。用户既可以将采样时间指定为常数,也可以用向量的方式[Ts,T0]表示采样时间,其中第一个元素表示采样时间,第二个元素表示偏差值,不同的采样时间和偏差值都有特定的含意。

指定模块在仿真时刻tn=n*Ts+|T0|处进行更新。这里,n是1~Tsim/Ts之间的整数,Tsim是整个仿真时间,T0是偏差值。

2.离散系统仿真——指定采样时间在仿真编译阶段,Simulink依据模块的Sampletime参数(如果模块有该参数)、采样时间的继承性或模块类型(Continuous模块总是具有连续采样时间)来确定模块的采样时间,这就是被编译的采样时间,它确定了仿真过程中模块的采样频率。用户可以通过先更新模型,然后用get-param命令获得模块CompiledSampleTime参数的方法来确定模型中任意模块的被编译采样时间。2.离散系统仿真——采样时间的传递Simulink中模块的采样时间可以传递给下一个模块。以下图中的模型为例,模型中DiscreteFilter(离散滤波器)模块的采样时间为Ts,它驱动Gain模块。2.离散系统仿真——采样时间的传递由于Gain模块的输出等于输入乘以常数,因此它的输出与滤波器的输出以相同的速率改变。换言之,Gain模块的采样速率与滤波器的采样速率相同。这是Simulink中采样时间传递的基本机制。

如果在模块的参数对话框中把模块的Sampletime参数设置为-1,那么该模块就要继承其输入模块的采样时间。Simulink按照下列规则指定模块的采样时间:

如果与模块相连的所有输入都有相同的采样时间,那么Simulink会把这个采样时间赋值给该模块。2.离散系统仿真——采样时间的传递在有些情况下,Simulink也把采样时间向后传递给源模块,但这必须在不影响仿真输出的情况下才可以。例如,在下图所示的模型中,Simulink认为SignalGenerator模块驱动Discrete-TimeIntegrator模块,因此,它指定SignalGenerator模块和Gain模块与Discrete-TimeIntegrator模块具有相同的采样时间。

用户可以选择Simulink模型窗口中Format菜单的Port/SignalDisplays子菜单下的SampleTimeColors命令来证明这一点,此时所有的模块均被标记为红色,。2.离散系统仿真——采样时间的传递若用连续积分模块Integrator代替Discrete-TimeIntegrator模块,并选择模型窗口中Edit菜单下的UpdateDiagram命令为模型重新绘色,这会使SignalGenerator模块和Gain模块变成连续模块,并重新标记为黑色,如下图所示。2.离散系统仿真——示例

示例

人口的动态变化。

这个例子通过一个非线性离散模型描述人口的动态变化。一年的人口依赖于:

前一年的人口;

人口的繁殖速率r,这里假设r=1.05;

资源K,这里K=1e6;

人口的初始值是必不可少的,假设初始值为100000。2.离散系统仿真——示例整个系统的动力学模型由下面的差分方程给出:2.离散系统仿真——示例

解答:

在建立差分方程的Simulink模型时,可以看到,当年的人口数由上一年的人口数推导得出,因此利用一个延迟模块UnitDelay,将p(n)输入给延迟模块,得到输出p(n-1),p(n)表达式包含p(n-1)项和常数项;这个系统没有输入,只需给出人口的初始值便可,这里给定初始值p(0)为100000。建立的系统模型如下图(a)所示。仿真这个系统的100个时间单位,可在示波器内观察仿真结果,如下图(b)所示。2.离散系统仿真——示例(a)2.离散系统仿真——示例(b)2.离散系统仿真——线性离散系统尽管这里提出的方法可以适用于所有的离散系统,但对于一个线性时不变系统,则可以利用Z变换建立系统的传递函数,Z变换可以保持系统的线性特性。Discrete模块库中提供了建立线性离散系统模型时使用的DiscreteTransferFcn模块、DiscreteFilter模块和DiscreteZero-Pole模块。

1.离散传递函数

DiscreteTransferFcn模块主要是控制工程人员以z多项式形式描述离散系统。DiscreteTransferFcn模块可实现如下标准形式的传递函数:2.离散系统仿真——线性离散系统-离散滤波器DiscreteFilter模块实现IIR和FIR滤波器,用户必须以z-1的降幂排列指定分子和分母系数。DiscreteFilter模块通常是信号处理人员以z-1多项式形式描述数字滤波器,当分子系数向量与分母系数向量等长度时,离散传递函数和离散滤波器这两种方法是完全相同的,即这里,m+1和n+1分别是分子和分母系数的总和,num和den包含z-1按升幂排列的分子和分母系数,分子的阶次必须大于或等于分母的阶次。2.离散系统仿真——线性离散系统-示例示例

离散解调器。

离散滤波器的差分方程如下:利用AM调幅信号作为源信号,将发射信号与离散载波信号相乘(频率=100Hz,采样时间=5ms),将产生的信号通过离散滤波器,在示波器上显示发射信号和输出信号。2.离散系统仿真——线性离散系统-示例解答:

将离散滤波器的差分方程转换为以z-1形式表示的离散滤波器方程:根据系统要求,选择的Simulink模型组件如下:

AM调制信号;

Sources库中的SineWave模块;

MathOperations库中的Product模块;

Discrete库中的DiscreteFilter模块;

Sinks库中的Scope模块。2.离散系统仿真——线性离散系统-示例设置DiscreteFilter和SineWave模块中的采样时间为0.005s,也可以用DiscreteTransferFunction模块代替DiscreteFilter模块,此时离散滤波器的差分方程可以转换为z形式的标准离散传递函数。最后的系统模型图如下图(a)所示。选择变步长ode45算法,仿真时间为10个单位,仿真后的输出信号波形如下图(b)所示。2.离散系统仿真——线性离散系统-示例(a)2.离散系统仿真——线性离散系统-示例(b)3.混合系统仿真混合的连续离散系统由离散模块和连续模块组成,这样的系统可以使用任何一种求解器进行仿真,尽管某些求解器可能比另一些求解器更高效和精确。变步长求解器充分考虑了仿真步长与离散采样时间相匹配的问题,所以对于混合系统应该选择一个变步长求解器。对于大多数混合的连续离散系统,Runge-Kutta(龙格-库塔)变步长求解器ode45和ode23比其他求解器在效率和精确度上都有优越性。由于离散模块中的不连续性与采样保持相关联,因此对于混合的连续离散系统不推荐使用ode15

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论