使用Control System Toolbox™软件的控制设计和线性分析技术需要线性模型。在线性化模型之后,可以在这些应用程序中使用估计的非线性模型。将模型线性化后,可以使用该模型进行控制设计和线性分析。
系统识别工具箱™软件提供了两种方法来计算的线性近似非线性ARX和Hammerstein-Wiener模型。
为计算给定输入信号的非线性模型的线性近似,使用linapp
命令。结果模型仅对用于计算线性近似的相同输入有效。有关更多信息,请参见给定输入的非线性黑箱模型的线性逼近.
如果你想要非线性动力学的切线近似,在系统工作点附近是精确的,使用线性化
命令。得到的模型是系统关于工作点的一阶泰勒级数近似,它由常数输入和模型状态值定义。有关更多信息,请参见非线性黑箱模型的切线线性化.
linapp
在均方误差意义下,计算给定输入或随机生成输入的非线性ARX或Hammerstein-Wiener模型的最佳线性近似。所得到的线性模型可能只对与您用于生成线性近似的输入信号相同的输入信号有效。
linapp
估计在结构上与原始非线性模型相似的最佳线性模型,并在给定输入和非线性模型的相应模拟响应之间提供最佳拟合。
为了计算一个给定输入的非线性黑盒模型的线性近似,你必须有这些变量:
linapp
使用指定的输入信号来计算线性近似:
对于非线性ARX模型,linapp
使用相同的模型阶估计线性ARX模型na
,注
,nk
作为原始模型。
对于Hammerstein-Wiener模型,linapp
使用相同的模型阶数估计线性输出误差(OE)模型注
,nf
,nk
.
要为随机生成的输入计算非线性黑盒模型的线性近似,必须指定产生这个矩形范围内大小的白噪声输入的最小和最大输入值,umin
和umax
.
有关更多信息,请参见linapp
参考页面。
线性化
计算非线性系统动力学的一阶泰勒级数近似操作点,它由常量输入和模型状态值定义。所得到的线性模型在该工作点的局部邻域内是准确的。
为了计算非线性黑盒模型的切线近似,你必须有这些变量:
要指定系统的操作点,必须指定常量输入和状态。有关每种参数模型类型的状态定义的更多信息,请参阅以下参考页面:
如果您不知道系统的操作点值,请参见非线性黑箱模型的操作点计算.
有关更多信息,请参见idnlarx /线性化
或idnlhw /线性化
参考页面。
一个操作点是由常量输入和模型状态值定义的。
如果你不知道线性化系统的运行条件,你可以使用findop
根据规格计算工作点。
使用findop
从稳态规格计算工作点:
输入和输出信号的值。
如果稳态输入或输出值未知,可以将其指定为南
来估计这个值。这在建模MIMO系统时特别有用,因为只有输入和输出稳态值的一个子集是已知的。
更复杂的稳态规范。
构造一个对象,该对象存储计算操作点的规范,包括输入和输出边界、已知值和初始猜测。有关更多信息,请参见idnlarx / operspec
或idnlhw / operspec
.
有关更多信息,请参见idnlarx / findop
或idnlhw / findop
参考页面。
通过指定快照时间和输入值,计算模型模拟(快照)期间特定时间的工作点。要使用这种方法来计算平衡工作点,请选择一个导致稳态输出值的输入。使用该输入和输出达到稳定状态时的时间值(快照时间)来计算工作点。
当使用这种方法时,可以选择指定模拟的初始条件,因为初始条件通常不会影响稳态值。默认情况下,初始条件为零。
然而,对于非线性ARX模型,稳态输出值可能取决于初始条件。对于这些模型,您应该研究初始条件对模型响应的影响,并使用产生所需输出的值。您可以使用data2state
将仿真开始前的输入-输出信号值映射到模型的初始状态。因为初始状态是模型过去的输入和输出值的函数,data2state
通过转换数据生成初始状态。