主要内容

idnlgrey.

非线性灰度盒模型

句法

sys = idnlgrey(文件名,秩序,参数)
sys = idnlgrey(文件名,订单,参数,initialstates)
sys = idnlgrey(文件名,订单,参数,initialstates,ts)
sys = idnlgrey(文件名,订单,参数,initialstates,ts,name,值)

描述

SYS.= idnlgrey(文档名称订单参数中指定的模型结构创建非线性灰箱模型文档名称,输出,输入和状态的数量订单和模型参数。

SYS.= idnlgrey(文档名称订单参数initialstates.指定模型的初始状态。

SYS.= idnlgrey(文档名称订单参数initialstates.TS.指定离散时间模型的采样时间。

SYS.= idnlgrey(文档名称订单参数initialstates.TS.名称,价值属性的附加属性idnlgrey.模型结构使用一个或多个名称,价值对参数。

对象描述

idnlgrey.表示非线性灰度盒模型。有关非线性灰盒式型号的信息,请参阅估计非线性灰度箱型号

使用idnlgrey.构造函数创建非线性灰度盒模型,然后估计模型参数使用nlgreyest

为了idnlgrey.对象属性,见特性

例子

全部收缩

加载数据。

负载(fullfile (matlabroot'工具箱''ident''Iddemos''数据''dcmotordata'));z = iddata(y,u,0.1,'姓名''直流电机');

数据来自具有一个输入(电压)的线性DC电动机,以及两个输出(角度位置和角速度)。模型的结构是指定的dcmotor_m.m文件。

创建非线性灰度盒模型。

file_name =.'dcmotor_m';订单= [2 1 2];参数= [1; 0.28];initialstates = [0; 0];sys = idnlgrey(file_name,订单,参数,initialstates,0,......'姓名''直流电机');

加载数据。

负载(fullfile (matlabroot'工具箱''ident''Iddemos''数据''twotankdata'));z = iddata (y, u, 0.2,'姓名''两个坦克');

数据包含两个罐系统的3000个输入输出数据样本。输入是施加到泵的电压,输出是下罐的液位。

指定描述双坦克系统模型结构的文件。该文件将状态导数和模型输出指定为时间、状态、输入和模型参数的函数。

filename =.'twotanks_c'

指定模型订单[NY NU NX]。

ORDER = [1 1 2];

指定初始参数(Np = 6)。

参数= {0.5;0.0035;0.019;......9.81; 0.25; 0.016};

指定初始初始状态。

initialstates = [0; 0.1];

指定为连续系统。

ts = 0;

创建idnlgrey.模型对象。

nlgr = idnlgrey(文件名、秩序、参数、InitialStates Ts,......'姓名''两个坦克');

将一些参数设置为常量。

nlgr.parameters(1)。修复=真;nlgr.parameters(4)。修正=真;nlgr.parameters(5)。修正=真;

估计模型参数。

nlgr = nlgreyest(z,nlgr);

输入参数

全部收缩

存储模型结构的函数或mex -文件的名称,指定为字符向量(没有文件扩展名)或用于计算状态和输出的函数句柄。如果文档名称例如,是一个字符矢量'twotanks_c',然后它必须指向一个matlab®文件,p代码文件或mex文件。有关文件变量的详细信息,请参阅指定非线性灰度盒模型结构

模型的输出,输入和状态的数量,指定为以下之一:

  • 向量[ny nu nx],指定模型输出的数量纽约,输入nu.,州NX.

  • 与田地的结构'纽约''nu', 和'nx'

时间序列,nu.被设置为0.,以及静态模型结构,NX.被设置为0.

模型的参数,指定为以下之一:

  • NP.-By-1结构阵列,在哪里NP.是参数的数量。该结构包含以下字段:

    场地 描述 默认
    姓名 参数的名称,指定为字符向量。例如,“压力” “π”, 在哪里一世是一个整数[1,NP]
    单元 参数的单位,指定为字符向量。 ''
    价值

    参数的初始值,指定为:

    • 有限的真正的标量

    • 有限实列向量

    • 二维实矩阵

    最低限度

    参数的最小值,指定为真正的标量,列向量或相同尺寸的矩阵价值

    最低限度>=价值所有组件。

    -inf(大小(值))
    最大

    参数的最大值,指定为真正的标量,列向量或相同尺寸的矩阵价值

    价值< =最大所有组件。

    inf(尺寸(价值))
    固定 指定参数是否固定为其初始值,指定为布尔标量,列向量或相同尺寸的矩阵价值

    假(大小(价值))

    意味着,估计所有参数

    使用dot表示法访问子字段一世参数。例如,idnlgrey.模型m, 这一世通过访问参数M.Parameters(i)和它的子域固定经过M.Parameters(i)。修正

  • NP.- 1个真实有限初始值的向量,inparamets.

    数据被转换为具有字段的默认值的结构姓名单元最低限度最大, 和固定

    价值被分配了该值inparameters(i), 在哪里一世是一个整数[1,NP]

  • NP.- 1个单元阵列,包含有限实际标量,有限的真实矢量或有限的初始值的有限实际二维矩阵。

    默认值用于字段姓名单元最低限度最大, 和固定

模型参数的初始状态为:

  • NX.-By-1结构阵列,在哪里NX.是状态数。该结构包含以下字段:

    场地 描述 默认
    姓名 状态的名称,指定为字符向量。 'xi', 在哪里一世是一个整数[1,NX]
    单元 状态的单位,指定为字符向量。 ''
    价值

    初始状态的初始值,指定为:

    • 有限实标量

    • 有限的真实的1-by-NE.矢量,在那里NE.是要用于估计的数据集中的实验数量

    最低限度

    初始状态的最小值,指定为实标量或1-by-NE.大小相同的向量价值

    最低限度>=价值所有组件。

    -inf(大小(值))
    最大

    参数的最大值,指定为真正的标量或1-by-NE.大小相同的向量价值

    价值< =最大所有组件。

    inf(尺寸(价值))
    固定 指定初始状态是否固定为其初始值,指定为布尔标量或1-by-NE.大小相同的向量价值

    真正的(大小(值))

    意味着,不要估计初始状态。

    使用dot表示法访问子字段一世初始状态。例如,idnlgrey.模型m, 这一世通过初始状态通过M.InitialStates(我)和它的子域固定经过M.InitialStates .Fixed(我)

  • []

    使用字段的默认值创建一个结构姓名单元最低限度最大, 和固定

    价值被分配了该值0.

  • 真正的有限NX.——- - - - - -NE.矩阵 (初学者)。

    价值一世结构数组元素是初始须(我,NE),一排矢量与NE.元素。最低限度最大, 和固定将会-inf.真的尺寸相同的行向量初始须(我,NE)

  • 单元格数组具有大小为1 × -的有限实向量NE.或者{}(一样[])。

采样时间,指定为表示采样周期的正标量。该值在指定的单位中表示时髦模型的财产。对于连续时间模型TS.等于0(默认值)。

名称值对参数

指定可选的逗号分离对名称,价值参数。姓名是参数名称和价值是相应的价值。姓名必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

名称,价值参数指定附加的特性idnlgrey.模型创建期间的模型。

特性

idnlgrey.对象属性包括:

文档名称

存储模型结构的函数或mex文件的名称,指定为字符向量(没有扩展)或用于计算状态和输出的函数句柄。如果文档名称例如,是一个字符矢量'twotanks_c',然后它必须指向MATLAB文件,P代码文件或MEX文件。有关文件变量的详细信息,请参阅指定非线性灰度盒模型结构

订单

模型的输出,输入和状态的数量,指定为以下之一:

  • 向量[ny nu nx],指定模型输出的数量纽约,输入nu.,州NX.

  • 与田地的结构'纽约''nu', 和'nx'

时间序列,nu.被设置为0.,以及静态模型结构,NX.被设置为0.

参数

模型的参数,指定为以下之一:

  • NP.-By-1结构阵列,在哪里NP.是参数的数量。该结构包含以下字段:

    场地 描述 默认
    姓名 参数的名称,指定为字符向量。例如,“压力” “π”, 在哪里一世是一个整数[1,NP]
    单元 参数的单位,指定为字符向量。 ''
    价值

    参数的初始值,指定为:

    • 有限的真正的标量

    • 有限实列向量

    • 二维实矩阵

    最低限度

    参数的最小值,指定为真正的标量,列向量或相同尺寸的矩阵价值

    最低限度>=价值所有组件。

    -inf(大小(值))
    最大

    参数的最大值,指定为真正的标量,列向量或相同尺寸的矩阵价值

    价值< =最大所有组件。

    inf(尺寸(价值))
    固定 指定参数是否固定为其初始值,指定为布尔标量,列向量或相同尺寸的矩阵价值

    假(大小(价值))

    意味着,估计所有参数

  • NP.- 1个真实有限初始值的向量,inparamets.

    数据被转换为具有字段的默认值的结构姓名单元最低限度最大, 和固定

    价值被分配了该值inparameters(i), 在哪里一世是一个整数[1,NP]

  • NP.- 1个单元阵列,包含有限实际标量,有限的真实矢量或有限的初始值的有限实际二维矩阵。

    使用字段的默认值创建一个结构姓名单元最低限度最大, 和固定

使用dot表示法访问子字段一世参数。例如,idnlgrey.模型m, 这一世通过访问参数M.Parameters(i)和它的子域固定经过M.Parameters(i)。修正

initialstates.

模型参数的初始状态为:

  • NX.-By-1结构阵列,在哪里NX.是状态数。该结构包含以下字段:

    场地 描述 默认
    姓名 状态的名称,指定为字符向量。 'xi', 在哪里一世是一个整数[1,NX]
    单元 状态的单位,指定为字符向量。 ''
    价值

    初始状态的初始值,指定为:

    • 有限实标量

    • 有限的真实的1-by-NE.矢量,在那里NE.是要用于估计的数据集中的实验数量

    最低限度

    初始状态的最小值,指定为实标量或1-by-NE.大小相同的向量价值

    最低限度>=价值所有组件。

    -inf(大小(值))
    最大

    参数的最大值,指定为真正的标量或1-by-NE.大小相同的向量价值

    价值< =最大所有组件。

    inf(尺寸(价值))
    固定 指定初始状态是否固定为其初始值,指定为布尔标量或1-by-NE.大小相同的向量价值

    真正的(大小(值))

    意味着,不要估计初始状态。

  • []

    使用字段的默认值创建一个结构姓名单元最低限度最大, 和固定

    价值被分配了该值0.

  • 真正的有限NX.——- - - - - -NE.矩阵 (初学者)。

    价值一世结构数组元素是初始须(我,NE),一排矢量与NE.元素。最低限度最大, 和固定将会-inf.真的尺寸相同的行向量初始须(我,NE)

  • 单元格数组具有大小为1 × -的有限实向量NE.或者{}(一样[])。

    使用字段的默认值创建一个结构姓名单元最低限度最大, 和固定

使用dot表示法访问子字段一世初始状态。例如,idnlgrey.模型m, 这一世通过初始状态通过M.InitialStates(我)和它的子域固定经过M.InitialStates .Fixed(我)

fileargument.

包含传递给指定的ode文件(函数或mex文件)的辅助变量文档名称,指定为单元数组。这些变量用作指定状态和/或输出方程的额外输入。
默认:{}

SimulationOptions

指定仿真方法和相关选项的结构,包含以下字段:

场地 描述 默认
ab

绝对误差容差。此标标ar适用于状态向量的所有组件。

适用于:可变步长求解器。

可分配的值:正实值。

1E-6
FixedStep

求解器使用的步长。

适用于:固定步步的连续溶剂。

可分配的值:

  • '汽车'- 自动选择初始步骤。

  • 一个真正的价值,这样0

'汽车'

自动选择初始步骤。

initalstep.

指定ode求解器启动的初始步骤。

适用于:变步长、时间连续求解器。

可分配的值:

  • '汽车'- 自动选择初始步骤。

  • 正的实值,使minstep <= initialstep <= maxstep

'汽车'

自动选择初始步骤。

maxOrder.

指定数值微分公式(NDF)的顺序。

适用于:ode15s。

可分配值:1,2,3,4或5。

5.
MaxStep

指定ODE求解器的最大时间步长。

适用于:变步长、时间连续求解器。

可分配的值:

  • '汽车'—自动选择时间步长。

  • 积极的实际价值>minstep.

'汽车'

自动选择时间步。

minstep.

指定ode求解器的最小时间步骤。

适用于:变步长、时间连续求解器。

可分配的值:

  • '汽车'—自动选择时间步长。

  • 积极的真实价值<MaxStep

'汽车'

自动选择时间步。

RelTol

适用于状态向量的所有组件的相对误差容差。每个集成步骤中的估计误差满足| e(i)|<= max(Reltol * Abs(x(i)),abstol(i))

适用于:变步长、时间连续求解器。

可分配的值:正实值。

1E-3

(精度为0.1%)。

解算器

用于求解状态空间方程的ode(常规/差分方程)求解器。

  • 用于时间连续的可变步骤求解器idnlgrey.楷模:

    • “数值”- runge-Kutta(4,5)求解器,用于非争端问题。

    • “ode23”- runge-kutta(2,3)求解器,用于非争端问题。

    • 'ode113'- Adams-Bashforth-Moulton解决方案的求解器。

    • 'ode15s'- 用于僵硬问题的数值差分公式求解器。

    • 'ode23s'- 改进的rosenbrock求解器,用于僵硬的问题。

    • 'ode23t'- 用于中等僵硬问题的梯形求解器。

    • 'ode23tb'- 用于僵硬问题的隐式跳闸-Kutta求解器。

  • 固定步骤溶剂用于时间连续idnlgrey.楷模:

    • “ode5”——Dormand-Prince解算器。

    • 'ode4'- 第四阶跑为Kutta求解器。

    • “ode3”- Bogacki-Shampine Solver。

    • “ode2”- 耶路或改进的欧拉求解器。

    • “ode1”- 欧拉求解器。

  • 用于时间离散的固定步骤求解器idnlgrey.楷模:'fixedstepddiscrete'

  • 一般:'汽车'- 自动选择其中一个求解器。

'汽车'

自动选择一个解算器。

报告

摘要报告包含有关估计选项的信息和使用模型使用的结果nlgreyest命令。用报告查询估计型号的型号,包括:

  • 估计方法

  • 估算选项

  • 搜索终止条件

  • 估计数据适合

内容报告如果模型是由施工创造的,则是无关紧要的。

nlgr = idnlgrey('dcmotor_m',[2,1,2],[1; 0.28],[0; 0],0,'姓名''直流电机');nlgr.report.Optionsed.
ans = []

如果你使用nlgreyest估计模型,字段报告包含有关估计数据,选项和结果的信息。

load(fullfile(matlabroot,'工具箱','ident','Iddemos','data','dcmotordata'));z = IDDATA(Y,U,0.1,'名称','DC-MOTOR');nlgr = idnlgrey('dcmotor_m',[2,1,2],[1; 0.28],[0; 0],0,'姓名','DC-MOTOR');nlgr = nlgreyest(z,nlgr);nlgr.report.Optionsed.
选项设置为nlgreyest命令:gradientions:[1x1 struct]估计值:1显示:'关闭'正则化:[1x1 struct] searchmethod:'auto'searchOptions:[1x1 iDoptions.search.lsqnonlin]输出重量:[]高级:[1x1结构]

报告是只读属性。

有关此属性的更多信息以及如何使用它,请参阅输出参数nlgreyest参考页面和估计报告

TimeVariable

输入、输出和可用时内部状态的独立变量,指定为字符向量。

默认:'T'

noisavariance.

模型创新的噪声差异(协方差矩阵)E.
可分配的值是一个纽约——- - - - - -纽约矩阵。
通常由估计算法自动设置。

TS.

采样时间。TS.为表示采样周期的正标量。的指定的单元表示该值时髦模型的财产。对于连续时间模型,TS.等于0(默认值)。

更改此属性不会离散或重新确定模型。

默认:0.

时髦

单位为时间变量,即样本时间TS.,以及模型中的任何时间延迟,指定为以下值之一:

  • '纳秒'

  • '微秒'

  • '毫秒'

  • '秒'

  • '分钟'

  • '小时'

  • '天'

  • '周'

  • “月”

  • '年'

更改此属性对其他属性没有影响,因此更改整体系统行为。用chgtimeUnit.(控制系统工具箱)在不修改系统行为的情况下在时间单位之间转换。

默认:'秒'

InputName.

输入通道名称,指定为以下之一:

  • 字符矢量 - 对于单输入模型,例如,'控制'

  • 字符向量单元阵列 - 用于多输入模型。

或者,使用自动矢量扩展为多输入模型分配输入名称。例如,如果SYS.是一个双输入模型,输入:

sys.InputName ='控件';

输入名称自动展开为{“控制(1)”,“控制”(2)}

当你用iddata目的,数据,软件自动设定InputName.数据。InputName.

您可以使用速记表示法参考InputName.财产。例如,sys.u.相当于sys。InputName.

输入通道名称具有多种用途,包括:

  • 识别模型显示和绘图上的通道

  • 提取MIMO系统子系统

  • 在互连模型时指定连接点

默认:''对于所有输入通道

InpoinUnit.

输入通道单元,指定为以下之一:

  • 字符矢量 - 对于单输入模型,例如,'秒'

  • 字符向量单元阵列 - 用于多输入模型。

InpoinUnit.跟踪输入信号单元。InpoinUnit.对系统行为没有影响。

默认:''对于所有输入通道

InputGroup.

输入通道组。这InputGroup.属性允许您将MIMO Systems的输入通道分配成组,然后通过名称引用每个组。将输入组指定为结构。在此结构中,字段名称是组名,字段值是属于每个组的输入通道。例如:

sys.inputgroup.controls = [1 2];sys.inputgroup.noise = [3 5];

创建名为的输入组控制噪音分别包括输入通道1 2和3 5。然后您可以从控制使用以下输出的输入:

SYS(:,'控件')

默认:没有字段的结构

outputName.

输出通道名称,指定为以下之一:

  • 字符矢量 - 用于单输出模型。例如,'测量'

  • 字符向量单元阵列 - 用于多输出模型。

或者,使用自动矢量扩展为多输出模型分配输出名称。例如,如果SYS.是一个双输出模型,输入:

sys.outputname ='测量';

输出名称自动展开为{'测量(1)';'测量(2)'}

当你用iddata目的,数据,软件自动设定outputName.data.outputname.

您可以使用速记表示法y参考outputName.财产。例如,sys.y.相当于sys.outputname.

输出通道名称有几种用途,包括:

  • 识别模型显示和绘图上的通道

  • 提取MIMO系统子系统

  • 在互连模型时指定连接点

默认:''对于所有输出通道

OutputUnit.

输出通道单元,指定为以下之一:

  • 字符矢量 - 用于单输出模型。例如,'秒'

  • 字符向量单元阵列 - 用于多输出模型。

OutputUnit.跟踪输出信号单元。OutputUnit.对系统行为没有影响。

默认:''对于所有输出通道

产量组

输出通道组。这产量组属性允许您将MIMO Systems的输出通道分配成组,然后通过名称引用每个组。将输出组指定为结构。在此结构中,字段名称是组名,字段值是属于每个组的输出通道。例如:

sys.OutputGroup.temperature = [1];sys.InputGroup.measurement = [3 5];

创建名为的输出组温度测量分别包括输出通道1、3、5。然后可以从所有的输入中提取子系统测量输出使用:

SYS('测量',:)

默认:没有字段的结构

姓名

系统名,指定为字符向量。例如,“system_1”

默认:''

笔记

您要与系统关联的任何文本,存储为字符串或字符向量的单元格数组。该属性存储您提供的任何数据类型。例如,如果sys1sys2是动态系统模型,可以设置他们的笔记属性如下:

sys1.notes ="sys1有一个字符串。";sys2.notes =.'sys2有一个字符矢量。';sys1。笔记sys2。笔记
ans =“sys1有一个字符串。”ans ='sys2有一个字符矢量。

默认:[0×1字符串]

用户数据

您要与系统关联的任何类型的数据,指定为任何MATLAB数据类型。

默认:[]

输出参数

全部收缩

非线性灰度盒模型,返回idnlgrey.目的。

更多关于

全部收缩

IDNLGREY国家的定义

一种状态idnlgrey.模型在存储模型结构的函数或mex -文件中显式定义。非线性灰箱模型的仿真和预测需要状态。用Findstates.为模拟和预测寻找状态值SIM预测, 和相比

笔记

状态的初始值由initialstates.财产的idnlgrey.模型。

在R2007A介绍