[Оглавление]

Информационные технологии в расчетах динамики твердого тела. П.з. №9.
Тестирование систем ориентации и управления движением

Цель лабораторной работы – изучение совместной работы систем ориентации и управления движением КА. Приобретение навыка программирования заданий для упомянутых систем. Создание программы для визуального контроля включений двигателей КА. Занятие проводиться в компьютерном классе, в течение двух академических часов. Студенты работают самостоятельно по методическим указаниям. Преподаватель помогает и отвечает на вопросы.

Включение систем ориентации и управления движением

1.  Сделать копию файла (VV – вариант)
      VV_04.htm
    определить новое имя в соответствии с маской
      VV_07.htm

2.  Скопировать объявление глобальных переменных Mx, My, Mz, gQ
    из файла
      VV_06.htm
    в файл
      VV_07.htm

3.  Скопировать код "Модели движения КА вокруг центра масс"
    и код "Системы ориентации" (код управления двигателями)
    из файла
      VV_06.htm
    в файл
      VV_07.htm
    Определить вызов соответствующей функции
      spacecraft.attitudeControl();

    Убедиться в том, что после обновления веб-страницы, спустя
    4 секунды, системы ориентации и управления движением
    включаются и приводят КА к положению [0, 0, 0].

Составление плана полётного задания

1.  Объявить глобальные переменные:
      aP    – массив позиций в пространстве,    6 шт
      aQ    – массив угловых положений,         6 шт
      cntr  – счетчик позиций

2.  Заполнить массивы значениями (векторами и кватернионами).
    Использовать функции библиотеки glMatrix:
      vec3.fromValues(x, y, z);
      quat.create();
      quat.fromEuler(out, Angle, Angle, Angle);
    Согласно плану, КА должен отработать 6 позиций, меняя ориентацию
    и перемещаясь по периметру квадрата с возвратом в начало координат.

3.  Изменить код функций handleKeyDown и handleKeyUp так, чтобы при
    нажатии на клавишу клавиатуры [C], инкрементировался счетчик
    cntr и обновлялись задания для ориентации и позиционирования КА
    (gQ и gP соответственно). Счет позиций зациклить оператором "%".
    Использовать функции библиотеки glMatrix:
      vec3.copy(..);
      quat.copy(..);

Переключатель визуализации двигателей ориентации или движения

1.  Объявить глобальную переменную-флаг:
      isQJetView    – режим отображения двигателей ориентации.

2.  Изменить код функций handleKeyDown и handleKeyUp так, чтобы при
    нажатии на клавишу клавиатуры [F], флаг isQJetView переворачивался.

3.  В функции drawScene использовать управляющую конструкцию
      if () {
      } else {
      }
    контролируемую флагом isQJetView, для переключения режима отрисовки
    двигателей ориентации или движения.

Визуальный контроль включений двигателей ориентации / движения

1.  Включить режим визуализации двигателей ориентации [F].
    Пройти все позиции полётного задания [C], .., [C].
    Убедиться в том, что в соответствующие моменты времени, система
    ориентации включает те двигатели, которые необходимы для снижения
    ошибки ориентации.

2.  Включить режим визуализации маршевых двигателей [F].
    Пройти все позиции полётного задания [C], .., [C].
    Убедиться в том, что в соответствующие моменты времени, система
    управления движением включает те двигатели, которые необходимы
    для снижения ошибки позиционирования.

3.  Отключить систему ориентации.
    Включить режим визуализации маршевых двигателей [F].
    Пройти все позиции полётного задания [C], .., [C].
    Убедиться в том, что КА вращается, но система управления движением
    сохранила работоспособность – как и прежде, в нужные моменты времени
    включает те двигатели, которые необходимы для снижения ошибки
    позиционирования.                 Включить систему ориентации.

Оценка качества движения при разбросе параметров двигателей

1.  Уменьшить величину тяги всех двигателей в два раза.
    Пройти все позиции полётного задания [C], .., [C].
    Убедиться в том, что управляемость КА сохраняется.

2.  Создать разброс величины тяги (+/-50%) у пар двигателей
    (для прямых и обратных движений).
    Пройти все позиции полётного задания [C], .., [C].
    Убедиться в том, что управляемость КА сохраняется.

3.  Составить отчет в файле
      VV_07.htm
    Год, группа, фамилия, название работы, описание программы.
    Параметры: КА, двигателей ориентации, регуляторов. Выводы.
    Использовать теги H1, P.

4.  Полученный результат, файл:
      VV_07.htm, а так же VV_01.htm, VV_02.htm, ... и gl-matrix-min.js
    сохранить на флешь-носитель и приносить на все последующие занятия.

Литература

  1. Илья Кантор. Современный учебник Javascript. // – URL: http://javascript.ru/. – URL: https://learn.javascript.ru (дата обращения: 14.09.2017).
  2. Brandon Jones. glMatrix – Javascript Matrix and Vector library for High Performance WebGL apps // URL: http://glmatrix.net (дата обращения: 14.09.2017).

14.09.2017