Нейронные сети и нейроконтроллеры. Бураков М.В. - 76 стр.

UptoLike

Составители: 

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