Получите нейронную сеть Simulink, блокируют начальный вход, и слой задерживает состояния
[xi,ai] = getsiminit(sysName,netName,net)
[xi,ai] = getsiminit(sysName,netName,net)
принимает эти аргументы,
sysName | Имя Simulink® система, содержащая блок нейронной сети |
netName | Имя блока нейронной сети Simulink |
net | Исходная нейронная сеть |
и возвращает,
xi | Начальные состояния задержки на входе |
ai | Начальные состояния задержки слоя |
Здесь спроектирована сеть NARX. Сеть 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 с входными и выходными портами рабочей области. Его состояния задержки инициализируются, входы X1
заданный в рабочей области, и он готов к моделированию в Simulink.
[sysName,netName] = gensim(net,'InputMode','Workspace',... 'OutputMode','WorkSpace','SolverMode','Discrete'); setsiminit(sysName,netName,net,xi,ai,1); x1 = nndata2sim(x,1,1);
Наконец, начальный вход и задержки слоя получаются из модели Simulink. (Они будут идентичны значениям, установленным с setsiminit
.)
[xi,ai] = getsiminit(sysName,netName,net);
gensim
| nndata2sim
| setsiminit
| sim2nndata