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. x0co方差= [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],[], idpiecewislinear);
计算输入电平对应的稳态工作点值1
和一个未知的输出水平。
x0 = findop (M,“稳定”1、南);
使用估计的初始状态来模拟模型。
选择= simOptions (“InitialCondition”, x0);sim (M, z2.u)
模拟时间序列模型
加载时间序列数据,并使用最小二乘方法估计AR模型。
负载iddata9z9sys = ar (z9 6“ls”);
对于时间序列数据,指定所需的模拟长度,N= 200使用anN-by-0输入数据集。
data = iddata ([], 0 (200 0), z9.Ts);
设置初始条件,使用时间序列的初始样本作为历史输出样本。
IC =结构(“输入”[],“输出”z9.y (1:6));选择= simOptions (“InitialCondition”、集成电路);
模拟模型。
sim (sys、数据选择)
理解模型仿真中历史数据的使用
在模拟模型时,使用历史输入输出数据作为初始条件的代理。首先使用sim卡
命令并指定历史数据simOptions
选项设置。然后通过手动将历史数据映射到初始状态来再现模拟输出。
加载一个两输入一输出的数据集。
负载iddata7z7
使用这些数据确定一个五阶状态空间模型。
sys = n4sid (z7 5);
将数据集分成两部分。
咱= z7 (1:15);zB = z7(16:结束);
用输入信号对模型进行仿真zB
.
uSim = zB;
模拟需要初始条件。的信号值咱
历史数据,也就是说,它们是紧接数据之前的时间的输入和输出值吗zB
.使用咱
作为所需初始条件的代理。
IO =结构(“输入”,咱。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
.
模拟连续时间神经状态空间对象
的状态和输出网络idNeuralStateSpace
对象被随机初始化。为了保证再现性,固定随机数生成器的种子。
rng (0)
创建一个具有两个状态、两个输入和三个输出的连续时间神经状态空间对象。
nss = idNeuralStateSpace (2, NumInputs = 2, NumOutputs = 3)
3输出2状态2输入的连续时间神经状态-空间模型dx/dt = f(x(t),u(t)) y_1(t) = x(t) + e_1(t) y_2(t) = g(x(t),u(t)) + e_2(t) y(t) = [y_1(t);y_2(t)] f(.)网络:有2个全连接的隐藏层的深层网络激活函数:Tanh g(.)网络:有2个全连接的隐藏层的深层网络激活函数:Tanh输入:u1, u2输出:y1, y2, y3状态:x1, x2状态:通过直接构建或转换创建。不估计。更多信息见模型的“Report”属性。模型属性
定义一个时间序列、一个随机输入信号和一个随机初始状态。
t =(0:1:10)”;u =兰德(长度(t), 2);x0 = 0.3 * randn (2, 1);
当模拟idNeuralStateSpace
系统中,不支持将输入数据指定为数值数组。万博1manbetx对于本例,将输入数据转换为时间表对象,指定u的值与向量中的时间点相关联t
.
u = array2timetable (u, RowTimes =秒(t));
设置一个模拟选项对象,以便模拟从x0
输出是根据矢量中的时间点计算的t
.
simOpt = simOptions (“InitialCondition”x0,“OutputTimes”t);
模拟(未经训练的)神经状态空间系统nss
.
y = sim (nss u simOpt);
绘制模拟输出图。
情节(t, y.Variables);ylabel (“输出”);包含(“时间(秒)”)标题(神经状态空间系统:模拟输出)
输入参数
udata
- - - - - -模拟输入数据
时间表
|数字矩阵|iddata
对象
模拟输入数据,指定为时间表
,一个数字矩阵,或iddata
对象。的规范udata
取决于数据类型。
时间表,指定
udata
作为一个Ns——- - - - - -ν时间表,Ns
每个变量中的数据样本数和ν是输入的数量。udata
必须具有与模型所来自的原始数据相同的变量名sys
据估计。数字矩阵-指定
udata
作为一个Ns——- - - - - -ν矩阵。该软件使用样本周期Ts
的属性sys
.的数字矩阵输入数据不支持万博1manbetxidNeuralStateSpace
对象。
如果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
.对于多实验数据,您可以为每个实验分别指定这些选项。
选择
版本历史
之前介绍过的R2006a
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。