Как стать автором
Обновить
0
Golf Robotics
Производство роботов для сбора мячей для гольфа

Как управлять BLDC по 25кВт в пике? Настройка контроллера Kelly KLS. Чтение состояния по UART

Время на прочтение11 мин
Количество просмотров10K
!!! Управляя монстрами с суммарной мощностью 100 кВт в пике соблюдайте 2 правила:

  • Не забывайте про killswitch.
  • Никогда не нарушайте первое правило.

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


В этой статье я расскажу как правильно настроить и управлять контроллерами Kelly KLS. Как подключить контроллеры Kelly по UART. Для примера Kelly+STM32 или Kelly+Arduino.



Подключение двигателя к контроллеру Kelly достаточно простое. Силовые кабели на клемах к болтам на корпусе. Датчики Холла к разъему DJ7061Y.



Подключение органов управления зависит от Ваших задач. Например для багги мы подключаем все контроллеры к общей плате.




В других случаях применяем плату с микроконтроллером STM32 для микширования каналов.

Полный гайд по настройке контроллеров Kelly KLS


Устанавливаем программу для настройки на ПК. Приложение для Android позволяет лишь мониторить параметры. Соединяем ПК и контроллер rs232 <--> usb конвертером.



Low volt

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

 

Over volt

Следующий аналогичный параметр over volt  то есть это защита по перезаряду батареи.Контроль выдаст ошибку и не будет дальше ехать если это значение, вернее если напряжение вашей батареи будет выше этого значения. Это нужно для того, если у вас полностью заряженная батарейка bms несимметричная и чтобы вы ее не перезарядили при спуске с горы на полностью заряженной батарее и рекуперации контроллер просто не даст этого сделать просто отключиться .

 

Curent percent

Это процент, который задает фазный ток, именно фазный ток, он отвечает за крутящий момент но чем больше фазного тока и больше крутящий момент, тем больше нагрева мотора и проводов, чем меньше тем соответственно меньше тяги. Этот параметр настраиваете под себя или в соответствии с рекомендациями изготовителя вашего двигателя. В данном случае мы имеем 90, это значит 90 процентов от 300 ампер, так как максимальный ток моего контроллера он равен 300 ампер и цифра к 90 означает что максимальный фазный ток который сможет дать контроллер двигатель будет равен  270 амперам.


Battry limit

40 процентов будет означать что эти 40 процентов будет считаться не от максимального тока, а от уже определенного нами фазного тока. В данном случае если мы откроем калькулятор просто для понимания того, такой батарейный ток у нас будет. У нас контроллер 300 амперный, далее мы умножаем на 90 процентов то мы получаем 270 ампер фазного тока и далее еще раз умножаем на 40 процентов и получаем 108 ампер. Соответствует действительности у меня ваттметр показывает 110А. Для чего нужно ограничивать батарейный ток, это ограничение мощности общей и ограничение скажем для самой батареи если у вас батарея не способна выдавать большие токи, вам нужно рассчитать под тот, который рассчитана ваша батарея или BMS.

 

Identification angle

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

В нормальном режиме оно равно значению 85, то есть она может принимать только обозначения или 85 или 170.

Если хотите чтобы произошел auto detect вам нужно установить значение 170, после этого нажать на кнопочку WRITE  после этого отключаете питание контроллера поднимаете колесо чтобы она свободно вращалась, подаете питание он примерно одну минуту вращается и определит для себя конфигурацию фаз и датчиков холла запомнит это значение и вернет сам автоматически. Вам уже ничего не нужно будет возвращать назад на 85 он вернет,  которые автоматически после удачного выполнения этой операции .

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

 

TPS LOW error это означает что ниже этого значения, если напряжение на выходе ручки газа пуститься контрольную выдаст ошибку

 

TPS High error. Это если выше этого значения, то контроллер также выдаст ошибку. Этот параметр особенно важен на случай если у вас ручка газа случайно ну скажем так холл пробьется и закоротит выход на плюсовую шину чтобы ваш транспорт не улетел с вами или без вас куда-то вдаль, контроллер просто выдаст ошибку и дальше не уедет никуда. Как настраивать эти параметры я расскажу буквально за несколько секунд.

 

TPS type. Если стоит единица это обычный переменник переменный резистор который дает на выходе напряжение от 0 до 5 вольт. Если у вас стоит параметр 2 это большинство ручек газа который работает на датчика холла которые дают на выходе примерно 1 до 4 вольт.

 

TPS DEAD LOW параметр указывают рабочий диапазон ручки газа то, его можно подогнать под себя и тут я сразу расскажу как это делать. Есть вкладка монитор при включенном моторе и подключенном к компьютеру открываете и видите значение типа speed, если вы будете вращать ручку газа, то это значение будет меняться. Она может принимать значение, это значение изменить нельзя это просто монитор, который показывает текущее значение уровня на выходе ручки газов.

Даже видно что он там меняется от 40 до 43 м, то есть она показывает от 0 до 255 и для того чтобы перевести нам в проценты нужно разделить на 2.55. Значение 42 делим на 2,55 и получаем значение 16, это значит что в этом положении ручка газа будет начинать действовать для того, чтобы она не срабатывала как только вы включили транспорт нужно это значение задать чуть чуть повыше, то есть если вы будете ручку газа крутить его значение поменяется от уже не 42 будет самом начале хода там примерно 48 примеру до 48 разделяем на 2,55 и получается у нас там 18 ну с завода стоит значение 20 то есть вам это значение нужно разделить на 2,55 а потом вставить соответствующие ячейки low high и low dead.

 

Fwd map

Это в процентах значит что при повороте ручки газа на 50 процентов при механических 50-ти процентах она будет работать как бы только на 30 процентов, то есть если это значение меньше то первая половина работает на 30 процентов, а потом остальные 70 можно установить значение от 0 до 100.

 

Rev map

Тоже самое только при реверсировании чтобы вы когда нажимаете ручку газа до середины то у вас не 50 процентов только на выходе, а только 20. Остальные 80 уже на второй половине хода ручки газа.

 

Brake type

 Это то же самое как для ручки газа только для аналоговых тормозов. Если 0 они отключены, если стоит единица то это переменник который дает на выходе от единицы от 0 до 5 вольт и если стоит значение 2 то это активная ручка на датчике high которые дает на выходе от одного до четырех вольт. Ну и значение break dead и бредит High считается аналогично значением для ручки газа, только берется уже значение не ручки газа. Мониторе brake pedal тоже самое, только значения с аналоговые ручки тормоза это ручка газа это ручка тормоза аналоговая, если она у вас установлена в данный момент.

 

MAX OUTPUT FRE

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

 

MAX SPEED

Максимальная скорость это значение как и ограничивает скорость так и дает контроллеру понять какая максимальная скорость у вас есть на самом деле и от этого значение он считает уже проценты по максимальной скорости по средней скорости и по низкой скорости то есть чтобы это значение заполнить корректно нужно перейти в монитор и посмотреть где motospeed во второй колонке, поднимаете колесо чтобы она вращалась свободно, выжимаете газ в упор и смотрите значения max speed. Это значение вкладки переносите сюда и таким образом от этого значения будут плясать все ограничения это для более корректной работы, если не знаете какое у вас максимальное значение просто не хотите не в чем себя ограничивать, вернее не ограничивать контроллер в максимальных оборотах. Выставляете значение максимальной который поддерживает контроллеры это 15000 оборотов все ну тогда значение максимальной и минимальной и средней скорости у вас будут работать просто некорректно.Далее вот соответственно скорости это в режиме 3 скоростей.

 

THREE SPEED

Это значение если вы хотите использовать несколько скоростей, чтобы эти значения все работали у меня они просто отключены. Я в этом не нуждаюсь я настроил ручку газа под себя и у меня работает просто плавно без не каких-то ограничений могу ехать хоть три километра в час х 90, но если хотите использовать несколько скоростей впишите их количество, от 1 до 3.

 

Pwm frequency

Частота несущая частота ШИМ контроллера. За что отвечает этот параметр он может принимать значение 10 или 20 это значение в килогерцах никаких промежуточных значений туда писать не нужно и просто нельзя, если стоит 20 килогерц 20 килогерц это частота кое-какую уже наши уши и мозг не воспринимает, то есть это выше диапазона нашего слуха, поэтому ее не слышно но при такой частоте переключения транзисторов они греются слегка больше, чем могли бы греться при частоте 10 килогерц. Если вы хотите с контроллером выжать больше чем он скажем так в номинале, то ставьте частоту 10 килогерц и таким образом сам контроллер будет греться ну гораздо меньше.


Startup h-pedel
Это значит что если галочка установлена и вы включите контроллер в тот момент когда нажата ручка газа, то он не поедет, а он выдаст ошибку что ручка газа изначально была нажата и когда вы ее отпустите потом нажмете, тогда поедет.Если эту галочку убрать то если у вас ручка газа была нажата и вы включили контроллер он сразу же метнется вперед, это защита от того чтобы он не поехал вперед при нажатой ручки газа во время включения слабой точки.

Brake h-pedel
Защита тормозов, я так понимаю что когда тормоз не нажат он выдаст ошибку.

NTL h-pedel
защита нейтральной передаче если во время включения нейтральная передача не включена он выдаст ошибку тоже защита какая-то

Joystick
Режим джойстик применяется для транспортных средств которые имеют равнозначный ход как вперед ноги назад например там инвалидная коляска или какая-то тележка которая может ехать как вперед, так назад. Но для этого режима нужен джойстик и специальная ручка газа которая вращается как в одну так и в другую сторону а имеет нейтральное положение которое дает на выходе половину напряжение питание два с половиной вольта в нее по умолчанию если крутить и вперед она уменьшает напряжение. Если крутить и назад она увеличивает это джойстик.

Three Gears Switch
триггер switch тут написано, что если галочка стоит тогда у вас есть нейтрально, есть переключатель вперед назад это принудительно нужно чтобы он уехал, вперед принудительно включить кнопку вперед чтобы ехал назад, нужно принудительно включить кнопку назад. Если галочка не стоит тогда он вперёд едет по умолчанию ничего дополнительно нажимать не нужно, а назад едет только в тот момент когда нажата кнопка реверса.

Boost
Это скажем так выжить с контроллером максимум он дает фазный и батарейный ток на 100 процентов на несколько секунд если установить галочку, тогда можно подключить кнопку boost и например нажав кнопку boost вы как бы симулируете полное нажатие ручки газа и эти параметры как battery лимит и caring процент на сто процентов.

Foot switch
Очень странная функция тоже, защита от дураков или от детей. Не знаю дополнительная кнопочка к педали газа или крючка газа пока она не нажата ручка газа просто не активна.

Cruise
Функция круиз-контроль, если например вы набираете какую-то определенную скорость и держите ручку газа 3 или 5 секунд не меняя ее положение, то контроллер воспринимает это как уже круизную скорость и соответственно после отпускания ручки газа, он едет на этой скорости уже сам. Чтобы остановиться достаточно или еще раз дернуть ручку газа передернуть так сказать, или нажать аналоговый тормоз до конца. Имейте ввиду или же обычный дискретный тормоз. Просто нажать кнопочку тогда круиз выйдет из своего режима.

Change direction
Контроллер проводит auto detect, иногда бывает что колесо вращается не в ту сторону в которую вы желаете. Если оно вращается не в ту сторону и едет назад, то чтобы не менять конфигурацию фаз не делать повторно to detect, вы просто заходите в программу ставите галочку нажимаете в write и перезапускаете контроллер и он как бы просто меняет направление ничего при этом не меняя.



Motor mominal curr
Этот параметр отвечает за номинальный ток мотора, но только во время автоидентификации.

Motor poles
Количество полюсов, именно полюсов а не пар полюсов, то есть фактическое количество полюсов вашего мотора. Это нужно для корректного отображения скорости корректного ограничения, но если вы ничего тут не будете менять, то в принципе он работает тоже.
Влиять оно кроме как ограничений и отображение в мониторе больше ни на что не будет.

Speed sensor type
Это выбор скажем так датчиков угла двигателя. Если стоит двоечка это обычные датчики холла, они используются в 99 процентов всех моторов.

Resolver poles
Нам не нужен так как мы его не используем. У нас датчики холла их 3 и просто другого количества быть не может. Потому сколько датчиков фазных проводов, столько должно быть датчиков холла.

Motor temp sersor
Тип температурного датчика самого мотора. Если у вас один из этих типов которые написаны синим шрифтом, то можете использовать датчик холла.

High temp cut
Это высокая температура при которой контроллер отрубается вообще. А вернее это касается не контроллера, а двигателя.

Line hall zero
Параметры которые отвечают за аналоговые датчики холла, они нам просто нужны.



IQ kp IQ ki ID kp ID ki
Параметры отвечающие за ПИД-регулятор.

Brk ad brk %
Параметры по аналоговому торможению. Мы не используется аналоговый тормоз. Если вы будете использовать такую же ручку тормоза как ручка газа, которая от угла поворота меняет напряжение на выходе, то вы можете использовать и указывать максимальное количество, максимальный ток который выражен в процентах от 0 до 50.

Rls tps brk %
При отпускании ручки газа начинает подтормаживать. Ну с одной стороны это как бы эмуляции двигателя внутреннего сгорания, с другой стороны если у вас нету ручки тормоза вы можете использовать параметры. Например установить значение 15 и таким образом при отпускании ручки газа у вас будет 15 процентов оттормаживаться, соответственно и рекуперации 15 процентов.

Ntl brk %
При переключении на нейтральную передачу так же срабатывает рекуперации в процентах у меня не используется поэтому 0. Рекуперации всюду можно выставить максимум 50 процентов.

Accel time
Это время акселерации он идет в дискретностью 0.1 секунда, то есть единицы означает 0,1 секунда означает 10 секунда. Это время реакции на ручку газа от момента когда вы ее дерните до того как контроллер выведет на номинальную мощность.

Accel rls time
При сбросе ручки газа, время за которое контроллер сбросит мощность, после того как вы сбросите ручку газа.

Brake time
Выставил значение две с половиной секунды и оно для меня оказалось очень удобно, то есть когда я нажимаю ручку тормоза, он начинает тормозить не сразу, а начинает плавно наращивать мощность торможения. Мощность рекуперацией на протяжении двух с половиной секунд то есть здесь тоже дискретность 0,1 секунда и за 2 с половиной секунды он начинает наращивать тормозное усилие до 30 процентов как тут указал за две с половиной секунды.

Brake rls time
Это время сброса рекуперации. Здесь желательно выставлять значение поменьше, то есть единичку чтобы при отпускании у вас тормоз сразу отключался а не тормозил дальше.

Brake sw brk
Это процент торможения при дискретном торможение, то есть при нажатии ручки тормоза у меня выставлено на 30 процентов. К сожалению больше не могу выставить потому что уже срывает колесо views.Мне тридцать процентов достаточно чтобы он оттормаживался очень хорошо.

Change dir brk
Это при включении реверса он тоже может начать рекуперацию, то есть при включении реверса на ходу, кстати было даже где-то на форуме вопрос что будет если включить реверс на ходу. Ничего не будет, он сначала будет оттормаживаться до нуля этими пятью процентами ну или 50 процентами. Если восстановить такое значение, а потом уже после полной остановки он уже начнет ехать с начала рекуперации потом движение.

Kelly+Arduino. Соединение по UART



структура данных T_Sync_Comm_Buff используется контроллером со всей длиной данных 19 байт. Полные данные, отправленные контроллеру или полученные от контроллера, включают поле команды, поле no_bytes и поле данных. Последовательная скорость передачи данных — 19200.
Поле команды указывает на операцию. Ответ контроллера возвращает то же самое значение команды, которое он получил.
Поле no_bytes указывает количество байтов, которые должны быть отправлены или получены из поля буфера данных, исключая байт контрольной суммы.
Поле буфера данных состоит из двух частей: допустимых данных и контрольной суммы. Перед отправкой данных типа T_Sync_Comm_Buff метод ETS_TxMsg создает контрольную сумму и помещает ее в допустимые точки данных. После получения полных данных от контроллера метод ETS_RxMsg создаст контрольную сумму и сравнит ее с контрольной суммой в поле буфера приема данных.

ETS_FLASH_OPEN 0xF1
ETS_FLASH_READ 0xF2
ETS_A2D_BATCH_READ 0x1b
ETS_USER_MONITOR1 0x3A
ETS_USER_MONITOR2 0x3B

Парсинг ответа



Command ETS_A2D_BATCH_READ
Controller response
no_bytes 16
data[0] Brake A/D
data[1] TPS A/D
data[2] motor temperature A/D
data[3] Control power A/D
data[4] Vs A/D
data[5] B+ A/D
data[6] Controller’s temperature A/D
data[7] Ia A/D
data[8] Ib A/D
data[9] Ic A/D
data[10] PCB_Temp
data[11] Vb A/D
data[12] Vc A/D
data[13] H_Temperature
data[14] V+ A/D
data[15] L_Temperature

Command ETS_USER_MONITOR1
Controller response
no_bytes 16
data[0] TPS A/D
data[1] Brake A/D
data[2] BRK_SW
data[3] FOOT_SW
data[4] FWD_SW
data[5] REV_SW
data[6] HALL_SA
data[7] HALL_SB
data[8] HALL_SC
data[8] B_Voltage
data[10] Motor_Temp
data[11] Controller’s temperature
data[12] Setting direction
data[13] Actual direction
data[14] Break_SW2
data[15]

Command ETS_USER_MONITOR2
Controller response
no_bytes 16
data[0] MSB of controller’s error state
data[1] LSB of controller’s error state
data[2] MSB of mechanical speed in RPM
data[3] LSB of mechanical speed in RPM
data[4]
data[5]
data[6]
data[7]
data[8]
data[8]
data[10]
data[11]
data[12]
data[13]
data[14]
data[15]

Начинали мы с переделки багги на ДВС на электротягу.


Мы импортируем контроллеры для своих задач. Можем привести и для Вас. Для заказа контроллеров Kelly оставьте заявку на нашем сайте.



Мы создаем различные решения в области робототехники. Если у Вас есть задача по созданию платформы на электротяге или платформы для робота будем рады сотрудничеству golf-robotics.ru.
Теги:
Хабы:
+2
Комментарии11

Публикации

Информация

Сайт
golf-robotics.com
Дата регистрации
Дата основания
Численность
2–10 человек
Местоположение
Россия
Представитель
Вячеслав Голицын

Истории