主要内容

idnlarx /线性化

线性化非线性ARX模型

语法

SYS =线性化(NLSYS情况,X0)

描述

SYS =线性化(NLSYS情况,X0)渗流非线性ARX模型指定的操作点情况X0。线性化是基于正切线性化。关于国家的定义的更多信息idnlarx模型,看到idnlarx状态的定义

输入参数

  • NLSYS:idnlarx模型。

  • 情况:包含常数矩阵模型的输入值。

  • X0:模型状态值。美国的时滞非线性ARX模型定义的输入和输出变量的样本。关于非线性ARX模型的状态的更多信息,见getDelayInfo参考页面。

请注意

估计情况X0从操作角度规范,使用findop命令。

输出参数

  • SYS是一个中的难点模型。

    当控制系统工具箱™产品安装,SYS是一个线性时不变对象。

例子

全部折叠

线性化非线性ARX模型在一个操作点对应于一个特定时间模拟快照。

加载示例数据。

负载iddata2

从样本数据估计非线性ARX模型。

nlsys = nlarx (z2, [4 3 10], idTreePartition,“自定义”,{“罪(y1 (2) * u1 (t)) + y₁(2) * u1 (t) + u1 (t)。* u1 (t-13) ',“日元(t-5) * y1 (t-5) * (t - 1)”},“nlr”[1:5,7 9]);

情节为阶跃输入响应模型。

步骤(nlsys 20)

图包含一个坐标轴对象。坐标轴对象的标题:u1: y1包含一个类型的对象。该对象代表nlsys。

阶跃响应的稳态值0.8383T = 20秒。

计算对应的操作点T = 20

stepinput = iddata ([], [0 (10,1); 1 (200,1)], nlsys.Ts);[x, u] = findop (nlsys“快照”20 stepinput);

线性化模型的操作点对应于模型的快照T = 20

sys =线性化(nlsys u (x);

验证线性模型。

应用小扰动delta_u稳态非线性模型的输入nlsys。如果线性近似准确,下面应该匹配:

  • 响应的非线性模型y_nl一个输入,均衡水平和扰动的总和delta_u

  • 的总和扰动输入响应的线性模型delta_u和输出均衡水平。

生成一个200 - 0.1样本扰动步信号振幅。

delta_u = [0 (10, 1);0.1 * 1 (190 1)];

对于非线性系统的稳态输入1和0.8383的稳态输出,计算稳态响应y_nl摄动输入u_nl。使用平衡态值x之前计算的初始条件。

u_nl = 1 + delta_u;y_nl = sim (nlsys u_nl x);

计算响应的线性模型扰动输入,并将其添加到输出均衡水平。

y_lin = 0.8383 + lsim (sys, delta_u);

非线性和线性模型的反应进行比较。

时间= (0:0.1:19.9)';情节(时间、y_nl时间,y_lin)传说(“非线性响应”,对相机会pt的线性响应。)标题(小阶跃输入的非线性和线性模型反应的)

图包含一个坐标轴对象。坐标轴对象标题非线性和线性模型小阶跃输入响应包含2线类型的对象。这些对象代表非线性响应,线性响应相机会pt . .

算法

以下的动力学方程控制idnlarx模型:

X ( t + 1 ) = 一个 X ( t ) + B u ˜ ( t ) y ( t ) = f ( X , u )

在哪里X(t)是一个状态向量,u(t)是输入,y(t)输出。一个B是常数矩阵。 u ˜ ( t ) 是(y(t),u(t)]T

输出的操作点

y* =f(X*,u*)

在哪里X*和u*状态向量和输入操作点。

模型的线性近似响应如下:

Δ X ( t + 1 ) = ( 一个 + B 1 f X ) Δ X ( t ) + ( B 1 f u + B 2 ) Δ u ( t ) Δ y ( t ) = f X Δ X ( t ) + f u Δ u ( t )

在哪里

  • Δ X ( t ) = X ( t ) X * ( t )

  • Δ u ( t ) = u ( t ) u * ( t )

  • Δ y ( t ) = y ( t ) y * ( t )

  • B U ˜ = ( B 1 , B 2 ] ( Y U ] = B 1 Y + B 2 U

  • f X = X f ( X , U ) | X * , U *

  • f U = U f ( X , U ) | X * , U *

请注意

在较大的输入范围线性近似,使用linapp

版本历史

介绍了R2014b