主要内容

idnlarx/线性化

线性化非线性ARX模型

语法

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

描述

SYS =线性化(NLSYS情况,X0)针对指定的工作点线性化非线性ARX模型U0X0。线性化基于切线线性化。有关状态定义的更多信息idnlarx模型,看到idnlarx状态的定义.

输入参数

  • NLSYS:idnlarx模型

  • U0:包含模型常量输入值的矩阵。

  • X0:模型状态值。非线性ARX模型的状态由输入和输出变量的延迟样本定义。有关非线性ARX模型状态的更多信息,请参阅getDelayInfo参考页面。

笔记

估计U0X0根据操作点规格,使用芬多普命令

输出参数

  • 系统是一个智能决策支持系统模型

    当控制系统工具箱™ 产品已安装,系统是一个LTI对象。

例子

全部崩溃

在特定时间,围绕与仿真快照相对应的工作点线性化非线性ARX模型。

加载样本数据。

负载iddata2

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

nlsys=nlarx(z2,[4 3 10],idTreePartition,“习俗”,...{“罪(y1 (2) * u1 (t)) + y₁(2)* u1 (t) + u1 (t)。* u1 (t-13) ',...‘y1(t-5)*y1(t-5)*y1(t-1)’},“nlr”,[1:5, 7 9]);

绘制阶跃输入模型的响应。

步骤(nlsys 20)

图中包含一个轴对象。标题为From: u1 To: y1的axes对象包含一个line类型的对象。该对象表示nlsys。

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

计算相应的工作点T=20.

stepinput=iddata([],零(10,1);一(200,1)],nlsys.Ts);[x,u]=findop(nlsys,“快照”,20,逐步输入);

在与模型快照对应的工作点处对模型进行线性化T=20.

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

验证线性模型。

施加一个小扰动delta_u对于非线性模型的稳态输入nlsys.如果线性近似值是准确的,则以下各项应匹配:

  • 非线性模型的响应y_nl输入是平衡水平和扰动的总和delta_u.

  • 线性模型对摄动输入的响应的和delta_u以及产出均衡水平。

产生振幅为0.1的200样本扰动阶跃信号。

delta_=[零(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(系统,增量);

比较非线性和线性模型的响应。

时间= (0:0.1:19.9)';情节(时间、y_nl时间,y_lin)传说(“非线性响应”,“关于op.pt的线性响应。”)头衔(“小步进输入的非线性和线性模型响应”)

图中包含一个轴对象。标题为“小步进输入的非线性和线性模型响应”的Axis对象包含2个line类型的对象。这些物体代表非线性响应,关于op.pt.的线性响应。。

算法

下面的方程式控制一个系统的动力学idnlarx型号:

X ( T + 1. ) = A. X ( T ) + B U ˜ ( T ) Y ( T ) = F ( X , U )

哪里X(T)是一个状态向量,U(T)为输入,并且Y(T)是输出。A.B是常数矩阵。 U ˜ ( T ) 是[Y(T),U(T)]T.

在工作点的输出为

Y* =F(X*,U*)

哪里X*及U*是运行点的状态向量和输入。

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

Δ X ( T + 1. ) = ( A. + 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