Контроллер для кордовых электричек
Примерно да, так и есть, допустим, что линейная скорость зависит от оборотов мотора, а обороты мотора, зависят от положения “дроссельной заслонки”.
Как только гувернер видит падение оборотов, он добавляет газ , выравнивая их. На этом пассивный гувернер у нас отработал.
Но так же можно его сделать активным, а то как то 25%оборотов утилизировать на полет по горизонту, жалко.
да и на поле ноут никто не потащит.
WEB морда у меня работает на смартфоне, STM32 работает в режиме точки доступа,
интернет не требуется, завтра или скорее в субботу запишу маленькое видео с экрана смартфона.
но пока это сырой продукт (и даже не продукт вовсе, на работе в свободное время “упражнялся” с UI).
Так WEB страничка, которая ничего не делает, кроме изменения значений, кнопок и ползунков.
Веб морда это хорошая штука, но у нас сейчас вопрос с алгоритмом работы гувернера.
Но так же можно его сделать активным, а то как то 25%оборотов утилизировать на полет по горизонту, жалко.
никак, либо в полный газ летать, либо летать “с умом”, в смысле с гироскопом и гувернером.
я на самолете не летаю в полный газ, в горизонте максимум 1/2-2/3, на снижениях вообще 1/3
и только на вертикалях или силовых фигурах газ до полного.
с алгоритмом работы гувернера.
70 процентов от номинала в линейном полете и гироскоп с гувернером для поддержания скорости.
или 100 процентов и на фиг никакой гувернер с гироскопом не нужен.
покупаем за 1,5+ вариант по ссылке выше, нанка с кнопкой, никакого гироскопа никакого гувернера,
нажал кнопку, 20 секунд добежать до ручки, взлетел, летаешь заданное время и на посадку.
а кроме того, полеты “тапка в пол” на электромоторах дело совсем не благодарное
ни мотор ни батарейка не скажут спасибо.
никак, либо в полный газ летать, либо
Так почти сделали))) Просто если мы привязываемся к оборотам, которые вечно плавают, а алгоритм пытается их стабилизировать, и при этом таймер понятия не имеет о том, как эти обороты отрабатывает регулятор.
Но если мы обороты привяжем к сигналу pwm, и создадим сетку оборотов, то нам не надо подбирать сигнал, а просто перещелкиваем по клеточкам таблицы, как топливной иголкой на двс.
Вводим коэффициент усиления и получаем активный гувернер, который будет давать газу больше чем надо для просто ровных оборотов.
Просто если мы привязываемся к оборотам, которые вечно плавают, а алгоритм пытается их стабилизировать, и при этом таймер понятия не имеет о том, как эти обороты отрабатывает регулятор.
“плавали” (вчера) они только “внизу”, на 4000+ уже не плавали, а сегодня уже и “внизу” не плавают
на моторах с оборотами выше 6000 они вообще плавать не станут
Но если мы обороты привяжем к сигналу pwm, и создадим сетку оборотов, то нам не надо подбирать сигнал, а просто перещелкиваем по клеточкам таблицы, как топливной иголкой на двс.
слишком много табличек получится.
от напряжения от направления полета, по ветру или против ну и т,д.
есть гувернер, он держит заданные обороты, зачем таблички ?
он уже есть и работает, осталось его немного отшлифовать,
я сегодня уже не уверен буду я к нему вообще ПИД регулятор прикручивать или нет.
Вчера вечером я логику немного поменял с периодами опроса поигрался.
Вводим коэффициент усиления и получаем активный гувернер, который будет давать газу больше чем надо для просто ровных оборотов.
если не будет запаса по PWM то никакого газа дать не получится )
слишком много табличек получится.
Одна, как деления на трещетке топливной иглы, чем больше делений тем плавнее регулировка.
он уже есть и работает, осталось его немного отшлифовать,
Хорошо, ждем , я просто предлагаю немного другой подход, где можно опереться на ту величину, которую можно фиксировать. Ваш подход подобрать сигнал pwm, а мой задать его.
если не будет запаса по PWM то никакого газа дать не получится )
Так этот запас и остается, он никуда не девается, просто мы знаем сколько щелчков у нас до предела и можем этот запас регулировать.
Одна, как деления на трещетке топливной иглы, чем больше делений тем плавнее регулировка.
что должно быть источником для проведения “регулировки” ?
Мы имеем диапазон регулировки сигнала pwm 800-2200 , этот диапазон делим на количество шагов, например 1400мксек/140шагов и получаем, примерно 10мксек. Сколько оборотов, у нас в этот один шаг, мы можем померить при запуске мотора, и дальше уже шагами работать для регулировки оборотов.
Не каждый регулятор понимает такой диапазон. Стандарт 1000 - 2000 мкс.
Уже во всех скетчах, что находил в интернете используют диапазон 800-2300. Но этот параметр всегда можно задать в программе как мин и макс pwm.
И нам собственно все равно какой диапазон делить на шаги, хоть 1500, хоть 1000, хоть 500, просто под него надо выполнить калибровку регулятора, чтобы он понимал когда у него ноль или полный газ.
Эту таблицу шагов и уровня pwm, должен рассчитать сам таймер, при старте мотора. КР таймер делает нечто подобное, каждый раз перед взлетом, после задержки на то чтобы взять ручку. Он плавно поднимает до максимальных и потом опускает до рабочих. Это облегчает взлет и мы получаем реальные параметры системы непосредственно перед полетом.
Ардуиновская библиотека “SERVO” расчитана на сервы с отклонением 180° и диапазон сигнала там шире стандарта, с этим столкнулся когда собирал первый таймер CL-Pilot. пришлось чутка подправить скетч оригинальный.
мы получаем реальные параметры системы непосредственно перед полетом.
и ? а как он учитывает изменение напряжения батареи ?
на самом деле никакой информации не получается.
только установка рабочего диапазона PWM, но перед каждым полетом это не нужно,
мало того, это нужно только один раз, прописать в регулятор диапазон сигнала PWM.
у длительности PWM и оборотами мотора нет никакой связи.
самая первая версия таймера делала то же самое, она есть,
в ней даже изменение оборотов в зависимости от изменения тангажа реализовано.
Timer_for_Plane_два варианта с шасси и без ЕМНИП.zip
если я правильно помню, идея гувернера появилась от желания иметь постоянную линейную скорость полета
не зависимо от состояния батарейки
вернемся к баранам.
вы можете определится с требованиями к таймеру ?
я не летаю и никогда не летал на кордах, разве что один раз очень много лет назад и всего полтора круга.
очень трудно что то делать, когда не понятно, что же в итоге нужно.
и ? а как он учитывает изменение напряжения батареи ?
Ни как, так же по оборотам или как то еще, например по обратной эдс, как сам регулятор.
у длительности PWM и оборотами мотора нет никакой связи
Это как? А как вы их регулируете? Какой pwm соответствует 50%газа? А 20%?
очень трудно что то делать, когда не понятно, что же в итоге нужно.
В итоге нужно , что бы модель летела более менее с одной скоростью.
Я опишу как работает КР таймер, а то и что как он меряет, оставим в стороне.
Мы выставляем обороты например 9000, по обычному тахометру. И можем отрегулировать степень усиления этих оборотов.
Далее стартуем мотор, он раскручивается до максимальных и выходит на рабочие, тем самым проверяя систему есть ли запас на работу гувернера. Далее полет. Во время полета, гувернер работает только вверх, он только добавляет обороты при их падении, но не опускает их ниже заданных, когда они начинают расти (разгон в ветер). Чтобы обеспечить большую тягу на углах, используется коэффициент усиления, который добавляет оборотов.
Из минусов при большом коэффициент, мотор так же начинает плавать по оборотам, поэтому его не рекомендуется выкручивать на максимум, и по умолчанию он 1.
Если использовать датчик положения, гироскоп или акселерометр, или оба, то гувернеру не нужен коэффициент усиления на углах, его задача тупо добавлять обороты при их падении, возвращая к заданным.
Ни как, так же по оборотам или как то еще, например по обратной эдс, как сам регулятор.
вот тут Вы не правы, регулятор по ЭДС подстраивает фазы, он не смотрит на сами обороты.
вертолетные регуляторы с гувернером, умеют выдерживать заданные обороты,
но они их тоже не знают, полки выставляет пилот на столе в
процессе настройки по тахометру.
Какой pwm соответствует 50%газа? А 20%?
сейчас диапазон в программе 1100-1940, значит 50 процентов соответствует 1520 мс
А как вы их регулируете?
на входы операционного усилителя, приходят “отфильтрованные” сигналы с двух фаз мотора,
он вычитает один сигнал из другого и на выходе получает меандр.
меандр поступает на вход прерывания микроконтроллера
получая прерывания, МК считает их период и на основании этих данных вычисляет текущие обороты мотора.
если обороты ниже заданных (± дельта), программа увеличивает длительность PWM,
если обороты больше заданных, длительность PWM уменьшается.
в любой момент я могу в программе изменить требуемые обороты мотора и гувернер изменит текущие обороты.
мало того, даже если подключить к регулятору батарейку с большим напряжением,
он все равно будет выдерживать заданные в программе обороты.