主要内容

sim卡

模拟识别模型的响应

描述

例子

y= SIM(系统乌达使用输入数据返回已识别模型的模拟响应,乌达.默认情况下,所有模型类型都使用零初始条件,除了idnlgrey.,在这种情况下,使用内部存储在模型中的初始条件。

例子

y= SIM(系统乌达选择使用选项集,选择,以配置模拟选项,包括初始条件的规范。

例子

yy_sd]=sim卡(___返回估计的标准差,y_sd,模拟的响应。

例子

yy_sdx]=sim卡(___返回状态轨迹,x,对于状态空间模型。

例子

yy_sdxx_sd]=sim卡(___返回状态轨迹的标准偏差,x_sd,对于状态空间模型。

例子

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

例子

全部收缩

加载估计数据。

负载iddata2z2

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

sys = ss (z2, 3);

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

Y = SIM(SYS,Z2);

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

负载iddata2z2sys = n4sid (z2, 3);

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

创建模拟选项集,以向模拟模型响应添加噪声。

opt1 = simOptions ('addnoise',真的);

模拟模型。

y = sim (sys、z2 opt1);

默认高斯白噪声通过模型的噪声传递函数进行滤波,并添加到仿真模型响应中。

您也可以添加自己的噪声信号,e, 使用noisdata.选择。

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

模拟模型。

y=sim(系统,z2,opt2);

加载数据。

负载iddata1z1

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

estimOpt = ssestOptions (“初始状态”'估计');

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

[sys, x0] = ss (z1 2 estimOpt);

指定模拟的初始条件

simOpt = simOptions (“InitialCondition”, x0);

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

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

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

负载iddata1z1sys = ssest(z1,2);

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

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

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

负载iddata1z1sys = ssest(z1,2);

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

选择= simOptions (“InitialCondition”,[1;2]);

指定初始状态的协方差。

opt.X0Covariance = [0.1 0;0 0.1);

计算模拟响应的标准偏差,y_sd和国家轨迹,x_sd

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

获取识别的模型。

负载iddata2z2sys = tfest(z2,3);

系统是一个idtf模型,它封装了对测量数据估计的三阶传递函数z2

模拟模型。

sim (sys、z2)

Figure Estimated using TFEST包含一个轴对象。标题为“模拟输出#1:y1”的axis对象包含一个类型为line的对象。这个对象表示y1。

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

加载样本数据。

负载iddata2

从数据估计一个非线性ARX模型。

m = nlarx(z2,[2 2 1],“idTreePartition”);

根据过去的数据估计模型的当前状态。指定输入和输出变量中存在滞后的尽可能多的过去样本(此处为2)。

x0=数据状态(M,结构('输入',(2,1),'输出',10 *那些(2,1))));

使用返回的初始状态来模拟模型data2state

选择= simOptions (“InitialCondition”, x0);sim (M, z2,选择)

使用具有预测焦点的NLARX估计的图形包含axes对象。标题为模拟输出#1:y1的Axis对象包含类型为line的对象。此对象表示y1。

从上一次模拟运行结束后,继续对非线性ARX模型进行模拟。

从数据中估计一个非线性ARX模型。

负载iddata2M = nlarx(z2,[2 2 1],idTreePartition);

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

u1 = z2(1∶[]);opt1 = simOptions (“InitialCondition”“零”);ys1 = sim (M, u1, opt1);

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

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

要正确设置第二次模拟的初始状态,请选择package inputU1.和产出ys1从第一次模拟变成一次模拟iddata对象。将此数据作为下一次模拟的初始条件传递。

firstsimdata = [ys1,u1];opt2 = simOptions (“InitialCondition”, firstSimData);ys2 = sim (M, u2, opt2);

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

Utotal = Z2(:,[]);opt3 = simoptions(“InitialCondition”“零”);Ystotal = SIM(M,Utotal,Opt3);

绘制三个反应ys1ys2ysTotal。ys1应该等于上半年ystotal.ys2应该等于的后半部分ystotal.

情节(ys1'B'ys2,“g”,伊斯托塔,'k *'

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

这些曲线表明了这三个响应ys1ys2, 和ystotal.重叠。

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

加载样本数据。

负载iddata2

从数据估计一个非线性ARX模型。

M=nlarx(z2,[4 3 2],idWaveletNetwork(“数量单位”,20));

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

x0 = findstates (M, z2,正);

模拟模型。

选择= simOptions (“InitialCondition”, x0);ysim = sim (M, z2.u,选择);

比较模拟模型输出ysim在输出信号处于z2

time = z2.samplinginstants;绘图(时间,ysim,time,z2.y,“。”

图中包含一个轴对象。轴对象包含两个类型为line的对象。

开始对输入已知的稳态附近的模型进行模拟1,但输出未知。

加载样本数据。

负载iddata2

从数据估计一个非线性ARX模型。

m = nlarx(z2,[4 3 2],IDWaveletNetwork);

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

x0 = condop(m,'稳定的',1,楠);

使用初始状态模拟模型x0

选择= simOptions (“InitialCondition”, x0);SIM(M,Z2.U,OPT)

使用具有预测焦点的NLARX估计的图形包含axes对象。标题为模拟输出#1:y1的Axis对象包含类型为line的对象。此对象表示y1。

加载样本数据。

负载iddata2

创建Hammerstein-Wiener模型。

m = nlhw(z2,[4 3 2],[],IDpiecewiselinear);

计算与输入水平相对应的稳态工作点值1和未知的输出水平。

x0 = condop(m,'稳定的',1,楠);

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

选择= simOptions (“InitialCondition”,x0);sim卡(M,z2.u)

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

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

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

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

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

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

ic = struct('输入',[],'输出',z9.Y(1:6));选择= simOptions (“InitialCondition”、集成电路);

模拟模型。

sim (sys、数据选择)

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

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

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

负载iddata7z7

使用数据识别五阶状态空间模型。

sys = n4sid (z7 5);

将数据集拆分为两部分。

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

使用输入信号来模拟模型zB

USIM = ZB;

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

io = struct('输入',za.inputdata,'输出',za.outputdata);选择= simOptions (“InitialCondition”,io);

模拟模型。

ysim=sim(系统、uSim、opt);

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

xf=data2state(sys,zA);

xf的状态值系统在时间瞬间后立即将最近的数据采样进来zA

使用以下命令模拟系统xf作为初始状态。

opt2 = simOptions (“InitialCondition”,XF);YSIM2 = SIM(SYS,USIM,OPT2);

图的输出sim卡命令ysim和手动计算的结果ysim2。

情节(ysim'B',ysim2,'--r'

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

ysim2是相同的ysim

输入参数

全部收缩

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

模型类型 模型对象
辨识线性模型 多项式模型 idpoly
流程模型 IDProc.
状态空间模型 中的难点
传递函数模型 idtf
线性灰盒式模型 艾德格雷
确定的非线性模型 非线性ARX模型 idnlarx
非线性Hammerstein-Wiener模型 idnlw.
非线性灰度盒模型 idnlgrey.

模拟输入数据,指定为iddata对象或矩阵。sim卡使用来自此对象的输入通道作为模拟输入。对于离散时间系统的时域模拟,您也可以指定乌达作为一个矩阵,其列对应于每个输入通道。

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

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

udata = iddata ([], 0 (100 0), Ts);

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

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

  • 初始条件

  • 输入/输出偏移

  • 加性噪声

输出参数

全部收缩

模拟反应系统,返回为iddata对象或矩阵,具体取决于指定方式乌达.例如,如果乌达是一个iddata对象,那么也是y

如果乌达表示时域数据,然后y是对应的时间向量的模拟响应乌达

如果乌达代表了频域数据,Uω)那么y包含相应采样时域输出信号的傅里叶变换。该信号是信号频率响应的乘积系统Gω), 和Uω)。

对于多实验数据,y是相应的多重实验吗iddata对象。

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

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

对于非线性模型,y_sd[]

状态空间模型的估计状态轨迹,作为ns.——- - - - - -NX.矩阵,ns.是样品数量和NX.是状态数。

x只有相关的系统是一个中的难点艾德格雷, 或者idnlgrey.模型。如果系统不是状态空间模型,x返回的是[]

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

x_sd只有相关的系统是一个中的难点艾德格雷, 或者idnlgrey.模型。如果系统不是状态空间模型,x_sd返回的是[]

提示

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

算法

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

这里,

  • ut)是模拟输入数据,乌达

  • yt)为模拟输出响应。

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

  • et)是可选的噪声信号。通过创建一个辛伐斯选项设置,并设置addnoise.选项真的.此外,您可以通过指定noisdata.选择。

  • H噪声传递函数和定义在系统

  • δu为输入信号减去的可选输入偏移量,ut),然后使用输入来模拟模型。属性指定输入偏移量InputOffset.选项使用辛伐斯

  • δy是添加到输出响应的可选输出偏移量,yt),模拟后。通过设置来指定输出偏移量OutputOffset选项使用辛伐斯

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

选择

  • 使用simsd采用蒙特卡罗方法计算响应的标准差。

  • sim卡延伸lsim为促进与已识别车型相关的其他功能:

    • 非线性模型的仿真

    • 加性噪声仿真

    • 信号偏移量的合并

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

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

    • 针对不同输入使用不同样本间行为的仿真

    为了获得模拟响应,没有前述操作中的任何操作,使用lsim

在R2006A之前介绍