avatar_verial

Программа для переделки гироскутера.

Автор verial, 23 Дек. 2018 в 08:29

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

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

Pau62

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

Pau62

Цитата: kor от 13 Фев. 2020 в 12:46реальный импульсный , может достигать больших величин
Ну его же можно вычислять через средний ток, и коэффициент заполнения ШИМ.

Добавлено 13 Фев 2020 в 13:22

Цитата: kor от 13 Фев. 2020 в 12:46Тут же  (у Николаса) "синхронный режим" (не знаю как правильно по классификации назвать) шимятся синхронно нижние и верхние ключи в противофазе
Хз зачем это нужно. Кто-то (Авислаб?) называл это компплиментарным режимом.
Хренов он тем, (а может и хорош для кого-то) что при сбросе газа колесо будет тормозить.

kor

#362
Цитата: Pau62 от 13 Фев. 2020 в 13:20Хз зачем это нужно. Кто-то (Авислаб?) называл это компплиментарным режимом.
Исключается протекание тока через диоды ключей (на которых падает 0,7-1.2в) соответственно не греются ключи, можно безбоязненно ключевать большие токи 25-50А

Добавлено 13 Фев 2020 в 13:32


Pau62

Цитата: kor от 13 Фев. 2020 в 13:31Исключается протекание тока через диоды ключей (на которых падает 0,7-1.2в) соответственно не греются ключи, можно безбоязненно ключевать большие токи 25-50А
Это да.
Цитата: kor от 13 Фев. 2020 в 13:31В данном случае (синхронное переключение) это (похоже) не прокатит.
Хз. не на чем пока изучать.
Но закачиваемый ток видно же на шунте, не видно тока самоиндкцию.

Смотрел на днях аппноуты от STM по FOC - ну никому там не требуется измерять ток чаще, чем 1 раз за период ШИМ.
Они для измерения (в 2-х или 3-х датчиковой системе) просто выбирают середину периода самоиндукции для измерения тока. И считают это мгновенным фазным током.


Добавлено 13 Фев 2020 в 13:44

Цитата: kor от 13 Фев. 2020 в 13:38Вот если бы брать выборки ацп от шунта например 4 раза за период шим, то можно было бы хотя бы в одной из них поймать реальный ток, либо положительной либо отрицательной полярности.
Да не надо этого. Брать-то можно, но из-за конденсаторов ничего полезного не намеряешь.
Посмотри на свою плату - какие там емкости навешаны на напряжение питания ключей? С основного шунта ничего, кроме среднего тока, не снять.

Pau62

#364
Цитата: kor от 13 Фев. 2020 в 13:50
  Нет, при синхронном режиме на шунте виден и закачиваемый ток и ток самоиндукции-он просто обратной полярности. Попозже ткнусь осцилом посмотрю покажу.
Да, ты прав, пожалуй.
Спойлер
Я вот критичные для правки прошивки куски схемы срисовал со своей платы.
Как видишь, у меня тут с измерением токов ловить особо нечего)))
Резистор с номиналом ххх - неустановленный.

Буратино

Првильно ли я понял из вашей переписке, что просто перепрошить это пол дела и надо еще вводить какие-то коррекции?

kor

Цитата: Буратино от 13 Фев. 2020 в 14:46Првильно ли я понял из вашей переписке, что просто перепрошить это пол дела и надо еще вводить какие-то коррекции?
Люди прошивки от Victor_7 для трехплатного варианта (знаю две, без наката и с накатом условно), используют, кто-то говорит что все хорошо работает, у других транзисторы горят иногда.

kor

#367
Цитата: Pau62 от 13 Фев. 2020 в 13:52Нет, при синхронном режиме на шунте виден и закачиваемый ток и ток самоиндукции-он просто обратной полярности. Попозже ткнусь осцилом посмотрю покажу.
Да, ты прав, пожалуй.
Я оказался не прав (неправильную модель в спайсе смотрел). Действительно на шунте только ток накачки видится (в паузе шима (когда ток самоиндукции) там просто 0в, это видно на фото), далее на ацп он приходит сглаженным в виде постоянки. Действительно, выходит, хватает измерять один раз за период шим, и далее можно рассчитывать из среднего фазный ток путем пересчета через скважность шим. (ранние сообщения поправил и фото тока на шунте добавил )

Pau62

Цитата: kor от 14 Фев. 2020 в 07:36Я оказался не прав (неправильную модель в спайсе смотрел). Действительно на шунте только ток накачки видится,
Прав или неправ - зависит от того, насколько зафильтрован сигнал тока.
Цитата: kor от 13 Фев. 2020 в 12:02Просто хочется попробовать контроль тока организовать получше, чтобы транзисторы не сгорали
Ну, во-первых, надо исключить вваливание 100% тока при стоящем колесе.
Это решается фильтрацией (ограничением скорости нарастания) задания шим.
Затем, когда колесо закрутилось, мы знаем средний ток, имеем возможность вычислять фазный. Еще знаем скорость.
Еще мы знаем или можем получить калибровочное значение kV.
В результате, мы для данного момента, можем получить некий коэффициент для преобразования положения газа в задание ШИМ, который позволит не превышать фазный ток.
С ростом скорости (при постоянном положении ручки газа) этот коэффициент будет увеличиваться, получится аналог управления тягой.
Не надо пидов, и так будет красота неописуемая.

Но меня не это парит. Мне интересно, можно ли при моей уродской схеме оценить оптимальность угла опережения.
С целью корректирования.

kor

#369
Цитата: Pau62 от 14 Фев. 2020 в 10:52Прав или неправ - зависит от того, насколько зафильтрован сигнал тока.
Оказалось Абсолютно зафильтрован, постоянка и ни малейшего намека на остатки пульсации от шим. Для слежения за пиковым током в схеме есть отдельная схема- Б-Э переход транзистора подключен к тому-же шунту и гонит "0" на   вход    TIM1_BKIN        ( и  TIM8_BKIN) процессора. Проверил срабатывает ли в прошивке Николаса-Виктора это путем корочения  этого входа на массу, не сработало. В программе похоже эта функция не сделана. Попробую добавить в маин LEFT_TIM->BDTR |= TIM_BDTR_BKE; 
RIGHT_TIM->BDTR |= TIM_BDTR_BKE; //включение режима защитного отключения таймера по внешнему пину BKIN (пиковая перегрузка по току)

Pau62

Цитата: kor от 14 Фев. 2020 в 11:53Б-Э переход транзистора подключен к тому-же шунту и гонит "0" на вход БРЕЙК процессора.
Нет, на вход блокировки ШИМ соответствующего таймера.

kor

#371
Цитата: kor от 14 Фев. 2020 в 11:53Попробую добавить в маин LEFT_TIM->BDTR |= TIM_BDTR_BKE;
RIGHT_TIM->BDTR |= TIM_BDTR_BKE; //включение режима защитного отключения таймера по внешнему пину BKIN (пиковая перегрузка по току)
Помогло, при подаче 0 на BKIN все 6 ключей запираются, мотор по инерции докручивается и останавливается. Плохо то, что, при снятии этого 0 ключевание возобновляется, причем сразу с прежнего текущего шима, соответственно сразу рывок оборотов а это большой фазный ток сразу. Это в bldc.c команда взводит снова бит MOE, что делать пока не знаю.

Shadow_ru

Речь о локбитах ? Они вроде останутся до сброса, т.е. надо будет питалово дергать.
TIM_LOCKLevel_3 - TIM_BDTR_LOCK

kor

#373
Цитата: kor от 14 Фев. 2020 в 19:21Речь о локбитах ? Они вроде останутся до сброса,
Наоборот, надо чтобы после сработки по аварии (бит МОЕ тогда сбрасывается в 0) он (МОЕ) оставался в нуле, а программа регулярно его снова взводит. Вставил проверку флага SR_BIF (выставляется при сработке по аварии) , чтобы когда он 1 то программа bldc.c бит MOE не трогала. Вот правка в bldc.c , примерно 174 строка (числа 1023 это временно ток ограничения в дискретах ацп задан):
//disable PWM when current limit is reached (current chopping)
  if(ABS(adc_buffer.dcl - offsetdcl) > 1023 ) {
    LEFT_TIM->BDTR &= ~TIM_BDTR_MOE;
    //HAL_GPIO_WritePin(LED_PORT, LED_PIN, 1);
  } else {    
    if( LEFT_TIM->SR&TIM_SR_BIF ){ }
   else {LEFT_TIM->BDTR |= TIM_BDTR_MOE; }
    //HAL_GPIO_WritePin(LED_PORT, LED_PIN, 0);
  }

  if(ABS(adc_buffer.dcr - offsetdcr)  > 1023) {
    RIGHT_TIM->BDTR &= ~TIM_BDTR_MOE;
  } else {
    if( RIGHT_TIM->SR&TIM_SR_BIF ){ }
     else {RIGHT_TIM->BDTR |= TIM_BDTR_MOE; }
  }
Теперь после сработки по аварийному току мотор отключается и остается так до отключения батареи. Можно дальше ковырять программу.

Shadow_ru

Цитата: kor от 14 Фев. 2020 в 19:52надо чтобы после сработки по аварии (бит МОЕ тогда сбрасывается в 0) он (МОЕ) оставался в нуле, а программа регулярно его снова взводит
Локбиты так и работают. Фиксируют текущее состояние, а потом пиши туда - не пиши, ничего оне изменится пока резет не пройдет

kor

Цитата: Shadow_ru от 14 Фев. 2020 в 19:45TIM_LOCKLevel_3 - TIM_BDTR_LOCK
Это строка кода? а на какой таймер она действует? Там два спец таймера TIM1 и TIM8 для управления моторами

verial

#376
киайцы не заморачиваются с полной переделкой процессора

вроде памяти допаяли :laugh: :laugh:
по моему в 74м году я такое видел как то модульным называлось.
https://zeptobars.com/en/read/GD32F103CBT6-mcm-serial-flash-Giga-Devices
И да вот вам ветка по решению всех ваших вопросов ------>>>>>  https://github.com/NiklasFauth/hoverboard-firmware-hack/issues/33 <----------
Каждый человек индивидум оставьте его в этом состоянии.

lehaxxx84

Здравствуйте. Я правильно понимаю, с PWM RC приёмником не получится управление вперёд назад право лево?