idnlgrey

非线性灰箱模型

语法

SYS = idnlgrey(文件名,命令,参数)
sys = idnlgrey(文件名、秩序、参数InitialStates)
SYS = idnlgrey(文件名,命令,参数,InitialStates,TS)
sys = idnlgrey(文件名、秩序、参数、InitialStates Ts,名称,值)

描述

sys= idnlgrey (文件名,订购,参数)创建使用在指定的模型结构的非线性灰盒模型文件名,输出、输入和状态的数目订购和模型参数。

sys= idnlgrey (文件名,订购,参数,InitialStates)指定模型的初始状态。

sys= idnlgrey (文件名,订购,参数,InitialStates,Ts)指定离散时间模型的采样时间。

sys= idnlgrey (文件名,订购,参数,InitialStates,Ts,名称,值)指定的附加属性idnlgrey使用一个或多个模型结构名称,值对参数。

对象描述

idnlgrey表示非线性灰盒模型。有关非线性灰盒模型的信息,请参见估计非线性灰盒模型

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

idnlgrey对象属性,看属性

例子

全部收缩

加载数据。

负载(完整文件(matlabroot,'工具箱',“识别”,'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,“名字”,'DC-马达');

加载数据。

负载(完整文件(matlabroot,'工具箱',“识别”,'iddemos','数据',“twotankdata”));Z = IDDATA(Y,U,0.2%,“名字”,“两个舱”);

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

指定的文件描述了两箱系统的模型结构。该文件指定为时间,状态,输入和模型参数的函数的状态衍生物和模型输出。

文件名='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];

指定为连续系统。

t = 0;

创造idnlgrey模型对象。

nlgr = idnlgrey(文件名,命令,参数,InitialStates,TS,“名字”,“两个舱”);

设置一些参数为常数。

nlgr.Parameters (1)。固定= true;nlgr.Parameters (4)。固定= true;nlgr.Parameters (5)。固定= true;

估计模型参数。

nlgr = nlgreyest(Z,nlgr);

输入参数

全部收缩

功能或MEX文件存储模型结构,指定为字符向量(没有文件扩展名)或用于计算状态和输出的功能句柄的名称。如果文件名例如,是字符向量吗'twotanks_c',那么它必须指向一个MATLAB®文件,p代码文件,或mex文件。有关文件变量的更多信息,请参见指定非线性灰盒模型结构

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

  • 向量(纽约νNx),指定模型输出的数量尹恩惠,输入怒江和状态NX

  • 结构领域'NY',“怒江”'NX'

对于时间序列,怒江设定为0和静态的模型结构,NX设定为0

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

  • NP×1结构阵列,其中NP是的参数的数目。该结构包含以下字段:

    描述 默认
    的名字 参数的名称,指定为字符向量。例如,'压力' “圆周率”,在那里是一个整数[1,NP]
    单元 该参数的单元,指定为字符向量。 ''

    参数,指定为初始值:

    • 有限的真正的标量

    • 有限实列向量

    • 二维实矩阵

    最低限度

    参数的最小值,指定为具有相同大小的实标量、列向量或矩阵

    最低限度> =所有组件。

    无穷(大小(值))
    最大值

    参数的最大值,指定为具有相同大小的实标量、列向量或矩阵

    <=最大值所有组件。

    正(大小(值))
    固定 指定参数是否固定于其初始值,指定为布尔标量、列向量或大小相同的矩阵

    false(大小(值))

    意味着,估计所有参数

    使用点表示法来访问的子场参数。例如,对于idnlgrey模型,个参数被访问通过M.Parameters(I)其子固定通过M.Parameters .Fixed(我)

  • NP实有限初值的-乘1向量,InParameters

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

    被赋值InParameters(我),在那里是一个整数[1,NP]

  • NP包含有限实标量、有限实向量或有限实二维初值矩阵的-1单元数组。

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

指定为下列之一的模型参数的初始状态:

  • NX×1结构阵列,其中NX是状态的数量。该结构包含以下字段:

    描述 默认
    的名字 状态,指定为特征向量的名称。 “十一”,在那里是一个整数[1,Nx]
    单元 状态,指定为字符向量的单元。 ''

    初始状态的初始值,具体为:

    • 一个有限实标

    • 一个有限实1比-NE向量,其中NE数据集中的实验数量是否用于估计

    最低限度

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

    最低限度> =所有组件。

    无穷(大小(值))
    最大值

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

    <=最大值所有组件。

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

    真(大小(值))

    顾名思义,不要估计的初始状态。

    使用点表示法来访问的子场初始状态。例如,对于idnlgrey模型,个初始状态被访问通过M.InitialStates(I)其子固定通过M.InitialStates(ⅰ).Fixed

  • []

    的结构与用于字段默认值创建的名字,单元,最低限度,最大值固定

    被赋值0

  • 一个真正的有限NX-通过-NE矩阵(InitStates)。

    结构数组元素为InitStates (Ne)的行向量NE元素。最低限度,最大值固定,天道酬勤真正的尺寸相同的行向量InitStates (Ne)

  • 单元阵列,使用尺寸有限实矢量1逐NE要么{}(和...一样[])。

采样时间,指定为代表取样周期的正标量。该值以由所述指定的单位表示TIMEUNIT属性的模型。对于连续时间模型Ts等于0(默认值)。

名称 - 值对参数

的可选逗号分隔对名称,值参数。的名字参数名和是对应的值。的名字必须出现引号内。您可以按照任何顺序指定多个名称和值对参数名1,值1,...,NameN,值N

名称,值参数指定其他性能idnlgrey模型创建过程中的模型。

属性

idnlgrey对象属性包括:

文件名

存储模型结构的函数或mex文件的名称,指定为字符向量(无扩展名)或用于计算状态和输出的函数句柄。如果文件名例如,是字符向量吗'twotanks_c',然后必须指向MATLAB文件、P-code文件或mex -文件。有关文件变量的更多信息,请参见指定非线性灰盒模型结构

订购

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

  • 向量(纽约νNx),指定模型输出的数量尹恩惠,输入怒江和状态NX

  • 结构领域'NY',“怒江”'NX'

对于时间序列,怒江设定为0和静态的模型结构,NX设定为0

参数

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

  • NP×1结构阵列,其中NP是的参数的数目。该结构包含以下字段:

    描述 默认
    的名字 参数的名称,指定为字符向量。例如,'压力' “圆周率”,在那里是一个整数[1,NP]
    单元 该参数的单元,指定为字符向量。 ''

    参数,指定为初始值:

    • 有限的真正的标量

    • 有限实列向量

    • 二维实矩阵

    最低限度

    参数的最小值,指定为具有相同大小的实标量、列向量或矩阵

    最低限度> =所有组件。

    无穷(大小(值))
    最大值

    参数的最大值,指定为具有相同大小的实标量、列向量或矩阵

    <=最大值所有组件。

    正(大小(值))
    固定 指定参数是否固定于其初始值,指定为布尔标量、列向量或大小相同的矩阵

    false(大小(值))

    意味着,估计所有参数

  • NP实有限初值的-乘1向量,InParameters

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

    被赋值InParameters(我),在那里是一个整数[1,NP]

  • NP包含有限实标量、有限实向量或有限实二维初值矩阵的-1单元数组。

    的结构与用于字段默认值创建的名字,单元,最低限度,最大值固定

使用点表示法来访问的子场参数。例如,对于idnlgrey模型,个参数被访问通过M.Parameters(I)其子固定通过M.Parameters .Fixed(我)

InitialStates

指定为下列之一的模型参数的初始状态:

  • NX×1结构阵列,其中NX是状态的数量。该结构包含以下字段:

    描述 默认
    的名字 状态,指定为特征向量的名称。 “十一”,在那里是一个整数[1,Nx]
    单元 状态,指定为字符向量的单元。 ''

    初始状态的初始值,具体为:

    • 一个有限实标

    • 一个有限实1比-NE向量,其中NE数据集中的实验数量是否用于估计

    最低限度

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

    最低限度> =所有组件。

    无穷(大小(值))
    最大值

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

    <=最大值所有组件。

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

    真(大小(值))

    顾名思义,不要估计的初始状态。

  • []

    的结构与用于字段默认值创建的名字,单元,最低限度,最大值固定

    被赋值0

  • 一个真正的有限NX-通过-NE矩阵(InitStates)。

    结构数组元素为InitStates (Ne)的行向量NE元素。最低限度,最大值固定,天道酬勤真正的尺寸相同的行向量InitStates (Ne)

  • 单元阵列,使用尺寸有限实矢量1逐NE要么{}(和...一样[])。

    的结构与用于字段默认值创建的名字,单元,最低限度,最大值固定

使用点表示法来访问的子场初始状态。例如,对于idnlgrey模型,个初始状态被访问通过M.InitialStates(I)其子固定通过M.InitialStates(ⅰ).Fixed

FileArgument

包含传递到中指定的ODE文件(函数或MEX-file)的辅助变量文件名,指定为单元阵列。这些变量被用作额外的输入用于指定状态和/或输出方程。
默认值:{}

SimulationOptions

它指定的模拟方法和相关选项,包含下列字段的结构:

描述 默认
AbsTol

绝对误差宽容。这个标量适用于状态向量的所有分量。

适用于:变步长求解器。

可分配价值:一个正的真实价值。

1 e-6
FixedStep

由解算器所用的步长。

适用于:固定步长时间连续求解器。

可分配值:

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

  • 一个真正的价值,使得0 < FixedStep < = 1

“汽车”

自动选择初始步骤。

InitialStep

指定的初始步骤,在该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))的

适用于:可变步,时间连续的解算器。

可分配价值:一个正的真实价值。

1 e - 3

精度(0.1%)。

求解

用于求解状态空间方程的常微分/差分方程求解器。

  • 可变步距求解程序用于时间连续的idnlgrey模型:

    • 'ODE45'-龙格-库塔(4,5)非刚性问题的求解器。

    • 'ODE23'- 龙格 - 库塔(2,3)解算器非刚性的问题。

    • “ode113”- Adams-Bashforth-Moulton非刚性问题求解器

    • 'ode15s'-刚性问题的数值微分公式求解器。

    • “ode23s”-改进的罗森布罗克解决方案,僵硬的问题。

    • “ode23t”- 中度刚性问题求解梯形。

    • 'ode23tb'-隐式龙格-库塔解决刚性问题。

  • 时间连续的固定步长求解器idnlgrey模型:

    • “ode5”- Dormand太子求解。

    • “ode4”- 四阶龙格 - 库塔求解。

    • 'ODE3'——Bogacki-Shampine解算器。

    • 'ode2'Heun或改进的欧拉求解器。

    • 'ODE1'——欧拉求解程序。

  • 时间离散的固定步长求解器idnlgrey模型:“FixedStepDiscrete”

  • 一般:“汽车”-自动选择一个以前的解决方案。

“汽车”

自动选择求解器之一。

报告

的摘要报告,其中包含关于评估选项和模型评估结果的信息nlgreyest命令。用报告来查询它是如何估计,包括一个模型:

  • 估算方法

  • 估计选项

  • 搜索终止条件

  • 估计数据符合

内容报告是不相关的,如果模型是由建设创造。

nlgr = idnlgrey (“dcmotor_m”,[2,1,2],[1; 0.28],[0; 0],0,“名字”,'DC-马达');nlgr.Report.OptionsUsed
ANS = []

如果您使用nlgreyest估计模型,领域报告包含关于估计数据、选项和结果的信息。

负载(fullfile (matlabroot“工具箱”,“识别”,“iddemos”,“数据”,“dcmotordata”));z = iddata (y, u, 0.1,“名字”,“直流电机”);nlgr = idnlgrey (dcmotor_m,(2, 1, 2)[1; 0.28],(0, 0), 0, '名称','直流电机');nlgr = nlgreyest (z, nlgr);nlgr.Report.OptionsUsed
为nlgreyest命令选项集:GradientOptions:[1x1的结构] EstimateCovariance:1个显示: '断开' 正则化:[1x1的结构] SearchMethod: '自动' SearchOptions:[1x1的idoptions.search.lsqnonlin] OutputWeight:[]高级:[1x1的结构]

报告是一个只读属性。

有关此属性及其使用方法的详细信息,请参见输出参数在里面nlgreyest参考页面和评估报告

TimeVariable

为输入,输出自变量,和当可用内部状态,指定为字符向量。

默认值:“t”

NoiseVariance

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

Ts

样品时间。Ts是表示采样周期的正标量。该值在由指定为单位表示TIMEUNIT属性的模型。对于连续时间模型,Ts等于0(默认值)。

更改此属性不会离散或重新取样模型。

默认值:0

TIMEUNIT

时间变量的单位,采样时间Ts和模型中的任何时间延迟,指定为下列值之一:

  • “纳秒”

  • 微秒的

  • “毫秒”

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

更改此属性对其他性能没有影响,因此改变了整个系统的行为。用chgTimeUnit在时间单位之间转换而不改变系统的行为。

默认值:“秒”

InputName

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

  • 字符向量 - 对于单输入模式,例如,“控制”

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

或者,使用自动向量扩展为多输入模型分配输入名称。例如,如果sys为双输入模型,输入:

sys.InputName = '控制';

输入名称自动扩展到{ '对照(1)'; '控制(2)'}

当你估算模型使用IDDATA目的,数据,软件会自动设置InputNamedata.InputName

您可以使用速记符号u指代InputName财产。例如,sys.u相当于sys.InputName

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

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

  • 提取MIMO系统的子系统

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

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

InputUnit

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

  • 字符向量 - 对于单输入模式,例如,“秒”

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

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

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

InputGroup

输入通道组。的InputGroup属性可以指定MIMO系统的输入通道进行分组,并通过名称来引用每个组。指定输入的基团的结构。在这种结构中,字段名是组名称和字段值是属于各组的输入通道。例如:

sys.InputGroup。控制= [1 2]; sys.InputGroup.noise = [3 5];

创建输入组,名为控制噪声包括输入信道1,分别为2和3,图5,。然后,您可以从中提取子系统控制输入到使用所有输出:

sys(:,“控制”)

默认值:没有域结构

OutputName

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

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

  • 字符向量的单元数组-用于多输出模型。

或者,使用自动向量扩展为多输出模型分配输出名称。例如,如果sys为双输出模型,输入:

sys.OutputName= 'measurements';

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

当你估算模型使用IDDATA目的,数据,软件会自动设置OutputNamedata.OutputName

您可以使用速记符号y指代OutputName财产。例如,sys.y相当于sys.OutputName

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

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

  • 提取MIMO系统的子系统

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

默认值:''所有输出通道

OutputUnit

输出信道单元,指定为以下情况之一:

  • 字符向量-用于单输出模型。例如,“秒”

  • 字符向量的单元数组-用于多输出模型。

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

默认值:''所有输出通道

OutputGroup

输出通道组。的OutputGroup属性允许您将MIMO系统的输出通道分配到组中,并按名称引用每个组。将输出组指定为结构。在这个结构中,字段名是组名,字段值是属于每个组的输出通道。例如:

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

创建一个名为输出组温度测量包括输出通道1和3,5。然后,您可以从所有输入提取子系统测量输出使用:

系统(“测量”,:)

默认值:没有域结构

的名字

系统名称,指定为特征向量。例如,'system_1'

默认值:''

笔记

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

sys1.Notes =“SYS1有一个字符串。”;sys2.Notes =sys2有一个字符向量;sys1.Notes sys2.Notes
"sys1有一个字符串" ."

默认值:(0×1的字符串)

用户数据

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

默认值:[]

输出参数

全部收缩

非线性灰盒模型,返回作为一个idnlgrey目的。

更多关于

全部收缩

idnlgrey州的定义

的状态idnlgrey模型在函数或MEX文件存储模型结构明确定义。各国都需要模拟和非线性灰箱模型预测。用findstates搜索状态值模拟和预测与sim卡,预测比较

请注意

属性配置状态的初始值InitialStates财产idnlgrey模型。

介绍了R2007a