avatar_ReSoNaNCe

Как сделать эмуляцию ручки газа электровелосипеда на arduino

Автор ReSoNaNCe, 01 Дек. 2015 в 15:39

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

T-Duke

Дополню на счет фильтра.  Частота среза фильтра должна отстоять далеко от частоты ШИМ. То есть сигнал который выделяется из ШИМ должен быть относительно медленный. Иначе может потребоваться фильтр высокого порядка, тогда точно ОУ потребуется.

electronic

По рабочей аппаратной схеме видно, что усилитель работает в режиме компаратора с максимальным коэффициентом усиления, а обратная отрицательная связь для него и есть цепь: контроллер-мотор-шунт. Вот я и подумал, что теоретически должна быть точка равновесия системы и при условном сигнале с ШИМ-ом на входе в контроллер, который он его сам и задает.
Электромот V1 (с доработками: 9 кВт, 76 В, 70 км/ч)

big17

Цитата: ReSoNaNCe от 05 Дек. 2015 в 02:51
Напряжение/расход замерил, газ считал, холлы считал, столкнулся с проблемой.
А подскажите, как считали холлы (речь же о холлах на двигателе?)
На стадии проектирования сборки: легкая открытая прогулочная двухместная машинка: 48V 2+2 КВт Quanshun'ы 100Ач !!!
https://electrotransport.ru/index.php?topic=26801.0 (заходите, критикуйте)

electronic

Взялся и я поиграться с ардуинкой. Контроллер китайский управление напряжением. Для начала сделал алгоритм "сглаживания" показаний с ручки газа. Причем заложил пороги при которых "сглаживание" отключается, т.е. сбросили резко газ - интегральная составляющая обнулилась, также и в режиме "газ в пол". Стало интересней управлять. НО задача для меня стоит сделать токовое управление. Методом более глубокого погружения в проблему пришлось изучить (вспомнить) ПИД-регулирование. Прикрутив к программе библиотеку PID_v1, пытался подбирать коэффициенты, менять частоту опроса и вывода сигналов, но результата нужного не добился. Управление организовано на аналоговом выходе частота 8 кГц + двойной RC-фильтр, сигнал практически идеально ровный, время изменения минимальное. Имея в наличия осциллограф мог бы разобраться и с инерционностью системы, чтобы понять как она реагирует, но нужна реальная нагрузка на двигатель. Может кто уже реализовал подобное или подскажет куда "копать" дальше?
Электромот V1 (с доработками: 9 кВт, 76 В, 70 км/ч)

on4ip

А зачем эти извраты то? Простейшее управление реализуется через шунт ПИ регулятор и 6 step ШИМ алгоритм.
В жизни все не так, как на самом деле.

electronic

Цитата: on4ip от 22 Июнь 2016 в 20:01
А зачем эти извраты то? Простейшее управление реализуется через шунт ПИ регулятор и 6 step ШИМ алгоритм.
а можно немножко подробней?
Электромот V1 (с доработками: 9 кВт, 76 В, 70 км/ч)

electronic

#24
В результате своих экспериментов решил воспользоваться алгоритмом ограничения тока самим контроллером. У меня сигнал с шунта обрабатывается операционным усилителем lm358 и я до недавнего времени пользовался изменением коэффициента обратной связи, чтобы задавать разные мощностные режимы. Делалось это путём подключения дополнительных резисторов в цепь обратной связи. Система всегда четко ограничивала батарейный ток. Когда я туда подключил управляемый источник напряжения с arduino получился следующий эффект: я стал управлять мощностью, очень стало удобней контролировать своё движение, но складывается ощущение, что система управляет не батарейным током, а фазным, ну или смешанный вариант. И вот почему. При наборе скорости происходит ровное ускорение, ваттметр фиксирует увеличение батарейного тока пропорционально оборотам. Например, "дал резко газа" ток прыгнул до 30а, пошло ускорение, с набором скорости и ток растёт. В простом линейном движении ограничение тока четко работает и я могу легко передвигаться на заданном мною токе. Может кто пояснить, что у меня получилось? Или чтобы лучшие самому понять, подскажите где найти осциллограмму сигнала с батарейного шунта при разных оборотах и мощности.



P.S. Для себя я решил поставленную задачу, теперь управляю током (мощностью). Бюджет 300 руб. :)
Электромот V1 (с доработками: 9 кВт, 76 В, 70 км/ч)

magikshow

Цитата: electronic от 03 Июль 2016 в 09:54
В результате своих экспериментов решил воспользоваться алгоритмом ограничения тока самим контроллером. У меня сигнал с шунта обрабатывается операционным усилителем lm358 и я до недавнего времени пользовался изменением коэффициента обратной связи, чтобы задавать разные мощностные режимы. Делалось это путём подключения дополнительных резисторов в цепь обратной связи. Система всегда четко ограничивала батарейный ток. Когда я туда подключил управляемый источник напряжения с arduino получился следующий эффект: я стал управлять мощностью, очень стало удобней контролировать своё движение, но складывается ощущение, что система управляет не батарейным током, а фазным, ну или смешанный вариант. И вот почему. При наборе скорости происходит ровное ускорение, ваттметр фиксирует увеличение батарейного тока пропорционально оборотам. Например, "дал резко газа" ток прыгнул до 30а, пошло ускорение, с набором скорости и ток растёт. В простом линейном движении ограничение тока четко работает и я могу легко передвигаться на заданном мною токе. Может кто пояснить, что у меня получилось? Или чтобы лучшие самому понять, подскажите где найти осциллограмму сигнала с батарейного шунта при разных оборотах и мощности.



P.S. Для себя я решил поставленную задачу, теперь управляю током (мощностью). Бюджет 300 руб. :)

А можно для новичка описание всех электродеталей и схемку их соединения?

electronic

Максимум это скажу, что RC фильтр имеет номиналы 1 кОм и 10 мкФ, причём два последовательно. Частота с Arduino выставлена на 8 кГц. Фильтр сглаживает идеально. Остальное индивидуально от самого контроллера.
Электромот V1 (с доработками: 9 кВт, 76 В, 70 км/ч)

alex286

#27
Цитата: electronic от 03 Июль 2016 в 09:54В результате своих экспериментов решил воспользоваться алгоритмом ограничения тока самим контроллером.
А алгоритмом "ограничения руля" не хотите воспользоваться??  Шутка.. :)

P.S.  Было дело, собрал велик... При максимальном нажатии на "гашетку"... на спидометре, ... 9 км/час..  и больше нив какую....
Пять раз проверил проводку, все правильно.  Даже выехал на нем, благо погода хорошая была.. Не едет ...
Написал на форум... Посоветовали посмотреть напряжение на контактах "гашетки" (там от 0,6  до 4,2 если кто не в курсе)..
Посмотрел, а там всего 1.8 в  при максимальном нажатии... Начал разбираться...и...
Оказалось,  "гашетка" не доходит "до конца", упираясь в крепление тормозной ручки..  При этом "сверху"не фига не поймешь, пока тестером не померишь, и "вверх ногами", то есть снизу  на руль не посмотришь...   :laugh:

Отсюда еще один ввод . Чем заменить это "упор"?  Правильно, СТАБИЛИТРОНОМ (например на 2,7в), включаемый между общим и средним выводом "гашетки" каким-нибудь тумблером..
С уважением, Александр.

Alex9944

Привет всем,
есть такой вопрос. Как сделать ручку газа вот к такому контроллеру. Напряжение питание будет 14,8В.  Должно работать на детском мотоцикле.
Благодарю за помощь.

Паяка

#29
Детектор 25 км/ч при безредукторном моторе можно сделать проще. С фазы через ограничитель уровня на стабилитроне подаём сигнал на дифференцирующую цепочку (фильтр высоких частот) и детектор (диод, как в радиоприёмнике), после детектора интегратор (просто сглаживающий фильтр). В итоге имеем на выходе этой штуки напряжение, пропорциональное скорости. Подаём его на компаратор. По достижении порога снижаем напряжение акселератора, или жмём тормоз, если нет электроторможения или рекуперации. Цена вопроса - сдвоенный или счетверённый операционный усилитель и горстка деталей, профит - надёжный действующий прибор и бесценный опыт и познания электроники.

Кстати, детекторы и фильтры вкусно делаются на ОУ, путём умелого встраивания в обратную связь. Дополнительный профит - улучшение характеристик схемы при возможности снижения номиналов, например, конденсаторов. Хотя с нынешней номенклатурой керамики последнее уже не столь актуально.

И да, если уж возьмётесь создавать артефакт, не ленитесь добавлять компараторам и усилителям компенсацию, дабы не срабатывало от помех. Всего-то RC-цепочка, а улучшает качество работы схемы в разы.

Как снизить напряжение акселератора? Хоть шунтированием плеча делителя, хоть модулятором, простейший из которых суть повторитель с регулируемым питанием. А помните такое чудо, как диодный модулятор? Который в электроорганах использовался. Вот, на нём и рекомендую сделать!
GT TF1 60V 20Ah Chilwee DZF

fedy

Цитата: ReSoNaNCe от 05 Дек. 2015 в 02:51
При попытке заэмулировать ручку газа, мотор работает с перебоями. каждую секунду-две, сам отпускает газ и дает снова. Это происходит даже если просто записать в пин среднее положение analogWrite(3,127);

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


NyyphoHerr

#32
А  ТУТ моё. Я назвал его "Плавный умный газ" И эпитет "умный" не просто так - плавность в нём меняется автоматически от предполагаемой (датчика-то нет) ситуации с текущей скоростью вращения колеса на основе того, насколько сильно и на какое время был нажат газ в недавнем прошлом.
Алгоритм пытается без датчиков и шунтов предугадать в какой степени плавно надо повышать скорость (при этом максимум плавности выставляется кнопками) и с какого уровня и до какого при необходимости нужно более быстро повышать уровень сигнала и на каком потом продолжить более плавно (угадывает, на какой скорости сейчас наиболее вероятно происходит движение.)
Чем дольше стояли, тем с более низкого уровня будет плавный этап (вплоть до плавности с самого низа, если не газовали дольше опред.времени)
И чем дольше держали газ на определённом уровне, тем быстрее туда (либо чуть ниже, если пауза дольше) будет возврат при кратковременном сбрасывании газа до нуля (сбрасывание без задержек, естественно).

В общем, не просто [плавность разгона и резкий сброс], которые на практике, особенно, если ездить быстро и в потоке транспорта, оказываются не так и удобны и безопасны, когда после иногда необходимого сброса газа на скорости, потом нажимаешь и ждёёёёёшь, когда же достигнутся былые обороты..
В моём варианте этот эффект заметно уменьшен.

1) Чем дольше высокий уровень сигнала, тем до более высокого уровня происходит быстрое восстановление скорости, а затем уже, выше этой точки - плавное. В пределе этот уровень изменения скорости нарастания доходит почти до верхнего значения - тогда плавности при быстром сбросе и возврате практически нет.2) Обратный процесс - опускание точки быстрого возврата и при этом одновоеменно и замедление скорости её достижения, если низкий уровень был дольше. Со временем уровень быстрого возврата снижается до минимума и старт начинается максимально плавно (соответственно выбранному уровню).3) Какое-то время сигнал был средним и точка изменения скорости возврата установилась на нем - при быстром сбросе и возврате это явно видно. Если сбросить газ чуть на дольше, то и возврат будет немного плавнее (видно по разному наклону линии роста). А если сбросить ещё на дольше, то быстрый подъём будет ещё до более низкого уровня.
Вариант с шунтами возможно был бы более интересен, чем такое "угадывание", но авторы выше (и один и второй), на мой взгляд, не достаточно раскрыли тему к сожалению.. - полных схем нет, что куда - не понятно.
Я, например, не смогу воспроизвести под любой байк и думаю, с такой "инструкцией" мало, кто сможет повторить, кроме каких-нибудь отдельных гениев, которые и так смогут такое сделать с нуля.

Upd:  Мой проект дорос до готового коммерческого варианта (впрочем, с сохранением возможности самостоятельного изготовления (пишите в личку в VK - помогу)  ) и на середину 2023 года опробован на ~600 различных электротранспортных средствах от самокатов и электровелосипедов до квалрациклах, детских снегоходах, инвалидных колясках и даже просто на строительных тачках с электроприводами.
https://vk.com/product-148896175_5487268
Убираются мертвые зоны в работе курка посредством ремаппинга - расширяется реальный угол его работы и добавляется регулируемая и при этом динамически меняющаяся плавность с эффектом, проходим на токовое управление, но без рывка при разгрузке колеса (например в полёте с бордюра под газом).
13s13p LG MH1 + EB309+++ (Lyen) + УмныйПлавныйГаз + Mac 7T + Forward1010  = 64 км/ч (120%).
80-200 км с подкрутом при <50.
Вес бабушколёта ~30 кг.