Свежие обсуждения
Микроконтроллеры

AVR начинающим - вопросы и ответы

1 13 68

Подскажите как программно реализовать алгоритм стабилизации тока?
У меня БП на atmega8. Напряжение подаю через ШИМ. Хочу сделать режим стабилизации, но что-то не получается

 

Простейший алгоритм:
Если ток больше заданного, то уменьшить ШИМ,
Если ток меньше заданного, то увеличить ШИМ.

 

Так вот именно. Если я так делаю допустим ток меньше заданного
Делаю OCR2++
А у меня ток подскакивает сразу на несколько ампер.
То есть он не 1 прибавляет, а непонятно сколько.

 

А переход через границу байта контролируете? 255++ будет равно нулю, 0-- будет равно 255

 

Нет это не делаю. Честно говоря не могу сообразить как это по простому сделать

 

Два if в нужных местах:

if (OCR2 != 255) OCR2++;
и
if (OCR2 != 0) OCR2--;

Это по-простому или по-сложному, но делать обязательно надо.

 

Хорошо, как бороться с тем если, допустим ток<заданного, прибавляем OCR2++;
и ток становиться>заданного т.е. вечная настройка OCR2
Нужно немного загрубить

 

У меня ток гуляет теперь :

//Режим стабилизации по току если произведена установка тока стабилизации
if (ZNACH_STAB!=0){
//Если измеренное>установленного
if (Vdec>ZNACH_STAB) {
if (OCR2!=0) {
OCR2--; };};
if (VdecZNACH_STAB) {
if (OCR2!=255) {
OCR2++;}; };
};

 

Он и будет гулять. Дело в том, что независимо от того, как - программно, или аппаратно, - реализована обратная связь, есть определенные правила расчета цепи обратной связи. У Вас она получилась почти в чистом виде пропорциональной, поскольку быстродействие процессора очень велико, а надо бы пропорционально-интегральную. Гуляющий ток - это "самовозбуждение", хотя и цифровое. Для реализации интегральной составляющей в программу нужно вводить задержку. Как ее расчитать - подсказать не могу, я не дока в расчете цепей ОС для источников питания. Думаю, будет разумно, если Вы с таким вопросом стукнетесь в ветку "Источники питания". Когда определите параметры цепи ОС, думаю, стоит попробовать ввести в программу задержку, равную или большую постоянной времени цепи ОС.

 

Спасибо большое за помощь
Будем пробовать