sim卡
确定模型的模拟响应
语法
描述
sim卡(___)
情节的模拟响应识别模型。
例子
利用状态空间模型模拟输入数据
添加噪声模拟模型响应
加载数据,获得识别模型。
负载iddata2z2sys = n4sid (z2, 3);
sys
是一个三阶状态空间模型估计使用子空间方法。
创建一个模拟选项设置为添加噪声响应的模拟模型。
opt1 = simOptions (“AddNoise”,真正的);
模拟模型。
y = sim (sys、z2 opt1);
默认过滤高斯白噪声的噪声传递函数模型和添加到响应的模拟模型。
您还可以添加自己的噪声信号,e
,使用NoiseData
选择。
e = randn(长度(z2.u), 1);opt2 = simOptions (“AddNoise”,真的,“NoiseData”,e);
模拟模型。
y = sim (sys、z2 opt2);
在评估使用获得的初始条件模拟模型
加载数据。
负载iddata1z1
指定评估选项来估计初始状态。
estimOpt = ssestOptions (“InitialState”,“估计”);
估计,状态空间模型和返回的值估计的初始状态。
[sys, x0] = ss (z1 2 estimOpt);
为模拟指定初始条件
simOpt = simOptions (“InitialCondition”,x0);
模拟模型,得到模型的响应和标准偏差。
[y, y_sd] = sim (sys, z1, simOpt);
估计标准偏差和状态轨迹状态空间模型
估计状态轨迹和模拟响应的标准差
负荷估算数据和状态空间模型估计。
负载iddata1z1sys = ss (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,选择);
情节模拟模型反应
模拟非线性ARX模型
对于模拟输入变量非线性ARX模型在一个已知的平衡点,输入水平的1
和输出水平10
。
加载示例数据。
负载iddata2
估计的非线性ARX模型数据。
M = nlarx (z2, (2 2 1),“idTreePartition”);
估计模型根据以往数据的当前状态。指定尽可能多的过去的样品中有滞后的输入和输出变量(2)。
x0 = data2state (M,结构(“输入”的(1),“输出”10 * 1 (2,1)));
使用返回的初始状态模拟模型data2state
。
选择= simOptions (“InitialCondition”,x0);sim (M, z2,选择)
继续从先前的模拟
继续仿真的非线性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:最终,[]);
第二模拟设置初始状态正确,包输入u1
和输出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);
画出三种反应ys1
,ys2
和ysTotal。
ys1
上半年应该等于ysTotal
。ys2
下半年应该等于ysTotal
。
情节(ys1“b”ys2,‘g’ysTotal,“k *’)
情节显示三种反应ys1
,ys2
,ysTotal
重叠。
对输出数据匹配模型
估计模型的初始状态米
这样,响应最佳匹配输出数据集z2
。
加载示例数据。
负载iddata2;
估计的非线性ARX模型数据。
M = nlarx (z2, [4 3 2], idWaveletNetwork (“NumberOfUnits”,20));
估计的初始状态米
到最适合z2.y
在模拟的反应。
x0 = findstates (M, z2,正);
模拟模型。
选择= simOptions (“InitialCondition”,x0);ysim = sim (M, z2.u,选择);
比较模拟模型的输出ysim
的输出信号z2
。
时间= z2.SamplingInstants;情节(时间、ysim时间、z2.y“。”)
模拟模型在稳态附近未知与已知的输入和输出
附近开始仿真模型的稳定状态,输入是已知的1
,但是输出是未知的。
加载示例数据。
负载iddata2
估计的非线性ARX模型数据。
M = nlarx (z2, [4 3 2], idWaveletNetwork);
确定平衡态值输入1
和未知目标输出。
x0 = findop (M,“稳定”1、南);
使用初始状态模拟模型x0
。
选择= simOptions (“InitialCondition”,x0);sim (M, z2.u,选择)
模拟Hammerstein-Wiener模型在稳态操作点
加载示例数据。
负载iddata2
创建一个Hammerstein-Wiener模型。
M = nlhw (z2, [4 3 2], [], idPiecewiseLinear);
计算稳态操作点对应一个输入的值1
和一个未知的输出水平。
x0 = findop (M,“稳定”1、南);
模拟使用初始状态估计模型。
选择= simOptions (“InitialCondition”,x0);sim (M, z2.u)
模拟时间序列模型
负荷时间序列数据,并使用最小二乘方法估计AR模型。
负载iddata9z9sys = ar (z9 6“ls”);
对于时间序列数据,指定所需的仿真长度,N= 200使用一个N通过输入数据集。
data = iddata ([], 0 (200 0), z9.Ts);
设置初始条件使用的初始样本时间序列作为历史输出样本。
IC =结构(“输入”[],“输出”z9.y (1:6));选择= simOptions (“InitialCondition”、集成电路);
模拟模型。
sim (sys、数据选择)
理解使用历史数据模型模拟
使用历史输入-输出数据作为初始条件当模拟你的代理模型。你第一次模拟使用sim卡
命令并指定使用的历史数据simOptions
选择手动设置,然后复制模拟输出映射初始状态的历史数据。
加载两个输入,一个输出数据集。
负载iddata7z7
确定一个5次使用状态空间模型数据。
sys = n4sid (z7 5);
将数据集分为两部分。
咱= z7 (1:15);zB = z7(16:结束);
模拟输入信号的模型使用zB
。
uSim = zB;
仿真需要初始条件。信号值咱
历史数据,也就是说,它们的输入和输出值的时间立即前数据zB
。使用咱
作为一个代理所需的初始条件。
IO =结构(“输入”zA.InputData,“输出”,zA.OutputData);选择= simOptions (“InitialCondition”IO);
模拟模型。
ysim = sim (sys、uSim选择);
现在复制输出通过手动映射初始状态的历史数据sys
。为此,使用data2state
命令。
xf = data2state (sys,咱);
xf
包含的状态值sys
当时即时最近期的数据样本后立即咱
。
模拟系统使用xf
为初始状态。
opt2 = simOptions (“InitialCondition”、xf);ysim2 = sim (sys、uSim opt2);
策划的输出sim卡
命令ysim
和手工计算结果ysim
2。
情节(ysim“b”ysim2,“——r”)
ysim2
是一样的ysim
。
输入参数
udata
- - - - - -模拟输入数据
iddata
对象|矩阵
模拟输入数据,指定为一个iddata
对象或一个矩阵。sim卡
使用这个对象的输入通道作为模拟输入。离散时间系统的时域模拟,您还可以指定udata
作为一个矩阵列对应于每个输入通道。
如果sys
是一个线性模型,您可以使用时域或频域数据。如果sys
是一个非线性模型,你只能使用时域数据。
如果sys
是一个时间序列模型,这是一个模型没有输入,指定吗udata
作为一个Ns由0信号,Ns是想要模拟输出样本的数量。例如,模拟One hundred.
输出样本,指定udata
如下。
udata = iddata ([], 0 (100 0), Ts);
如果你没有一个实验的数据,使用idinput
产生信号的各种特征。
选择
- - - - - -模拟选项
simOptions
选项设置
模拟选项,指定为一个simOptions
选项设置设置以下选项:
初始条件
输入/输出补偿
添加剂噪声
输出参数
y_sd
——估计标准偏差
双矩阵
估计标准偏差的模拟响应线性模型或非线性灰色矩形模型,作为一个返回Ns——- - - - - -纽约矩阵,Ns的样品和数量吗纽约是输出的数量。软件计算标准偏差通过考虑协方差模型参数,初始状态协方差,加性噪声协方差。加性噪声协方差是存储在NoiseVariance
模型的属性。
y_sd
推导出使用一阶灵敏度的考虑(高斯近似公式)。
对于非线性模型,y_sd
是[]
。
x
——估计状态轨迹的状态空间模型
矩阵|[]
估计状态轨迹的状态空间模型,作为一个返回Ns——- - - - - -Nx矩阵,Ns的样品和数量吗Nx的状态数。
x
只有相关的如果sys
是一个中的难点
,idgrey
,或idnlgrey
模型。如果sys
不是,状态空间模型x
返回的是[]
。
x_sd
——估计标准偏差的状态轨迹
矩阵|[]
估计标准偏差状态轨迹的状态空间模型,作为一个返回Ns——- - - - - -Nx矩阵,Ns的样品和数量吗Nx的状态数。软件计算标准偏差通过考虑协方差模型参数,初始状态协方差,加性噪声协方差。加性噪声协方差是存储在NoiseVariance
模型的属性。
x_sd
只有相关的如果sys
是一个中的难点
,idgrey
,或idnlgrey
模型。如果sys
不是,状态空间模型x_sd
返回的是[]
。
提示
当估计模型的初始条件和测量的系统验证数据集不同,模拟和测量的响应也不同,特别是在响应的开始。尽量减少这种差异,估计初始状态值使用
findstates
和使用估计的值来设置InitialCondition
选择使用simOptions
。例如,看到的对输出数据匹配模型。
算法
模拟意味着使用输入数据计算模型的响应和初始条件。sim卡
模拟以下系统:
在这里,
u(t)是模拟输入数据,
udata
。y(t)是模拟输出响应。
G从输入到输出传递函数中定义吗
sys
。仿真初始条件,指定使用simOptions
,设置的初始状态G。e(t)是一个可选的噪声信号。添加噪声仿真通过创建一个
simOptions
选项设置,设置AddNoise
选项真正的
。此外,您可以更改默认的噪声信号通过指定NoiseData
选择。H噪声传递函数和定义在吗
sys
。δu是一个可选输入补偿减去从输入信号,u(t前),输入是用来模拟模型。指定一个输入设置所抵消
InputOffset
选择使用simOptions
。δy是一个可选输出偏移量添加到输出响应,y(t),后仿真。指定输出设置所抵消
OutputOffset
选择使用simOptions
。
在指定仿真初始条件的更多信息,输入和输出补偿,和噪声信号数据,看看simOptions
。multiexperiment数据,您可以指定这些选项分别为每个实验。
选择
版本历史
MATLABコマンド
次のMATLABコマンドに対応するリンクがクリックされました。
コマンドをMATLABコマンドウィンドウに入力して実行してくださ了对いweb这类ブラウザーはMATLABコマンドをサポートしていません。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。