主要内容

idnlgrey

非线性灰色矩形模型

语法

sys = idnlgrey(文件名,订单,参数)
sys = idnlgrey(文件名、秩序、参数InitialStates)
sys = idnlgrey(文件名、秩序、参数InitialStates Ts)
sys = idnlgrey(文件名、秩序、参数、InitialStates Ts,名称,值)

描述

sys= idnlgrey (文件名命令参数使用指定的模型结构创建非线性灰度盒模型文件名,输出、输入和状态的数量命令,模型参数。

sys= idnlgrey (文件名命令参数InitialStates指定模型的初始状态。

sys= idnlgrey (文件名命令参数InitialStatesTs指定离散时间模型的采样时间。

sys= idnlgrey (文件名命令参数InitialStatesTs名称,值指定其他属性idnlgrey模型结构使用一个或多个名称,值对论点。

对象描述

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

使用idnlgrey构造函数来创建非线性灰箱模型,然后使用该方法估计模型参数nlgreyest

idnlgrey对象属性,看属性

例子

全部折叠

加载数据。

加载(全氟(MatlaBroot,“工具箱”“识别”“iddemos”“数据”“dcmotordata”));z = iddata (y, u, 0.1,“名字”直流电机的);

数据来自一个线性直流电机,有一个输入(电压)和两个输出(角位置和角速度)。模型的结构由dcmotor_m.m.文件。

创建一个非线性灰盒模型。

file_name =“dcmotor_m”;订单= [2 1 2];参数= (1;0.28);InitialStates = (0, 0);sys = idnlgrey (file_name、秩序、参数InitialStates 0...“名字”直流电机的);

加载数据。

加载(全氟(MatlaBroot,“工具箱”“识别”“iddemos”“数据”“twotankdata”));z = iddata(y,u,0.2,“名字”“两个坦克”);

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

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

文件名=“twotanks_c”

指定型号命令[ny nu nx]。

订单= [1 1 2];

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

参数= {0.00; 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-code文件或mex -文件。有关文件变量的更多信息,请参见指定非线性灰箱模型结构

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

  • 向量(纽约νNx),指定模型输出的数量纽约,输入ν和国家Nx

  • 结构领域“纽约”“怒”,“Nx”

对于时间序列,ν被设定为0,对于静态模型结构,Nx被设定为0

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

  • Np-by-1结构数组Np为参数个数。该结构包含以下字段:

    描述 默认的
    的名字 参数的名称,指定为字符向量。例如,'压力' 'pi',在那里是一个整数(1、Np)
    单位 参数的单位,指定为字符向量。
    价值

    参数的初始值,具体为:

    • 有限的真正的标量

    • 有限的真正列向量

    • 二维的矩阵

    最低

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

    最低> =价值对所有组件。

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

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

    价值<=最大值对所有组件。

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

    false(大小(值))

    意味着,估计所有参数

    属性的子字段使用点表示法参数。例如,对于idnlgrey模型,通过访问参数M.Parameters(我)及其子场所固定的通过M.Parameters .Fixed(我)

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

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

    价值被赋值InParameters(我),在那里是一个整数(1、Np)

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

    字段使用默认值的名字单位最低最大值,固定的

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

  • Nx-by-1结构数组Nx是州的数量。该结构包含以下字段:

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

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

    • 有限的真正的标量

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

    最低

    初始状态的最小值,指定为真正的标量或1-by-与尺寸相同的矢量价值

    最低> =价值对所有组件。

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

    参数的最大值,指定为实标量或1-by-与尺寸相同的矢量价值

    价值<=最大值对所有组件。

    正(大小(值))
    固定的 指定初始状态是否固定于其初始值,指定为布尔标量或1-by-与尺寸相同的矢量价值

    true(大小(价值))

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

    属性的子字段使用点表示法初始状态。例如,对于idnlgrey模型,第一个初始状态是通过M.Initialstates(i)及其子场所固定的通过M.Initialstates(i)。修正

  • []

    使用字段的默认值创建一个结构的名字单位最低最大值,固定的

    价值被赋值0

  • 一个真正的有限Nx-经过-矩阵(InitStates).

    价值TH结构阵列元素是InitStates (Ne)的行向量元素。最低最大值,固定的INF.真正的大小相同的行向量InitStates (Ne)

  • 细胞阵列具有有限的真正矢量大小1 -{}(与...一样[]).

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

名称-值对的观点

指定可选的逗号分隔的对名称,值论点。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen

使用名称,值指定额外的参数属性idnlgrey模型创建期间的模型。

属性

idnlgrey对象属性包括:

文件名

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

命令

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

  • 向量(纽约νNx),指定模型输出的数量纽约,输入ν和国家Nx

  • 结构领域“纽约”“怒”,“Nx”

对于时间序列,ν被设定为0,对于静态模型结构,Nx被设定为0

参数

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

  • Np-by-1结构数组Np为参数个数。该结构包含以下字段:

    描述 默认的
    的名字 参数的名称,指定为字符向量。例如,'压力' 'pi',在那里是一个整数(1、Np)
    单位 参数的单位,指定为字符向量。
    价值

    参数的初始值,具体为:

    • 有限的真正的标量

    • 有限的真正列向量

    • 二维的矩阵

    最低

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

    最低> =价值对所有组件。

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

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

    价值<=最大值对所有组件。

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

    false(大小(值))

    意味着,估计所有参数

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

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

    价值被赋值InParameters(我),在那里是一个整数(1、Np)

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

    使用字段的默认值创建一个结构的名字单位最低最大值,固定的

属性的子字段使用点表示法参数。例如,对于idnlgrey模型,通过访问参数M.Parameters(我)及其子场所固定的通过M.Parameters .Fixed(我)

InitialStates

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

  • Nx-by-1结构数组Nx是州的数量。该结构包含以下字段:

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

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

    • 有限的真正的标量

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

    最低

    初始状态的最小值,指定为真正的标量或1-by-与尺寸相同的矢量价值

    最低> =价值对所有组件。

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

    参数的最大值,指定为实标量或1-by-与尺寸相同的矢量价值

    价值<=最大值对所有组件。

    正(大小(值))
    固定的 指定初始状态是否固定于其初始值,指定为布尔标量或1-by-与尺寸相同的矢量价值

    true(大小(价值))

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

  • []

    使用字段的默认值创建一个结构的名字单位最低最大值,固定的

    价值被赋值0

  • 一个真正的有限Nx-经过-矩阵(InitStates).

    价值TH结构阵列元素是InitStates (Ne)的行向量元素。最低最大值,固定的INF.真正的大小相同的行向量InitStates (Ne)

  • 细胞阵列具有有限的真正矢量大小1 -{}(与...一样[]).

    使用字段的默认值创建一个结构的名字单位最低最大值,固定的

属性的子字段使用点表示法初始状态。例如,对于idnlgrey模型,第一个初始状态是通过M.Initialstates(i)及其子场所固定的通过M.Initialstates(i)。修正

FileArgument

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

模拟选项

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

描述 默认的
AbsTol

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

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

可赋值:一个正的实值。

1 e-6
定期

求解器使用的步长。

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

可转让的价值观:

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

  • 一种真正的价值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”改进的Rosenbrock解决难题。

    • “ode23t”梯形求解器,适用于中等刚度的问题。

    • “ode23tb”-用于复杂问题的隐式龙格-库塔求解器。

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

    • 'ode5'- Dormand-Prince Solver。

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

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

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

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

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

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

“汽车”

自动选择其中一个求解器。

报告

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

  • 估算方法

  • 估计选项

  • 搜索终止条件

  • 估计数据符合

的内容报告如果模型是通过构造创建的,则不相关。

nlgr = idnlgrey (“dcmotor_m”(2, 1, 2), 1, 0.28, 0, 0, 0,“名字”直流电机的);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 struct] EstimateCovariance: 1 Display: 'off' Regularization: [1x1 struct] SearchMethod: 'auto' SearchOptions: [1x1 idoptions.search.]lsqnonlin] OutputWeight: [] Advanced: [1x1 struct]

报告是只读属性。

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

值得等负荷

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

默认值:“t”

NoiseVariance

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

Ts

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

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

默认值:0

TimeUnit

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

  • “纳秒”

  • 微秒的

  • 的毫秒

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

更改此属性不会影响其他属性,因此会更改整个系统行为。使用chgTimeUnit(控制系统工具箱)在不改变系统行为的情况下在时间单位之间进行转换。

默认值:“秒”

InputName

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

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

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

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

sys.inputname.= 'controls';

输入名称自动展开{'控件(1)';'控件(2)'}

当您使用一个估计模型时iddata.对象,数据,软件自动设置InputNamedata.InputName.

你可以使用速记符号u参考InputName财产。例如,sys.u相当于sys.inputname.

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

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

  • MIMO系统子系统的提取

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

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

InputUnit

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

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

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

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

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

InputGroup

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

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

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

sys(:,“控制”)

默认值:没有字段的结构体

OutputName

输出通道名称,指定为以下任意一个:

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

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

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

sys。OutputName =“测量”;

输出名称自动展开{“测量(1)”,“测量”(2)}

当您使用一个估计模型时iddata.对象,数据,软件自动设置OutputName数据。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.SYS2.是动态系统模型,可以设置它们吗笔记属性如下:

sys1。笔记=“sys1有一个字符串。”;sys2。笔记=sys2有一个字符向量。;sys1.notes sys2.notes.
Ans = ' sys1 has a string. ' Ans = 'sys2 has a character vector.'

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

用户数据

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

默认值:[]

输出参数

全部折叠

非线性灰箱模型,返回为idnlgrey对象。

更多关于

全部折叠

idnlgrey国家的定义

州的州idnlgrey模型在存储模型结构的函数或MEX文件中明确定义。非线性灰度框模型的仿真和预测需要各种状态。使用findstates搜索仿真和预测的状态值sim卡预测,比较

请注意

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

介绍了R2007a