要模拟一个动态系统,您需要在指定的时间跨度内按连续的时间步骤计算它的状态。这种计算使用系统模型提供的信息。时间步骤是在计算发生时的时间间隔。调用此时间间隔的大小步长.以这种方式计算模型的状态的过程称为解决该模型。没有单一解决模型的方法适用于所有系统。金宝appsimulink.®提供了一组名为解决者.每个求解器都包含一种解决模型的特定方法。
求解器应用数值方法来求解表示模型的常微分方程组。通过计算,确定了下一个仿真步骤的时间。在解决这个初值问题的过程中,求解器也满足您指定的精度要求。
数学家们已经发展了各种各样的数值积分技术来解决表示动态系统连续状态的常微分方程(ode)。提供了一组广泛的固定步长和变步长连续求解器,每一个都实现了特定的ODE求解方法(参见比较求解器)。选择求解器求解器模型配置参数窗格。
所有求解器由MATLAB提供®和Sim金宝appulink遵循类似的命名约定:颂
,后跟两三个数字,表示求解器的订单。一些求解器可以解决硬差动方程,并且它们使用的方法表示年代
,t
,或结核病
后缀。
模拟模型的合适求解器取决于以下特征:
系统动力学
解决方案稳定性
计算速度
求解鲁棒性
因此,由Simulink提供的数值求解器可以大致分为两个性质。金宝app
计算步长类型
固定步长求解器,顾名思义,从模拟的开始到结束使用相同的步长来求解模型。您可以指定步长或让求解器选择它。一般来说,减小步长可以提高结果的准确性和模拟系统所需的时间。
可变步骤求解器在仿真期间改变阶梯尺寸。这些求解器减少了在模型模拟期间在某些事件中提高精度的步骤,例如快速状态变化,过零事件等。此外,它们增加了阶梯尺寸,以避免在模型的状态时采取不必要的步骤慢慢改变。计算步骤大小在每个步骤中添加到计算开销。但是,它可以减少总步数,因此需要对具有零交叉,快速改变状态和需要额外计算的其他事件来维持指定准确度的模拟时间所需的模拟时间。
模型状态
连续求解器使用数值积分来计算基于先前时间步骤和状态衍生物处的状态的当前时间步骤中的模型的连续状态。连续求解器依赖于各个块来计算每个时间步骤的分立状态的值。
离散求解器主要用于求解纯离散模型。它们只计算模型的下一个仿真时间步长。当它们执行这种计算时,它们依赖于模型中的每个块来更新其单独的离散状态。它们不计算连续状态。
使用迭代方法为您的需求选择一个求解器。比较几个求解器的模拟结果,选择一个以最小代价提供最佳性能的求解器。
以这些方式为模型选择一个求解器:
使用自动求解器。默认情况下,新模型将其求解器选择设置为自动求解器。Auto Solver为您的模型建议固定步骤或可变步骤求解器以及最大步长。有关更多信息,请参见使用自动求解器选择求解器.
如果您对使用自动求解器的仿真结果不满意,请在“中”中选择一个求解器求解器窗格在模型配置参数中。
当您构建和模拟一个模型时,您可以根据模型的动态来选择求解器。变步长求解器更适合于纯连续模型,如质量弹簧阻尼器系统的动力学。对于包含多个开关的模型,如逆变电源系统,建议使用固定步长求解器,因为求解器复位的次数会导致变步长求解器的行为类似于固定步长求解器。
请注意
当您将模型作为生成的代码部署时,您只能使用固定步骤求解器。如果在模拟期间选择了可变步长求解器,则使用它来计算部署时所需的固定步长求解器所需的步长。
此图表在Simulink库中提供了广泛的求解器分类。金宝app
要定制所选择的求解器,请参阅检查和提高模拟精度.
理想情况下,您选择的求解器应该:
成功求解模型。
对于可变步长求解器,在您指定的公差限制范围内提供解决方案。
在合理的时间内求解模型。
单个求解器可能无法满足所有这些目标。尝试在选择选择之前使用不同的求解器进行模拟。
Simu金宝applink库提供了几个求解器,所有这些都可以与代数循环求解器一起工作。有关更多信息,请参见代数循环求解器如何运作.
解算器类型 | 显式或隐式 | 离散的 | 连续 | Variable-Order |
---|---|---|---|---|
固定步 | 显式的 | 不适用 | 固定步长连续显式求解 | 不适用 |
隐式的 | 不适用 | 固定步骤连续隐式求解器 | 不适用 | |
可变步骤 | 显式的 | Simulink中的可变步骤求解器金宝app | 变步长连续显式求解器 | 单阶与变阶连续求解器 |
隐式的 | 可变步骤连续隐式求解器 | 单阶与变阶连续求解器 |
在里面求解器面板中的模型配置参数,将Simulink库中的求解器分为两大类。金宝app看到固定步长与可变步长求解器.
有关其他方法来比较索盘,请参阅: