avatar_inetchik

Контроллеры м-к Куги хакнуть пора.

Автор inetchik, 08 Дек. 2018 в 14:26

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

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

Sonar

[user]kor[/user], вы оси перепутали. При 7 амперах (ось X) на графике, по оси Y, так и получается около 4,6 единиц.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

kor

Цитата: Sonar от 03 Фев. 2023 в 15:31вы оси перепутали. При 7 амперах (ось X) на графике, по оси Y, так и получается около 4,6 единиц.
Ясно, ошибся. Получается при 8А длительность компенсаторного импульса 4.6 *64мкс=294мкс, а при 24А 6.7*64мкс=429мкс.
Я попробовал в LTspice помоделировать момент переключения обмоток мотора, в звезде 3 обмотки по 200мкГн каждая, 0.15 Ом каждая, период шим 100мкс. Питание 40В заполнение шим 20мкс. Пказывает что для устранения провала тока 8А требуется ввести компенсаторный импульс 60мкс. Возможно модель не совсем достоверна, хотел с помощью нее критерии влияющие на время компенс импульса выявить.  Вот без компенс импульса:

Вот с компенс импульсом 60мкс:

Схема моделирования
Спойлер

kor

Цитата: Sonar от 03 Фев. 2023 в 14:55Было бы интересно узнать, по каким параметрам он рассчитывает. Ведь для расчёта нужны входящие данные.
Попробовал помоделировать с разными фазн токами, 40в, шим64мкс, заполнение 16мкс, получается примерно линейная кривая. Можно еще с разным заполнением перебрать варианты.
Спойлер

Sonar

Цитата: kor от 03 Фев. 2023 в 15:58Получается при 8А длительность компенсаторного импульса 4.6 *64мкс=294мкс, а при 24А 6.7*64мкс=429мкс.
У меня частота ШИМ 21,4 кГц
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

kor

Цитата: Sonar от 03 Фев. 2023 в 17:48У меня частота ШИМ 21,4 кГц
Тогда 8А-220мкс,  24А-320мкс.  и не зависит от текущей скважности щим.
Влияние Кv вероятно происходит из-за зависимости от него  индуктивности обмоток.
  При моделировании прослеживается зависимость длительности компенсационного импульса от:
индуктивности обмоток (прямая линейная зависмость),
фазного тока (грубо тоже прямая линейная зависимость),
и от текущего заполнения ШИМ, если на график подставлять не заполнение а его обратную величину, то тоже грубо линейная зависимость получается.
В результате можно например для конкретного мотора экспериментально подобрать длительность реперного компенсирующего импульса в одной точке (например в наиболее рабочей для мотора, например при реперном шим 50%(32мкс) и реперном фазн. токе 18А) и далее текущую длительность компенсационного импульса высчитывать по текущим параметрам: текущему фазному току и текущей длительности заполнения шим по формуле:
1) F(константа)= 1/реперная длительность импульса компенсационного(константа)
2) х= F * реперный ток(константа) / текущий ток
3) х= х * (макс период шим(константа) - текущий шим) / (макс период шим(константа) - реперный шим(константа))
4) длительность импульса компенсации = 1/х
  Возможно еще понадобится корректировка текущего заполнения шим от текущего напряжения батареи.
Тут данные моделирования, и вычисления по формуле:



seregama

А есть сейчас ифа по работе F-XC846?Мне как то надо считать прошивку и залить  в новую микруху.

Sonar

#384
Почти с самого начала, с момента покупки kugoo s2 с золотистым контроллером, меня не устраивал тормоз-рекуперация тем, что степенью нажатия курка я мог регулировать лишь скорость нарастания тормозного эффекта и не мог поддерживать тормозное усилие на одном уровне. Задумка, конечно, была у китайцев не плохая, но она работала криво при съезде, например, с горки. Заменив на свой контроллер - долгое время использовал в прошивке незамысловатую формулу:
brake_out=255-((255-brake_in)*(255-brake_in)/255*(255-brake_in)/255)Она давала такую жесткую зависимость, где X - положение курка тормоза (255 - максимальное нажатие на курок тормоза), а Y - значение ШИМ, которое подавалось на все три фазы двигателя одновременно.



В принципе с таким электронным тормозом уже можно было жить и регулировать усилие торможения при спуске, например, с горки. Однако на средних и малых скоростях оставался неприятный эффект свободного начального хода курка, который был ощутимый и мог доходить до половины всего хода и даже больше. Плюс ко всему такое торможение было довольно резким и схоже с управлением акселерацией по напряжению, а не по току.
На днях, таки, дошли руки до исправления этих недостатков и удалось получить плавное и предсказуемое поведение тормоза, аналогичное механическому. Достигается это следующим способом:
Высчитывается значение ШИМ для данной скорости и конкретного мотора по формуле
speed_pwm=255/bat_voltage*(eRPM/(magnet_count/2*kV)), где "bat_voltage" и "eRPM" - текущие значения, а "magnet_count" и "kV" - константы.
Далее, опираясь на показания ШИМ по скорости, находится значение ШИМ тормоза для синхронного управления нижними силовыми транзисторами в полумостах
brake_out=255-speed_pwm+(speed_pwm*brake_in/255)В моем случае я использую 8-битную глубину ШИМ, по этому все постоянные значения прописаны с этим учетом.
Единственный недостаток такого решения - нужно знать и прописывать kV для своего двигателя, хотя его не трудно подсчитать.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

Сергей_1959

Цитата: Sonar от 21 Апр. 2023 в 22:35нужно знать и прописывать kV для своего двигателя
Интересно, какие переменные используют китайцы в контроллере AOVO?



Sonar

[user]Сергей_1959[/user], думаю на скрине представлены просто множители курков, а все остальные параметры находятся при автодетекте мотора.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

Сергей_1959

[user]Sonar[/user], я не об этом, наверное можно сделать постоянные переменными через меню.

edw123

Цитата: Sonar от 21 Апр. 2023 в 22:35
Почти с самого начала, с момента покупки kugoo s2 с золотистым контроллером, меня не устраивал тормоз-рекуперация
А это чисто рекуперация или смесь с электротормозом для усиления эффекта?

Sonar

[user]edw123[/user], чисто рекуперация. Активное, противофазное дотормаживание на малой скорости ещё не делал.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

kor

Цитата: Sonar от 21 Апр. 2023 в 22:35Высчитывается значение ШИМ для данной скорости и конкретного мотора по формуле        speed_pwm=255/bat_voltage*(eRPM/(magnet_count/2*kV))
, где "bat_voltage" и "eRPM" - текущие значения, а "magnet_count" и "kV" - константы.
Далее, опираясь на показания ШИМ по скорости, находится значение ШИМ тормоза для синхронного управления нижними силовыми транзисторами в полумостах    brake_out=255-speed_pwm+(brake_in*speed_pwm/255)
Какой период обновления получается у brake_out ?

Sonar

[user]kor[/user], в районе 100-200 Гц (упирается в скорость работы основного цикла микропрограммы. Естественно частота получения достоверных значений получается ниже 100-200 Гц, так как зависит от частоты срабатывания датчиков холла и подсчета по ним текущей скорости, а так же скорости обновления положения курка тормоза. У меня это в районе 50 Гц. На практике нехватки частоты обновления не ощущается в любых моментах. Тормоз работает плавно, без рывков.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

kor

Цитата: Sonar от 24 Апр. 2023 в 11:30зависит от частоты срабатывания датчиков холла и подсчета по ним текущей скорости,
А с "дребезгом" холлов как-то боретесь программно?

Sonar

[user]kor[/user], да, конечно. Отсеиваю всё, что не подходит под правильную последовательность комбинаций. После этого фильтра считаю скорость, которая равна времени между двумя одинаковыми комбинациями. Хотелось бы ещё добавить фильтр по времени, через которое ожидается смена комбинации, но в угоду быстродействия пока не стал его вводить. К тому же и так количество ложных срабатываний практически равно нулю.
На днях, дополнительно, ввёл тайм-аут на неправильное состояние холлов, через которое подача напряжения на двигатель отключается. Защищает от неадекватной работы холлов или их внезапного выхода из строя в движении.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0

kor

#394
Цитата: Sonar от 21 Апр. 2023 в 22:35На днях, таки, дошли руки до исправления этих недостатков и удалось получить плавное и предсказуемое поведение тормоза, аналогичное механическому...Единственный недостаток такого решения - нужно знать и прописывать kV для своего двигателя, хотя его не трудно подсчитать.
Можно попробовать получить подобное не используя Kv. В контроллере есть схема измерения тока с общего шунта. Схема обычно сделана так, что может измерять и втекающий и вытекающий (рекуперации) ток, поэтому можно в программе ввести переменную ТОКРЕКУП которая будет задаваться положением курка тормоза,например в диапазоне от 0А(не нажат) до -30А(нажат максимально). При нажатии тормоза, программа должна начать уменьшать текущийй шим (напряжение на двигатель) например с некой постоянной скоростью, одновременно с этим изменится значение переменной ТОКРЕКУП задаваясь положением курка тормоза. В программе сделать ПИ регулятор, который будет сравнивать измеренный ток рекуперации с значением переменной ТОКРЕКУП и следить (корректируя шим), чтобы он не превышался.  В результате получим тормозной момент пропорциональный положению курка тормоза.
 Например П ограничение:
замер тока рекуперации
если он превысил ТОКРЕКУП то :
{ находим разницу  dI = измеренный ток - ТОКРЕКУП ;
новый шим = шим текущий + ( k * dI ) } ;    k константа

Sonar

[user]kor[/user], к сожалению это так не работает. После некоторого значения заполнения ШИМ, ток в батарею становится всё меньше и меньше и основная энергия уходит в нагрев обмоток двигателя и транзисторов. В конечном итоге, когда ШИМ равен 100%, ток в батарею не идет совсем (фазы в КЗ), но по фазным проводам всё ещё течет значительный ток, если скорость мотора выше нуля. По этому тут остается только два варианта: либо следить за фазным током (шунты можно устанавливать как между минусовой шиной и транзисторами, так и непосредственно на фазных терминалах), либо опираясь на математические вычисления надеясь, что параметр двигателя не изменился.
Kugoo S2 blue, 36v, 20,8A/h, 2WD, 1,9kW max, Prog disp v3.8, Prog drive v1.9, odo: 33065km.
Все материалы по альтернативным контроллерам для Kugoo S2/S3: http://213.21.12.200/kugoo_project/
Тема на форуме по этим контроллерам https://electrotransport.ru/index.php?topic=61126.0