|
|
Журнал исследований
При увеличении числа промежуточных узлов сетки обучения
по ускорениям получили, что обучаемость контроллера ухудшилась. При этом
контроллер не то что не стремится к какой то постоянной величине, а повторяет
входное воздействие. Таким образом, теряется вообще смысл использования
контроллера. Какова причина этого явления - то ли в неправильном формировании
обучающей сетки, то ли в неправильном включении контроллера в схему навигационной
системы, необходимо выяснить.
Для этого распишем в схематичной форме последовательность действий при
вычислении значений ускорений на шаге интегрирования. На основании алгоритмов
работы навигационной системы и проведении аналогий между "реальным"
каналом работы модели НС и "нейросетевым" каналом, был получен
алгоритм работы навигационной системы с последующим включением в него
алгоритма работы нейросетевого контроллера.


Как видно из схемы, n_nnet, значение
ускорения на текущем шаге, зависит от ускорения n на предыдущем
шаге и от кватернионов ориентации Q_id (идеального
кватерниона ориентации на предыдущем шаге) и Q_nnet (вычисленного
нейросетевого кватерниона ориентации на текущем шаге).
Текущий нейросетевой кватернион ориентации вычисляется следующим
образом:
Таким образом, можно сделать вывод, что текущее значение n_nnet
зависит от следующих величин:
- n_id,
- A0,
- A0s,
- B0,
- B0s,
- Q*_nnet,
- Q*_id,
- [vx vy fi]_nnet,
- [vx vy fi]_id.
Т.е., для формирования обучающей выборки необходимо все
эти величины знать.
- n_id задается из предполагаемых параметров движения
объекта.
- A0, A0s, B0, B0s считаются заведомо известными.
- Q*_nnet, Q*_id - значения кватернионов ориентации
на предыдущем шаге интегрирования. Можно взять их равными некоторому
начальному значению кватерниона Q*. С какими значениями взять этот кватернион?
Я решил использовать экспериментальные результаты, полученные в ходе
моделирования. Так, для погрешностей гироскопов 4.8е-5 град/ч значения
кватернионов ориентации по трем осям не превышают значения 0.02. Т.е.,
для обучения контроллера можно использовать Q*_nnet=Q*_id=Q*=[1
0.02 0.02 0.02]'.
- [vx vy fi]_id задается из предполагаемых параметров
движения объекта.
- [vx vy fi]_nnet должен отличать на величину некоторой
погрешности, которая может быть определена также экспериментальным путем.
Но для начала примем [vx vy fi]_nnet=[vx vy fi]_id.
Т.о., параметры для
построения обучающей последовательности определены. Сама сетка значений
обучающей выборки строится путем варьирования этих параметров. Но параметров
получилось 18. Это недопустимо много. Даже если взять для каждого параметра
всего лишь три промежуточных значения, то P_nnet и T_nnet будут иметь
размерность 18х387420489. А0, А0s, B0 и B0s возьмем как постоянные. Тогда
остается 3^14=4782969.Т.к.
Q*_nnet=Q*_id=Q* и [vx vy fi]_nnet=[vx vy fi]_id=[vx vy fi], то остается
всего лишь 8 параметров для варьирования (3^8=6561).
Теперь необходимо выяснить, какие параметры будут входными для контроллера.
Дело в том, что, как было описано выше, контроллеру необходима дополнительная
информация для анализа величины составляющей ошибки входного вектора n_nnet.
Для начала на вход будем подавать только n_nnet.
|