Jump to content

    
Sign in to follow this  
sonycman

Схема фильтра ШИМ регулятора напряжения

Recommended Posts

Вот доделываю свой реобас для управления скоростью вращения вентиляторов сист. блока компьютера.

Характеристики должны быть примерно Vin = 12v, Vout = 0 - Vin, I = 1A max., 4 канала.

Для регулировки напряжения остановился на импульсной схеме, так как нет необходимости в установке радиатора для регулирующего элемента -> компактность и отсутствие нагрева.

post-19695-1233418055_thumb.png

 

На макетке собирал подобную схему, но вместо микросхемы драйвера обхожусь пока транзисторами.

Частота ШИМ около 30кГц.

Есть определённый недостаток - заметная нелинейность выходного напряжения относительно скважности входных импульсов ШИМ и зависимость от тока нагрузки.

То есть при скважности 50% имеем на выходе все 10 вольт при токе ~100ма.

С повышением тока нагрузки или индуктивности фильтра нелинейность постепенно сглаживается.

С другой стороны - с повышением индуктивности падает макс. выходное напряжение (при скважности 100%)...

 

В принципе, нелинейность не страшна, её можно скорректировать программно, управляя соотв. образом скважностью.

 

Ещё (по приходу драйвера) думаю попробовать увеличить частоту ШИМ (макс. до 300кГц) - это должно поспособствовать уменьшению индуктивности и ёмкости фильтра.

На транзисторах с моими знаниями не получается добиться нужной скорости переключения...

 

Пока что думаю, какое выбрать сопротивление для R36? И нужно ли оно там вообще?

С одной стороны, не хотелось бы иметь многоамперные импульсные токи по питанию (общее от четырёхпинового молекса компьютера для контроллера управления и для силовой части), с другой - нехорошо сильно заваливать фронты на затворе мосфета, тем более при высокой частоте переключения...

И подойдёт ли для этого резистора типоразмер корпуса 1206?

 

И может стоит установить на выход защитный диод анодом на землю? Всё-таки индуктивная нагрузка, хотя по осциллографу я не наблюдал отрицательных импульсов...

Share this post


Link to post
Share on other sites

Вам нужно ввести локальную обратную связь по напряжению. А внешним сигналом лишь изменять уровень опорного сигнала, относительно которого ШИМ-контроллер (посредством ООС) будет обеспечивает стабилизацию выходного напряжения.

Про нелинейность. Все верно, так и должно быть. Введение локальной ООС по напряжению должно устранить эту нелинейность.

Share this post


Link to post
Share on other sites
То есть при скважности 50% имеем на выходе все 10 вольт при токе ~100ма.

С повышением тока нагрузки или индуктивности фильтра нелинейность постепенно сглаживается.

С другой стороны - с повышением индуктивности падает макс. выходное напряжение (при скважности 100%)...

 

Все правильно. В первом случае имеете разрывный ток дросселя, в результате выходное напряжение стремится к максимуму (нагрузка не может высосать всю энергию, накопленную в дросселе за одно открытое состояние ключа). Увеличивая ток (или индуктивность) Вы переходите в режим непрерывных токов - тут напряжение на выходе становится близко к входному, умноженному на коэффициент заполнения.

 

Если быть еще более точным, то в случае малой нагрузки тоже возможен переход в режим непрерывных токов. Все зависит от соотношения потерь и полезной мощности нагрузки.

 

Покурите теорию DC-DC преобразователей. В частности, buck-топология (понижающий).

Share this post


Link to post
Share on other sites

Еще нужно принять во внимание, что сам вентилятор - крайне нелинейное устройство.

Он стартует при 5-7 вольтах, в зависимости от конструкции и его производительность на каком-то участке растет почти квадратично от подводимого напряжения. В системах пропорциональной продувки полезно вводить ОС от датчика температуры.

Вам следует почитать теорию DC-DC преобразователей. Хотя бы популярную.

Share this post


Link to post
Share on other sites
Вам нужно ввести локальную обратную связь по напряжению. А внешним сигналом лишь изменять уровень опорного сигнала, относительно которого ШИМ-контроллер (посредством ООС) будет обеспечивает стабилизацию выходного напряжения.

Про нелинейность. Все верно, так и должно быть. Введение локальной ООС по напряжению должно устранить эту нелинейность.

Дело в том, что в схеме нет шим-контроллера. ШИМ сигнал идёт напрямую с микроконтроллера.

Я уже думал над тем, чтобы взять простой buck конвертер и, "врезавшись" в feedback сигнал, управлять его выходным напряжением.

Но, во первых, схема слишком усложняется, а во вторых - получу ли я тогда Vout = Vin и Vout = 0?

Все правильно. В первом случае имеете разрывный ток дросселя, в результате выходное напряжение стремится к максимуму (нагрузка не может высосать всю энергию, накопленную в дросселе за одно открытое состояние ключа). Увеличивая ток (или индуктивность) Вы переходите в режим непрерывных токов - тут напряжение на выходе становится близко к входному, умноженному на коэффициент заполнения.

 

Если быть еще более точным, то в случае малой нагрузки тоже возможен переход в режим непрерывных токов. Все зависит от соотношения потерь и полезной мощности нагрузки.

 

Покурите теорию DC-DC преобразователей. В частности, buck-топология (понижающий).

Спасибо, теперь понятно.

В принципе, я готов мириться с нелинейностью. Это ведь не проблема - ну, желая разогнать вентилятор до 50% его оборотов, я выставлю шим не на 50%, а на 20%.

И всё. :)

Еще нужно принять во внимание, что сам вентилятор - крайне нелинейное устройство.

Он стартует при 5-7 вольтах, в зависимости от конструкции и его производительность на каком-то участке растет почти квадратично от подводимого напряжения. В системах пропорциональной продувки полезно вводить ОС от датчика температуры.

Вам следует почитать теорию DC-DC преобразователей. Хотя бы популярную.

Конечно есть и датчики температуры.

 

Спасибо всем за обьяснения про работу преобразователя и его фильтра.

Но, в общем-то, главный вопрос был про резистор затвора ключевого мосфета.

 

В принципе, его можно подобрать опытным путём, конечно...

:)

Share this post


Link to post
Share on other sites
В системах пропорциональной продувки полезно вводить ОС от датчика температуры.

 

Дык она должна быть однозначно. Но быстрая петля по напряжению тоже должна быть, а иначе не обеспечишь устойчивость - термодатчик - это же очень медленно, по сравнению с шимом. О чем, собственно говоря, сказал rezident.

 

Но вообще (ИМХО) с обеспечением устойчивости этого дела надо будет помучаться.

 

Дело в том, что в схеме нет шим-контроллера. ШИМ сигнал идёт напрямую с микроконтроллера.

 

Я знаю, щас меня пан Microwatt зафукает, я Вам завтра выложу источник на Tiny25, как раз подходящий под Ваши требования ;) Весь проект, с модельками и исходниками. Покрутите.

Share this post


Link to post
Share on other sites
Дык она должна быть однозначно. Но быстрая петля по напряжению тоже должна быть, а иначе не обеспечишь устойчивость - термодатчик - это же очень медленно, по сравнению с шимом. О чем, собственно говоря, сказал rezident.

 

Но вообще (ИМХО) с обеспечением устойчивости этого дела надо будет помучаться.

 

 

 

Я знаю, щас меня пан Microwatt зафукает, я Вам завтра выложу источник на Tiny25, как раз подходящий под Ваши требования ;) Весь проект, с модельками и исходниками. Покрутите.

Я думаю, что мне не нужна обратная связь по напряжению.

Зачем? Нет необходимости в абсолютной стабильности напряжения на вентиляторах.

Средняя скорость будет обеспечена, поток воздуха соответственно будет изменяться.

Небольшие вариации оборотов допустимы.

 

А что за проект? Какой "источник"?

Share this post


Link to post
Share on other sites
Я думаю, что мне не нужна обратная связь по напряжению.

Зачем? Нет необходимости в абсолютной стабильности напряжения на вентиляторах.

 

Вентилятор - хреновая нагрузка. От фаз луны сильно нагрузка зависит. Могут меняться режимы преобразования. Я ж правильно понимаю, Вам надо поддерживать температуру не выше заданной? Т.е. обратная связь по температуре? Если да, то без обратной связи по напряжению вся конструкция легко может перейти в режим генерации на низкой частоте. Т.е. вентиляторы будут то крутить на полную, то близки к останову. Вам оно надо?

 

А что за проект? Какой "источник"?

 

Понижающий источник из 12В в сколько надо, заданных переменной в программном обеспечении. Функции ШИМ-контроллера полностью в проце. Т.е. к Вашей схеме добавится только 2 резистора и конденсатор для обеспечения обратной связи по напряжению. Остальное - софтом.

 

А с другой стороны, нафиг там нужен дроссель и конденсатор? Шимьте прямо двигатель, и фиг с ним.

Share this post


Link to post
Share on other sites
Вентилятор - хреновая нагрузка. От фаз луны сильно нагрузка зависит. Могут меняться режимы преобразования. Я ж правильно понимаю, Вам надо поддерживать температуру не выше заданной? Т.е. обратная связь по температуре? Если да, то без обратной связи по напряжению вся конструкция легко может перейти в режим генерации на низкой частоте. Т.е. вентиляторы будут то крутить на полную, то близки к останову. Вам оно надо?

 

 

 

Понижающий источник из 12В в сколько надо, заданных переменной в программном обеспечении. Функции ШИМ-контроллера полностью в проце. Т.е. к Вашей схеме добавится только 2 резистора и конденсатор для обеспечения обратной связи по напряжению. Остальное - софтом.

 

А с другой стороны, нафиг там нужен дроссель и конденсатор? Шимьте прямо двигатель, и фиг с ним.

Хм, генерация?

Изменение скорости вращения, если соответственно изменилась температура, происходит раз в две секунды.

Думаю, не страшно, если раз в две секунды будет незначительно меняться напряжение на выходе фильтра.

То есть система весьма инерционна. Большего и не нужно, думаю.

 

По источнику - интересно. Нужен АЦП для замеров?

 

Если без фильтра - тогда импульсы с датчиков вращения в вентиляторах будут модулироваться.

Но главное - тогда некоторые вентиляторы будут вращаться даже при скважности = 1%!

Причем на полных оборотах! :)

 

Это я попробовал при текущей частоте ШИМ в 30кГц. Видимо, надо её понижать. И значительно...

Share this post


Link to post
Share on other sites
Думаю, не страшно, если раз в две секунды будет незначительно меняться напряжение на выходе фильтра.

 

Думаете, получится "незначительно"? Имейте в виду, что изменив скорость вентилятора, Вы получите изменение температуры совсем не мгновенно. Скажем, температура превысила допустимую, регулятор начал повышать обороты. Однако, температура пока не падает, а только уменьшается скорость нарастания... Регулятор еще увеличивает обороты, скорость нарастания опять уменьшается... И так далее, пока не пойдет вниз и не пересечет уставку (а заброс то уже будь здоров)... И регулятор начинает разгоняться в другую сторону... Вот и генерация. Вообщем, все зависит от характеристик объекта регулирования. В общем случае, имеет смысл сделать ПИД-регулятор по температуре, у которого выход будет входом установки выходного напряжения на двигателе. Тогда можно на что-то надеяться. Или выбирать дроссель таким образом, чтобы во всем диапазоне выходных напряжений не выходить из режима непрерывных токов. Тогда можно попробовать обойтись одним ПИД-регулятором, прямо с термодатчика на ШИМ. Для уверенного нахождения в режиме непрерывных токов можно, например, резко повысить частоту ШИМ'а при текущей индуктивности - по нынешним временам килогерц 250 будет нестыдно - например, Tiny25 как раз обеспечит 8мибитный шим с такой частотой. Хотя, 560 мкГн, скорее всего имеет весьма приличные потери на такой частоте.

 

Нужен АЦП для замеров?

 

Конечно.

Share this post


Link to post
Share on other sites
Я ж правильно понимаю, Вам надо поддерживать температуру не выше заданной?

Не думаю, что, применительно к таким элементам сист. блока, как видеокарта и процессор, можно добиться таких результатов.

Ну разве только с помощью фреонки :)

 

Моя цель - менять воздушный поток в корпусе и на кулере процессора в некоторых пределах. Узких или широких - устанавливается программно и зависит от конкретных комплектующих, корпуса, количества вентиляторов и их размеров и т.д.

Думаете, получится "незначительно"? Имейте в виду, что изменив скорость вентилятора, Вы получите изменение температуры совсем не мгновенно. Скажем, температура превысила допустимую, регулятор начал повышать обороты. Однако, температура пока не падает, а только уменьшается скорость нарастания... Регулятор еще увеличивает обороты, скорость нарастания опять уменьшается... И так далее, пока не пойдет вниз и не пересечет уставку (а заброс то уже будь здоров)... И регулятор начинает разгоняться в другую сторону... Вот и генерация. Вообщем, все зависит от характеристик объекта регулирования. В общем случае, имеет смысл сделать ПИД-регулятор по температуре, у которого выход будет входом установки выходного напряжения на двигателе. Тогда можно на что-то надеяться. Или выбирать дроссель таким образом, чтобы во всем диапазоне выходных напряжений не выходить из режима непрерывных токов. Тогда можно попробовать обойтись одним ПИД-регулятором, прямо с термодатчика на ШИМ. Для уверенного нахождения в режиме непрерывных токов можно, например, резко повысить частоту ШИМ'а при текущей индуктивности - по нынешним временам килогерц 250 будет нестыдно - например, Tiny25 как раз обеспечит 8мибитный шим с такой частотой. Хотя, 560 мкГн, скорее всего имеет весьма приличные потери на такой частоте.

Ну у меня пока программа работает довольно примитивно - каждому измеренному значению температуры вычисляется строго фиксированное значение оборотов. То есть при 50 градусах, допустим, 50%, при 60 - 80% и т.д.

Никакой генерации не будет.

 

Можно контролировать соответствие действит. оборотов заданным.

Пока это у меня не реализовано, но будет, если понадобится.

На данный момент ограничился просто индикацией скорости вращения для всех каналов.

 

При критическом увеличении температуры или при незапланированном останове вентилятора включится сигнал.

 

ЗЫ: А почему так важно не выходить из режима непрерывных токов?

Индуктивность, при желании, можно поменять. Меньший вариант - это всегда лучше :)

Share this post


Link to post
Share on other sites
То есть при 50 градусах, допустим, 50%, при 60 - 80% и т.д.

 

Не очень я понимаю глубокий смысл сего действа. Такой подход может и стрельнет, но вот если объект характеристики поменяет, то будет все не очень хорошо. Возможно случится превышение максимальной температуры.

 

А почему так важно не выходить из режима непрерывных токов?

 

Тогда коэффициент заполнения в первом приближении определяет выходное напряжение по линейному закону. Т.е. 0% - 0 на выходе, 100% - полное питание на выходе. Тогда можно непосредственно ПИД-регулятор по температуре вводить.

Share this post


Link to post
Share on other sites
Не очень я понимаю глубокий смысл сего действа. Такой подход может и стрельнет, но вот если объект характеристики поменяет, то будет все не очень хорошо. Возможно случится превышение максимальной температуры.

Тогда я об этом узнаю по сигналу.

И, либо заменю неисправный вентилятор, либо поменяю настройки программы.

 

Невозможно поддерживать температуру процессора или современной видеокарты постоянной.

Под нагрузкой (игрушку там трёхмерную запустили, или рассчётами научными занялись) всё равно будет развита более высокая рабочая температура. Этому может помешать, разве что, фреонка или мощная водянка.

И смысл - просто увеличить обдув на определённый уровень (сохранив при этом приемлемый уровень шума!), чтобы не допустить чрезмерного повышения температуры. :)

Тогда как, будучи в состоянии относительного покоя (слушаем там музыку или пишем программу или платку там разводим), понижаем скорость вентиляторов до минимума, а часть - и вовсе выключаем.

 

Результат - комфортная и безшумная работа и хорошее охлаждение при необходимости.

 

Ну, практика покажет, насколько себя оправдает такой подход.

Годы эксплуатации с примитивным реобасом на транзисторе и переменном резисторе, настроенном один раз, не выявили каких-либо проблем с фазами луны и прочим шаманством... :laughing:

 

Хотя я и задумываю девайс как несколько модулей, чтобы, в случае чего, изменить конструкцию, заменив только часть устройства.

Тогда коэффициент заполнения в первом приближении определяет выходное напряжение по линейному закону. Т.е. 0% - 0 на выходе, 100% - полное питание на выходе. Тогда можно непосредственно ПИД-регулятор по температуре вводить.

Вот вся беда имп. стабилизаторов - они рассчитаны на определённое напряжение и ток.

А если они должны меняться - проблемы...

Share this post


Link to post
Share on other sites
Тогда я об этом узнаю по сигналу.

И, либо заменю неисправный вентилятор, либо поменяю настройки программы.

 

Невозможно поддерживать температуру процессора или современной видеокарты постоянной.

Под нагрузкой (игрушку там трёхмерную запустили, или рассчётами научными занялись) всё равно будет развита более высокая рабочая температура. Вот вся беда имп. стабилизаторов - они рассчитаны на определённое напряжение и ток.

А если они должны меняться - проблемы...

Источники рассчитаны на то, на что рассчитаны.

Просто, имея некоторый опыт, скажу, что придется действительно повозиться с обратной связью и быстрой по напряжению и медленной по теплу. Прямое регулирование, без обратной связи по теплу, скорее всего, ничего путного не даст.

Это СИСТЕМА и в ней могут быть неожиданности, которые не учтешь расчетом. Многие параметры заранее неизвестны. Ошибки приводят к тому, что вентилятор начинает работать в релейном режиме. Т.е включаться на минуту-две с максимальной мощностью, потом отключаться на такое же время. При этом температура охлаждаемого объекта может реально скакать на десятки градусов. Это (термоциклирование) для аппаратуры еще хуже, чем постоянный нагрев.

Практический совет - не допускайте полной остановки вентилятора даже сразу после включения, когда аппаратура еще холодная. Это поможет упростить задачу.

Share this post


Link to post
Share on other sites

ЗЫ: всё таки вы меня заинтересовали своей обратной связью.

 

Попробую завтра взять какой-нибудь понижающий DC\DC преобразователь и подать через интегрирующую цепь выпрямленное буфферизованное напряжение с ШИМ генератора микроконтроллера.

В теории должно быть так: повышаем скважность ШИМ линии управления, растёт напряжение на пине обр. связи преобразователя.

Он уменьшает скважность своего ШИМ, напряжение на его выходе падает, падает оно и на пине обр. связи...

Имеем - путём увеличения скважности микроконтроллером понижаем напряжение на выходе DC\DC... ??

 

Что скажете, уважаемые?

Тут вот ещё бог знает, как поведёт себя преобразователь при нулевой и стопроцентной требуемой скважности для достижения нулевого и максимального напряжения на выходе...

Не все контроллеры могут работать со 100% duty cycle...

 

ЗЗЫ: как бы ещё правильно собрать интегрирующую/суммирующую схему?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this