Составители:
Рубрика:
76
Создадим сеть прямого распространения с помощью команды
>> network=newff([0 1;0 1; 0 1; 0 1],[6 1],{'logsig','logsig'})
В этой команде первый массив содержит диапазоны изменения
сигнала для каждого входа, второй массив – размер каждого слоя
(число нейронов), затем задается тип передаточной функции для
каждого слоя.
До начала обучения выполняется инициализация НС:
>> network=init(network);
Зададим число эпох, скорость и запустим обучение:
>> network.trainParam.epochs = 500;
>> network.trainParam.lr = 0.05;
>> network=train(network,inp,out);
Проверим работу сети:
>> y=sim(network,inp);
>> out–y
ans =
1.0e–004 *
–0.0191 0.0044 0.0204 –0.0237 0.0039 –0.0000 –0.0316
0.0041 0.0014 –0.0367 –0.0253 0.1118 –0.0299 0.0384
0.0000 –0.0000
Ошибки между заданным выходом НС и реальным выходом
можно считать пренебрежимо малыми.
Рассмотрим далее простейший закон логического управления
динамическим объектом.
Пример 3.4. Требуется, чтобы нейросетевой регулятор, получаю-
щий на входе ошибку управления e, реализовывал релейный закон
управления:
1 0
1 0
,,
.
,.
e
u
e
ì
³
ï
ï
=
í
ï
-<
ï
î
MatLab программа:
>> w=2*pi;
>> for i=1:300 % формирование обучающей выборки
time(i)=0.01*i;
e(i)=(exp(–time(i)))*sin(w*time(i));
if (e(i)>0.0) t(i)=1;
elseif (e(i)<0.0) t(i)=–1;
end
end
Страницы
- « первая
- ‹ предыдущая
- …
- 74
- 75
- 76
- 77
- 78
- …
- следующая ›
- последняя »