主要内容

模拟

模拟辨识模型的响应

描述

例子

Y= SIM(sys,udata)使用输入数据返回所识别模型的模拟响应,udata.缺省情况下,除了除以所有型号类型之外的零初始条件idnlgrey.,在这种情况下,使用内部存储在模型中的初始条件。

例子

Y= SIM(sys,udata,选择)使用选项集,选择,以配置模拟选项,包括初始条件的规范。

例子

[Y,y_sd.) = sim卡(___)返回估计的标准偏差,y_sd.的模拟响应。

例子

[Y,y_sd.,x) = sim卡(___)返回状态轨迹,x,对于状态空间模型。

例子

[Y,y_sd.,x,x_sd) = sim卡(___)返回状态轨迹的标准差,x_sd,对于状态空间模型。

例子

SIM(___)绘制已识别模型的模拟响应。

例子

全部收缩

加载估计数据。

负载iddata2z2

估计一个三阶状态空间模型。

sys=ssest(z2,3);

使用估计数据的输入通道模拟已识别的模型。

Y = SIM(SYS,Z2);

加载数据,并获得已识别的模型。

负载iddata2z2sys=n4sid(z2,3);

sys是使用子空间方法估计的三阶状态空间模型。

创建一个模拟选项设置以向模拟模型响应添加噪声。

opt1 = simoptions('addnoise',真正的);

模拟模型。

Y = SIM(SYS,Z2,OPT1);

默认高斯白噪声由模型的噪声传递函数过滤,并添加到模拟模型响应中。

你也可以添加自己的噪声信号,E, 使用noisdata.选项。

e=randn(长度(z2.u),1);opt2=simOptions('addnoise',真的,'noosdata',e);

模拟模型。

y = sim (sys、z2 opt2);

加载数据。

负载iddata1z1

指定估计初始状态的估计选项。

estimOpt=ssestOptions(“InitialState”,'估计');

估计一个状态空间模型,并返回估计的初始状态的值。

[sys,x0]=ssest(z1,2,估计值);

指定模拟的初始条件

simopt = simoptions('初始条件', x0);

对模型进行仿真,得到模型响应和标准差。

[y,y_sd] = sim(sys,z1,simopt);

负载估计数据,并估计状态空间模型。

负载iddata1z1sys = ssest(z1,2);

返回标准偏差和状态轨迹。

[y,y_sd,x] = sim(sys,z1);

负载估计数据,并估计状态空间模型。

负载iddata1z1sys = ssest(z1,2);

创建模拟选项集,并指定初始状态。

opt=simOptions('初始条件'[1, 2]);

指定初始状态的协方差。

opt.x0covorance=[0.10;0 0.1];

计算模拟响应的标准偏差,y_sd.,以及状态轨迹,x_sd.

[Y,Y_SD,X,X_SD] = SIM(SYS,Z1,OPT);

获得已识别的模型。

负载iddata2z2sys = tfest(z2,3);

sys是一个idtf封装用于测量数据的三阶传递函数的模型z2.

模拟模型。

sim卡(系统,z2)

使用TFEST估计的图形包含一个轴。标题为模拟输出#1:y1的轴包含类型为line的对象。此对象表示y1。

在已知的平衡点附近模拟一个单输入单输出的非线性ARX模型,输入水平为1.和输出水平10..

加载样本数据。

负载iddata2

根据数据估计非线性ARX模型。

m = nlarx(z2,[2 2 1],“树分区”);

根据过去的数据估计模型的当前状态。在输入和输出变量(这里是2)有滞后时指定尽可能多的过去的样本。

x0 = data2state (M,结构('输入',(2,1),'输出',10 *那些(2,1))));

使用返回的初始状态模拟模型数据状态.

opt=simOptions('初始条件', x0);SIM(M,Z2,OPT)

使用具有预测焦点的nlarx估计的图估计包含轴。标题模拟输出#1:Y1的轴包含类型线的对象。该对象代表Y1。

在前一次仿真运行结束后,继续对非线性ARX模型进行仿真。

根据数据估计非线性ARX模型。

负载iddata2m = nlarx(z2,[2 2 1],“树分区”);

使用输入数据的前半部分模拟模型z2.从零初始状态开始模拟。

u1=z2(1:200,[]);opt1=simOptions('初始条件','零');ys1 = sim(m,u1,opt1);

使用输入数据的后半部分启动另一个模拟z2. 使用与第一次模拟结束时相同的模型状态。

U2 = Z2(201:END,[]);

要正确设置第二次模拟的初始状态,请使用包输入U1.和产出ys1从第一次模拟到第一次iddata.对象将此数据作为下一次模拟的初始条件传递。

firstsimdata = [ys1,u1];opt2 = simoptions('初始条件',firstSimData);ys2=sim(M,u2,opt2);

通过与使用所有输入数据的完整仿真进行比较,验证两个仿真z2.首先,提取整组输入数据。

Utotal = Z2(:,[]);opt3 = simoptions('初始条件','零');Ystotal = SIM(M,Utotal,Opt3);

绘制三个反应ys1,ys2ystotal。ys1应该等于上半年ystotal..ys2应该等于下半年ystotal..

情节(YS1,“b”,ys2,‘g’ysTotal,'k *')

图中包含一个坐标轴。具有标题Y1的轴包含3个类型的类型。这些对象代表ys1,ys2,ystotal。

这些曲线表明了这三个响应ys1,ys2, 和ystotal.按预期重叠。

估计模型的初始状态M这样,响应最好匹配数据集中的输出z2.

加载样本数据。

负载iddata2;

根据数据估计非线性ARX模型。

M=nlarx(z2,[4 3 2],波网(“NumberOfUnits”, 20));

估计初始状态M最适合z2.y在模拟响应中。

x0=最终状态(M,z2,Inf);

模拟模型。

opt=simOptions('初始条件',x0);ysim=sim(M,z2.u,opt);

比较模拟模型输出ysim输入输出信号z2.

时间= z2.SamplingInstants;情节(时间、ysim时间、z2.y'.')

图中包含一个坐标轴。轴线包含2个线型对象。

开始模拟稳态附近的模型,其中已知输入是1.,但输出是未知的。

加载样本数据。

负载iddata2

根据数据估计非线性ARX模型。

M=nlarx(z2,[4,3,2],'wavenet');

确定输入的均衡状态值1.和未知的目标输出。

x0 = findop (M,'稳定的',1,楠);

使用初始状态模拟模型x0.

opt=simOptions('初始条件', x0);SIM(M,Z2.U,OPT)

使用具有预测焦点的nlarx估计的图估计包含轴。标题模拟输出#1:Y1的轴包含类型线的对象。该对象代表Y1。

加载样本数据。

负载iddata2

创建Hammerstein-Wiener模型。

M=nlhw(z2,[4 3 2],],“线性”);

计算对应于的输入电平的稳态工作点值1.以及未知的输出级别。

x0 = findop (M,'稳定的',1,楠);

使用估计的初始状态模拟模型。

opt=simOptions('初始条件', x0);sim (M, z2.u)

使用nlhw估计的图包含轴。标题模拟输出#1:Y1的轴包含类型线的对象。该对象代表Y1。

使用最小二乘方法加载时间序列数据,并估计AR模型。

负载iddata9z9sys = ar (z9 6'ls');

对于时间序列数据,指定所需的模拟长度,N=200,使用N-by-0输入数据集。

data = iddata([],零(200,0),z9.ts);

设置初始条件以使用时间序列的初始样本作为历史输出样本。

ic = struct('输入',[],'输出',z9.y(1:6));opt=simOptions('初始条件',我知道了);

模拟模型。

sim卡(系统、数据、可选)

使用AR估计的图包含轴。标题模拟输出#1:Y1的轴包含类型线的对象。该对象代表Y1。

模拟模型时,使用历史输入输出数据作为初始条件的代理。首先使用模拟命令并使用辛伐斯选项集。然后,您通过手动将历史数据映射到初始状态来再现模拟输出。

加载一个两输入一输出的数据集。

负载iddata7z7

使用数据确定一个五阶状态空间模型。

sys=n4sid(z7,5);

将数据集分成两部分。

za = z7(1:15);zb = z7(16:结束);

使用中的输入信号模拟模型zB.

USIM = ZB;

模拟需要初始条件。信号值是历史数据,即它们是立即在数据之前的时间的输入和输出值zB. 使用作为所需初始条件的代理。

io = struct('输入',za.inputdata,'输出',za.outputdata);opt=simOptions('初始条件',io);

模拟模型。

ysim = sim (sys、uSim选择);

现在通过手动将历史数据映射到初始状态来重现输出sys.为此,使用数据状态命令。

xf = data2state (sys,咱);

xf包含的状态值sys在中最近的数据采样之后的瞬间.

模拟系统使用xf作为初始状态。

opt2 = simoptions('初始条件',XF);YSIM2 = SIM(SYS,USIM,OPT2);

绘制输出模拟命令ysim和手动计算的结果ysim2。

地块(ysim,“b”ysim2,'--r')

图中包含一个坐标轴。标题为y1的轴包含两个类型为line的对象。这些对象表示ysim, ysim2。

ysim2是相同的ysim.

输入参数

全部收缩

已标识的模型,指定为以下模型对象之一:

模型类型 模型对象
确定线性模型 多项式模型 Idpoly.
过程模型 IDProc.
状态空间模型 智能决策支持系统
传递函数模型 idtf
线性灰盒式模型 idgrey
辨识非线性模型 非线性ARX模型 idnlarx
非线性Hammerstein-Wiener模型 idnlw.
非线性灰度盒模型 idnlgrey.

模拟输入数据,指定为iddata.物体或矩阵。模拟使用此对象的输入通道作为模拟输入。对于离散时间系统的时域仿真,还可以指定udata作为一个矩阵,其列对应于每个输入通道。

如果sys是一个线性模型,可以使用时域或频域数据。如果sys是一个非线性模型,只能使用时域数据。

如果sys是一个时间序列模型,即没有输入的模型,指定udata作为一个ns.-by-0信号,在哪里ns.是希望的仿真输出样本数。例如,模拟100.输出样本,指定udata如下。

UDATA = IDDATA([],零(100,0),TS);

如果您没有实验中的数据,请使用伊迪普特产生具有各种特征的信号。

模拟选项,指定为a辛伐斯用于设置以下选项的选项集:

  • 初始条件

  • 输入/输出偏移

  • 添加剂噪声

输出参数

全部收缩

模拟响应sys,返回一个iddata.对象或矩阵,这取决于你如何指定udata.例如,如果udata是一个iddata.对象,那么对象也是Y.

如果udata表示时域数据,然后Y是对应的时间向量的模拟响应udata.

如果udata表示频域数据,U(ω.),然后Y包含相应采样时域输出信号的傅里叶变换。这个信号是的频率响应的乘积sys,G(ω.),及U(ω.).

对于multi-experiment数据,Y是一个对应的多重实验iddata.目的。

线性模型或非线性灰箱模型模拟响应的估计标准差,返回为ns.-经过-纽约矩阵,其中ns.是样品数量和纽约是输出的数量。该软件通过考虑模型参数协方差、初始状态协方差和加性噪声协方差来计算标准差。添加剂噪声协方差存储在NoiseVariance模型的财产。

y_sd.使用一阶灵敏度考虑(高斯近似公式)导出。

对于非线性模型,y_sd.[].

状态空间模型的状态轨迹估计,返回为ns.-经过-NX.矩阵,其中ns.是样品数量和NX.是状态数。

x只有相关的sys是一个智能决策支持系统,idgrey, 要么idnlgrey.模型如果sys不是状态空间模型,x返回为[].

状态空间模型的状态轨迹的估计标准偏差,作为一个ns.-经过-NX.矩阵,其中ns.是样品数量和NX.是状态数。该软件通过考虑模型参数协方差、初始状态协方差和加性噪声协方差来计算标准差。添加剂噪声协方差存储在NoiseVariance模型的财产。

x_sd只有相关的sys是一个智能决策支持系统,idgrey, 要么idnlgrey.模型如果sys不是状态空间模型,x_sd返回为[].

提示

  • 当估计模型和测量验证数据集的系统的初始条件不同时,模拟和测量的响应也可能不同,尤其是在响应的开始时。为了最小化这种差异,估计使用初始状态值findstates并使用估计值来设置初始条件选择使用辛伐斯. 有关示例,请参见匹配模型响应输出数据.

算法

模拟指使用输入数据和初始条件计算模型响应。模拟模拟以下系统:

这里,

  • U(T)为仿真输入数据,udata.

  • Y(T)是模拟输出响应。

  • G是从输入到输出的传递函数,在中定义sys.模拟初始条件,如指定使用辛伐斯,设置的初始状态G.

  • E(T)是一个可选的噪声信号。添加噪音到您的模拟通过创建辛伐斯选项设置,并设置addnoise.选择真的. 此外,可以通过指定noisdata.选项。

  • H是噪声传递函数,在中定义sys.

  • δu是从输入信号中减去的可选输入偏移量,U(T),在输入用于模拟模型之前。通过设置来指定输入偏移量InputOffset.选择使用辛伐斯.

  • δy是添加到输出响应的可选输出偏移量,Y(T),模拟后。通过设置来指定输出偏移量outputOffset.选择使用辛伐斯.

有关指定仿真初始条件,输入和输出偏移和噪声信号数据的更多信息,请参阅辛伐斯.对于多分析数据,您可以单独为每个实验指定这些选项。

选择

  • 采用SIMSD.用于计算响应的标准偏差的蒙特卡罗方法。

  • 模拟扩展大规模集成电路为方便附加与已识别型号有关的功能:

    • 非线性模型的仿真

    • 加性噪声模拟

    • 结合信号偏移

    • 响应标准差的计算(仅线性模型)

    • 频域仿真(仅限线性型号)

    • 模拟使用不同的样本间行为为不同的输入

    为了获得模拟响应,没有前述操作中的任何操作,使用大规模集成电路.

在R2006A之前介绍