Моделирование статических зависимостей

Важным является вопрос о возможности описания с помощью ИНС ПР вход – выходных зависимостей динамических объектов.

Пример 3.12. Рассмотрим моделирование с помощью ИНС ПР динамической системы, описываемой функцией Бесселя:

.

График функции Бесселя представлен на рис. 3.16

>> t=0:0.1:20;

y=bessel(1,t);

plot(t,y)

grid

Рисунок 3.16. Функция Бесселя

Для моделирования будем использовать двухслойную сеть с 10 нейронами скрытого слоя:

>> net=newff([0 20], [10,1], {'tansig','purelin'},'trainlm');

>> P=t; T=y;

>> net.trainParam.show = 50;

>> net.trainParam.lr = 0.05;

>> net.trainParam.epochs = 300;

>> net.trainParam.goal = 0.001;

>> net1 = train(net, P, T);

Для обучения потребовалось всего 11 эпох (рис. 3.17).

Рисунок 3.17. Изменение ошибки в процессе обучения

Выполним моделирование работы сети:

>> A= sim(net1,P);

Для проверки качества работы сети рассмотрим ошибку моделирования (рис. 3.18):

>> figure(1); plot(P,T-A)

Как показывает рис. 3.18, в конце переходного процесса ошибка недопустимо растет, поэтому параметры нейронной сети требуют коррекции.

Рисунок 3.18. Ошибка на разных участках переходного процесса

Пример 3.13. Пусть динамическая система описывается уравнением Ван дер Пола:

.

Этому уравнению соответствует схема, собранная в Simulink MatLab (рис. 3.19).

Рисунок 3.19. Блок-схема уравнения Ван дер Пола.

Переменные x и y описывают здесь состояние динамической системы (положим начальное состояние x = 2 и y = 2).

Моделирование со временем 10 с можно запустить командой (где 'Van_der_Pol – название mdl файла):

>> [t,z]=sim('Van_der_Pol',10);

На рис. 3.20 показан результат моделирования.

Рисунок 3.20. Переходные процессы в системе Ван дер Пола.

Зададим обучающую выборку, параметры нейронной сети и обучения:

>> P = t';

>> T = z';

>> net=newff([0 20], [20,2], {'tansig','purelin'},'trainlm');

>> net.trainParam.show = 50;

>> net.trainParam.lr = 0.05;

>> net.trainParam.epochs = 300;

>> net.trainParam.goal = 0.001;

>> net1 = train(net, P, T);

Затем выполним моделирование:

>> A= sim(net1,P);

>> figure(1); plot(P,A)

>> grid

Рисунок 3.21. Результат работы моделирующей нейронной сети

Сравнение рис. 3.20 и 3.21 позволяет судить о хорошем качестве моделирования.

В рассмотренных примерах НС обучалась выдавать выходной сигнал, подобный выходу динамической системы. Однако поведение НС здесь качественно отличается от поведения динамического объекта. В подтверждение этого тезиса рассмотрим еще один простой пример.

Пример 3.14. Пусть имеется линейное динамическое звено 2-го порядка. Его можно описать в виде дифференциального уравнения или в виде соответствующей передаточной функции:

.

На рис. 3.22 показана собранная в MatLab Simulink схема для получения реакции звена на единичный скачок.

Рисунок 3.22. Модель системы в MatLab Simulink

Выполним моделирование (здесь PF – имя файла модели):

>> [t,y]=sim('PF',20);

И построим график переходного процесса (рис. 3.23):

>> plot(t,y(:,2))

Рисунок 3.23. Выходной сигнал динамического объекта

Зададим обучающую выборку, параметры нейронной сети и обучения:

>> P = t';

>> T = y(:,2)';

>> net=newff([0 20], [15,1], {'tansig','purelin'},'trainlm');

>> net.trainParam.show = 50;

>> net.trainParam.lr = 0.05;

>> net.trainParam.epochs = 100;

>> net.trainParam.goal = 0.001;

>> net1 = train(net, P, T);

Затем выполним моделирование:

>> A= sim(net1,P);

>> figure(1); plot(P,A)

>> grid

Затем экспортируем полученную нейронную сеть в Simulink (здесь 0.01 – постоянный шаг интегрирования по времени):

>> gensim(net1,0.01)

Схема, показанная на рис. 3.24, позволяет сравнить выходы передаточной функции и нейронной сети

Рисунок 3.24. Сравнение динамического звена и его аппроксимации

Как показывает рис. 3.25, выходные сигналы достаточно близки.

Однако очевидно, что при изменении входного сигнала динамической системы (например, при замене step на sine wave) выходной сигнал также будет изменяться, и он будет сильно отличаться от выхода ИНС (рис. 3.26).

Рисунок 3.25. Выходы динамического звена и нейронной сети

t,сек
y (t), z (t)

Рисунок 3.26. Сравнение реакций на синусоидальный сигнал

Таким образом, при изменении входного сигнала здесь требуется переобучение нейронной сети – в этом и заключается статичность ее поведения.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: