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

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.

RXL

А у меня как специально куда-то делся шнур от программатора…
Попробую в отладчике понять, в чем может быть проблема.
От предыдущей прошивки импульсы PPM немного отличаются: раньше они имели ширину в диапазоне 1.1…1.9 мс, сейчас - 1…2 мс. Может в этом дело?

Babay

Возможно, потому что останока происходит после полного газа, как будто сигнал пропадает, то есть захлестывает за 1.9. Может и не стартует с малого газа, потому что 1, а не 1.1 мс. На середине газа поведение вроде стабильное.
Так что можно попробовать снова прошивку на 6мс, но с диапазоном 1.1…1.9 - может заработает, может в этом дело было.

cylllka

Пришел ответ от NanoFreak, по поводу БК хвоста

Hi,

we use our Flea-ESC for MCPX Tail
it is the only one which is fast enough
we are making the ESC by our own - it was originally for the 4#3 brushless - we did a lot of brushless 4#3 conversions.
Now we do not produce the Flea-ESC any longer.

We are playing aroud to find another solution with reflashing a standard ESC.

Вот все что ответил

gershpion

То есть, на сколько я понял, они делали свой собственный регулятор, который понимает PWM?

RXL

Ошибки нашел. Править буду завтра или послезавтра. Основная ошибка была в расчете длительности импульса и паузы. В итоге, импульс мог достигать ширины 2.2 мс. Новые прошивки удаляю - слишком значительна ошибка. Потом выложу исправленные.