您的位置:首页 > 其它

Simulink学习笔记4--Simulink动态系统建模

2016-01-22 09:39 1536 查看
本节主要解决5个问题:

1.动态系统建模要素

在Simulink中建立动态系统模型的几个关键概念。

2.开放式动态系统建模

什么是动态系统?Simulink与第三方组件创建动态模型的方式有哪些?

3.动态系统分类

动态系统分析和设计中使用的数学模型的类型,包括如何用采样时间将系统分为连续系统、离线系统和混合系统。

4.建立方程模型

说明在Simulink中建立动态系统数学模型的过程。

5.Simulink建模提示

给出Simulink中创建模型的某些注意事项,这对于正确建立用户模型是很重要的。

1.动态系统建模要素

1.1动态系统:系统状态随时间变化或按照某种确定规律随时间变化的系统。

1.2动态系统的特点:状态变量随时间变化,系统输出由状态变量随时间变化的信息描述,状态变量的持续性。

1.3Simulink仿真动态模型包括两个过程:①利用Simulink的模块建立仿真系统的模块方块图,系统模型描述了系统中的输入、输出、状态和时间的数学关系;②根据用户输入的模型信息使用Simulink在一个时间段内仿真动态系统。

1.4动态系统的数学模型是由一组方程表示的。

1.5Simulink方块图:是动态系统数学模型的图形化描述,方块图模型所描述的数学方程就是代数方程、微分方程以及差分方程。每个Simulink模块都与一组系统函数对应,系统函数指定了模块的输入、状态和输出间的时间关系。

1.6系统函数包括:输出函数f0,更新函数fu,微分函数fd。其中输出函数表示系统输出、输入、状态和时间的关系;更新函数表示系统离散状态的将来值与当前时刻、输入和状态间的关系;微分函数表示系统连续状态对时间的微分、模块当前状态值和输入间的关系。

输出函数:y=f0(t,x,u)

更新函数:xd(k+1)=fu(t,x,u)

微分函数:xc’=fd(t,x,u)

x为状态变量, t是当前时间,u是模块的输入,y是模块的输出,xd是模块离散状态的微分,xc’是模块连续状态的微分。

Simulink仿真过程就是利用系统函数计算系统的状态值和输出值的过程。

1.7状态

状态决定了系统的输出,状态的当前值是模块前一个时刻的状态与前一个时刻输入值的函数,所以状态是保持的,需要保存前一个时刻的状态。

Simulink模型有两种状态类型:离散状态和连续状态。连续状态是连续变化的,离散装填是连续状态的近似,在有限的时间间隔内进行更新。

1.8模块参数:Simulink许多标准模块的关键属性是可参数化的,而且在仿真过程中是可调的。

1.9模块采样时间

Simulink模块包括连续模块和离散模块,连续模块可以有无限小的采样时间,成为连续采样时间;离散模块可以通过Sample Time参数指定采样时间,在连续的两个采样时刻间会一直保持其输出值。

1.10用户模块

1.11系统和子系统

1.12Simulink信号

1.13模块方法和模型方法

1.14仿真算法

定步长算法和变步长算法

连续算法和离散算法

2.Simulink开放式动态系统建模

Simulink不仅提供了丰富的内嵌模块,而且还允许用户创建自己的模块类型,提供开放式的用户接口。

3.动态系统数学模型分类

在动态系统分析和设计中,有四种常用的数学模型类型:常微分方程(ODEs)、差分方程、代数方程和混合方程。

注:

(1)在解常微分方程时,不建议使用导数模块,而是用积分模块,这是Simulink求解器处理连续状态的方式决定的,所以常微分方程求解时,在每个积分块中给出各变量的初始条件,然后利用原始方程建立各个状态间的代数关系。只有当微分方程中包含输入的导数时才可以使用导数模块(这时的输入是已知的)。

(2)定步长算法实质是用指定的方法计算系统系统下一时刻(采用固定时间间隔)的连续状态;变步长算法实质是用隐式或显式计算下一个非周期时刻的连续状态值。通常,变步长算法用误差控制来调整采样时间间隔的大小,以使系统满足希望的误差容限。

4.建立方程模型

4.1代数方程:按照方程从右往左的顺序建立。

4.2常微分方程:也是按照从有往左的顺序建立,但是建立的时候,用积分器对状态微分进行积分,利用积分器循环的方式实现循环。特别的是,可以利用传递函数建立常微分方程,使模型更简单。

4.3选择最佳的数学模型:

对于一个系统有多种建模的方法,选择一个最佳的数学模型进行建模,可以使Simulink执行的更快速、更准确,这需要积累经验,并了解Simulink执行仿真时的内部机制。

特别需要说明的是,如果有可能,尽量避免公式中引入微分,因为微分模块在系统中产生了一个不连续点。Simulink使用数据积分来求解动态模块,为了满足精度限制,这些积分算法利用小步长进行方程解算,如果微分模块产生不连续点太大,那么解算时小步长是无法求解该微分模块的。

因此,建模的时候,把含有微分的项放在左侧,从右侧开始,利用积分器建立仿真模型。

4.4避免无效循环:Simulink允许直接或间接将模块的输出连接到输入,从而创建一个循环,循环是非常有用的,利用在方块图中利用循环求解常微分方程,或者建立反馈控制系统模型,但也有可能会常见Simulink无法仿真的循环。为了检测模型中是否包含无限循环,可以用Update diagram命令,如果模型中包含无效循环,则Simulink会高亮显示该循环,同时在Diagnostic Viewer(诊断查看器)中会显示一个错误的消息。

5.建模建议

5.1内存问题:内存越大,Simulink性能越好

5.2层级关系:复杂的模型,在模型中增加子系统层级组合模型,组合模型可以简化顶级模型,这样有利于阅读和理解模型。

5.3整理模型:合理地添加模型说明和模型标注。

5.4建模策略:可以创建自己常用的模块,放入用户模块库,以长期使用。

5.5创建建议:草稿上设计模型,然后计算机上创建模型。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Simulink