Самодельный конвертер сингала PWM в PPM для регуляторов БК двигателей

gershpion

Ром, скомпиль, плиз, для 202-го, мне как раз приехали пропеллеры на хвост, буду тестить.

Babay опередил меня

Babay

Попробовал. Регуль TGY 5A. С 4мс не завелось. С 6мс заводится через раз и на среднем газе. Хвост с 6мс вроде держит, но из-за большой мощности движка проворачивает вокруг. Лопнул флайбар. Сейчас наколхожу и продолжу.

RXL

Попробую тоже добраться до железа. У меня регуль HK 3A и движок AP-03. На прошивку 1.5.1-7 реагировал нормально.

Babay

На 7мс у меня тоже нормально реагирует. А с 6мс как то странно, то заведется, то нет.

Полетал еще. Хвост на 6мс не дрожит. Но не все прекрасно. Из за нестабильного хавания сигнала на 6мс регулятор иногда дурит и останавливает двигатель на некоторое время. Из за этого хвост прокручивает против часовой стрелки почти полный оборот. Периодичность примерно раз в секунду. Если по этому новому алгоритму еще на 7мс попробовать сделать, то думаю получится хвост сделать. Разломал очередной хвостовой ротор в труху. Ничего, у меня еще 5 есть:)

Babay

Попробовал еще и с TGY 3A с 6мс. То же заводится через раз. При увеличении газа просто переинициализируется.

RXL

Ага. Спасибо. Значит наш предел - 7 мс. Расширю - это легко. Вечером будут прошивки для 202.

Babay

Можно и на 10мс попробовать сделать. Потому что видимо в предыдущей прошивке узким местом было не частота работы с регулятором, а обработка входного PWM. А в этой новой прошивке с этим вроде получше.

RXL

Да, там была задержка в среднем на пол длины цикла, а тут обработка идет в начале импульса. Что характерно, качество определения скважности ШИМ от этого не пострадало - так же точность порядка 2-4%.

У меня там несколько экспериментальных нововведений - надо разобраться, какие не нужны, а какие полезны.
Дописал фильтр, который ускоряет реакцию на изменение входного сигнала.
Формула примерно такая: Y(n) = X(n) + f(X(n) - X(n-1))
Смысл фильтра: я считаю, что регуль тоже вносит задержку, т.к. ему нужно сперва замерить PPM, наверняка у него и фильтр сигнала есть, а потом инерция движка - (думаю, что у коллекторника она меньше, т.к. диаметр ротора меньше).

gershpion
RXL:

а потом инерция движка - (думаю, что у коллекторника она меньше, т.к. диаметр ротора меньше).

Но у бесколлекторника приемистость на много выше, тоесть он резче будет проворачивать свой тяжелый ротор.

Babay

У коллекторника приемистость на порядок выше. Не зря же такого рода движки стали делать coreless, чтобы ротор сделать максимально легким, чтобы инерция ротора была как можно меньше. Так что тут спорный момент, кто резче ротор провернет. Ну да эксперименты покажут, будет толк от фильтра или нет.

cylllka

ЕПТЬ!!! Не заглядывал я сюда О_о А тут во всю тестится прошивка!
Вечером присоединюсь!

Вот поставили БК на МСПИкс


Хвостовой пропеллер от Блейд120sr

Вот как он летает:

www.nanoheli.net/…/mcpx-full-brushless-19-05-11/
www.nanoheli.net/…/mcpx-full-brushless-06-06-11/
nanoheli.net/…/mcpx-full-brushless-tdr-14000-bl-11…
nanoheli.net/…/mcpx-full-brushless-tdr-14000-bl-10…

Автор пишет что хвост мега стабильный. А моменты от ОР у “Чертенка” намного выше чем у прохи, при резком перекладывании шага.
Я ему написал письмо с парой вопросов, жду ответа.
Во всяком случае нужно пробовать на хвост лопасти от 120ки.

RXL

Новая прошивка на 7 мс.
files.shelek.su/…/pwm_to_ppm-RXL-2.0.3-hex/

Исходник.
files.shelek.su/…/pwm_to_ppm-RXL-2.0.3.zip
Процентов на 95 готово. Если есть желающие экспериментировать - попробуйте включать там фильтры (на каждый канал индивидуально).

Есть еще одна возможность для оптимизации - варьировать положение импульсов каналов относительно друг друга. В выложенных прошивках и исходнике - вариант 1.

Вариант 1.

Вариант 2.

Вариант 3.

Babay

Что-то не могу собрать. Вот ошибка:

ppm_loop.asm:32:Error [115] Duplicate label or redefining symbol that cannot be redefined. (ppm_loop)

Собираю с помощью gputils. И еще пара варнингов вышла:

chip_select.inc:11:Warning [215] Processor superseded by command line.
chip_select.inc:13:Warning [231] found lower case match for include filename

Первый-то варнинг понятно, а второй - непонятно откуда, ну да ладно.

Попробую пока скомпиленную прошивку…

RXL

У меня MPLAB 8.63 и инструментарий:

Language tool versions: MPASMWIN.exe v5.39, mplink.exe v4.38, mplib.exe v4.38

Какие версии MPLAB и MPASM?

Babay:

Собираю с помощью gputils. И еще пара варнингов вышла:

Тогда понятно. Я использовал возможности именно MPASM.
ppm_loop, в первом случае - имя секции, во втором - метка. Видимо у тебя очень старый компилятор или вообще другой системы. Имя секции можно безболезненно задать другое или вообще убрать.

; ********************** Code **********************

ppm_loop code

ppm_loop

Сделай так:

; ********************** Code **********************

    code

ppm_loop

Второе предупреждение говорит, что у тебя имя заголовочного файла не совпадает с запрошенным при учете регистра.

Интересно, будет ли у тебя компилироваться scan_pwm.asm… Там макросы и, опять же, заточка под MPASM.

Babay

Да, система другая… Под нее есть только gputils от 2009 года с поддержкой MPLAB до версии 8.20. Попробую сейчас MPLABX поставить, мож в нем соберу.

RXL

Настройки прошивки я перенес в файл “user_settings.inc”.
Разделив программу на модули мне стало намного удобнее писать. А вот собираться на иных системах будет непонятно как.

Babay

Гы, скомпилилось, сейчас испытаю. Спасибо за подсказку.

cylllka
Babay:

Гы, скомпилилось, сейчас испытаю. Спасибо за подсказку.

Очень ждем результатов 😃 Полез за паяльником, буду тоже пробовать

Babay

Ну вот, не успел испытать - оборвалась одна жила у движка когда все собирал. Надо перематывать. Перехватывайте инициативу. А я пока другой двигатель поставлю, который многострадальный hexTronik, надо под него крепеж новый выпилить по быстрому.

Испытал. Прошивка pwm_to_ppm-2.0.3-202.hex. Поведение регулятора не изменилось. Стартует примерно с пятого раза, если хорошо пошевелить газом. Если завелся, то циклически встает примерно каждые секунду-полторы. Держу верт в руках, так прямо чувствуется момент остановки движка. Вряд ли это регуль, потому что пробовал вчера два разных. Но в любом случае нужно, чтобы кто-то еще испытал для статистики.

Babay

С самосборной прошивкой вообще не завелся. Попробую поставить MPLABX.