主要内容

gensim

生成用于浅层神经网络仿真的 Simulink 模块

说明

gensim(net,st) 创建一个 Simulink® 系统,其中包含一个对采样时间为 st 的神经网络 net 进行仿真的模块。

如果 net 既没有输入延迟也没有层延迟(net.numInputDelaysnet.numLayerDelays 都为 0),则可以对 st 使用 -1 来获得连续采样的网络。

gensim 不支持深度学习网络(例如卷积网络或 LSTM 网络)。有关深度学习代码生成的详细信息,请参阅生成代码并部署深度神经网络

有关 gensim 的详细信息,请在 MATLAB 命令提示符下输入 help network/gensim

示例

示例

全部折叠

此示例说明如何为前馈网络生成 Simulink 模块。

使用简单拟合数据集中的数据创建一个前馈网络,并生成 Simulink 模块。

[x,t] = simplefit_dataset;
net = feedforwardnet(10);
net = train(net,x,t)
gensim(net)

此示例说明如何为 NARX 网络生成 Simulink 模块。

创建一个 NARX 网络。

[x,t] = simplenarx_dataset;
net = narxnet(1:2,1:2,20);
view(net)
[xs,xi,ai,ts] = preparets(net,x,{},t);
net = train(net,xs,ts,xi,ai);
y = net(xs,xi,ai);

将网络转换为闭环。

net = closeloop(net);
view(net)

准备数据并对网络的闭环响应进行仿真。

[xs,xi,ai,ts] = preparets(net,x,{},t);
y = net(xs,xi,ai);

将网络转换为具有工作区输入和输出端口的 Simulink 系统。

[sysName,netName] = gensim(net,'InputMode','Workspace',...
	'OutputMode','WorkSpace','SolverMode','Discrete');

初始化延迟状态。请注意,这是获得与 MATLAB® 中相同输出的重要步骤。

setsiminit(sysName,netName,net,xi,ai,1);

在工作区中定义模型输入 X1,以编程方式对系统进行仿真。

x1 = nndata2sim(xs,1,1);
out = sim(sysName,'ReturnWorkspaceOutputs','on','StopTime',num2str(x1.time(end)));
ysim = sim2nndata(out.y1);

输入参数

全部折叠

输入网络,指定为网络对象。要创建网络对象,请使用 feedforwardnetnarxnet 等函数。

将采样时间指定为除 -1 以外的值。有关详细信息,请参阅指定采样时间 (Simulink)

版本历史记录

在 R2006a 之前推出

另请参阅