主要内容

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”;Order = [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]。

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-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 ×向量,数据集中的实验数量用于估计吗

    最低

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

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

    无穷(大小(值))
    最大

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

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

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

    真正的(大小(值))

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

    类的子字段使用点表示法初始状态。例如,对于idnlgrey模型,初始状态被访问M.InitialStates(我)和它的子域固定通过M.InitialStates .Fixed(我)

  • []

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

    价值为其赋值0

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

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

  • 单元格阵列,其大小为1 × -的有限实向量{}(一样[]).

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

使用名称,值参数来指定附加的属性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 ×向量,数据集中的实验数量用于估计吗

    最低

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

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

    无穷(大小(值))
    最大

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

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

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

    真正的(大小(值))

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

  • []

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

    价值为其赋值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%)。

解算器

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

  • 时间连续变步长求解器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或改进的欧拉求解器。

    • “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. properties。OutputWeight:[]高级:[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”

默认值:''

笔记

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

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

Baidu
map