Пилю тут один интересный проектик. Это драйвер для питания мощного светодиода в фонаре. Схема во вложении. В основе - ATtiny85, но это не важно, поэтому не стал размещать в форуме AVR.
Суть: это понижающий импульсный источник тока, обратная связь с шунта подаётся на два дифференциальных входа контроллера. Шунт 0.025Ом. На выходе разумеется ШИМ. Задача: удержать заданный ток при изменении напряжения питания с 4.2В до 3В.
Проблемы: 1). Какой лучше применить алгоритм стабилизации? Необходимо добиться плавности регулировки, чтобы не было "рывков". Пробовал обычный линейный. Вот:
где cur_adc - текущее значение АЦП, mode_adc - рассчитанное значение, HYST - гистерезис. Разумеется дёргается. Если подать на вход сглаженное значение скользящим средним - имеем возбуд. Так и предполагалось. Дальше пробовал ПИД - с ним гораздо лучше, но меня терзают смутные сомнения, что он тут избыточен. При том ПИД настоящий, т.е. ресурсоёмкий (float-библиотека тянется). Можно, конечно, адаптировать, но вдруг есть варианты интереснее?
2). При значениях тока меньше 200-100мА напряжение на шунте будет за гранью добра и зла, т.е. ловить его одним встроенным АЦП не имеет смысла. А там и поменьше режимы есть, например 10мА. Как стабилизировать? Одна мысль - измерять напряжение питания, и от него вычислять.
3). Возможно на максимальных режимах придётся отключать встроенный ОУ, иначе АЦП уйдёт в насыщение (ток 3А). Как сделать плавный переход?
4). Изменять схему драйвера нельзя!
Буду рад любым мыслям. Если что, наброски кода тут
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Я в курсе откуда схема и код. Не угодил. Мерцание на нижних режимах, от него надо избавиться в любом случае, и переделать управление. Как показало ковыряние кода - его проще написать с нуля, чем что-то там поменять.
Мерцание... Это ведь из-за неточностей по пути имерение-расчёт-регулирование. Вот оно и дёргается в несколько единиц.
На АЦП усреднение должно быть, если не забыл. Может гистерезис просто ввести в управление.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Делайте обычное пропорциональное регулирование на максимально возможной частоте. Но не понятно вообще зачем это нужно, когда можно применить обычный аналоговый стабилизатор с управлением ШИМ микроконтроллера или цифровым потенциометром.
Обычный аналоговый... а КПД ??? PID регулятор там не особо нужен - ток меняется плавно вслед за разрядом аккумулятора. Смену режима не рассматриваем. Я не гуру по PID регуляторам, но, думаю, из-за "большой дискретности" АЦП при малых токах (то что ploop упоминал) и PID регулятор может давать мерцание.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Ну извините. Аналоговый, с дискретным ШИМ или СИФУ выходом. У всех контроллеров импульсных источников питания аналоговый вход, соответственно, возможно аналоговое регулирование с помощью цифрового потенциометра или DAC.
Ну, так и получается, что или увеличивать "чувствительность" входа, чтобы колебания системы регулирования были незаметны на глаз, или вводить гистерезис.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Ну, так и получается, что или увеличивать "чувствительность" входа, чтобы колебания системы регулирования были незаметны на глаз, или вводить гистерезис.
Нет. Чем больше чувствительность тем выше нежелательная реакция на работу самого источника тока, так и на броски питающего напряжения. Гистерезис вообще не применим, будет ступенчатое регулирование. Необходимо быстродействие регулятора как у аналоговых систем. Нет ничего сложного использовать один из существующих контроллеров импульсных источников питания со стабилизацией тока (хотя, напряжение или ток стабилизировать, одна суть), приделать к нему обычный цифровой потенциометр по обратной связи.
Что-то мне кажется, что по габаритам это будет намного больше, чем существующая схема, которую менять нельзя (по постановке автора темы). Опять же, величина токового шунта с цифровым потенциометром как вяжется? Не чувствительность PID регулятора ("отзывчивость"), а чувствительность АЦП, количество отсчётов АЦП, чтобы броски регуляции были меньшими скачками. И напомню, что в этом конкретном применении, ток меняется плавно, вслед за разрядом аккумулятора.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Опять же, величина токового шунта с цифровым потенциометром как вяжется?
Нормально вяжется, у контроллера по любому будет высокоомный вход. Существующая схема не обязательно самая верная. Надо просто почаще разрабатывать собственные схемы, а не просто копировать.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Так, господа, поясню: существующая схема (как и прошивка) уже давно работает, и показывает замечательный КПД. Её изменять нельзя из-за того, что во-первых проблематично из-за габаритов (круг 15 мм под все детали, это копеечная монета), во-вторых есть много заводских печаток.
Цитата:
Мерцание... Это ведь из-за неточностей по пути имерение-расчёт-регулирование.
Нет. Там ШИМ наложенный на ШИМ, первый на большом токе, на котором делается замер, второй прерывает его, длительность прерываний регулируется в зависимости от тока первого ШИМа.... круто, да?
Цитата:
Делайте обычное пропорциональное регулирование на максимально возможной частоте
Мерцает из-за возбуда. RC-цепочки на шунте вносят элемент задержки.
Цитата:
Но не понятно вообще зачем это нужно, когда можно применить обычный аналоговый стабилизатор с управлением ШИМ микроконтроллера
Это другая схема. Да и там не выйдет: аналоговый стабилизатор долго входит в режим, поэтому ШИМ на частотах выше 300Гц проблематичен, ток плавает. А 300 Гц на мощном фонаре натуральный стробоскоп. Так работают все нонейм-китайцы.
Цитата:
Гистерезис вообще не применим, будет ступенчатое регулирование.
Небольшой (в пределах 2-3 единиц от 8-бит) незаметен на глаз.
Цитата:
Необходимо быстродействие регулятора как у аналоговых систем.
Это в идеале, но необязательно. Напряжение проседает очень медленно. Разрулить по яркости плохие контакты и прочее хотелось бы, но в пределах разумного.
Цитата:
Нет ничего сложного использовать один из существующих контроллеров импульсных источников питания со стабилизацией тока
Есть. Разместите его на площади копеечной монеты вместе с МК управления и дросселем, и запитайте от 2.5В. Вот это и сложность.
По поводу ПИД: я мало с ним экспериментировал (с полчаса всего), но он показал хорошие результаты (лучшие из полученных, но недостаточные в общем)
Мерцает из-за возбуда. RC-цепочки на шунте вносят элемент задержки.
Я вообще занимаюсь стиральными машинами и то же регулирую напряжение*ток=мощность, только коллекторного двигателя вращающего барабан с хаотично переворачивающимся и подпрыгивающем бельем в барабане. Вся эта механическая система с непредсказуемой степенью инертности придает значительные трудности для регулирования. Так вот со своей колокольни мне видится, что ваша проблема сильно раздута, на самом деле все должно быть значительно проще и на уровне проектирования системы у вас большие просчеты.
Мой голос за простой и быстрый ПИД без float, но от МК нужно будет вся его моща. Тогда как в оригинальном драйвере использовалмя гистерезис и хватало 2MHz.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения