Установите нейронную сеть Simulink, блокируйте начальные условия
setsiminit(sysName,netName,net,xi,ai,Q)
setsiminit(sysName,netName,net,xi,ai,Q)
принимает эти аргументы,
sysName | Имя Simulink® система, содержащая блок нейронной сети |
netName | Имя блока нейронной сети Simulink |
net | Исходная нейронная сеть |
xi | Начальные состояния задержки на входе |
ai | Начальные состояния задержки слоя |
Q | Номер образца (по умолчанию 1) |
и устанавливает нейронную сеть Simulink, блокирует начальные условия, как задано.
Здесь спроектирована сеть 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
| getsiminit
| nndata2sim
| sim2nndata