Контроллер аккумулятора
Представляю вашему вниманию начатый мною сегодня проектик под названием "Контроллер аккумулятора".
Изначально он должен был мерять сколько именно ватт*час в данный момент в акб, сколько пришло, сколько ушло, и сколько времени в таком режиме останется.
Сейчас я представлю то как я это сегодня покинул. В следующей версии я вероятно выкину экран как таковой. Оставлю консольный вывод. Экран лучше пусть будет на чем попроще и удалённо.
Хочется сделать несколько управляемых (вкл/выкл) выходов. Пока авр, как механика будет отработана я перейду на stm32 и речь пойдет о микропотреблении.
Пока будет предполагаться SLA акб, также походу дела родилась функция UPS. Ток аккумулятора читается индуктивным холл-датчиком. Соответственно + или - и мы понимаем что идет заряд или разряд.
Питание МК через 78l05, lm317 играют роль ограничителя тока зарядки и тока нагрузки. При достаточном питании будет включаться байпасс, а ток зарядки и напряжение будут ограничиваться ШИМ-ом.
Плюс защита по току. Калиброва емкости, тренировка. Дип переключателями возможно сделаю тип акб. Короче планов громадьё.
ЗЫ Былокод прилагается
Изначально он должен был мерять сколько именно ватт*час в данный момент в акб, сколько пришло, сколько ушло, и сколько времени в таком режиме останется.
Сейчас я представлю то как я это сегодня покинул. В следующей версии я вероятно выкину экран как таковой. Оставлю консольный вывод. Экран лучше пусть будет на чем попроще и удалённо.
Хочется сделать несколько управляемых (вкл/выкл) выходов. Пока авр, как механика будет отработана я перейду на stm32 и речь пойдет о микропотреблении.
Пока будет предполагаться SLA акб, также походу дела родилась функция UPS. Ток аккумулятора читается индуктивным холл-датчиком. Соответственно + или - и мы понимаем что идет заряд или разряд.
Питание МК через 78l05, lm317 играют роль ограничителя тока зарядки и тока нагрузки. При достаточном питании будет включаться байпасс, а ток зарядки и напряжение будут ограничиваться ШИМ-ом.
Плюс защита по току. Калиброва емкости, тренировка. Дип переключателями возможно сделаю тип акб. Короче планов громадьё.
ЗЫ Былокод прилагается
- iEugene0x7CA
- Адепт
- Сообщения: 1571
- Откуда: Киев
Что-то прямо ну все на STM32 переходят, даже я себе платку Дискавери заказал, хотя недавно еще был суперфанатом AVR.
Ну вот смотри, хотя бы одна причина - в стм32 нативно 32 бита и привычны операции с плавающей запятой.
А у меня флоат вполне используется. Может можно и без него, но смысл дополнительно извращаться?
Ну и всё остальное логично - цена фарш память разрядность быстродействие.
Но я пока еще не осваивал их, и пишу для авр, пока так, будет что пересаживать - пересажу.
Про платку и супер фаната - аналогично. Платка правда давно лежит.
А у меня флоат вполне используется. Может можно и без него, но смысл дополнительно извращаться?
Ну и всё остальное логично - цена фарш память разрядность быстродействие.
Но я пока еще не осваивал их, и пишу для авр, пока так, будет что пересаживать - пересажу.
Про платку и супер фаната - аналогично. Платка правда давно лежит.
- iEugene0x7CA
- Адепт
- Сообщения: 1571
- Откуда: Киев
Да, у меня тоже была лажа с плавающими, что забавно, некоторые люди в принципе уверены, что на AVR считать double нельзя, это расово-неверно, из-за чего к примеру в крякнутом Codevision 2.05 никто не разлочил доступную в платной версии работу с double, а если спросить где-нить на форуме, как посчитать double на 8-битном МК, то тебя засмеют!
Двойной точности с плавающей запятой? На этом? Да вы, сударь, видимо головой повредились!
Хотя, как показывает практика, double считается без проблем, только вот из-за ненативности операции и 8-битности АЛУ считается она порядком 20-30 мс, что дохрена, но ведь считается же! А значение на экране чаще двух раз в секунду обновлять и не надо.
Так что я решил STM32 опробовать скорее из любопытства, чем из-за конкретно тесности и тормознутости 8-битных МК, да и вообще хотелось бы хоть что-то кроме AVR попробовать, и если мне понравится, то цена STM'ок очень даже привлекает.
P.S.
Понимаю, что свое сделать всегда прикольней, но вот если нужен реально хороший зарядник, то я бы вот эту штуку собрал, документы и прошивка уже давно витают в инете:
http://www.youtube.com/watch?v=3LfU4mjgpyM
Ну, или купил, эта штука по моему баксов 20 стоит.
Двойной точности с плавающей запятой? На этом? Да вы, сударь, видимо головой повредились!
Хотя, как показывает практика, double считается без проблем, только вот из-за ненативности операции и 8-битности АЛУ считается она порядком 20-30 мс, что дохрена, но ведь считается же! А значение на экране чаще двух раз в секунду обновлять и не надо.
Так что я решил STM32 опробовать скорее из любопытства, чем из-за конкретно тесности и тормознутости 8-битных МК, да и вообще хотелось бы хоть что-то кроме AVR попробовать, и если мне понравится, то цена STM'ок очень даже привлекает.
P.S.
Понимаю, что свое сделать всегда прикольней, но вот если нужен реально хороший зарядник, то я бы вот эту штуку собрал, документы и прошивка уже давно витают в инете:
http://www.youtube.com/watch?v=3LfU4mjgpyM
Ну, или купил, эта штука по моему баксов 20 стоит.
Я себе такой взял: http://www.aliexpress.com/item/Free-shi ... 14451.html
Сорь за оффтоп
Сорь за оффтоп
Ни один ни второй не соответствуют задаче. Да заряжает, да меряет, но не управляет разрядкой в нагрузку, ибо мой носит характер бесперебойника. А терминальный вывод нужен чтобы умный потребитель знал сколько ему еще осталось и что можно погасить.
Видимо я прикручу 74hc595 с полевиками чтобы рулить 8ю каналами. Воткнуть предполагается в моё жалкое подобие NAS/router на базе mr3020.
Простаивает допустим девайс, отключаем жесткий диск, ну или еще чтонибудь. Я думаю понятно в общих принципах.
Достаточно четко изложить мысль не могу, формируется походу =)
На данный момент столкнулся с проблемой - ключи на схеме будут полевые, а в них есть обратный диод, т.е. при зарядке и включенном байпасе будет утечка в нагрузку.
Впринципе можно приляпать шоттки в зарядную часть. Или я зря напрягаюсь?
Видимо я прикручу 74hc595 с полевиками чтобы рулить 8ю каналами. Воткнуть предполагается в моё жалкое подобие NAS/router на базе mr3020.
Простаивает допустим девайс, отключаем жесткий диск, ну или еще чтонибудь. Я думаю понятно в общих принципах.
Достаточно четко изложить мысль не могу, формируется походу =)
На данный момент столкнулся с проблемой - ключи на схеме будут полевые, а в них есть обратный диод, т.е. при зарядке и включенном байпасе будет утечка в нагрузку.
Впринципе можно приляпать шоттки в зарядную часть. Или я зря напрягаюсь?
Простаивает допустим девайс, отключаем жесткий диск
Жесткий диск питанием отключать нельзя. Сначала нужно файловую систему сбросить на диск (она очень сильно кешируется и почти все хранится в оперативке), потом припарковать головки и только после этого рубить питание.
Или я зря напрягаюсь?
Если зарядка потянет нагрузку, то зря. Аккумулятор зарядится, зарядка перейдет в CV режим и будет питать себе нагрузку.
Я в курсе про жесткий диск. Разве что не знаю как принудительно парковать после отмонтирования.
Касаемо зарядки - ведь какраз контроллер знает что есть откуда кушать и может включить все нагрузки, ток будет большой, а аккумулятору может поплохеть.
Хотя если стабилизировать ток через аккумулятор...
Ладно, попробую пока причесать до более реального соответствия.
Касаемо зарядки - ведь какраз контроллер знает что есть откуда кушать и может включить все нагрузки, ток будет большой, а аккумулятору может поплохеть.
Хотя если стабилизировать ток через аккумулятор...
Ладно, попробую пока причесать до более реального соответствия.
Встречаем версию 1.1
Работает логика зарядки и байпаса. Уже может работать в железе (после реализации ключей).
Надо допилить ваттчасметр и придумать ограничение тока зарядки. Ну и еще управление нагрузками...
ЗЫ Сам контроллер питается через кренку от самого аккумулятора, подразумевается что АКБ будет больше 6В т.к. например опорное используется 5В.
Если в протеусе убрать батарейку и подключить на АКБ, то будет ахинея, чего в реальности не будет. Так что на батарейку не смотрим.
Работает логика зарядки и байпаса. Уже может работать в железе (после реализации ключей).
Надо допилить ваттчасметр и придумать ограничение тока зарядки. Ну и еще управление нагрузками...
ЗЫ Сам контроллер питается через кренку от самого аккумулятора, подразумевается что АКБ будет больше 6В т.к. например опорное используется 5В.
Если в протеусе убрать батарейку и подключить на АКБ, то будет ахинея, чего в реальности не будет. Так что на батарейку не смотрим.
Предлагаю топистартеру освоить меркуриал и битбакет или гит и гитхаб, и тогда в исходнии, возможно, даже кто-то посмотрит
Ну, в принципе идея хорошая, просто не сильно геморроиться хотелось по остальным поводам и заниматься сутью, но раз есть спрос, то займемся предложением.
BSVi, а ты как ведешь документацию по симпл* проектам и вообще? =)
BSVi, а ты как ведешь документацию по симпл* проектам и вообще? =)
Qic, исходинки на битбакете, документация, позорненько, в текстовом файлике, подсчет цен, поставщиков и клинтов - в гугл доксах.
BSVi, я попробовал меркурикал с битбакетом, не понравилось (может я еще "не дорос"), я лучше по-старинке буду.
Qic, хозяин-барин Пока один разрабатываешь, просто нумеруя версии еще можно жить.
Интересно.
У меня была попытка сделать что то похожее, но то скорее зарядное устройство
на АВР ке сделал.
У меня была попытка сделать что то похожее, но то скорее зарядное устройство
на АВР ке сделал.
Последний раз редактировалось andrey 13 ноя 2013, 13:46, всего редактировалось 1 раз.
Ну то контроллер, а я хочу больше знать состояние аккумулятора, сколько осталось, сколько ему осталось,.
Пришел к выводу что надо переходить сразу в железо и делать функции по нарастающей - ватт*часы, оставшееся время работы/заряда, отключение нагрузки (опционально) и в последнюю очередь функция бесперебойника.
Пока дело встало за тем чтобы раздобыть индуктивный датчик тока.
Пришел к выводу что надо переходить сразу в железо и делать функции по нарастающей - ватт*часы, оставшееся время работы/заряда, отключение нагрузки (опционально) и в последнюю очередь функция бесперебойника.
Пока дело встало за тем чтобы раздобыть индуктивный датчик тока.
Вообще, определение заряда аккумулятора - это сложная тема. Я ей немного занимался, и могу сказать что без адской математики, кучи часов эксперементов, хитрого железа (хотябы, счетчика заряда), точно определить состояние заряда не так и просто. Возможно, стоит поискать готовые микросхемы в которых есть модели аккумуляторов и которые это делают, а не городить свое.
Но погоди, а мы разве не можем сказать что энный акб после нескольких циклов (температуру берем постоянной) содержит энное количество ватт*часов?
Для того, чтобы сказать состояние заряда нужно знать сколько в аккумулятор втекло кулон и сколько вытекло. Это можно сделать в тупую счетчиком заряда, но это байда, которая всегда должна быть подключена к аккумулятору.
Вторая возможность построить полную мат.модель аккумулятора и по известным данным пытаться из нее что-то вытащить. У больших компаний есть такие модели, которыми они не спешат делиться - ImpedanceTrack у TI и ModelGauge у maxim (гугляться).
Вторая возможность построить полную мат.модель аккумулятора и по известным данным пытаться из нее что-то вытащить. У больших компаний есть такие модели, которыми они не спешат делиться - ImpedanceTrack у TI и ModelGauge у maxim (гугляться).
У нас есть аккумулятор например свинцовый, теоретически напряжение предельного разряда у нас 10.8 В,
есть нагрузка например на 1А. подключаем нагрузку и считаем время до 10.8В в результате получаем
АмперЧасы, и так же теоретически зарядив аккум до 14.4В , мы приблзительно будем знать в следующий раз что действительно при токе 1А он
разрядится за N часов. Как вариант.
есть нагрузка например на 1А. подключаем нагрузку и считаем время до 10.8В в результате получаем
АмперЧасы, и так же теоретически зарядив аккум до 14.4В , мы приблзительно будем знать в следующий раз что действительно при токе 1А он
разрядится за N часов. Как вариант.
Отличный способ, но не учитывает температуры, того, что реальная нагрузка не будет постоянно потреблять 1А, того что аккум стареет и емкость его зависит от разрядного тока. Это только краткий список. В реальности есть еще переходные процессы при изменении нагрузки притом, они еще и нелинейны. Есть еще куча эффектов, про которые я забыл. Вообщем, точное определение вполне на докторскую тянет.
Попробуйте подключить к аккумулятору нагрузку, порязряжать его пол часика, а потом отключить и позаписывайте выходное напряжение каждую минуту. Окажется, что напряжение возрастает после отключения нагрузки. Это, к примеру, переходной процесс.
Попробуйте подключить к аккумулятору нагрузку, порязряжать его пол часика, а потом отключить и позаписывайте выходное напряжение каждую минуту. Окажется, что напряжение возрастает после отключения нагрузки. Это, к примеру, переходной процесс.
А десятые доли А*ч это "точно"? Или надо оценивать в процентах от номинальной емкости акб?
Тогда упростим задачу и будем считать примерное время работы и запоминать графики заряда разряда, чтобы потом из ипромки считать и проанализировать, при необходимости.
Тогда я пока заморочусь сбором данных о работе акб, напряжение, ток, температура.
Я вообще планировал что контроллер будет подключен к акб постоянно. Взять специально мк с микропотреблением, циклами по прерыванию анализировать.
Байду планируется вешать начиная с гдето 20 Вт*ч. Хочу взять пачку LiFePO4 , собрать батарею и следить за её жизнью.
Про возрастание напряжения вкурсе.
Впрочем, я в своем репертуаре, думал простой вопрос, а снова копнул в области докторских высеров и промышленных тайн
Это уже вошло в традицию.
Тогда упростим задачу и будем считать примерное время работы и запоминать графики заряда разряда, чтобы потом из ипромки считать и проанализировать, при необходимости.
Тогда я пока заморочусь сбором данных о работе акб, напряжение, ток, температура.
Я вообще планировал что контроллер будет подключен к акб постоянно. Взять специально мк с микропотреблением, циклами по прерыванию анализировать.
Байду планируется вешать начиная с гдето 20 Вт*ч. Хочу взять пачку LiFePO4 , собрать батарею и следить за её жизнью.
Про возрастание напряжения вкурсе.
Впрочем, я в своем репертуаре, думал простой вопрос, а снова копнул в области докторских высеров и промышленных тайн
Это уже вошло в традицию.
Или надо оценивать в процентах от номинальной емкости акб?
А процентах, конечно. 1% - это очень точно, точнее сейчас просто не бывает. Если у вас аккумулятор 200А*ч, то 2А*ч - это нынешний потолок погрешности.
Тогда упростим задачу и будем считать примерное время работы и запоминать графики заряда разряда, чтобы потом из ипромки считать и проанализировать, при необходимости.
При изменении температуры напряжения изменяются очень значительно. Это было первое что я сделал и получил полную фигню с погрешностью в 50%
Я вообще планировал что контроллер будет подключен к акб постоянно.
Тогда лучший выход - счетчик заряда (гуглить Coulomb Counter).
"Отличный способ, но не учитывает температуры, того, что реальная нагрузка не будет постоянно потреблять 1А,"
А на что тогда датчик тока? Хотя там дейсвтивиельно много нюансов, но с какойто долей точности
есть возможность знать что аккум хороший или совсем плохой:)
А на что тогда датчик тока? Хотя там дейсвтивиельно много нюансов, но с какойто долей точности
есть возможность знать что аккум хороший или совсем плохой:)
А на что тогда датчик тока?
А чем он поможет?
с какойто долей точности есть возможность знать что аккум хороший или совсем плохой
Подозреваю, автор имел ввиду не индикатор - "аккумулятор более полон чем пуст/аккумулятор более пуст чем полон". Подозреваю, речь шла о индикации более-менее точного уровня заряда.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 25 гостей