使用命令行识别线性模型
介绍
目标
对于评估和验证线性模型应用/(味噌)数据找到一个最好的描述了系统动力学。
完成本教程后,您将能够使用命令行完成以下任务:
创建数据对象来表示数据。
图数据。
处理数据的输入和输出信号通过移除补偿。
评估和验证数据的线性模型。
模拟和预测模型的输出。
请注意
本教程使用时域数据展示如何估计线性模型。同样的工作流程适用于合适的频域数据。
数据描述
本教程使用的数据文件co2data.mat
对于两个输入,其中包含两个实验和变量(味噌)时域数据从一个稳态的运营商摄动平衡值。
在第一个实验中,运营商都推出了脉搏波的输入。在第二个实验中,运营商推出了第一个输入和脉搏波信号一步到第二个输入。
准备数据
数据加载到MATLAB工作空间
加载数据。
负载co2data
这个命令将以下五个变量加载到MATLAB工作区:
Input_exp1
和Output_exp1
输入和输出数据的第一个实验中,分别。Input_exp2
和Output_exp2
输入和输出数据的第二个实验中,分别。时间
是时间向量从0到1000分钟,在相同增量的增加0.5
分钟。
两个实验中,输入数据由两列的值。第一列的值是化学消耗的速度每分钟(公斤),和第二列的值是当前(安培)。输出数据是单个列的二氧化碳生产(毫克每分钟)。
策划的输入/输出数据
从两个实验图的输入和输出数据。
情节(时间、Input_exp1时间,Output_exp1)传说(输入1的,“输入2”,“输出1”)图绘制(时间、Input_exp2时间Output_exp2)传说(输入1的,“输入2”,“输出1”)
第一个图显示了第一个实验,运营商一个脉冲波适用于每个输入扰乱它的稳态平衡。
第二个图显示了第二个实验中,运营商应用脉搏波信号输入和一个的第一步到第二个输入。
删除平衡值的数据
绘图数据,所述策划的输入/输出数据显示,输入和输出有非零平衡值。在这部分教程中,减去平衡值的数据。
从每个信号减去平均值的原因是因为,通常,你建立线性模型描述的反应偏差从物理平衡。与稳态数据,它是合理的假设的平均水平的信号对应于这样一个平衡。因此,您可以寻找模型在零附近没有建模的绝对平衡水平物理单位。
放大情节看到最早的时刻操作员应用输入25分钟后发生的扰动稳态条件(或第一次50个样本)。因此,第一个50个样品的平均值代表了平衡条件。
使用以下命令删除平衡值从输入和输出两个实验:
Input_exp1 = Input_exp1 -…(大小(Input_exp1, 1), 1) *意味着(Input_exp1 (1:50,:));Output_exp1 = Output_exp1 -…意思是(Output_exp1 (1:50,:));Input_exp2 = Input_exp2 -…(大小(Input_exp2, 1), 1) *意味着(Input_exp2 (1:50,:));Output_exp2 = Output_exp2 -…意思是(Output_exp2 (1:50,:));
系统识别的使用对象来表示数据
系统辨识工具箱™数据对象,iddata
和idfrd
封装数据和数据属性值为一个单一的实体。您可以使用系统辨识工具箱命令来方便地操纵这些数据对象作为单一实体。
在这部分教程中,您将创建两个iddata
对象,一个用于每一个两个实验。从你使用的实验数据,1为模型估计,并为模型验证实验2的数据。您使用两个独立的数据集,因为你使用一个数据集进行模型估计,另一个用于验证。
请注意
如果不能提供两个独立的数据集,您可以将一个数据集分成两个部分,假设每个部分包含足够的信息来充分代表了系统动力学。
创建iddata对象
你必须已经示例数据加载到MATLAB®工作区中描述数据加载到MATLAB工作区。
使用这些命令来创建两个数据对象,泽
和zv
:
t = 0.5;%样本时间是0.5分钟泽= iddata (Output_exp1 Input_exp1, Ts);zv = iddata (Output_exp2 Input_exp2, Ts);
泽
从实验1和包含数据zv
包含数据从实验2。Ts
样品时间。
的iddata
构造函数需要三个参数对时域数据,如下语法:
data_obj = iddata(输出、输入、sampling_interval);
视图的属性iddata
对象,使用得到
命令。例如,输入这个命令得到的属性评估数据:
(泽)
ans =结构体字段:域:“时间”的名字:“OutputData: x1双[2001]y:“OutputData一样”OutputName:{“日元”}OutputUnit: {"} InputData: [2001 x2双]u:“InputData一样”InputName: {2 x1细胞}InputUnit:} {2 x1细胞周期:[2 x1双]InterSample: {2 x1细胞}Ts: 0.5000 Tstart: 0.5000 SamplingInstants: x1双[2001]TimeUnit:“秒”ExperimentName:“Exp1”指出:{}用户数据:[]
更多地了解这个数据对象的属性,看到iddata
参考页面。
修改数据属性,您可以使用点符号或集
命令。例如,分配通道名称和单位标签图轴,在MATLAB命令窗口中输入以下语法:
%设置时间单位到几分钟泽。TimeUnit =“最小值”;%设置输入通道的名称泽。InputName = {“ConsumptionRate”,“当前”};%为输入变量设置单位泽。InputUnit = {公斤/分钟的,“一个”};%设置输出通道的名称泽。OutputName =“生产”;%设置单元的输出通道泽。OutputUnit =毫克/分钟的;%设置验证数据属性zv。TimeUnit =“最小值”;zv。InputName = {“ConsumptionRate”,“当前”};zv。InputUnit = {公斤/分钟的,“一个”};zv。OutputName =“生产”;zv。OutputUnit =毫克/分钟的;
你可以验证InputName
的属性泽
改变,或“指数”这个属性:
ze.inputname;
提示
属性名称,如InputUnit
不区分大小写的。你也可以缩写属性名称,开始输入
或输出
用u
为输入
和y
为输出
在属性名。例如,OutputUnit
相当于yunit
。
策划一个数据对象中的数据
你可以画出iddata
对象的使用情节
命令。
情节估计数据。
情节(泽)
底部轴显示输入ConsumptionRate
和当前的
,和顶部轴显示输出ProductionRate
。
情节在一个新的图窗口验证数据。
图%打开一个新的MATLAB图窗口情节(zv)%绘制验证数据
放大图看,实验过程放大第一个输入(ConsumptionRate
)的2倍,放大第二个输入(当前的
)的10倍。
选择数据的一个子集
在您开始之前,创建一个新的数据集仅包含原文的前1000个样本估算和验证数据集加快计算速度。
Ze1 =泽(1:1000);Zv1 = zv (1:1000);
关于索引的更多信息iddata
对象,看到相应的引用页面。
估计脉冲响应模型
为什么估计步骤——和频率特性模型?
频率特性和阶跃响应非参数模型可以帮助您理解您的系统的动态特性。这些模型不是由一个紧凑的可调参数的数学公式。相反,它们包含的数据表。
在这部分教程中,您将使用数据集估计这些模型泽
。你一定已经创建泽
描述的一样,创建iddata对象。
从这些模型显示响应块系统的以下特点:
第一个输入到输出的反应可能是一个二阶函数。
第二个输入到输出的反应可能是一个一阶或一个过阻尼的函数。
估计频率响应
系统辨识工具箱产品提供了三个估计频率响应函数:
使用水疗中心
来估计频率响应。
通用电气= spa(泽);
画出频率响应波德图。
波德(Ge)
频率的振幅峰值0.54 rad /分钟,这说明一个可能的共振行为(复杂的两极)——第一input-to-output组合ConsumptionRate
来生产
。
在这两个情节,阶段迅速滚落,这表明一个输入/输出组合的时间延迟。
实证估计的阶跃响应
估计的阶跃响应数据,首先估计脉冲响应的非参数模型(冷杉过滤器)从其阶跃响应数据,然后阴谋。
%模型估计Mimp =冲动(Ze1、60);%阶跃响应步骤(Mimp)
第一输入/输出阶跃响应组合表明一个过度,这表明存在一个阻尼不足的模式(在物理系统中复杂的两极)。
从第二个输入输出阶跃响应没有超调,这表明一阶响应或高阶响应与实际波兰人(过阻尼响应)。
阶跃响应图表示系统中的非零延迟,这是符合快速阶段转出你的波德图中创建实证估计的阶跃响应。
估计延迟的应用系统
为什么估计延迟?
确定参数黑箱模型,您必须指定输入/输出延迟模型的一部分订单。
如果你不知道系统的输入/输出延迟的实验中,您可以使用系统辨识工具箱软件估计延迟。
估计延迟使用ARX模型结构
对于单输入系统,你可以阅读上的延迟脉冲响应图。然而,在应用系统中,如在本教程中,你可能无法告诉哪些输入初始变化引起的输出中,您可以使用延迟
命令。
命令估计动态系统中的时间延迟估计低阶,离散时间ARX模型与一系列的延迟,然后选择最适合对应的延迟。
ARX模型结构是最简单的一个黑盒参数结构。在离散时间,ARX结构是一个差分方程用以下形式:
y (t)代表输出时间t,u (t)代表输入时间t,n一个是极数,nb的数量是b参数(等于0 + 1)的数量,nk是样品的数量在系统的输入影响输出(称为延迟或死时间模型),e (t)是白噪音干扰。
延迟
假设n一个=nb=2
这噪音e是白色的或无关紧要的,估计nk。
估计延迟在此系统中,类型:
延迟(泽)
ans = 5 10
这个结果包含两个数字,因为有两个输入:估计延迟第一输入5
数据样本,估计第二输入延迟10
数据样本。因为实验的样品时间0.5
分钟,这对应于一个2.5
最小延迟第一输入影响输出之前,和一个5.0
第二个输入影响输出最小延迟时间。
估计延迟使用替代方法
有两种方法估算的时间延迟系统:
情节输入和输出数据的时间曲线图的时差和阅读第一改变输入和输出的变化。该方法对于实际仅为单输入/系统;在应用系统中,你可能无法告诉哪些输入输出的初始变化造成的。
情节的脉冲响应数据与地区1个标准差的信心。您可以使用的时候估计时间延迟脉冲响应是第一区域外的信心。
估计模型订单使用ARX模型结构
为什么估计模型阶?
模型秩序是一个或多个整数定义模型的复杂性。一般来说,模型相关订单极数,零的数量,和响应延迟(时间的数量的样本输出响应输入之前)。模型的具体含义取决于模型结构。
计算参数的黑箱模型,模型必须提供订单作为输入。如果你不知道你的系统,你可以估计它。
完成本节中的步骤后,得到以下结果:
第一输入/输出组合:n一个= 2,nb= 2,延迟nk= 5。
第二输入/输出组合:n一个= 1,nb= 1,延迟nk= 10。
稍后,您探索不同的模型结构通过指定model-order值围绕这些细微变化的初始估计。
命令估算模型
在这部分教程中,您将使用struc
,arxstruc
,selstruc
估计和比较简单的多项式(ARX)模型的一系列模型订单和延迟,并选择最好的订单基于模型的质量。
下面的列表描述了使用每个命令的结果:
struc
创建一个矩阵model-order指定范围的组合n一个,nb,nk值。arxstruc
需要的输出struc
系统的估计,一个ARX模型为每个模型,并比较该模型输出的测量输出。arxstruc
返回损失函数为每个模式的规范化和平方预测误差。selstruc
需要的输出arxstruc
和打开ARX模型结构选择窗口,类似于下面的图,帮助你选择模型。你用这个图来选择最佳模型。
水平轴的参数——的总数n一个+nb。
纵轴,叫做原因不明的输出方差(%),输出的部分不是用模型来解释ARX模型预测误差参数的数量显示在水平轴上。
的预测误差的平方和的验证数据输出和模型之间的差异领先一步预测输出。
nk是延迟。
三个矩形突出显示在绿色情节,蓝色,红色。每一种颜色表示类型的最佳标准,如下:
红色——最适合的平方和最小化之间的差异验证数据输出和模型的输出。这个矩形表示整体最适合。
绿色——最适合最小化,Rissanen MDL准则。
蓝色——最适合最小化Akaike AIC准则。
在本教程中,原因不明的输出方差(%)价值仍然是合并后的参数的数量大约持续4至20。这样恒常性表明模型性能并不能提高更高的订单。因此,低阶模型可能符合同样的数据。
请注意
当你使用相同的数据集进行评估和验证,使用MDL和AIC准则选择模型的命令。这些标准补偿过度拟合的结果使用太多的参数。关于这些标准的更多信息,请参阅
selstruc
参考页面。
模型为第一个投入产出组合
在本教程中,系统有两个输入和一个输出,你估计模型每个订单输入/输出独立组合。你可以同时估计的延误两个输入和一个输入一次。
有意义的尝试下列顺序组合第一输入/输出组合:
n一个=
2:5
nb=
1:5
nk=
5
这是因为你估计的非参数模型估计脉冲响应模型表明,该第一输入/输出响应的组合可能有一个二阶响应。同样,在估计延迟的应用系统,输入/输出的延迟组合估计是5。
评估模型为第一个输入/输出的组合:
使用
struc
创建一个矩阵订单可能的模型。NN1 = struc (2:5 1:5 5);
使用
selstruc
计算的损失函数ARX模型与订单NN1
。selstruc (arxstruc(泽(:,:1),zv (:,: 1), NN1))
请注意
泽(:,:1)
选择第一个输入的数据。该命令打开交互式ARX模型结构选择窗口。
请注意
的,Rissanen MDL和Akaike AIC准则产生等效的结果,都是由一个蓝色矩形表示。
红色矩形代表最好的整体配合,发生n一个= 2,nb= 3,nk= 5。红色和蓝色矩形之间的高度差是无关紧要的。因此,您可以选择参数组合对应于最低的模型秩序和最简单的模型。
点击蓝色的矩形,然后单击选择选择组合的订单:
n一个=
2
nb=
2
nk=
5
继续,按任意键在MATLAB命令窗口。
模型为第二个输入-输出的组合
有意义的尝试下列顺序组合的第二输入/输出组合:
n一个=
1:3
nb=
1:3
nk=
10
这是因为你估计的非参数模型估计脉冲响应模型表明,该第二输入/输出响应组合可能有一个一阶反应。同样,在估计延迟的应用系统,输入/输出的延迟组合估计是10。
评估模型为第二个输入/输出的组合:
使用
struc
创建一个矩阵订单可能的模型。NN2 = struc (1:3, 1:3, 10);
使用
selstruc
计算的损失函数ARX模型与订单NN2
。selstruc (arxstruc(泽(:,:2),zv (:,: 2), NN2))
该命令打开交互式ARX模型结构选择窗口。
请注意
Akaike AIC和整体最适合标准产生相同结果。两者都是由相同的红色矩形图表示。
所有的矩形之间的高度差是无关紧要的,所有这些模型订单导致类似的模型的性能。因此,您可以选择参数组合对应于最低的模型秩序和最简单的模型。
单击黄色的矩形左边,然后单击选择选择最低的顺序:n一个= 1,nb= 1,nk= 10。
继续,按任意键在MATLAB命令窗口。
估计转移函数
指定的结构传递函数
在这部分教程中,您估计一个连续时间的传递函数。你必须已经准备好你的数据,所述准备数据。您可以使用以下的结果估计模型订单指定的命令模式:
第一输入/输出组合,使用:
两极,对应
na = 2
在ARX模型中。延迟5,对应
nk = 5
ARX模型中样本(或2.5分钟)。
第二输入/输出组合,使用:
一个极点,对应
na = 1
在ARX模型延迟10,对应
nk = 10
样品在ARX模型(或5分钟)。
你可以估计这些订单使用的传递函数特遣部队
命令。估计,你也可以选择查看进度报告通过设置显示
选项在
在创建的选项设置tfestOptions
命令。
选择= tfestOptions (“显示”,“上”);
收集订单和延迟到变量传递给模型特遣部队
。
np = 1 [2];ioDelay = (2.5 - 5);
传递函数估计。
mtf =特遣部队(Ze1、np、[], ioDelay,选择);
视图模型的系数。
mtf
mtf =从输入“ConsumptionRate”输出“生产”:-1.382 s + 0.0008305 exp (-2.5 *) * - - - - - - - - - - - - - - - - - - - - - - - - - s ^ 2 + 1.014 + 5.444 e-12输入输出“生产”“当前”:5.93 exp (5 *) * - - - - - - - - - - - s + 0.5858连续时间确定传递函数。参数化:极数(2 - 1):0:[1 0]很多免费的系数:6使用“tfdata”、“getpvec”、“getcov”参数及其不确定性。状态:估计使用tf对时域数据“Ze1”。适合估算数据:78.92%消防工程:14.22,MSE: 13.97
模型的显示显示超过85%适合估计数据。
验证模型
在这部分教程中,您将创建一个阴谋,比较实际输出与模型输出使用比较
命令。
比较(Zv1 mtf)
适合比较显示约60%。
残留分析
使用渣油
命令来评估残差的特点。
渣油(Zv1 mtf)
残差显示高度的自相关。这不是意外自模型mtf
没有任何组件分别描述噪声的性质。模型输入输出动态测量和扰动动力学您将需要使用一个模型结构,其中包含元素来描述噪声分量。您可以使用bj
,党卫军
和过程
命令创建的多项式模型,分别状态和工艺结构。这些结构等,包含元素捕获噪音行为。
评估过程模型
指定流程模型的结构
在这部分教程中,你估计一个低阶,连续时间传递函数(过程模型)。系统辨识工具箱产品支持连续时间模型和最多三个波兰人(可能包含欠阻尼的波兰人),一个零金宝app,延迟元素,和一个积分器。
你必须已经准备好你的数据,所述准备数据。
您可以使用以下的结果估计模型订单指定的命令模式:
第一输入/输出组合,使用:
两极,对应n一个= 2 ARX模型。
延迟5,对应nk= 5样品(或2.5分钟)在ARX模型中。
第二输入/输出组合,使用:
一个极点,对应n一个= 1在ARX模型。
延迟10,对应nk= 10个样本(或5分钟)在ARX模型中。
请注意
因为没有关系零的数量估计的离散时间ARX模型及其连续时间,你没有估计的数量为零。在本教程中,您可以指定一个零第一输入/输出的组合,没有零的第二个输出的组合。
使用idproc
命令来创建两个模型结构,每个输入/输出一个组合:
midproc0 = idproc ({“P2ZUD”,“P1D”},“TimeUnit”,“分钟”);
细胞数组{“P2ZUD”、“P1D”}
指定每个输入/输出的模型结构组合:
“P2ZUD”
代表一个传递函数与两极(P2
),一个零(Z
)、欠阻尼的复共轭极点(U
)和延迟(D
)。“P1D”
代表一个传递函数与一个极点(P1
)和延迟(D
)。
该示例还使用TimeUnit
参数指定的时间单位使用。
查看模型结构和参数值
查看两个生成的模型。
midproc0
midproc0 =流程模型与2输入:y = G11 (s) u1 + G12 (s) u2从输入1输出1:1 + Tz * s G11 (s) = Kp * - - - - - - - - - - - - - - - - - - - - - - - * exp (Td * s) 1 + 2 *ζ* Tw * s + (Tw * s) ^ 2 Kp =南Tw Td =南Tz = =南ζ=南南从输入2输出1:Kp G12 (s) = - - - - - - - - - - - * exp (Td * s) 1 + Tp1 * s Kp Td = =南Tp1 =南南参数化:{“P2DUZ”} {‘P1D}很多免费的系数:8使用“getpvec”、“getcov”参数及其不确定性。状态:由直接建设或转换。不估计。
要设置的参数值南
因为他们还没有估计。
指定初始猜测时间延迟
设置时间延迟属性的模型对象2.5
最小值和5
最小值为每个输入/输出对初始猜测。同时,设置一个上限延迟,因为良好的初始猜测是可用的。
midproc0.Structure .Td (1,1)。值= 2.5;midproc0.Structure .Td (1、2)。值= 5;midproc0.Structure .Td (1,1)。最大= 3;midproc0.Structure .Td (1、2)。最大= 7;
请注意
设置延迟约束时,您必须指定实际的延迟时间单位(分钟,在这种情况下),而不是样本的数量。
使用proc估计模型参数
过程
是一个迭代估计量的过程模型,这意味着它使用一个迭代的非线性最小二乘算法最小化代价函数。的成本函数的加权和广场的错误。
根据其参数,过程
估计不同的黑盒多项式模型。您可以使用过程
例如,线性连续系统传输函数来估计参数,状态,或多项式模型结构。使用过程
,你必须提供一个模型结构与未知参数估计数据作为输入参数。
对于这部分教程中,您必须已经定义了模型结构,所述指定流程模型的结构。使用midproc0
模型结构和Ze1
估计的数据:
midproc = proc (Ze1 midproc0);礼物(midproc)
midproc =流程模型与2输入:y = G11 (s) u1 + G12 (s) u2从输入输出“生产”:“ConsumptionRate”1 + Tz * s G11 (s) = Kp * - - - - - - - - - - - - - - - - - - - - - - - * exp (Td * s) 1 + 2 *ζ* Tw * s + (Tw * s) ^ 2 Kp = -1.1807 + / - 0.29986太瓦= 1.6437 + / - 714.6ζ= 16.036 + / - 6958.9 Td = 2.426 + / - 64.276 Tz = -109.19 + / - 63.73从输入输出“生产”“当前”:Kp G12 (s) = - - - - - - - - - - - * exp (Td * s) 1 + Tp1 * s Kp = 10.264 + / - 0.048404 Tp1 = 2.049 + / - 0.054901 Td = 4.9175 + / - 0.034374参数化:{“P2DUZ”} {‘P1D}很多免费的系数:8使用“getpvec”、“getcov”参数及其不确定性。状态:终止条件:最大迭代次数达到. .迭代次数:20、功能评估:279估计使用proc时域数据“Ze1”。适合估算数据:86.2%消防工程:6.081,MSE: 5.984在模型的“报告”属性的更多信息。
与离散多项式模型、连续时间模型让你估计延迟。在这种情况下,估计延迟初始猜测您指定的值是不同的2.5
和5
,分别。大的不确定性估计的参数值G_1里面(s)
表明输入的动态1
输出不捕获。
更多地了解估算模型,明白了流程模型。
验证模型
在这部分教程中,您将创建一个图,比较了实际产出和模型的输出。
比较(Zv1 midproc)
情节表明,模型输出合理同意测量输出:之间有60%的协议模型和验证数据。
使用渣油
执行残留分析。
渣油(Zv1 midproc)
第二个输入之间的互相关和残余错误是显著的。置信区域外的自相关图显示值,表明残差相关。
Levenberg-Marquardt改变迭代参数估计的算法。
选择= procestOptions;Opt.SearchMethod =“lm”;midproc1 = proc (Ze1 midproc,选择);
属性或指定初始参数调整算法的猜测和重新运行评估可以提高仿真结果。添加一个噪声模型可以提高预测结果,但不一定是仿真结果。
评估过程模型和噪声模型
这部分教程展示了如何估算一个流程模型,包括估计的噪声模型。包括噪声模型通常可以提高模型的预测结果,但不一定是仿真结果。
使用以下命令来指定一个一阶自回归滑动平均噪声:
选择= procestOptions;Opt.DisturbanceModel =“ARMA1”;midproc2 = proc (Ze1 midproc0,选择);
你可以输入“距离”
而不是“DisturbanceModel”
。属性名是不区分大小写的,你只需要包括名称的一部分,惟一地标识属性。
由此产生的模型测量数据进行比较。
比较(Zv1 midproc2)
情节表明,模型的输出保持合理的协议验证数据的输出。
执行残留分析。
渣油(Zv1 midproc2)
残图显示,自相关范围值内的信心。因此添加噪声模型产生残差不相关的。这表明一个更精确的模型。
估计黑盒多项式模型
模型的订单估计多项式模型
在这部分教程中,您估计几种不同类型的黑盒,输入-输出多项式模型。
你必须已经准备好你的数据,所述准备数据。
您可以使用以下以前的结果估计模型的订单指定的命令多项式模型:
第一输入/输出组合,使用:
两极,对应n一个= 2 ARX模型。
一个零,相应的nb= 2 ARX模型。
延迟5,对应nk= 5样品(或2.5分钟)在ARX模型中。
第二输入/输出组合,使用:
一个极点,对应n一个= 1在ARX模型。
没有零,对应nb= 1在ARX模型。
延迟10,对应nk= 10个样本(或5分钟)在ARX模型中。
估计线性ARX模型
关于ARX模型。对于单输入/系统的输出),ARX模型结构是:
y (t)代表输出时间t,u (t)代表输入时间t,n一个是极数,nb是0的数量+ 1,nk是样品的数量在系统的输入影响输出(称为延迟或死时间模型),e (t)是白噪音干扰。
ARX模型结构不区分单个输入/输出路径的两极:ARX方程除以一个,其中包含两极,显示一个出现在输入的分母。因此,您可以设置n一个的金额为每一个输入/输出对波兰人,等于3
在这种情况下。
系统辨识工具箱产品估计参数 和 使用数据和模型指定的订单。
利用ARX估计ARX模型。使用arx
使用快速计算多项式系数,noniterative方法arx
:
马克思= arx (Ze1,“na”3,“注”(2 - 1),“朝鲜”10 [5]);礼物(马克思)%显示模型参数%与不确定性信息
马克思=离散ARX模型:一个(z) y (t) = B (z) u (t) + e (t) (z) = 1 - 1.027 (+ / - 0.02907) z ^ 1 + 0.1678 (+ / - 0.042) z ^ 2 + 0.01289 (+ / - 0.02583) z ^ 3 B1 (z) = 1.86 (+ / - 0.189) z ^ 5 - 1.608 (+ / - 0.1888) z ^ 6 B2 (z) = 1.612 (+ / - 0.07392) z ^ -10样品时间:0.5分钟参数化:多项式订单:na = 3 nb = [2 1] nk = 10[5]很多免费的系数:6使用“polydata”、“getpvec”、“getcov”参数及其不确定性。状态:用ARX时域数据“Ze1”。适合估算数据:90.7%(预测聚焦)消防工程:2.768,MSE: 2.719在模型的“报告”属性的更多信息。
MATLAB估计多项式一个
,B1
,B2
。模型参数的不确定性对每个计算1标准差和每个参数值出现在旁边的括号。
或者,您可以使用以下简写语法和模型订单指定为一个向量:
马克思= arx (Ze1 [3 2 1 5 10]);
访问模型数据。你估计的模型,马克思
是一个离散时间idpoly
对象。这个模型对象的属性,您可以使用得到
功能:
(马克思)
[1 -1.0267 0.1678 0.0129]B: {[0 0 0 0 0 1.8599 - -1.6084] [0 0 0 0 0 0 0 0 0 0 1.6118]} C: 1 D: 1 F: {[1] [1]} IntegrateNoise: 0变量:“z ^ 1”IODelay:[0 0]结构:[1 x1 pmodel。多项式]NoiseVariance: 2.7436 InputDelay: [2 x1双]OutputDelay: 0 InputName: {2 x1细胞}InputUnit: {2 x1细胞}InputGroup: [1 x1 struct] OutputName:{‘生产’}OutputUnit:{“毫克/ min”} OutputGroup: [1 x1 struct]指出:[0 x1字符串]用户数据:[]的名字:“Ts: 0.5000 TimeUnit:“分钟”SamplingGrid: [1 x1 struct]报告:[1 x1 idresults.arx]
您可以访问这些属性存储的信息使用点符号。例如,您可以计算模型的离散杆通过发现的根源一个
多项式。
marx_poles =根(marx.a)
marx_poles = 0.7953 0.2877 -0.0564
在这种情况下,您访问一个
多项式使用marx.a
。
该模型马克思
描述了系统动力学使用三个离散的波兰人。
提示
您还可以使用极
直接计算模型的极点。
学习更多的知识。更多地了解估计多项式模型,明白了输入-输出多项式模型。
关于访问模型数据的更多信息,请参阅数据提取。
估计状态空间模型
对状态空间模型。状态空间模型的一般结构是:
y (t)代表输出时间t,u (t)代表输入时间t,x (t)的状态向量的时间吗t,e (t)是白噪音干扰。
你必须指定一个整数作为模型(状态向量的维度)来估计状态方程模型。默认情况下,延迟=1
。
系统辨识工具箱产品估计了状态矩阵一个,B,C,D,K使用模型秩序和您指定的数据。
状态空间模型的结构是一个不错的选择,快速估计,因为它只包含两个参数:n
是极数(的大小一个矩阵),nk
是延迟。
使用n4sid估计状态空间模型。使用n4sid
命令来指定一个范围的模型状态空间模型和评估性能的几个订单(订单2 - 8):
mn4sid = n4sid (Ze1 2:8,“InputDelay”9 [4]);
这个命令使用了快,noniterative(子)方法并打开下面的情节。你用这个阴谋决定哪些国家提供一个重要的相对贡献输入/输出行为,和州提供最小的贡献。
纵轴是一个相对程度的多少每个状态导致的输入/输出行为模型(日志的协方差矩阵的奇异值)。水平轴对应于模型n
。这块地建议n = 3
,由一个红色的矩形表示。
的选择的顺序订单字段显示顺序推荐模型,3
在这种情况下,默认情况下。你可以改变订单选择使用选择的顺序下拉列表。应用价值选择的顺序通过单击字段并关闭订单选择窗口应用。
默认情况下,n4sid
使用一个免费的状态方程的参数化形式。估计一个规范形式,设置的值SSParameterization
财产“规范”
。您还可以指定input-to-output延迟(样本)使用“InputDelay”
财产。
mCanonical = n4sid (Ze1 3“SSParameterization”,“规范”,“InputDelay”9 [4]);礼物(mCanonical);%显示模型属性
mCanonical =离散时间状态空间模型发现:x (t + Ts) = x (t) + B K u (t) + e (t) y (t) = C x (t) + D u (t) + e (t) = (x1, x2) x3 x1 1 0 1 0 x2 0 0 x3 0.0737 + / - 0.05919 - -0.6093 + / - 0.1626 - 1.446 + / - 0.1287 B = ConsumptionR当前x1 1.844 + / - 0.175 - 0.5633 + / - 0.122 x2 1.063 + / - 0.1673 2.308 + / - 0.1222 x3 0.2779 + / - 0.09615 - 1.878 + / - 0.1058 C = (x1, x2) x3生产1 0 0 D = ConsumptionR当前生产0 0 K = x1 0.8674 + / - 0.03169 x2 0.6849 + / - 0.04145 x3 0.5105 + / - 0.04352输入延迟(采样周期):4 9样品时间:0.5分钟参数化:规范形式指数:3。引线:没有干扰组件:估计数量的免费系数:12使用“idssdata”、“getpvec”、“getcov”参数及其不确定性。状态:估计使用N4SID时域数据“Ze1”。适合估算数据:91.39%(预测聚焦)消防工程:2.402,MSE: 2.331在模型的“报告”属性的更多信息。
请注意
mn4sid
和mCanonical
离散时间模型。估计一个连续时间模型,设置“t”
财产0
在估计命令,或者使用党卫军
命令:
mCT1 = n4sid (Ze1 3“t”0,“InputDelay”(2.5 - 5))mCT2 = ss (Ze1 3“InputDelay”(2.5 - 5))
学习更多的知识。更多地了解状态空间模型,估算状态空间模型。
估计Box-Jenkins模型
关于Box-Jenkins模型。一般Box-Jenkins (BJ)结构:
估计BJ模型,您需要指定参数nb,nf,nc,nd,nk。
而ARX模型结构不区分两极单个输入/输出路径,BJ模型提供了更大的灵活性在建模的极点和零点分开扰动系统的极点和零点动力学。
估计使用保利BJ模型。您可以使用聚
BJ模型来估计。聚
是一个迭代的方法一般有以下的语法:
保利(数据,[na nb数控nd nf nk]);
估计BJ模型类型:
na = 0;nb = 1 [2];数控= 1;nd = 1;2 nf = [1];nk = 10 [5];mbj =保利(Ze1 [na nb数控nd nf nk]);
这个命令指定nf = 2
,nb = 2
,nk = 5
第一个输入,nf = nb = 1
和nk = 10
第二个输入。
显示模型信息。
礼物(mbj)
mbj =离散BJ模型:y (t) = (B (z) / F (z)] u (t) + (C (z) / D (z)] e (t) B1 (z) = 1.823 (+ / - 0.1792) z ^ 5 - 1.315 (+ / - 0.2367) z ^ 6 B2 (z) = 1.791 (+ / - 0.06431) z ^ -10 C (z) = 1 + 0.1068 (+ / - 0.04009) z ^ 1 D (z) = 1 - 0.7452 (+ / - 0.02694) z ^ 1 F1 (z) = 1 - 1.321 (+ / - 0.06936) z ^ 1 + 0.5911 (+ / - 0.05514) z ^ 2 F2 (z) = 1 - 0.8314 (+ / - 0.006441) z ^ 1样品时间:0.5分钟参数化:多项式订单:nb =[2 1]数控= 1 nd = 1 nf = [2 1] nk = 10[5]很多免费的系数:8使用“polydata”、“getpvec”、“getcov”参数及其不确定性。状态:终止条件:附近(当地)最小,(标准(g) < tol) . .迭代次数:6、功能评估:13估计使用聚在时域数据“Ze1”。适合估算数据:90.75%(预测聚焦)消防工程:2.733,MSE: 2.689在模型的“报告”属性的更多信息。
模型参数的不确定性对每个计算1标准差和每个参数值出现在旁边的括号。
的多项式C
和D
给出了噪声模型的分子和分母,分别。
学习更多的知识。学习更多的关于识别输入-输出多项式模型如BJ,明白了输入-输出多项式模型。
比较模型输出和测量输出
比较ARX的输出、状态和Box-Jenkins模型来测量输出。
比较(Zv1,马克思,mn4sid mbj)
比较
土地测量输出的验证数据集对模拟模型的输出。输入数据的验证数据集作为模型的输入。
执行ARX残留分析、状态和Box-Jenkins模型。
渣油(Zv1,马克思,mn4sid mbj)
这三个模型模拟输出同样不相关的剩余工资。因此,选择ARX模型,因为它是最简单的三个输入-输出多项式模型和充分抓住了过程动力学。
模拟和预测模型的输出
模拟模型的输出
在这部分教程中,您将模拟模型的输出。你必须已经创造了连续时间模型midproc2
描述的一样,评估过程模型。
模拟模型的输出需要以下信息:
对模型输入值
模拟(也称为初始条件初始状态)
例如,以下命令使用iddata
和idinput
命令来构建一个输入数据集,和使用sim卡
模拟模型的输出:
%为模拟创建输入U = iddata ([], idinput (200 [2]),“t”,0.5,“TimeUnit”,“最小值”);%模拟响应设置初始条件等于零ysim_1 = sim (midproc2 U);
最大化之间的合适的模拟响应模型来测量输出相同的输入,可以计算初始条件相应的测量数据。最好的拟合初始条件可以得到使用findstates
在状态估计模型的版本。以下命令估计初始状态x0
从数据集中Zv1
:
%的状态版本模型计算所需的初始状态midproc2_ss = ids (midproc2);x0 = findstates (midproc2_ss Zv1);
接下来,使用初始状态模拟模型估计的数据。
%的模拟输入Usim = Zv1 ([],::);选择= simOptions (“InitialCondition”,x0);ysim_2 = sim (midproc2_ss、Usim选择);
比较模拟和测量输出的阴谋。
图([ysim_2的阴谋。y, Zv1.y])传说({模型输出的,“测量”})包含(“时间”),ylabel (“输出”)
预测未来输出
许多控制设计应用程序需要你预测未来输出的动态系统使用过去的输入/输出数据。
例如,使用预测
提前预测模型反应五个步骤:
预测(midproc2 Ze1 5)
比较预测输出值与测量输出值。第三个参数的比较
指定一个five-step-ahead预测。当你不指定第三个参数,比较
假设一个无限预测地平线和模拟模型的输出。
比较(Ze1 midproc2 5)
使用体育
计算预测误差犯错
在预测的输出midproc2
和测量输出。然后,绘制误差频谱使用光谱
命令。
(错)= pe (midproc2 Zv1);谱(spa(呃,[],logspace (2200)))
预测错误策划1个标准差的置信区间。的错误是在高频率更大,因为高频扰动的性质。