主要内容

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对象属性,看属性

例子

全部折叠

加载数据。

负载(fullfile (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...“名字”直流电机的);

加载数据。

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

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

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

文件名=“twotanks_c”

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

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

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

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

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

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

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

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

    描述 默认的
    的名字 参数的名称,指定为字符向量。例如,“压力” “π”,在那里是一个整数(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-大小相同的向量价值

    真正的(大小(值))

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

    属性的子字段使用点表示法初始状态。例如,对于idnlgrey模型,第一个初始状态是通过M.InitialStates(我)和它的子域固定通过M.InitialStates .Fixed(我)

  • []

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

    价值被赋值0

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

    价值结构数组元素是InitStates (Ne)的行向量元素。最低最大,固定真正的大小相同的行向量InitStates (Ne)

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

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

名称-值对的观点

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

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

属性

idnlgrey对象属性包括:

文件名

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

订单

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

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

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

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

参数

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

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

    描述 默认的
    的名字 参数的名称,指定为字符向量。例如,“压力” “π”,在那里是一个整数(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-大小相同的向量价值

    真正的(大小(值))

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

  • []

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

    价值被赋值0

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

    价值结构数组元素是InitStates (Ne)的行向量元素。最低最大,固定真正的大小相同的行向量InitStates (Ne)

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

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

属性的子字段使用点表示法初始状态。例如,对于idnlgrey模型,第一个初始状态是通过M.InitialStates(我)和它的子域固定通过M.InitialStates .Fixed(我)

FileArgument

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

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模型:

    • “数值”龙格-库塔(4,5)解决非刚性问题。

    • “ode23”龙格-库塔(2,3)求解器。

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

    • “ode15s”-数值微分公式求解刚性问题。

    • “ode23s”改进的Rosenbrock解决难题。

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

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

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

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

    • “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参考页面和评估报告

TimeVariable

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

默认值:“t”

NoiseVariance

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

Ts

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

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

默认值:0

TimeUnit

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

  • “纳秒”

  • 微秒的

  • 的毫秒

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

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

默认值:“秒”

InputName

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

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

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

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

sys。InputName =“控制”;

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

当你用iddata对象,数据,软件自动设定InputName数据。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”

默认值:''

笔记

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

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

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

用户数据

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

默认值:[]

输出参数

全部折叠

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

更多关于

全部折叠

idnlgrey国家的定义

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

请注意

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

介绍了R2007a