Скажите, а куда направлен руль направления? Я имею в виду, если запустить самолет без корда и с выключенным мотором, он будет лететь прямо или отвернёт в сторону?
Смотря какого класса модель. Скоростные, гоночные и бойцовые модели обычно не имеют рулей направления вообще. У пилотажных моделей тоже может не быть явно выраженного руля направления, но если он есть, то обычно повернут из круга. На моделях копиях, как правило, руль направления повернут из круга.
А если измерять ещё и ускорение по продольной оси, Вы получаете информацию вида "сила натяжения корд хороша, но падает\растёт\не меняется", "сила натяжения корд мала, но падает\растёт\не меняется", "сила натяжения корд велика, но падает\растёт\не меняется".
...
То есть, имея показания акслерометра по всем трем осям, положения модели (углы наклона) и величину модуля скорости
, Вы легко можете рассчитать не только величину силы натяжения корд, но скорость её изменения. В данный момент времени.
К чему такие сложности? Для адекватной регулировки достаточно знать, куда направлен нос модели: если вверх, добавляем газ, если вниз, сбрасываем. По углу наклона продольной оси модели даже можно реализовать пропорциональность управления тягой. Поясню. Рассмотрим момент начала увеличения тангажа из горизонтального полета. При этом скорость, как я показал выше, около 80 км/час. Следовательно, и скорости, и момента инерции массы модели будет достаточно для того, чтобы уверенно подняться строго вертикально, как минимум на 2/3 высоты полусферы. Это, грубо говоря, около 60 градусов наклона корд к горизонту, или примерно 1/3 длины полуокружности, что при радиусе 20 метров равно 21 метру, Время, которое нужно модели, чтобы пролететь этот путь при указанной скорости, чуть меньше секунды. Так вот если команда на открытие дроссельной заслонки карбюратора пройдет в тот момент, когда нос модели только начнет подниматься вверх, мотор выйдет на максимальные обороты как раз к тому моменту, когда модели и потребуется "волшебный пинок в зад" для уверенного прохождения зенита без потери натяжения корд. Более того, к точке зенита команда на открытие дросселя будет отменена, а затем нос модели начнет опускаться вниз, и сразу же пройдет команда на полное закрытие дросселя, так как при полете вниз модель и без того разгоняется. Ну и при возвращении в горизонт вновь будет подана команда поднять обороты движка до "крейсерских" (средних).
И заметьте, весь мой "алгоритм" управления (конечно, в сильно упрощенном изложении) сводится к контролю только одного параметра - угла наклона оси
.
Ардуины вполне быстро (достаточно быстро, то есть единицы миллисекунд и быстрее) возводят в степень, вычисляют квадратный корень и тригнометрические функции. Даже в "младших моделях", типа Arduino Uno или Arduino Mini.
А вот здесь Вы довольно сильно заблуждаетесь.
Во-первых, я не работаю с Дуринками. Предпочитаю голые камни. Потому что Arduino IDE чрезвычайно медленная система, не позволяющая в скоростных приложениях использовать по максимуму возможности этих 8-битных РИСК процессоров, и без того не очень впечатляющие.
Во-вторых, даже в младших моделях Ардуинок (Uno, Mini ...) стоят контроллеры ATMega328, которые уступают ATMega2560 из Ардуины Мега лишь по количеству доступных портов, но никак не по скорострельности, или по вычислительным способностям, так как у них практически одинаковый набор машинных команд, и все они не умеют делать самого главного, и времязатратного: деления. Ну и то, что все Дурилки оперируют исключительно 8-разрядными числами, тоже не добавляет энтузиазма. Нет, конечно существуют алгоритмы, позволяющие выполнять и деление, и даже извлечение корней и тригонометрические вычисления, но "единицы миллисекунд" для реал-тайм задач это сильно растяжимое понятие, и оооочень долгое... Допустим, деление двух 16 разрядных чисел выполняется любой Мегой ну никак не быстрее, чем за 100...150 машинных тактов (и это при том, что код будет написан не в Arduino IDE, или даже на чистом Си, а на ассемблере). Что уж говорить о более сложных вычислениях. А ведь потребуется еще и опрашивать акселерометр, и формировать ШИМ для управления сервомашинкой регулировки дросселем, и много чего еще...
В-четвертых, если Вы не заметили, мне не потребуется огромный массив данных, а следовательно, и большой объем памяти. Да и сам код программы в худшем варианте займет не больше 1...2 кБайт, а такай объем флеш-памяти можно найти даже у младших сестер Мег - у Тинек.
Так что, полагаю, этот раунд наших дебатов остался за мной.