解算器是Simulink的重要组成部件,Simulink中提供了一系列解算器集合,内部集成了各种不同的数值解算方法,每一种解算器都能够对模型所表示的常微分方程组进行求解并计算下一个采样点时间,并根据模型提供的初始值和设置的误差容限计算出数值解。计算器主要分为固定步长解算器与变步长解算器两种类型,每一种类型中又可以分为支持离散解算器或连续解算器、显示或隐式解算器、单步或多步解算器、单阶或多阶解算器等。
1. 固定步长解算器
步长是前后两个相邻采样点之间的时间间隔。按步长是否变化,可分为固定步长解算器及变步长计算器,前者的步长是固定常数,后者步长在每一个采样点计算时都可能是变化的,具体是增大还是减小取决于每个采样点模型状态值变化的快慢:当模型状态值变化很快时减少步长,反之增大步长。这两种计算器之所以能够计算下一个时刻的采样时间,正是基于当前时刻加上一个步长得到的。二者并没有绝对的优劣,根据应用的场合决定采用哪种解算器。
在仿真模型中,如果仿真时间较长,在某一给定的仿真精度下,采用固定点解算器需要仿真很多采样点,如采用变步长解算器,可根据误差容限动态调整步长大小,在误差容限允许的范围内可以放大步长,使整个仿真过程中需要计算的采样点数减少,最终使得仿真过程在相对较短的时间内结束。
2. 离散解算器或连续解算器
当在配置参数页面选择了固定步长或变步长解算器后,就可以选择具体的某种解算算法。
根据所支持的解算对象不同分为连续解算器或离散解算器。这两种解算器都依赖于模型中的具有连续或离散状态变量的模块来工作。具有离散状态量的模块负责在离散解算器作用下的每个采样时间点计算离散状态变量的值,具有连续状态量的模块在连续解算器作用下使用连续数值积分方法求解连续状态量的数值。
3. 显式解算器或隐式解算器
这里所说的显式或隐式是指求解方程是显式或隐式的。显式方程明确表示求解的对象和求解表达式,隐式方程则没有将求解对象单独放到等号一侧。
通常,隐式解算器用于求解刚性系统,显式解算器用于求解非刚性系统,所谓刚性系统,是在时间间隔很小的情况下才会稳定,时间间隔稍微增大一点就不再稳定的系统。相对于显式解算器,隐式解算器对于震荡行为的求解具有更高的稳定性。但是由于解算过程中产生雅可比矩阵,使用类牛顿法在每一个采样时刻计算代数方程,比较费时间。为了降低时间花费,隐式解算器提供了一个参数供用户选择,合适的设置能够提高解算器的时间效率。如下图所示。