Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
