Стабилизатор тока на микроконтроллере
Стабилизатор тока на микроконтроллере
Всем привет!
Хочу сделать "умную" зарядку на меге32 на 4 аккума АА. Аккумы будут заряжаться раздельно.
Чтобы не ставить 4 отдельные микрухи импульсных стабилизаторов тока, хочу эту задачу возложить на ШИМ микроконтроллера (сделать 4 канала ШИМ с ОС через 4 канала АЦП)
Насколько это реально? Ведь контур стабилизации и ОС будут программные. Будет ли такой стабилизатор "успевать" реагировать на внешние воздействия (скажем, вытащил аккум, или случайно замкнул контакты гнезда для элемента)?
Вообще делают на МК стабилизаторы тока? Я так понял, ШИМ в них предназначен для инерционных систем автоматического регулирования, например, управление двигателем, стабилизация температуры, а вот можно ли ток стабилизировать...
Хочу сделать "умную" зарядку на меге32 на 4 аккума АА. Аккумы будут заряжаться раздельно.
Чтобы не ставить 4 отдельные микрухи импульсных стабилизаторов тока, хочу эту задачу возложить на ШИМ микроконтроллера (сделать 4 канала ШИМ с ОС через 4 канала АЦП)
Насколько это реально? Ведь контур стабилизации и ОС будут программные. Будет ли такой стабилизатор "успевать" реагировать на внешние воздействия (скажем, вытащил аккум, или случайно замкнул контакты гнезда для элемента)?
Вообще делают на МК стабилизаторы тока? Я так понял, ШИМ в них предназначен для инерционных систем автоматического регулирования, например, управление двигателем, стабилизация температуры, а вот можно ли ток стабилизировать...
- Реклама
Re: Стабилизатор тока на микроконтроллере
Такой стабилизатор будет вполне нормально работать. Основная проблема в таком преобразователе - малая скорость АЦП и в результате значительное время отклика схемы, так что для питания электроники он не годится. А вот для нетребовательной нагрузки типа аккумуляторов он вполне подходит.
У меня на микроконтроллере(ATTiny26) сделан повышающий преобразователь для светодиода и работает он вполне нормально.
А вот короткое замыкание вполне может повредить преобразователь - в непрерывном режиме преобразователя(который в таких схемах более эффективен с точки зрения потерь) ток короткого замыкания ограничен только сопротивлениями транзистора и дросселя и если не предпринять меры для отключения преобразователя после первого же чтения тока(который будет значительно превышен), то он вполне может сгореть - стабилизация тока может и не успеть сработать. А лучше вообще не подавать напряжение пока аккумулятор не вставлен.
Кстати, если сделать синхронное выпрямление в преобразователе, то можно будет при необходимости той же схемой предварительно разряжать аккумулятор.
У меня на микроконтроллере(ATTiny26) сделан повышающий преобразователь для светодиода и работает он вполне нормально.
Если преобразователь - понижающий, то при вытаскивании аккумулятора напряжение на выходном конденсаторе станет равно входному, так что ничего страшного не произойдёт. А ёмкость конденсатора будет явно не достаточно, чтобы повредить вставленный после этого аккумулятор. Хотя такую ситуацию желательно отслеживать и при вытаскивании аккумулятора отключать преобразователь, а включать только после того как аккумулятор вставлен.aam писал(а):Будет ли такой стабилизатор "успевать" реагировать на внешние воздействия (скажем, вытащил аккум, или случайно замкнул контакты гнезда для элемента)?
А вот короткое замыкание вполне может повредить преобразователь - в непрерывном режиме преобразователя(который в таких схемах более эффективен с точки зрения потерь) ток короткого замыкания ограничен только сопротивлениями транзистора и дросселя и если не предпринять меры для отключения преобразователя после первого же чтения тока(который будет значительно превышен), то он вполне может сгореть - стабилизация тока может и не успеть сработать. А лучше вообще не подавать напряжение пока аккумулятор не вставлен.
Кстати, если сделать синхронное выпрямление в преобразователе, то можно будет при необходимости той же схемой предварительно разряжать аккумулятор.
Re: Стабилизатор тока на микроконтроллере
Для сильно инерционной нагрузки, т.е. для аккумулятора, контроллер самое то.
Непонятно, что после ШИМа делать. Регулировать скважностью, но при этом "долбить" полным напряжением источника аккумулятор? Теоретически, это не опасно. А вот практически - это вопрос. Преобразователь ШИМ-напряжение, считаю, нужен. Насколько я понял, Murav предложил ШИМ дросселем сглаживать через транзистор.
От проблемы с КЗ можно поставит простой ограничитель по току на 2-ух транзисторах, но схема обвязки при этом большая получается.
Непонятно, что после ШИМа делать. Регулировать скважностью, но при этом "долбить" полным напряжением источника аккумулятор? Теоретически, это не опасно. А вот практически - это вопрос. Преобразователь ШИМ-напряжение, считаю, нужен. Насколько я понял, Murav предложил ШИМ дросселем сглаживать через транзистор.
От проблемы с КЗ можно поставит простой ограничитель по току на 2-ух транзисторах, но схема обвязки при этом большая получается.
Re: Стабилизатор тока на микроконтроллере
Почему же долбить полным напряжением??? Я хочу сделать по классической схеме step-down (понижающего) конвертора: ключ - диод Шоттки на землю - дроссель - электролит на землю - все как в обычном стабилизаторе напряжения, только ОС не по напряжению, а по току, т. е. между землей и аккумом резистор, скажем, 1 Ом и с него сигнал на АЦП. Резистор мешать измерению напруги не должен, т. к. при измерении зарядный ток выключен, а ток через АЦП пренебрежимо мал.asteroid7 писал(а):Непонятно, что после ШИМа делать. Регулировать скважностью, но при этом "долбить" полным напряжением источника аккумулятор?
Вот этого и боюсь. Хотя... Тактовая частота, скажем 8 Мгц, а ШИМ 31 кГц (больше не выдет при 8 МГц - ШИМ 8 разрядный). Если я при первом же импульсе ШИМа успею измерить ток, то все норм (частота АЦП значительно больше, минимальная кажись 62 кГц). Но тут еще думать надо...Murav писал(а):А вот короткое замыкание вполне может повредить преобразователь
Вот это уже интереснее... Например при включении в сеть все каналы ШИМ выключены. Мерию напругу на аккумуах - если больше, скажем, 0,2 В, то включаю ШИМ.... Хотя тут тоже проблемы... Для повышения точности определения -dU я хочу ввести смещение 0,8 В (с помощью операционника), тогда у меня будет 1 разряд АЦП =1мВ, но меньше 0,8 В я не смогу померить...Murav писал(а):А лучше вообще не подавать напряжение пока аккумулятор не вставлен.
Алгоритм стабилизации тока думаю сделать так: вычисляю ошибку Iзаданный - Iизмеренный, умножаю ее на "коэффициент усиления" и изменяю на столько ШИМ.
Вопрос такой: на сколько % надо изменять коэффициент заполнения ШИМ при изменении тока на какую-то величину dI?
Этот стабилизатор - система автоматического регулирования. Там ведь есть какая-то динамическая устойчивость и еще всякие параметры... Как все это считать при реализации алгоритма? (ох жалею щас, что ТАУ в институте плохо учил)
Re: Стабилизатор тока на микроконтроллере
Отключать ток для измерения напряжения лучше не надо, иначе его не получится измерять часто и кроме того для управления зарядом важно именно напряжение при протекании тока. Лучше учесть падение напряжения программно и вычесть из напряжения на аккумуляторе.aam писал(а):Резистор мешать измерению напруги не должен, т. к. при измерении зарядный ток выключен, а ток через АЦП пренебрежимо мал.
У AVR(из того что упоминается частота 8МГц, я так понимаю имеется в виду именно эта серия) максимальная частота АЦП всего 15кГц(можно и больше, но с потерей точности), а на 8 МГц ближайшая доступная - 9,6кГц. А мерить нужно 4 напряжения и 4 тока, так что получается 1,2кГц.aam писал(а):(частота АЦП значительно больше, минимальная кажись 62 кГц)
Хотя для защиты от КЗ этого должно хватить - допустимое время срабатывания там будет в районе десятка миллисекунд.
Для -dU точность нужна очень высокая, так что там надо очень сильно уменьшать диапазон. Лучше где-нибудь до 1,4-1,6В.aam писал(а):Для повышения точности определения -dU я хочу ввести смещение 0,8 В (с помощью операционника), тогда у меня будет 1 разряд АЦП =1мВ, но меньше 0,8 В я не смогу померить...
А для контроля напряжения вне этого диапазона если число выводов контроллера достаточно, можно сделать переключение входных диапазонов схемы.
Проще всего эксперементально подобрать такую скорость изменения, при которой преобразователь не будет возбуждаться. Для такой нагрузки как аккумулятор этого вполне хватит.aam писал(а):Вопрос такой: на сколько % надо изменять коэффициент заполнения ШИМ при изменении тока на какую-то величину dI?
Этот стабилизатор - система автоматического регулирования. Там ведь есть какая-то динамическая устойчивость и еще всякие параметры... Как все это считать при реализации алгоритма? (ох жалею щас, что ТАУ в институте плохо учил)
Кроме возбуждения больше никаких проблем нет.
- Реклама
Re: Стабилизатор тока на микроконтроллере
А зачем его мерить часто? Раз в минуту отключаю ток и мерию.Murav писал(а):Отключать ток для измерения напряжения лучше не надо, иначе его не получится измерять часто
Murav писал(а):кроме того для управления зарядом важно именно напряжение при протекании тока
Так я и хочу сделать диапазон 1 В. Минимальное напряжение 0,8 В, максимальное - 1,8 В. Ставлю операционник и подаю на инвертирующий вход 0,8 В. А опорное напряжение АЦП задаю 1 В.Murav писал(а):Лучше где-нибудь до 1,4-1,6В.
Это меняет дело. Че-то я посмотрел не туда походу... Действительно 15 кГц... AVR имеется ввиду ATmega32. Боюсь сгорит при КЗ... Это при частоте АЦП 1 кГц между моментом КЗ и моментом его обнаружения пройдет 31 импульс... Транзистор полететь может... Что-то напрягает меня такая защита...Murav писал(а):У AVR(из того что упоминается частота 8МГц, я так понимаю имеется в виду именно эта серия) максимальная частота АЦП всего 15кГц
Может лучше тогда сделать стабилизаторы на драйверах светодиодов ZXSC400 (они имеют управление яркостью с помощью внешнего ШИМ 120 Гц)? Но они дорогие заразы - 40 руб. + минимум 4 транзистора придется ставить (3 - драйвер и 1- ключ), для того чтобы сделать понижающий конвертор. Или на МС34063, но тогда ток будет фиксированным и я не смогу реализовать предварительный заряд аккумулятора малым током, если напряжение на нем меньше 0,8 В...
Re: Стабилизатор тока на микроконтроллере
Обнаружил еще один неприятный момент: минимальное внешнее опорное напряжение АЦП - 2 В. Если напряжение с аккума я еще могу усилить тем же операционником, на котором будет сделана схема смещения, то ставить еще операционник для тока - это слишком усложнит схему (Еще один операционник будет в компараторе температуры). Ставить слишком большой резистор-датчик тока - будет греться...
Re: Стабилизатор тока на микроконтроллере
Отрицательная дельта вроде возникает именно из-за уменьшения сопротивления току заряда из-за нагрева, а вот на напряжение холостого хода температура никак не влияет. А при малых токах заряда отрицательная дельта вообще не видна.aam писал(а):А это откуда акая информация? Я всегда считал, что надо мерить с выключенным током для определения дельты, причем где-то даже писали, что надо подождать некоторое время после выключения.
Да и все схемы определяющие отрицательную дельту, которые я видел, ток заряда не отключали.
Диапазон 1В будет слишком большим - чтобы получить точность хотя бы +-1мВ нужен диапазон не больше 0,4В. Я предлагал вообще 0,2В - 1,4В = 0, а 1,6В = 1023.aam писал(а):Так я и хочу сделать диапазон 1 В. Минимальное напряжение 0,8 В, максимальное - 1,8 В. Ставлю операционник и подаю на инвертирующий вход 0,8 В.
1-2мс на сгорание схемы вряд ли хватит - транзисторы за это время перегреться не успеют. Так что защита сработать успеет.aam писал(а):Боюсь сгорит при КЗ... Это при частоте АЦП 1 кГц между моментом КЗ и моментом его обнаружения пройдет 31 импульс... Транзистор полететь может... Что-то напрягает меня такая защита...
А лучше вообще обойти эту проблему, отключая преобразователь без аккумулятора.
Лучше взять что-нибудь из новых серий - у них и АЦП на 1В работает и встроенный усилитель имеет характеристики получше.aam писал(а):AVR имеется ввиду ATmega32.
Не забывай так же что число каналов АЦП сильно ограничено, так что скорее всего стоит поставить внешние аналоговые мультиплексоры и по одной схеме усилителя каждого типа на все четыре канала.aam писал(а):Если напряжение с аккума я еще могу усилить тем же операционником, на котором будет сделана схема смещения, то ставить еще операционник для тока - это слишком усложнит схему (Еще один операционник будет в компараторе температуры).
Re: Стабилизатор тока на микроконтроллере
А как тогда разряжать аккумы? Мне же нужно определить, что они разрядились до 1 В. Или тогда нужно изменять напряжение смещения на операционнике (типа когда идет разряд или заряд до 1,4 В, то смещение =0 (как ноль получить?), а когда достигло 1,4 В, на инвертирующий вход операционника подаю +1,4 В), но это усложняет схему, требует еще минимум 4 ножки МК (а их уже не осталось у меги 32), труднореализуемо....Murav писал(а):Я предлагал вообще 0,2В - 1,4В = 0, а 1,6В = 1023.
"В процессе детектирования окончания быстрого заряда необходимо точно измерять напряжение на аккумуляторе. Если измерение проводить под током, то дополнительную погрешность будет вносить сопротивление контактов, которое может быть нестабильным. Поэтому на время измерения зарядный ток желательно отключать. После выключения зарядного тока необходимо сделать паузу 5…10 мс, пока напряжение на аккумуляторе установится. Затем можно производить измерение. Для эффективной фильтрации помех сетевой частоты можно произвести рядMurav писал(а):Отрицательная дельта вроде возникает именно из-за уменьшения сопротивления току заряда из-за нагрева, а вот на напряжение холостого хода температура никак не влияет.
последовательных выборок на интервале 20 мс (один период сетевой частоты) с последующей цифровой фильтрацией."
Статья "Немного о зарядке NiMH и NiCd аккумуляторов" Ридико Леонид Иванович (можно найти в гугле)
Перегреться то не успеют, а кристалл сдохнуть успеет. Известен факт: предохранитель сгорает позже транзисторов, хотя корпус транзистора может остаться холодным.Murav писал(а):транзисторы за это время перегреться не успеют.
Встроенный - если в дифференциальном включении, то лишние ноги занимать, к тому же я читал, что при использовании дифф. включения разрядность составляет 8 или 7 разрядов.Murav писал(а):Лучше взять что-нибудь из новых серий - у них и АЦП на 1В работает и встроенный усилитель имеет характеристики получше.
Кстати LM358 подойдет? Систематическая ошибка не интересует, т. к. мерию дельту, а чего там еще может быть?
у Меги32 их 8 - на 4 канала заведу измерение напряжения на аккуме, а на 4 - датчик тока. Датчик температуры будет компараторный с гистерезисом (на LM358) - превысило 45 градусов - выдает "1" на порт.Murav писал(а):Не забывай так же что число каналов АЦП сильно ограничено
- BarsMonster
- Нашел транзистор. Понюхал.
- Сообщения: 176
- Зарегистрирован: Чт янв 28, 2010 02:55:37
Re: Стабилизатор тока на микроконтроллере
Предлагаю тупо поставить резисторы в 1Ом, даже в случае КЗ на 100мсек транзисторам будет легче 
В любом случае, я в прошивке не стал бы резко менять скважность, а повышал бы плавно в течении 100 мсек например.
При скважности в 5% уже можно понять аккумулятор там или КЗ.
В любом случае, я в прошивке не стал бы резко менять скважность, а повышал бы плавно в течении 100 мсек например.
При скважности в 5% уже можно понять аккумулятор там или КЗ.
Re: Стабилизатор тока на микроконтроллере
Для свинцового АКБ примерно так и делаю:BarsMonster писал(а):В любом случае, я в прошивке не стал бы резко менять скважность, а повышал бы плавно в течении 100 мсек например.
при включении скважность минимальная, после измерения тока и напряжения, если оба параметра ниже предельных - увеличиваем длительность импульса и так пока, либо ток не достигнет 0,1C, либо напряжение не станет 13,8 +- 20мВ/С
При превышении тока или напряжения - длительность импульса соотв. уменьшаем.
Правда такой алгоритм не подойдет для hot-plug.
— Не говорите мне что делать и я не скажу куда Вам идти...
Re: Стабилизатор тока на микроконтроллере
В качестве транзистора сейчас использую LM217.
Управляется просто подачей напряжения на ногу ADJUST, и имеет встроенную защиту по току.
Управляется просто подачей напряжения на ногу ADJUST, и имеет встроенную защиту по току.
— Не говорите мне что делать и я не скажу куда Вам идти...
Re: Стабилизатор тока на микроконтроллере
Резисторы 1 Ом там как раз и будут стоять в качестве датчика тока. Если питание стабилизатора скажем, от 7 В (чтобы на проц через кренку завести можно было, ато можно было бы и меньше), то ток КЗ будет 7 А. Надо выбрать полевики с таким допустимым током. Разогреться за время срабатывания защиты они все равно не успеют, а ток выдержат. К тому же надо учитывать, что в цепи катушка, которая тоже ограничит ток (если конечно не войдет в насыщение). Просто она будет в режиме повышающего преобразователя - там ведь какраз транзистор замыкает ток через катушку. А максимальный ШИМ ограничить, скажем 50%.BarsMonster писал(а):Предлагаю тупо поставить резисторы в 1Ом, даже в случае КЗ на 100мсек транзисторам будет легче
Надо будет заняться помоделировать схемку на компе...
Re: Стабилизатор тока на микроконтроллере
Тогда всё тем более нормально - любой силовой полевик выдерживает такой ток в импульсе длительностью в десятки миллисекунд, так что защита сработать успеет.aam писал(а):Если питание стабилизатора скажем, от 7 В (чтобы на проц через кренку завести можно было, ато можно было бы и меньше), то ток КЗ будет 7 А.
А вообще надо экспериментировать - взять транзистор помощнее и замкнуть выход. А цифровым осциллографом смотреть амплитуду броска.
Катушка ток в таких преобразователях не ограничивает.aam писал(а):Просто она будет в режиме повышающего преобразователя - там ведь какраз транзистор замыкает ток через катушку. А максимальный ШИМ ограничить, скажем 50%.
Re: Стабилизатор тока на микроконтроллере
Да понятно что она не для ограничения тока, но ток через нее не может нарасти мгновенно. При замыкании в нагрузке образуется цепь: +питания-открытый транзистор-катушка-замкнутая нагрузка-датчик тока-земля. Ток через катушку начинает нарастать по линейному закону, как обычно. Но транзистор открыт не бесконечное время - ШИМ то идет не с коэффициентом заполнения 100%, он ограничен, скажем, 50%-ми (подбирается экспериментально). В итоге ток прервется на вполне конечном значении, меньшем тока КЗ, который ограничен резистором-датчиком тока. Будет конечно большой выброс ЭДС самоиндукции на катушке, но ток все равно не вырастет до бесконечности. Тут главное чтобы дроссель в насыщение не вошел.Murav писал(а):Катушка ток в таких преобразователях не ограничивает.
Насчет дросселя... Хочу использовать кольца из распыленного железа с комповых материнок. Или лучше намотать на Ш-образных сердечниках с зазором? Покупать гантельки, когда валяется куча всяких сердечников, неохота, к тому же они не замкнутые, т. е. будет больше помех.
Еще такой вопрос: транзистор лучше полевой ставить? Но там драйвер делать надо еще на 3-х транзисторах... Или для биполярного тоже резисторами не получится ограничиться?
Силовую схему думаю взять отсюда:

Только напряжение будет не 12 В, а 7 В - думаю этого вполне достаточно для нагрузки в 1,5 В.
Еще вопрос: можно ли на АЦП Меги32 подавать напряжение, большее опорного напряжения, но не превышающее напряжение питания?
Re: Стабилизатор тока на микроконтроллере
Можно, но результат измерений будет = 0x3FF на всем диаппазоне Vref<=Vизм<=Vccaam писал(а):можно ли на АЦП Меги32 подавать напряжение, большее опорного напряжения, но не превышающее напряжение питания?
— Не говорите мне что делать и я не скажу куда Вам идти...
Re: Стабилизатор тока на микроконтроллере
Да это не важно, я просто хотел узнать, не сгорит ли чего, т. е. на каком уровне надо ограничивать входное напряжение. Впаяю наверно стабилитрон на 4,7 В или даже на 3,3 В и резистор.
Re: Стабилизатор тока на микроконтроллере
Смоделировал схемку преобразователя в Мультисиме. При КЗ и коэффициенте заполнения 80% ток через резистор-датчик 4 А. Думаю полевеки выдержат.

Зеленый - управляющий сигнал
Желтый - напряжение на стоке полевика
Красный - напряжение на резисторе-датчике тока 1 Ом
Зеленый - управляющий сигнал
Желтый - напряжение на стоке полевика
Красный - напряжение на резисторе-датчике тока 1 Ом
- Вложения
-
- osc.JPG
- (50.35 КБ) 9151 скачивание
Re: Стабилизатор тока на микроконтроллере
Вот нашел микруху: LM2576T-ADJ - понижающий стабилизатор (ADJ - регулируемый).Опорное напряжение у него 1,23 В. Стал искать схему стабилизаторов тока не ней - вот что нашел:

Операционник - LM358.
Есть возможность включения/выключения.
Стал смотреть сколько стоит микруха - нашел за 31 и 22 руб. (если конечно они в наличии будут), а так в осоновном рублей 60. LM358 стоит 4.60 руб.
Если делать стабилизацию тока на МК, то придется сообразить такую силовую часть (в 4 экземплярах):

т. е. 1 полевик, который думаю не меньше 22 руб. стоит и 3 транзистора драйвера.
Плюсы использовать LM2576:
+ быстродействие (стабилизация аппаратная)
+ разгружаю МК
+ не надо разрабатывать алгоритм стабилизации тока в 4-х каналах
Минус:
- теряю возможность регулировать ток, а значит, если аккум разряжен меньше 0,8 В, ему будет очень плохо под полным зарядным током, который включится сразу.
У кого какое мнение по этому поводу? На что лучше - делать стабилизаторы на МК или на этой микрухе?
Операционник - LM358.
Есть возможность включения/выключения.
Стал смотреть сколько стоит микруха - нашел за 31 и 22 руб. (если конечно они в наличии будут), а так в осоновном рублей 60. LM358 стоит 4.60 руб.
Если делать стабилизацию тока на МК, то придется сообразить такую силовую часть (в 4 экземплярах):

т. е. 1 полевик, который думаю не меньше 22 руб. стоит и 3 транзистора драйвера.
Плюсы использовать LM2576:
+ быстродействие (стабилизация аппаратная)
+ разгружаю МК
+ не надо разрабатывать алгоритм стабилизации тока в 4-х каналах
Минус:
- теряю возможность регулировать ток, а значит, если аккум разряжен меньше 0,8 В, ему будет очень плохо под полным зарядным током, который включится сразу.
У кого какое мнение по этому поводу? На что лучше - делать стабилизаторы на МК или на этой микрухе?
Re: Стабилизатор тока на микроконтроллере
Наконец получил устойчивую программную стабилизацию тока (до этого наблюдались колебания, не было сходимости), но пока только в одном канале. Стал проверять реакцию на КЗ... Вот осциллограмма из протеуса:

Датчик тока 0,5 Ом.
Видно, что импульс тока КЗ достигает 11 А (это если работающий на ХХ преобразователь замкнуть) и длится ~2мс. Если преобразователь нагружен и его замкнуть, то импульс всего 5А. Думаю, основная часть этого импулься обусловлена разрядом выходного электролита, а не током через полевой транзистор.
Предыдущий пост остается в силе - что лучше?
Датчик тока 0,5 Ом.
Видно, что импульс тока КЗ достигает 11 А (это если работающий на ХХ преобразователь замкнуть) и длится ~2мс. Если преобразователь нагружен и его замкнуть, то импульс всего 5А. Думаю, основная часть этого импулься обусловлена разрядом выходного электролита, а не током через полевой транзистор.
Предыдущий пост остается в силе - что лучше?
- Вложения
-
- KZ.JPG
- (71.1 КБ) 9358 скачиваний


