Failsafe по потере управления с наземной станции
термин GCS означает Наземная станция управления, она может быть реализована как в виде отдельного контроллера, так и в виде переносного компьютера с установленным п/о "Missoin Planner" с подключенным беспроводным модемом
Как это работает. При полете при использовании телеметрии на GCS, APM может быть запрограммирован таким образом, чтобы перейти в безопасный режим, если он теряет радиосигнал телеметрии. В случае, если APM прекращает прием контрольных сообщений MAVlink (протокол телеметрии) в течение более 20 сек, GCS Failsafe (FS_GCS_ENABL, 0 = отключено, 1 = включено) инициирует переход APM режим указанный в настройках для длительного failsafe, по умолчанию это RTL (возврат к месту запуска) .
Настройка.
1. установите параметр FS_GCS_ENABL равным 1 для использования этой функции.
2. Подключитесь из "Missoin Planner" по телеметрии. Проверьте на HUD (табло полета) в нижнем углу что вы используете не автоматический режим (подойдут Manual, Stabilize, FBW ).
3. Отключите радиомодем от USB. Через несколько минут отключите контроллер APM. (Помним что APM не входит в failsafe до истечения 20 секунд отсутствия связи по радиомодему).
4. Подключите APM к "mission planner" убедитесь что в логе зарегистрирован переход в режим RTL .
Фрагмент программного кода
Short Failsafe. events.pde line 4
static void failsafe_short_on_event(){
// This is how to handle a short loss of control signal failsafe.
failsafe = FAILSAFE_SHORT;
ch3_failsafe_timer = millis();
gcs_send_text_P(SEVERITY_LOW, PSTR("Failsafe - Short event on"));
switch(control_mode)
{
case MANUAL:
case STABILIZE:
case FLY_BY_WIRE_A: // middle position
case FLY_BY_WIRE_B: // middle position
set_mode(CIRCLE);
break;
case AUTO:
case GUIDED:
case LOITER:
if(g.short_fs_action == 1) {
set_mode(RTL);
}
break;
case CIRCLE:
case RTL:
default:
break;
}
gcs_send_text_fmt(PSTR("flight mode = %u"), (unsigned)control_mode);
}
Long Failsafe. events.pde line 35
static void failsafe_long_on_event(){
// This is how to handle a long loss of control signal failsafe.
gcs_send_text_P(SEVERITY_LOW, PSTR("Failsafe - Long event on"));
APM_RC.clearOverride(); // If the GCS is locked up we allow control to revert to RC
switch(control_mode)
{
case MANUAL:
case STABILIZE:
case FLY_BY_WIRE_A: // middle position
case FLY_BY_WIRE_B: // middle position
case CIRCLE:
set_mode(RTL);
break;
case AUTO:
case GUIDED:
case LOITER:
if(g.long_fs_action == 1) {
set_mode(RTL);
}
break;
case RTL:
default:
break;
}
}
Тюнинг для вашей модели
С настройками PID по умолчанию ArduPlane сможет приемлемо летать с большинством авиамоделей. Но для того чтобы получить высококачественное пилотирование, достичь точного соблюдения заданного маршрута даже в условиях сильного ветра потребуется настроить коэффициенты соответствующие специфике вашей модели для автопилота.
Кратчайший путь сделать это - использовать экран PID настроек в программе "Mission Planner":
На экране сверху некоторые (но не все) из наиболее часто изменяемых параметров.
Вы заметите, что некоторые из этих параметров настраивают ПИД-регуляторы самолета .
Если вы не вполне знакомы с PID тюнингом, в первую очередь следует знать, что простейший ПИД-регулятор имеет только P составляющую (I и D равны нулю, а INT_MAX не используется, когда I равна нулю).
Коррекция (P) применяется пропорционально к текущей ошибке, в соответствии со значением "P". Значение 1 является своего рода реакцией 1:1, менее 1 представляет собой ослабление реакции, увеличение свыше 1 усиливает реакцию на ошибку, и 0 отключает использование коэффициента. I Представляет из себя коэффициент устраняющий постоянную составляющую ошибки, действующую длительное время. Например если речь о системе стабилизации рамы по крену, При наличии небольшого несоблюдения центра тяжести воздействия P может не хватать для его выдерживания (а на больших углах отклонений он может быть уже избыточен) то воздействие небольшой ошибки накапливаемое со скоростью I в величине ограниченной параметром IMAX способствует доведению системы до желаемых показателей, т.е. I в какой-то мере работает как амортизатор-доводчик. Составляющая D это уровень быстрого и короткого воздействия при возникновении ошибки (Например для компенсации инерции при разгоне при перемещении привода и нагруженной на него рулевой плоскости (или инерции разгона винта в мультикоптерах)
Более продвинутые параметры (которые в большинстве случаев не понадобятся) находятся на экране "Advanced Params". На этом экране вы также можете загружать и сохранять конфигурацию в файл (на компьютер), а также производить сравнение ваших текущих настроек с настройками сохраненными в файл ранее, отметить те из них которые вы хотите обновить на сохраненные и выполнить обновление. (после изменения параметров измененные, но не сохраненные параметры подсвечиваются. Изменения параметров передаются на подключенный автопилот, в тот момент вы нажмете кнопку "write paramerers" (запись параметров) , многие влияют на текущий полет немедленно, и сохраняются в энергонезависимую память EEPROM.
Мы предлагаем несколько готовых конфигураций для типовых моделей самолетов здесь, Но если ваша модель отсутствует в приведенном списке, то применять эти настройки категорически нельзя! Здесь краткое руководство по процессу точной настройки:
Для того чтобы начать с нуля настройку на новой модели самолета:
1. Совершите полет в ручном режиме просто для того чтобы убедиться что все подключено правильно.
2. На земле проверьте как работает режим стабилизации, если двигать самолет по крену и тангажу то элероны и руль высоты должен поворачиваться в сторону способствующую возврату самолета в горизонтальный полет, с достаточными для вашей модели расходами, следует учесть что автопилот уменьшает воздействия рулями по мере роста скорости, соответственно те расходы которые вы увидите в наземной проверке будут абсолютно максимальными.
3. Попробуйте осуществить взлет в ручном режиме и на безопасной высоте проверьте полет в режиме стабилизации. увеличивайте SERVO_ROLL_P для увеличения парирования крена и SERVO_PITCH_P для увеличения парирования тангажа до тех пор пока их увеличение не приведет к возникновению осцилляций (раскачка) а затем немного снизьте эти коэффициенты (порядка 10-15%) - это будут оптимальные значения.
4. проверьте установку максимально допустимого уровня газа, в некоторых прошивках значение по умолчанию занижено до 70%, если ваш самолет использует полный газ, например во время взлета установите значение THR_MAX = 100. Не сделав этого самолет не сможет использовать полную мощность в автоматических режимах.
5. проверьте установку уровня газа необходимого для горизонтального полета со средней скоростью для модели Throttle cruise (TRIM_THROTTLE). Совершите полет в ручном режиме и посмотрите насколько отклонена ручка газа в горизонтальном полете вашего самолета с номинальной скоростью, и установите ее положение в качестве этого параметра, например 50 для ручки находящейся ровно посередине, или 60 для ручки установленной выше середины на один щелчок. Неверная установка этого параметра в меньшую сторону непрерывному снижению.
6. совершите полет в режиме Fly-By-Wire A (FBW-A) , проверьте управление по крену и тангажу. Самолет должен удерживать высоту которую вы ему задали. ручки передатчика должны точно задавать углы крена и тангажа самолета. Из горизонтального полета отклоните ручку крена на пульте в сторону до упора, самолет должен быстро накрениться на угол 45 градусов и удерживать это положение. если самолет входит в раскачку следует уменьшить SERVO_ROLL_P если самолет медленно или неточно слушается управления этот параметр следует увеличить. Повторите эту же процедуру с регулировкой коэффициента по рулю высоты SERVO_PITCH_P.
7. Максимально допустимые углы управления задаются в параметрах LIM_ROLL_CD - максимальный крен, LIM_PITCH_MAX - максимальное кабрирование, LIM_PITCH_MIN максимальное пикирование. Единицы измерения этих параметров сотые доли градусов.
8. Далее, оставаясь в режиме Fly-By-Wire, попробуйте полностью отклонить ручку крена и посмотрите как самолет сохраняет высоту, если происходит просадка попробуйте увеличить PITCH_COMP за один раз рекомендуется добавлять порядка 0.10. Этой настройкой вы должны достичь нулевой потери высоты при максимальных кренах.
9. Теперь попробуйте режим RTL (возврат к точке запуска). Отлетите метров на 50-100 метров в сторону, на высоте порядка 30 метров и активируйте этот режим. По идее самолет должен вернуться в сторону точки взлета и встать в круг над вами если вы правильно настроили SERVO_ROLL_P на предыдущем шаге. Но если он летит несколько неточно увеличивайте NAV_ROLL_P порядка 25% за раз. Если дальнейшее увеличение приводит к движению самолета "волнами" или "змейкой" а нужной точности навигации не достигнуто следует уменьшить NAV_ROLL_P и попробовать немного добавить NAV_ROLL_I. Если все это не помогло увеличьте значение параметра XTRACK_GAIN.
10. Наконец, стоит отметить, что если вы значительно измените параметр отвечающий за крейсерскую скорость то вам может понадобиться перенастроить коэффициенты заново. Так что, если вы испытывали на 1/3 заслонки, но станете летать на полном газу, вы можете обнаружить, что настройки не оптимальны. Лучшие настройки должны соответствовать скорости на которой вы обычно будете эксплуатировать модель.