Электротранспорт

Пожалуйста, войдите или зарегистрируйтесь.

Расширенный поиск    

Новости:

Страницы: 1Вниз

Автор Тема: Измеритель напряжения 4-х батареек на контроллере. Схема, исходник  (Прочитано 2479 раз)

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

VVK

  • Мастер
  • Местный
  • ******
  • Репутация:
    +58/-1
  • :
    29
    171
  • Сообщений: 830
  • Ростов-на-Дону
  • Балансирую на батарейках
  • Оффлайн Оффлайн
    • ROBOWELL
    • Награды
Выкладываю схему и исходник к ней, которые представляют собой упрощенный вариант моей смарт-БМС ( http://electrotransport.ru/ussr/index.php?topic=21124.0 )

Схема простая, комментировать тут особо нечего. Контроллер питается от всех четырех ячеек через LP2950. Измеряемые напряжения заводятся на АЦП через резистивные делители. В этих цепях резисторы желательно применять 0,1%, иначе нужно будет задавать калибровочные значения в программе (сейчас они равны 0).
Предусмотрено 4-ре выхода на ключи с резисторами разряда (Discharge1...  Discharge4). Сами ключи рисовать не стал, желающие смогут добавить их самостоятельно. Также предусмотрены еще два выхода на внешние устройства, сигналы переразряда и перезаряда. Я их вывел через оптопары, но для уменьшения потребления их можно передать и через гальваноразвязанные преобразователи уровня.


Программа протестирована и полностью работающая, текст закомментирован.
По каждому каналу она производит 256 измерений, затем, в зависимости от полученного результата, задает уровни на портах Discharge1...  Discharge4 и на линиях перезаряд (в программе обозначена Chager_Key), переразряд (LowBat). После выполнения цикла измерения, для уменьшения среднего потребления процессор входит в спящий режим. В спящем режиме все устройство потребляет ~0.7мА, в режиме измерения ~1.6мА. Выход из спящего режима производится по срабатыванию WDT. Длительность спящего режима можно задать предделителем WDTPS. Сейчас цикл измерения длится ~0.4сек, спящий режим ~4сек. Т.е. отношение 1/10.
Таким образом, среднее потребление будет где-то ~0.75мА

Для контроля работы на 14-ю ногу контроллера во время измерительного цикла выводятся импульсы

« Последнее редактирование: 04 Июн 2014 в 17:25 от VVK »

i

  • Администратор
  • Старожил
  • *
  • Репутация:
    +265/-2
  • :
    63
    444
  • Сообщений: 3143
  • Иваново
  • Оффлайн Оффлайн
    • Награды
Русские комментарии в программе забиты знаком вопроса (0x3F). Думаю кодировка слетела еще до упаковки в zip.

VVK

  • Мастер
  • Местный
  • ******
  • Репутация:
    +58/-1
  • :
    29
    171
  • Сообщений: 830
  • Ростов-на-Дону
  • Балансирую на батарейках
  • Оффлайн Оффлайн
    • ROBOWELL
    • Награды
Русские комментарии в программе забиты знаком вопроса (0x3F). Думаю кодировка слетела еще до упаковки в zip.
Переписал комментарии в VC#, исправил вложение.

i

  • Администратор
  • Старожил
  • *
  • Репутация:
    +265/-2
  • :
    63
    444
  • Сообщений: 3143
  • Иваново
  • Оффлайн Оффлайн
    • Награды
Ок, вижу коменты в кодировке Win1251.

VVK

  • Мастер
  • Местный
  • ******
  • Репутация:
    +58/-1
  • :
    29
    171
  • Сообщений: 830
  • Ростов-на-Дону
  • Балансирую на батарейках
  • Оффлайн Оффлайн
    • ROBOWELL
    • Награды
Перенес из другой темы:

Почитал я тут про пики ...
Про них нужно не читать, а уметь их готовить :-)

9 бит реального разрешения - остальное мусор.
Получается что если взять опору 5 вольт (от того же tl431) то можем посчитать реальное разрешение и реальную погрешность схемы.
У меня опора не 5В и не tl431. См. схему. В качестве опоры используется lp2950. У нее погрешность +-0.5%. Но это при изменении тока потребления от нуля до максимума. В данном случае потребляемый ток колеблется в пределах 0... 3 мА. При таком токе погрешность опорного напряжения значительно ниже. При этом его зависимость от температуры также мала, см. даташит, график зависимости от температуры.


У Вас скорее всего делитель на 4 применен...допустим что он откалиброван и резисторы 0.1% тогда.
5/512 = 9,765625 милливольт разрешение реальное АЦП. так как у Вас делитель - то умножаем на 4 = 39,0625 - это максимальная реальная точность измерения АЦП.
Дальше едем. опора если на 431 то  там 2% на 2.3 вольтах...ну пусть умножим на 2 уже получим +-4% стабильность опоры. Это ещё +- 3 милливольта. Тоесть реальная погрешность получится довольно плачевная :) 50 милливольт...это реальный максимум точности...то что есть ещё один сладший разряд и то что можно наусреднять шум - это не показатель...вы ведь для получения напряжения одной ячейки используете разность двух соседних...там эта погрешность суммируется...ну оно конечно не так плачевно в реальности но на больше чем 50 милливольт я бы не рассчитывал по точности. Шум он такой шум...
Усреднение как раз для измерения постоянного напряжения очень хорошо подходит, четыре цикла измерения эквивалентны одному дополнительному биту. Алгоритм усреднения можно рассматривать, как простейший ФНЧ. В данной программе одно измерение производится 256 раз. Можно задать любое число.


Но ведь впринципе этого-то и достаточно? Я когда свою БМС затевал тоже так думал сделать только использовать внешние АЦП на 24 бита...но плюнул...есть же нормальные микросхемы для этого и потом 50 милливольт это не так и страшно.
Точности в +-50 мВ не достаточно. Должно быть хотя бы +-20мВ

clawham

  • Старожил
  • *****
  • Репутация:
    +27/-2
  • :
    51
    326
  • Сообщений: 1284
  • Жемчужина у моря
  • Одесса
  • Оффлайн Оффлайн
    • Награды
Агаа...опора зверская! это даа...у самого пакетик таких есть :)

А по поводу повышения разрядности усреднением....кхм....дык 9 бит это реальное разрешение, 10-тый бит вообще нужно отбрасывать ибо в него уходит нелинейность и температурный дрейф...

А вот чтоб с 9-ти бит до 12 расширить то даа...нужно не менее 24 замеров 9-тибитных НО в сигнал надо внести 1.5 LSB размахом белый шум. генератор белого шума например в армы встроен аппаратный и даже встроена цепочка смешивания аналогового входа и этого шума. Вот разрядность этого шума нужно не менее 16 бит и частота его в 10 раз больше нужна исходного сигнала...ну допустим у нас постоянка и времени вагон. тогда нам надо на операционниках пронормировать сигнал с DAC 16 бит допустим из 0...3 вольта необразовать в 3/512*1,5=9 милливольт! Тогда даа...при дичайшем усреднении мы смогли бы ловить  милливольт. Но на практике я достигал увеличения разрешения максимум на 2 разряда....дальше снова упирание в погрешности опоры, нелинейность ацп, джиттер такта для ацп и проблемы операционников...подмешать сигнал в 9/256=0,03 милливольта довольно нетривиальная задача требующая нереально прецизионных операционников и правильной разводки.

Нет я не говорю что это нереально. Я делал...работало...но не стоит забывать что у нас не постоянка! когда работает мотор то на батарее возникают колебания с учетверенной фазной чатсотой мотора.и никакие кондеры это не сглаживают. Потому и пришел к выводу что проще купить готовый 16битный АЦП! Вкупе с правильным аналоговым фронтендом можно получить жуткие 0,08 милливольт разрешающей способности...но калибровать это все дело замучаешся...Та же BQ77PL900 вносит 1 милливольт погрешности. Ибо внутренняя измеряющая ёмкость сопоставима с ёмкостью входа диференциального выходного операционника...она всегда недопоказывает 0,3...1 милливольт. Радует только то что от номера ячейки желаемой это не зависит и впринципе больше разнится у конкретного экземпляра.

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

П.С. Пики забросил..даж программатор продал...сичас всё больше армы за периферию да msp430 за энергопотребление...ну а для народа - атмеги...их просто прошивать.

У меня тут другая проблема - как сделать микропотребляющий преобразователь для питания процесора чтоб в покое микроамперы жрал...100 вольт вход 3.3 выход...пока ничего лучше импульсника и ЛДО не придумал

Что нас не убило - так ему и надо

inel

  • Начинающий
  • *
  • Репутация:
    +4/-0
  • :
    2
    19
  • Сообщений: 67
  • Россия, Астрахань
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
Цитата
У меня тут другая проблема - как сделать микропотребляющий преобразователь для питания процесора чтоб в покое микроамперы жрал...100 вольт вход 3.3 выход...пока ничего лучше импульсника и ЛДО не придумал
Была мысль на эту тему, но проверить эффективность руки не дошли.
Если потребление небольшое, как вариант, управлять преобразователем.
То-есть при заряде конденсатора до (к примеру) 4В преобразователь отключается. Устройство питается от конденсатора. Далее при спаде до 3.5В преобразователь включается.

i

  • Администратор
  • Старожил
  • *
  • Репутация:
    +265/-2
  • :
    63
    444
  • Сообщений: 3143
  • Иваново
  • Оффлайн Оффлайн
    • Награды
...
У меня тут другая проблема - как сделать микропотребляющий преобразователь для питания процесора чтоб в покое микроамперы жрал...100 вольт вход 3.3 выход...пока ничего лучше импульсника и ЛДО не придумал
Я поставил батарейку 3в, а высоковольтный преобразователь включаю/отключаю по команде. Проц потребляет 1мкА (с работающим RTC), а высокое отключено полностью мосфетом.

Роман Волк

  • Начинающий
  • *
  • Репутация:
    +0/-0
  • :
    2
    0
  • Сообщений: 8
  • Россия, Москва
  • Ездю на батарейках!
  • Оффлайн Оффлайн
    • Награды
Схема простая, комментировать тут особо нечего.
А как реализован в схеме контроль КЗ?

VVK

  • Мастер
  • Местный
  • ******
  • Репутация:
    +58/-1
  • :
    29
    171
  • Сообщений: 830
  • Ростов-на-Дону
  • Балансирую на батарейках
  • Оффлайн Оффлайн
    • ROBOWELL
    • Награды
А как реализован в схеме контроль КЗ?
Никак, т.к. это не готовая БМС, а просто измерительный модуль.

« Последнее редактирование: 02 Июл 2015 в 18:23 от VVK »

Страницы: 1Вверх