Задать нейросети 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