Контроллер для кордовых электричек

Маркс

Сейчас для программатора нужно иметь Уно и шилд с кнопками,
а можно реализовать на i2c LCD 1602 + энкодер
Хотя, много сэкономить не получится

VitalikV:

Ну так экран с кнопками и есть программатор.

на видео выше это просто экран без кнопок, чисто индикация

Маркс

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

Но, как вариант, в режиме программирования можно добавить функционал расчета коэффициента пересчета.
Например,

  • таймер выводит измеряемую частоту меандра на некоторый уровень, например 1200 Гц
  • с помощью тахометра измеряются обороты и полученное число вводится в память контроллера.

А дальше чистая математик.
Но это если не найдется алгоритм рассчета

VitalikV

Проще за расчет тогда взять количество полюсов, оно обычно указано в описании мотора, и что самое интересное, в основном это 14, на те моторы которые используются в пилотаже. И эти данные вносить через программатор.

Попробуйте, по одной фазе прогнать через операционник, какой там будет меандр? Может будет нечто похожее, на то что снимали с транзисторов.

Маркс

Скорее всего не пойдет, вот конкретный пример,
два мотора

Turnigy Aerodrive SK3 - 3530-1460kv Brushless Outrunner Motor

  • Turns: 22T
  • Voltage: 2~3S LiPo
  • RPM/V: 1460kv

Turnigy Aerodrive SK3 - 3530-1340kv Brushless Outrunner Motor

  • Turns: 24T
  • Voltage: 2~3S LiPo
  • RPM/V: 1340kv

Что такое Turns и почему с увеличение, падают обороты на вольт ?

Маркс


вот меандр рядом с фазой
одну фазу через операционник не прогнать ), точнее прогнать можно, а меандр не получится.
на выходе получится или таже фаза или высокий уровень, фазовый сигнал не проходит через ноль.

В пятницу заберу другой мотор, для которого у меня есть пропеллер
и попробую соотнести обороты мотора, для которого известно kV с частотой меандра.

VitalikV

Все зависит от сайта который публикует, вот пример:

Фирменное Наименование: Surpasshobby Название позиции: бесщеточный двигатель Название позиции: C3548 КВ: 900 кВ Максимальная мощность: 1000 Вт Максимальный ток: 60А Полюса ротора: 14 Ток холостого хода: 2,2 А Сопротивление: 0033 Ом Размер двигателя: 35x48 Размер статора: 28 х 26 Тяга: 1780 г Размер двигателя (мм): Ф3548 Батарея: 2-5S Lipo Опора (дюйм):118/136/147

Маркс


у всех моторов количество полюсов одинаковое 14, а kV разный

VitalikV

Да, все правильно, разное число витков на зуб. И количество зубов на одну фазу, может быть разным. Например 12 зубов, это по 4 зуба на фазу.

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

Маркс

так в том и вопрос, как все это учитывать.
в общем, завтра заберу мотор с пропеллером и буду смотреть одновременно обороты и частоту.
а дальше начну делать выводы.

RandomJ
Маркс:

Turns

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

Маркс

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

обороты частота меандра делитель
2700 310 8,7
4200 480 8,75
4380 500 8,76
6950 800 8,68

Т.е. коэффициент можно условно считать 8,75
Ничего не понимаю

VitalikV

Так тахометр тоже может врать, а вернее скорее всего и врет.

Надо распаяться на транзисторе регулятора, где управляющий сигнал с контроллера и посмотреть, что там происходит и с ним сравнивать.

Еще интересен вопрос, а если взять другой мотор, любой, делитель будет так же 8.75 или нет?

Маркс

в регулятор не хочу лезть ), задача сделать предельно простой вариант.,

другой мотор попробую завтра.

скорее всего “делитель” будет меняться в зависимости от параметров мотора.
отсюда надо будет подумать, как реализовать программирование требуемых оборотов.
например сделать калибровку, выше уже писал варинт

VitalikV

У меня вопрос, а оборот, это ведь когда отработают все три фазы? А мы меандр строим по двум фазам или трем?

Маркс

по трем его построить не получится, это разница между фазовыми сигналами

Маркс

ну я и тормоз )))
обороты в минуту, а частота меандра в Герцах (единицы в секунды)
310 / (2700 / 60) = 6,89
480 / (4200 / 60) = 6,86
500 / (4380 / 60) = 6,85
800 / (6950 / 60) = 6,9
отклонение 2 процента, можно считать погрешностью измерений.
в общем все по науке, коэффициент пересчета Герц в обороты в секунду
равен половине количества магнитов.

думаю точность регулировки оборотов в 2 процента всех устроит )

VitalikV

Вполне, это скорее всего погрешность тахометра. И исходя из этого, для настройки оборотов, можно брать шаг 100.

Маркс

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

период импульсов с формирователя на малых оборотах 2 миллисекунды,
пишу программу так, что бы на каждом импульсе считались текущие обороты,
это примерно 50 раз в секунду.
и сразу второй вопрос, начиная с какого отклонения оборотов следует принимать меры ?
там в принципе процесс будет простой,
если при измерении оборотов отклонение больше или меньше <дельта>,
таймер будет <уменьшать>/<увеличивать> частоту PWW на входе в регулятор.

Маркс

упростил задачу, сейчас Ардуина считает время на один оборот в микросекундах,
вот это время и будет браться за основу для автоматической регулировки.
иначе придется лезть подключать плавающую арифметику, а ресурсы Меги 328 не бесконечные.

Маркс

придумал !!! как избежать плавающей математики.
при старте программа, пересчитывает требуемые обороты мотора в микросекундах на один оборот.
сразу считаем дельту, это допустимое отклонение, например 5 процентов в каждую сторону.
прелесть подхода в том, что этот расчет делается только один раз.

обработчик прерываний считает количество прерываний от кросс платы
и сравнивает их с количеством полюсов мотора деленным на два
получая тем самым время в микросекундах на один оборот мотора

А дальше все просто, полученный результат измерений сравнивается с требуемым
если результат меньше требуемое значение минус дельта - обороты больше требуемых,
то уменьшаем длительность импульса PWM, уменьшаем обороты мотора.
и наоборот, если результат больше “требуемого значения плюс дельта” - увеличиваем длительность PWM.