Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Схема фильтра ШИМ регулятора напряжения
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Схемотехника
Страницы: 1, 2, 3
sonycman
Вот доделываю свой реобас для управления скоростью вращения вентиляторов сист. блока компьютера.
Характеристики должны быть примерно Vin = 12v, Vout = 0 - Vin, I = 1A max., 4 канала.
Для регулировки напряжения остановился на импульсной схеме, так как нет необходимости в установке радиатора для регулирующего элемента -> компактность и отсутствие нагрева.
Нажмите для просмотра прикрепленного файла

На макетке собирал подобную схему, но вместо микросхемы драйвера обхожусь пока транзисторами.
Частота ШИМ около 30кГц.
Есть определённый недостаток - заметная нелинейность выходного напряжения относительно скважности входных импульсов ШИМ и зависимость от тока нагрузки.
То есть при скважности 50% имеем на выходе все 10 вольт при токе ~100ма.
С повышением тока нагрузки или индуктивности фильтра нелинейность постепенно сглаживается.
С другой стороны - с повышением индуктивности падает макс. выходное напряжение (при скважности 100%)...

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

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

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

И может стоит установить на выход защитный диод анодом на землю? Всё-таки индуктивная нагрузка, хотя по осциллографу я не наблюдал отрицательных импульсов...
rezident
Вам нужно ввести локальную обратную связь по напряжению. А внешним сигналом лишь изменять уровень опорного сигнала, относительно которого ШИМ-контроллер (посредством ООС) будет обеспечивает стабилизацию выходного напряжения.
Про нелинейность. Все верно, так и должно быть. Введение локальной ООС по напряжению должно устранить эту нелинейность.
Rst7
Цитата
То есть при скважности 50% имеем на выходе все 10 вольт при токе ~100ма.
С повышением тока нагрузки или индуктивности фильтра нелинейность постепенно сглаживается.
С другой стороны - с повышением индуктивности падает макс. выходное напряжение (при скважности 100%)...


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

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

Покурите теорию DC-DC преобразователей. В частности, buck-топология (понижающий).
Microwatt
Еще нужно принять во внимание, что сам вентилятор - крайне нелинейное устройство.
Он стартует при 5-7 вольтах, в зависимости от конструкции и его производительность на каком-то участке растет почти квадратично от подводимого напряжения. В системах пропорциональной продувки полезно вводить ОС от датчика температуры.
Вам следует почитать теорию DC-DC преобразователей. Хотя бы популярную.
sonycman
Цитата(rezident @ Feb 1 2009, 00:00) *
Вам нужно ввести локальную обратную связь по напряжению. А внешним сигналом лишь изменять уровень опорного сигнала, относительно которого ШИМ-контроллер (посредством ООС) будет обеспечивает стабилизацию выходного напряжения.
Про нелинейность. Все верно, так и должно быть. Введение локальной ООС по напряжению должно устранить эту нелинейность.

Дело в том, что в схеме нет шим-контроллера. ШИМ сигнал идёт напрямую с микроконтроллера.
Я уже думал над тем, чтобы взять простой buck конвертер и, "врезавшись" в feedback сигнал, управлять его выходным напряжением.
Но, во первых, схема слишком усложняется, а во вторых - получу ли я тогда Vout = Vin и Vout = 0?
Цитата(Rst7 @ Feb 1 2009, 00:11) *
Все правильно. В первом случае имеете разрывный ток дросселя, в результате выходное напряжение стремится к максимуму (нагрузка не может высосать всю энергию, накопленную в дросселе за одно открытое состояние ключа). Увеличивая ток (или индуктивность) Вы переходите в режим непрерывных токов - тут напряжение на выходе становится близко к входному, умноженному на коэффициент заполнения.

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

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

Спасибо, теперь понятно.
В принципе, я готов мириться с нелинейностью. Это ведь не проблема - ну, желая разогнать вентилятор до 50% его оборотов, я выставлю шим не на 50%, а на 20%.
И всё. smile.gif
Цитата(Microwatt @ Feb 1 2009, 00:24) *
Еще нужно принять во внимание, что сам вентилятор - крайне нелинейное устройство.
Он стартует при 5-7 вольтах, в зависимости от конструкции и его производительность на каком-то участке растет почти квадратично от подводимого напряжения. В системах пропорциональной продувки полезно вводить ОС от датчика температуры.
Вам следует почитать теорию DC-DC преобразователей. Хотя бы популярную.

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

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

В принципе, его можно подобрать опытным путём, конечно...
smile.gif
Rst7
Цитата
В системах пропорциональной продувки полезно вводить ОС от датчика температуры.


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

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

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


Я знаю, щас меня пан Microwatt зафукает, я Вам завтра выложу источник на Tiny25, как раз подходящий под Ваши требования wink.gif Весь проект, с модельками и исходниками. Покрутите.
sonycman
Цитата(Rst7 @ Feb 1 2009, 00:49) *
Дык она должна быть однозначно. Но быстрая петля по напряжению тоже должна быть, а иначе не обеспечишь устойчивость - термодатчик - это же очень медленно, по сравнению с шимом. О чем, собственно говоря, сказал rezident.

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



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

Я думаю, что мне не нужна обратная связь по напряжению.
Зачем? Нет необходимости в абсолютной стабильности напряжения на вентиляторах.
Средняя скорость будет обеспечена, поток воздуха соответственно будет изменяться.
Небольшие вариации оборотов допустимы.

А что за проект? Какой "источник"?
Rst7
Цитата
Я думаю, что мне не нужна обратная связь по напряжению.
Зачем? Нет необходимости в абсолютной стабильности напряжения на вентиляторах.


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

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


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

А с другой стороны, нафиг там нужен дроссель и конденсатор? Шимьте прямо двигатель, и фиг с ним.
sonycman
Цитата(Rst7 @ Feb 1 2009, 01:00) *
Вентилятор - хреновая нагрузка. От фаз луны сильно нагрузка зависит. Могут меняться режимы преобразования. Я ж правильно понимаю, Вам надо поддерживать температуру не выше заданной? Т.е. обратная связь по температуре? Если да, то без обратной связи по напряжению вся конструкция легко может перейти в режим генерации на низкой частоте. Т.е. вентиляторы будут то крутить на полную, то близки к останову. Вам оно надо?



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

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

Хм, генерация?
Изменение скорости вращения, если соответственно изменилась температура, происходит раз в две секунды.
Думаю, не страшно, если раз в две секунды будет незначительно меняться напряжение на выходе фильтра.
То есть система весьма инерционна. Большего и не нужно, думаю.

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

Если без фильтра - тогда импульсы с датчиков вращения в вентиляторах будут модулироваться.
Но главное - тогда некоторые вентиляторы будут вращаться даже при скважности = 1%!
Причем на полных оборотах! smile.gif

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


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

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


Конечно.
sonycman
Цитата
Я ж правильно понимаю, Вам надо поддерживать температуру не выше заданной?

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

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

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

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

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

ЗЫ: А почему так важно не выходить из режима непрерывных токов?
Индуктивность, при желании, можно поменять. Меньший вариант - это всегда лучше smile.gif
Rst7
Цитата
То есть при 50 градусах, допустим, 50%, при 60 - 80% и т.д.


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

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


Тогда коэффициент заполнения в первом приближении определяет выходное напряжение по линейному закону. Т.е. 0% - 0 на выходе, 100% - полное питание на выходе. Тогда можно непосредственно ПИД-регулятор по температуре вводить.
sonycman
Цитата(Rst7 @ Feb 1 2009, 01:57) *
Не очень я понимаю глубокий смысл сего действа. Такой подход может и стрельнет, но вот если объект характеристики поменяет, то будет все не очень хорошо. Возможно случится превышение максимальной температуры.

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

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

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

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

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

Вот вся беда имп. стабилизаторов - они рассчитаны на определённое напряжение и ток.
А если они должны меняться - проблемы...
Microwatt
Цитата(sonycman @ Feb 1 2009, 02:08) *
Тогда я об этом узнаю по сигналу.
И, либо заменю неисправный вентилятор, либо поменяю настройки программы.

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

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

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

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

ЗЗЫ: как бы ещё правильно собрать интегрирующую/суммирующую схему?
Microwatt
Цитата(Rst7 @ Feb 1 2009, 00:49) *
Я знаю, щас меня пан Microwatt зафукает, я Вам завтра выложу источник на Tiny25, как раз подходящий под Ваши требования wink.gif Весь проект, с модельками и исходниками. Покрутите.

Та шо ж я, Змей Горыныч что ли, на все пламенем фукать?
Реализаций может быть много. Дело вкуса.
Лишь бы хорошо работало.
sonycman
Цитата(Microwatt @ Feb 1 2009, 03:02) *
Это СИСТЕМА и в ней могут быть неожиданности, которые не учтешь расчетом. Многие параметры заранее неизвестны. Ошибки приводят к тому, что вентилятор начинает работать в релейном режиме. Т.е включаться на минуту-две с максимальной мощностью, потом отключаться на такое же время. При этом температура охлаждаемого объекта может реально скакать на десятки градусов. Это (термоциклирование) для аппаратуры еще хуже, чем постоянный нагрев.
Практический совет - не допускайте полной остановки вентилятора даже сразу после включения, когда аппаратура еще холодная. Это поможет упростить задачу.

Модель регулирования такая:
Toff - температура t, ниже которой вентилятор останавливается (Vout = 0).
Tmin - t, начиная с которой вентилятор вращается с мин. (RPMmin) оборотами.
Tmax - t, после достижения которой вентилятор вращается с макс. (RPMmax) оборотами.
В диапазоне Tmax - Tmin вычисляется соотв. значение оборотов между RPMmin и RPMmax.

Допустим, процессор: Toff = 25, Tmin = 30, Tmax = 50, RPMmin = 50%, RPMmax = 100%.
Вентилятор сможет остановиться только если сист. блок вынести на балкон зимой, или погрузить систему в сон smile.gif
Никакого релейного режима, так как предусмотрен определённый запас по температуре (Tmin - Toff).

Или, например, вытяжной тыловой вентилятор корпуса (в качестве датчика - тот же датчик процессора): Toff = 45, Tmin = 50, Tmax = 60, RPMmin = 40%, RPMmax = 80%.
При слабой загрузке - отключен. Включится только при повышении t на пять градусов с температуры отключения...
Можно и увеличить это значение smile.gif

Можно ввести фильтрацию результатов измерения, можно устанавливать таймеры - возможностей море, стоит только захотеть.
Практика покажет недостатки и отшлифует модель.
Microwatt
Ага, прекрасный алгоритм. На бумаге все прекрасно.
Сам вентилятор при включении имеет значительный гистерезис. Датчик сильно врет по времени. Производительность вентилятора сильно нелинейна от приложенного напряжения и от модели к модели.
Все вместе это может привести либо к редейному режиму, либо к автоколебаниям скорости с довольно малым периодом 2-3 секунды. Вентилятор взвывает, как порывы ветра при вьюге. Субъективно это быстро надоедает, уж лучше бы он выл громко, но на одной ноте.
Ладно, пробуйте, потом расскажете.
sonycman
Цитата(rezident @ Feb 1 2009, 00:00) *
Вам нужно ввести локальную обратную связь по напряжению. А внешним сигналом лишь изменять уровень опорного сигнала, относительно которого ШИМ-контроллер (посредством ООС) будет обеспечивает стабилизацию выходного напряжения.
Про нелинейность. Все верно, так и должно быть. Введение локальной ООС по напряжению должно устранить эту нелинейность.

А не подскажете микросхему buck конвертера с доступным выводом для опорного напряжения?
Цитата(Microwatt @ Feb 1 2009, 05:11) *
Ага, прекрасный алгоритм. На бумаге все прекрасно.
Сам вентилятор при включении имеет значительный гистерезис. Датчик сильно врет по времени. Производительность вентилятора сильно нелинейна от приложенного напряжения и от модели к модели.
Все вместе это может привести либо к редейному режиму, либо к автоколебаниям скорости с довольно малым периодом 2-3 секунды. Вентилятор взвывает, как порывы ветра при вьюге. Субъективно это быстро надоедает, уж лучше бы он выл громко, но на одной ноте.
Ладно, пробуйте, потом расскажете.

Но ведь сейчас это не особо важно. Методика будет в любом случае отлажена и доведена до ума программно.
Мне пока важно закончить с аппаратной частью...

Вот замутили тут меня со стабилизацией по напряжению sad.gif
Tanya
Цитата(Microwatt @ Feb 1 2009, 04:11) *
Ага, прекрасный алгоритм. На бумаге все прекрасно.
Сам вентилятор при включении имеет значительный гистерезис. Датчик сильно врет по времени. Производительность вентилятора сильно нелинейна от приложенного напряжения и от модели к модели.
Все вместе это может привести либо к редейному режиму, либо к автоколебаниям скорости с довольно малым периодом 2-3 секунды. Вентилятор взвывает, как порывы ветра при вьюге. Субъективно это быстро надоедает, уж лучше бы он выл громко, но на одной ноте.
Ладно, пробуйте, потом расскажете.

Ну... релейный режим - тоже автоколебания. А вот про субъективно... Это очень субъективно - людям с хорошим слухом медленное изменение частоты еще противнее, чем искусственная вьюга.
sonycman
Почему у большинства компактных buck регуляторов макс. duty cycle не превышает 97%?
Ведь это значит, что не видать мне 12 вольт на выходе с таким регулятором!
Microwatt
Цитата(sonycman @ Feb 1 2009, 13:53) *
Почему у большинства компактных buck регуляторов макс. duty cycle не превышает 97%?
Ведь это значит, что не видать мне 12 вольт на выходе с таким регулятором!

Конечно не видать.
Более того, buck регулятор хорошо работает при duty cycle от 0.5 и ниже. Все, что больше половинки вносит трудности с его устойчивостью. Начинаются нашлепки со слоп-компенсацией, фазовой коррекцией....
Rst7
Вот обещаный проект. Это степдаун с 10-14 вольт на 3.3...9 мощностью до 10Вт. Расчитан на режим непрерывных токов.

Нажмите для просмотра прикрепленного файла

Нажмите для просмотра прикрепленного файла

В архиве исходники под IAR плюс моделька в MicroCap8 (к сожалению, чистую модель для проверки усточивости я потерял) и модель в Proteus'e. Модель в протеусе была сделана как проба, однако, оказалось, что для моделирования именно источников на процах очень даже ничего.

По схеме - Q2,Q3 - драйвер затвора, Q5 - смешивание двух шимов для обеспечения мертвого времени, один шим - регулятор, второй - просто ограничение мертвого времени. Простое добавление мертвого времени в софт регулятора прилично увеличивает по тактам, решил сделать так. Q4 - компаратор среднего тока. По мере превышения порога сначала через обратную связь работает, если вдруг проц не живет, то ограничиват напряжение на затворе, а дальше умирает предохранитель.

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

Единственно что, пришлось в софте сделать специальный #define PROTEUS, чисто для обхода глюков эмулятора.

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

В железе проект проверял, вполне модельке соответствует. Но надо обратить внимание на ESR выходного конденсатора - если оно велико, будет возбуд. В реальной жизни ключ - IRLMS6802. R6 - пять резисторов по 1Ом впараллель. Драйвер можете выбрать на свой вкус, однако, как по мне - 2 транзистора в SOT23 меньше любого драйвера, а про цену помолчим вообще wink.gif
sonycman
Цитата(Microwatt @ Feb 1 2009, 15:49) *
Конечно не видать.
Более того, buck регулятор хорошо работает при duty cycle от 0.5 и ниже. Все, что больше половинки вносит трудности с его устойчивостью. Начинаются нашлепки со слоп-компенсацией, фазовой коррекцией....

Ну вот, это мне не подходит. Получается хуже, чем вообще без регулятора. sad.gif
Сейчас есть чипы со 100% скважностью. Думаю попробовать такой.
Но, в любом случае, придётся добавить ОУ для подачи опорного напряжения на делитель feedback вывода.
И юзать LUT таблицу, так как нелинейность заданного/действительному напряжению будет много больше.
В общем, сомнительное удовольствие...

Идеальной была бы компактная микросхема с REF выводом, со 100% duty cycle и с диапазоном входных напряжений не менее 12 вольт.
Если кто в курсе - подскажите, пожалуйста smile.gif

Цитата(Rst7 @ Feb 1 2009, 16:03) *
Вот обещаный проект. Это степдаун с 10-14 вольт на 3.3...9 мощностью до 10Вт. Расчитан на режим непрерывных токов.

Спасибо, Дмитрий.
А можно эту схему приспособить для работы в 0-12в. 1А диапазоне?
В принципе, тоже довольно сложная конструкция. Требует много соединений с контроллером, если ставить 4 канала...
А зачем нужна кнопка и резистор R9?
rezident
Цитата(sonycman @ Feb 1 2009, 19:12) *
А зачем нужна кнопка и резистор R9?
Как я понимаю, R8 и R9 нужны для создания более адекватной модели электролита (эквивалент ESR) в программе-моделировщике Proteus.
Rst7
Цитата
А можно эту схему приспособить для работы в 0-12в. 1А диапазоне?


Не вижу особых проблем.

Во-первых, убрать Dead Time, заменив тут
Код
  while(dt<0xE0);


0xE0 на 0xFF.

Во-вторых, уменьшить токоизмерительный резистор. Ну, скажем, до 0.15ом.

Цитата
В принципе, тоже довольно сложная конструкция. Требует много соединений с контроллером, если ставить 4 канала...


Можно убрать аппаратное внесение deadtime и выполнить его программно. Тогда один контроллер сможет справиться с двумя каналами.

Цитата
А зачем нужна кнопка и резистор R9?


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

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

Цитата
Как я понимаю, R8 и R9 нужны для создания более адекватной модели электролита (эквивалент ESR)


Безусловно.

Щас поглядел в моделлере. Работает до максимального напряжения на нагрузку 10ом. При этом, как оказалось, не надо уменьшать резистор токоизмерительный, а надо уменьшить скорость мягкого запуска, вот так
Код
  do
  {
    dt++;
    OCR1B=dt;
    __delay_cycles(100);
  }
  while(dt<0xFF);


Иначе, защита по току не дает нарасти напряжению на выходе - регулятор-то пытается получить нужное напряжение по принципу "быстрей-быстрей", пытаясь вдуть ток в нагрузку, тут ему краник и пережимают smile.gif

И щас посмотрел свежим взглядом, вроде нет проблем сделать программный dead-time.
Microwatt
Цитата(sonycman @ Feb 1 2009, 18:12) *
Ну вот, это мне не подходит. Получается хуже, чем вообще без регулятора. sad.gif
Сейчас есть чипы со 100% скважностью. Думаю попробовать такой.

Спасибо, Дмитрий.
А можно эту схему приспособить для работы в 0-12в. 1А диапазоне?
В принципе, тоже довольно сложная конструкция. Требует много соединений с контроллером, если ставить 4 канала...

Что у Вас за вентилятор? Так таки 1 ампер и потребляет? Что за датчик температуры по сопротивлению?
В конце-концов, можно поставить обыкновенный компенсационный регулятор и не заморачивать себе голову кучей ключей, контроллеров и прочими высокохудожественными декорациями. Максимум что такой регулятор будет рассеивать для 12ваттного вентилятора - 3 ватта. Сдуть еще 3 ватта таким вертолетом можно легко.
Ну, потеряете на регуляторе 0.5-1 вольт, ни один ШИМ лучше не вытянет.
sonycman
Цитата(Microwatt @ Feb 1 2009, 19:26) *
Что у Вас за вентилятор? Так таки 1 ампер и потребляет? Что за датчик температуры по сопротивлению?
В конце-концов, можно поставить обыкновенный компенсационный регулятор и не заморачивать себе голову кучей ключей, контроллеров и прочими высокохудожественными декорациями. Максимум что такой регулятор будет рассеивать для 12ваттного вентилятора - 3 ватта. Сдуть еще 3 ватта таким вертолетом можно легко.
Ну, потеряете на регуляторе 0.5-1 вольт, ни один ШИМ лучше не вытянет.

Один канал может содержать от одного до четырёх вентиляторов. Четыре штуки легко могут потреблять ток до 1А.
Датчики на DS18S20.

Раньше и были линейные регуляторы. Не хотелось бы снова к ним возвращаться... не нужны лишние радиаторы...
Да и реобас внутри отсека 5.25 будет плохо обдуваться.

Та схема, что имеется сейчас, даёт на выходе 11.5 вольт макс.
sonycman
Вот что получилось сейчас:
Нажмите для просмотра прикрепленного файла

Переменный резистор заменить на ФНЧ для сигнала ШИМ от контроллера и всё smile.gif
Вроде работает. Выходное напряжение устанавливается от 0.5 до 11.5 вольт весьма линейно.

Правда, пульсации на выходе стабилизатора увеличились после установки ОУ. Возможно, надо его как то скорректировать...
Может, подскажете, как?

А можно и так оставить, не так уж важно, в принципе... smile.gif

Закажу на днях buck контроллеры со 100% duty cycle.
Например, LM3475 понравился, правда, ключ внешний надо...

Можно и к линейной стабилизации вернуться. Но для себя делаю, хочется получше. И так печка внутри сист. блока под нагрузкой, а тут ещё моё барахло будет добавлять жару sad.gif
К тому же корпуса ТО-220 вместе с радиаторами и те-же ОУ скушают никак не меньше - скорее, больше места на плате...
Microwatt
Цитата(sonycman @ Feb 1 2009, 20:48) *
Вот что получилось сейчас:
Нажмите для просмотра прикрепленного файла

Переменный резистор заменить на ФНЧ для сигнала ШИМ от контроллера и всё smile.gif
Вроде работает. Выходное напряжение устанавливается от 0.5 до 11.5 вольт весьма линейно.

Ну и хорошо, если получилось.
Для меня только полная загадка зачем тут еще и ОУ? В одно плечо делителя включается либо термодатчик, либо сигнал управления с пресловутого контроллера...
Выходное напряжение регулировать ниже 5 вольт нет смысла. Вентилятор при 3-4 вольтах с места не стронется.
sonycman
Цитата(Microwatt @ Feb 1 2009, 22:25) *
Для меня только полная загадка зачем тут еще и ОУ? В одно плечо делителя включается либо термодатчик, либо сигнал управления с пресловутого контроллера...

Можете подсказать, как включить сигнал от контроллера в плечо делителя?

Цитата
Выходное напряжение регулировать ниже 5 вольт нет смысла. Вентилятор при 3-4 вольтах с места не стронется.

Легко. Один из моих Gembird стартует с 2.5 вольт. И уже на 500 оборотах smile.gif
Клим
А обратная связь по частоте вращения венилятора почему не учитывается ? По-моему, правильнее на нее ориентироваться, чем на напряжение.
sonycman
Цитата(Клим @ Feb 1 2009, 22:59) *
А обратная связь по частоте вращения венилятора почему не учитывается ? По-моему, правильнее на нее ориентироваться, чем на напряжение.

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

Скорость считывается чисто для визуализации и для контроля сильного отклонения от заданной.
Microwatt
Цитата(sonycman @ Feb 1 2009, 21:31) *
Можете подсказать, как включить сигнал от контроллера в плечо делителя?

Если выход контроллера логический уровень с ШИМ, то нужно профильтровать его в RCR фильтре (Т-образном) и подключить параллельно нижнему плечу делителя. Параметры фильтра и резисторов просчитать, конечно.
sonycman
Цитата(Microwatt @ Feb 2 2009, 00:20) *
Если выход контроллера логический уровень с ШИМ, то нужно профильтровать его в RCR фильтре (Т-образном) и подключить параллельно нижнему плечу делителя. Параметры фильтра и резисторов просчитать, конечно.

Спасибо! Буду пробовать! smile.gif
Клим
Цитата(sonycman @ Feb 1 2009, 23:04) *
Но ведь задача не в том, чтобы поддерживать скорость с точностью до оборота.
Задача - в какой-то степени менять воздушный поток.

Скорость считывается чисто для визуализации и для контроля сильного отклонения от заданной.

Но ведь, воздушный поток напрямую зависит от скорости вращения. И зачем делать схему с ДВУМЯ ШИМами ?
Как по мне - то надо использовать вентиляторы с таходатчиками, на них смотреть скорость вращения. И регулировать именно по этой скорости.
Т.е. алгоритм я вижу такой: подаем максимальное напряжение - смотрим максимальную скорость; выставляем скорость в процентах от максимума в зависимости от температры.
На все про все 1 котнроллер, например тини13.
Rst7
Цитата
воздушный поток напрямую зависит от скорости вращения.


Ага, а еще от перепада давлений и прочих фаз луны.

Цитата
выставляем скорость в процентах от максимума в зависимости от температры.


Смысл?

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

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

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

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

Значит необходима плавная регулировка. Теперь уже пошли суровые будни smile.gif Непосредственное управление напряжением на двигателе в зависимости от температуры через PID-регулятор даст нужный результат. А вот способ получения заданного напряжения на двигателе - это уже дело вкуса, хотя, с точки зрения минимизации энергопотребления, стреляет только импульсник.
Microwatt
Цитата(Клим @ Feb 2 2009, 14:06) *
Но ведь, воздушный поток напрямую зависит от скорости вращения. И зачем делать схему с ДВУМЯ ШИМами ?
Как по мне - то надо использовать вентиляторы с таходатчиками, на них смотреть скорость вращения. И регулировать именно по этой скорости.
.

Земляк, надо с какого-то момента воспринимать задачи на СИСТЕМНОМ уровне, а не на программерском. Не обороты вентилятора нужно стабилизировать, а температуру в конечном итоге.
Потому, нужно отслеживать датчик температуры и пропорционально разности увеличивать напряжение питания вентилятора. А он уж сам потребные обороты разовьет. Причем, независимо от модели и особенностей формы лопастей, покрытых пылякой у каждого экземпляра.
Ни тахогенераторы с 16-разрядными АЦП, ни быстрые преобразования Фурье, ни лазерные дальномеры тут не помогут.
Herz
Цитата(Rst7 @ Feb 2 2009, 14:15) *
Ага, а еще от перепада давлений и прочих фаз луны.

Смысл?

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

Для начала посмотрим, какие параметры мы хотим оптимизировать....

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

Цитата(sonycman @ Jan 31 2009, 23:36) *
Моя цель - менять воздушный поток в корпусе и на кулере процессора в некоторых пределах. Узких или широких - устанавливается программно и зависит от конкретных комплектующих, корпуса, количества вентиляторов и их размеров и т.д.

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

Скорость считывается чисто для визуализации и для контроля сильного отклонения от заданной.


А ему тут уже чего только не насоветовали: и ПИД-регуляторы, и обратные связи по всем возможным параметрам, и всякие устойчивые алгоритмы...
Смешно, ей-богу...
Tanya
Цитата(Microwatt @ Feb 2 2009, 15:32) *
Ни тахогенераторы с 16-разрядными АЦП, ни быстрые преобразования Фурье, ни лазерные дальномеры тут не помогут.

Почему не помогут? Микрофон у вентилятора +"16-разрядный АЦП+ быстрые преобразования Фурье" - самое оно.
Rst7
Цитата
Дык, с этого нужно было бы начинать. Вроде человек и оптимизировать-то ничего не собирается....


Так а смысл? Сделать лишь бы сделать? "Вот я непонятно как кручу обороты вентилятора от температуры?"

Понятно, что хобби, но где-же повышение экспиренса?

Зато, решив описанную мной задачу, можно бить себя пяткой в грудь - "Я сделал систему, оптимизированную по таким-то и таким-то параметрам". Системный подход налицо, экспы заметно добавилось. Так сказать, левел ап smile.gif
wim
Цитата(Tanya @ Feb 2 2009, 15:46) *
... Микрофон у вентилятора +"16-разрядный АЦП+ быстрые преобразования Фурье" - самое оно.

Очень хоцца узнать продолжение - куда вштрекать выход быстрого преобразователя Фурье? smile.gif
Herz
Цитата(wim @ Feb 2 2009, 15:43) *
Очень хоцца узнать продолжение - куда вштрекать выход быстрого преобразователя Фурье? smile.gif

Как куда? В ШИМ, ессессно...
wim
Цитата(Herz @ Feb 2 2009, 18:52) *
Как куда? В ШИМ, ессессно...

Я об этом как бы догадываюсь. smile.gif Меня интересует - как результат БПФ преобразуется в коэффициент заполнения.
sonycman
Цитата(Herz @ Feb 2 2009, 16:45) *
Дык, с этого нужно было бы начинать. Вроде человек и оптимизировать-то ничего не собирается....

Ну как же, требуется оптимизация шума - его минимизация в ненагруженных режимах.
С другой стороны - макс. охлаждение, уже не принимая во внимание шум - в сильнонагруженных.

Как правильно заметил Rst7 - важно исключить ненужный нагрев и расход тока.
Да и блок питания не резиновый...

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

Часть датчиков температуры установлена на радиаторы кулеров, поэтому резкие скачки измеренной температуры маловероятны.
Пока что не вижу проблем с предложенной мной моделью.
После сборки будет видно...
Tanya
Цитата(Herz @ Feb 2 2009, 18:52) *
Как куда? В ШИМ, ессессно...

Нет, сначала в ЦАП, потом в ПИД... и только потом-потом.. уже в ШИМ.
wim
Цитата(Tanya @ Feb 2 2009, 21:13) *
Нет, сначала в ЦАП, потом в ПИД... и только потом-потом.. уже в ШИМ.

Дак а что является выходом БПФ? Спектральная плотность шума вентилятора?
sonycman
Цитата(Tanya @ Feb 2 2009, 22:13) *
Нет, сначала в ЦАП, потом в ПИД... и только потом-потом.. уже в ШИМ.

Ай-яй-яй!
Модератор, а любим пофлудить... или, может, пофлеймить? Никогда особо не различал эти два понятия, правда smile.gif
Herz
Цитата(sonycman @ Feb 2 2009, 22:38) *
Ай-яй-яй!
Модератор, а любим пофлудить... или, может, пофлеймить? Никогда особо не различал эти два понятия, правда smile.gif

С чего это Вы взяли?
Tanya
Цитата(wim @ Feb 2 2009, 22:53) *
Дак а что является выходом БПФ? Спектральная плотность шума вентилятора?

Зачем пустые вопросы задаете? Вот ниже нас осуждают... Не буду отвечать.

Цитата(sonycman @ Feb 2 2009, 23:38) *
Ай-яй-яй!
Модератор, а любим пофлудить... или, может, пофлеймить? Никогда особо не различал эти два понятия, правда smile.gif

Как можно было такое подумать? Такая серьезная и важная для всех тема, столько идей...
Классическаяя проблема теплового и шумового загрязнения окружающей среды... "То как зверьььь".
И я тоже ужасно устаю от звука вентиляторов - буквально, - зверею, поэтому строгий научный подход к такой теме считаю очень актуальным.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.