2015-04-26 5 views
-1

Я разрабатываю приложение для Android, чтобы контролировать свой квадроктер со смартфона: у меня есть периодический процесс, который отправляет данные, полученные с сенсорного экрана. Данные, полученные затем от микроконтроллера, который генерирует команду PWM для 4 двигателей постоянного тока, получая значения рабочего цикла с помощью контура управления, который использует полученные команды.Программа контроллера Quadcopter от смартфона

Может кто-то предложить точный критерий, чтобы выбрать период процесса на смартфоне? Или возможно только «пробный и ошибочный» подход, проверяющий реактивность системы?

EDIT: Я успешно реализован он просто установив частоту задачи смартфон как 2 * control_loop_frequency

ответ

0

Если бы вы знали или могли бы измерить импульсную характеристику системы можно было бы определить соответствующую скорость контура управления ; однако у вас нет этих данных, и в любом случае он будет запутан с помощью внешних факторов, таких как скорость и направление ветра. Определение скорости эмпирически будет быстрее, чем определение точных характеристик.

Если контроль разомкнут, то, вероятно, вы должны спросить себя, как далеко от желаемого курса вы можете позволить автомобилю добраться до того, как будет применена коррекция. Это будет зависеть от максимальной скорости транспортных средств (в любом направлении).

В конце концов, Android не является оперативной системой реального времени, поэтому нет никаких гарантий того, что какое-либо конкретное периодическое обновление будет выполнено точно; он всегда будет несколько не детерминированным. Предполагаю, что такая система могла бы управлять обновлением 10 Гц достаточно надежно и, вероятно, была бы достаточной для адекватного контроля и реагирования - если единственная обратная связь - это координация глазного глаза человека, что, возможно, является ограничивающим фактором в системный ответ.

 Смежные вопросы

  • Нет связанных вопросов^_^