Generate Simulink block for shallow neural network simulation
gensim(net,st)
Type help network/gensim
.
This function generates a Simulink® block for a shallow neural network. gensim
does not
support deep learning networks such as convolutional or LSTM networks. For more information on
code generation for deep learning, see Deep Learning Code Generation.
gensim(net,st)
creates a Simulink system containing a block that simulates neural network
net
.
gensim(net,st)
takes these inputs:
net | Neural network |
st | Sample time (default = 1) |
and creates a Simulink system containing a block that simulates neural network net
with a sampling time of st
.
If net
has no input or layer delays
(net.numInputDelays
and net.numLayerDelays
are both 0),
you can use –1 for st
to get a network that samples continuously.
[x,t] = simplefit_dataset; net = feedforwardnet(10); net = train(net,x,t) gensim(net)
Create a NARX network.
[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);
Convert the network to closed loop.
net = closeloop(net); view(net)
Prepare the data and simulate the network’s closed loop response.
[xs,xi,ai,ts] = preparets(net,x,{},t); y = net(xs,xi,ai);
Convert the network to a Simulink system with workspace input and output ports.
[sysName,netName] = gensim(net,'InputMode','Workspace',... 'OutputMode','WorkSpace','SolverMode','Discrete');
Initialize the delay states. Note that this is an important step to obtain the same output as in MATLAB®.
setsiminit(sysName,netName,net,xi,ai,1);
Define the model input X1
in the workspace, simulate the system
programmatically.
x1 = nndata2sim(xs,1,1); out = sim(sysName,'ReturnWorkspaceOutputs','on','StopTime',num2str(x1.time(end))); ysim = sim2nndata(out.y1);