Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Измерить группу из 16 АКБ 12в на STM32

Вт фев 05, 2019 09:25:24

Всем привет! Прошу совета и критики по схеме, так как я чайник :-)
Есть ИБП с группой 16 свинцово-кислотных АКБ по 12В с нулём посередине. Проблема в разбалансе АКБ так как балансиров не предусмотрено.
Хочется повесить на каждый АКБ балансир и измерять напряжение каждой АКБ с помощью STM32, чтоб видеть графики их заряда-разряда и своевременно менять "слабое звено".
Готовых устройств за разумные деньги не нашел, вот и решил колхозить.
Для балансира накидал простую схему с нагрузочным резистором чз полевик IRLML5203TR и TL431. Под рукой были керамические резисторы на 20 Ом 15W, так что ток балансировки вышел 0,7А - вроде достаточно.

А вот с измерением не могу определиться. Измерять весь диапазон в 110 и более вольт - 12 бит точности маловато. Нужно мерить разницу, и на ум приходит ОУ по вычитающей схеме.
Решил использовать 2 АЦП отдельно для положительного и отрицательного плеча. Для измерения напряжений с 16 балансиров тянем шлейф на плату, далее делитель, потом мультиплексоры на 4052 которые коммутируют пары с соседних АКБ, далее ОУ на дешевом LM324. Мультиплексорами будем управлять с STM32 и им же измерять. Накидал схему в Proteus - вроде работает. Смотрите во вложении картинку и сам проект.
Смущают моменты:
- нужно ли ещё какую-то защиту повесить? Или достаточно диоды воткнуть по входу АЦП чтоб в 0-3.3в ограничить?
- когда инвертор ИБП работает от АКБ, простым мультиметром напряжение не померять - цифры скачут. Приборов серьёзнее нет, и что там творится в цепи мне не очень понятно :-( Но подозреваю что там "ад и израиль" из-за мощной импульсной нагрузки с током в 10-15А. Будут ли эти всплески влиять на измерение по такой схеме? Плюсом шлейф на плату порядка 1,5 метра рядом с силовым проводом ПВ-3 по которому эти 10-15А скачут... Воткнул наобум конденсаторы перед ОУ, нужен ли дроссель (как его посчитать?) или всё это лишнее?
- Может я что-то не учёл и при реализации в "железе" будет "бабах"? :shock:

Надеюсь на советы бывалых :-)

PS: перенесите в нужный раздел, я так и не определился к какому больше подходит :-(
И Может кто-то знает доступное готовое устройство с балансиром и показометром на 16 АКБ не дороже 5тр?
Вложения
Схема в Proteus.zip
Схема для Proteus v8
(25.5 KiB) Скачиваний: 203
Схема.pdf
Схема картинкой. В симуляции выбрано измерение третьих АКБ. На вольтметрах расчетное значение для 9В и 15В
(227.86 KiB) Скачиваний: 235

Re: Измерить группу из 16 АКБ 12в на STM32

Пн фев 18, 2019 08:33:31

А вот с измерением не могу определиться. Измерять весь диапазон в 110 и более вольт - 12 бит точности маловато.

Так если мало - значит надо взять больше. Разве не так? 24 бит надеюсь хватит? И можно выкинуть всю эту мудрёную схему, обойдясь лишь набором резисторов.

Будут ли эти всплески влиять на измерение по такой схеме?

Главное - чтобы АЦП умел быстро защёлкнуть аналоговое значение на входе. А дальше - программное усреднение из нескольких замеров. Конденсаторы - лишнее.

Re: Измерить группу из 16 АКБ 12в на STM32

Вт фев 19, 2019 07:26:48

Так если мало - значит надо взять больше. Разве не так? 24 бит надеюсь хватит? И можно выкинуть всю эту мудрёную схему, обойдясь лишь набором резисторов.

Действительно, есть же недорогие MCP3421. :facepalm: 18 бит уже нормально.
Но тем не менее это не сильно помогает - всё равно нужно как-то коммутировать на АЦП 16 точек измерения, и желательно в дифференциальном режиме а не просто вычитанием, что бы не накапливать ошибку измерения.
В общем, упрощения не получается. Только если отдельный АЦП на каждый аккумулятор и гальванически развязанную шину делать...

Re: Измерить группу из 16 АКБ 12в на STM32

Вт фев 19, 2019 07:55:49

Посчитайте какой точности нужны резисторы для обеспечения требуемой точности измерения напряжений АКБ.

Re: Измерить группу из 16 АКБ 12в на STM32

Вт фев 19, 2019 08:15:08

Mr.Aloof, Не знаю насколько корректно составлены модели в протезе (я им не пользуюсь), но первое, на что обратил внимание - это то, что вы пытаетесь коммутировать входные напряжения, которые в абсолютном значении намного выше напряжения питания 4052.
Это ошибка. Не будет это работать.
Mr.Aloof писал(а):Только если отдельный АЦП на каждый аккумулятор и гальванически развязанную шину делать...
Как вариант - да.

Re: Измерить группу из 16 АКБ 12в на STM32

Вт фев 19, 2019 08:32:36

Посчитайте какой точности нужны резисторы для обеспечения требуемой точности измерения напряжений АКБ.

Если на делителях - то не сильно важно, учтется программной калибровкой. А вот на ОУ да, есть сомнения. Добавлю подстроечный.
Albert_V писал(а):Mr.Aloof, Не знаю насколько корректно составлены модели в протезе (я им не пользуюсь), но первое, на что обратил внимание - это то, что вы пытаетесь коммутировать входные напряжения, которые в абсолютном значении намного выше напряжения питания 4052.
Это ошибка. Не будет это работать.
Mr.Aloof писал(а):Только если отдельный АЦП на каждый аккумулятор и гальванически развязанную шину делать...
Как вариант - да.

Для cd4052 диапазон до 20в. Не на много выше, но да, нужно подкорректировать делители. К тому же с разводкой как то не очень получается. Буду думать, но кардинально другой схемы не приходит на ум.
Ставить 16 АЦП не хочу - как то совсем не рационально.

Re: Измерить группу из 16 АКБ 12в на STM32

Вт фев 19, 2019 08:43:36

Mr.Aloof писал(а):есть же недорогие MCP3421
Не намного дороже, есть AD7799.

Re: Измерить группу из 16 АКБ 12в на STM32

Вт фев 19, 2019 10:09:36

Mr.Aloof писал(а):есть же недорогие MCP3421
Не намного дороже, есть AD7799.

Минимум в 2 раза дороже. И всё-равно коммутировать. Тогда уж поискать больше каналов. Есть 8-ми канальные, но диф.входы у них парные. то есть можно измерить диф. между 0-1 и 2-3, но не между 1-2 :(
Если измерять диференциально, то есть напряжение отдельно каждой АКБ, то достаточно и 10 бит. Получается вопрос сводится к "схема 16-ти канального диференциального мультиплексора". И выбор - либо самому этот мультиплексор собирать и использовать встроенный в МК (дешевле), либо использовать готовые многоканальные АЦП (проще, и думаю качественней) :dont_know:

Диференциальное измерение думаю критично - так как если меряем цепочку АКБ, то пока измеряли 1,2...8 - на первых уже напряжение изменилось и 8-й будет измерен некорректно. С другой стороны, изменения не настолько динамичны, и если цикл измерения уложить в 0,1с и использовать усреднение в 1с, то получим достаточно правдивые цифры и в одиночном (псевдодиф.) режиме... Главное сгладить скачки от работы инвертора.

PS: Господа, а многоканальные АЦП в псевдодифф. режиме сразу все каналы в УВХ защёлкивают? Или по одному? Смотрю на AD7708 - может разориться на 2 таких и не париться?
PS2: Про УВХ всё понял :) на блок-схеме ж нарисовано что буфер после мультиплексора :facepalm:

Re: Измерить группу из 16 АКБ 12в на STM32

Сб мар 02, 2019 17:12:09

В общем, это я зря морочился, так как источник измерений у меня достаточно статический по сравнению со скоростью МК.
Оверсемплинг до 16 бит и дальнейшее усреднение показало вполне достаточную точность.
Так что конечный вариант - с АКБ через делители на CD4051, с него на буфер из LM324 в режиме повторителя, далее ещё одно масштабирование до вписания в 3.3В (в отрицательном плече инвертирующий ОУ, в положительном делитель с повторителем, чтоб все 4 ОУ задействовать).
Измерение на каждый АКБ: переключаем канал мультиплексора, делаем 16 замеров, складываем и сдвигаем на 4 бита. Получаем 16 бит. Затем накопленный массив усредняем, вычитанием вычисляем напряжение на каждом АКБ, складываем в буфер.

PS: Решил конечное изделие делать не на STM32, а на ESP32 - чтоб сливать данные по вай-фай. Там правда один АЦП, но на 160 МГц его вполне хватит.
Ответить