Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Из ШИМ в постоянное напряжение
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Схемотехника
Страницы: 1, 2
thamjell
Каким образом лучше всего преобразовать сигнал, промодулированный при помощи ШИМ, в постоянное напряжение? Дополнительным требованием является возможность регулировки уровня постоянного напряжения: повышается/понижается скважность ШИМ-импульсов = изменяется уровень постоянного напряжения.
Jurenja
Цитата(thamjell @ Jul 30 2014, 15:09) *
Каким образом лучше всего преобразовать...
Использовать ФНЧ с достаточным уровнем подавления частоты ШИМ.
thamjell
Цитата(Jurenja @ Jul 30 2014, 16:13) *
Использовать ФНЧ с достаточным уровнем подавления частоты ШИМ.

А использование ФНЧ не помешает регулировке?
Jurenja
Цитата(thamjell @ Jul 30 2014, 15:15) *
А использование ФНЧ не помешает регулировке?
Наоборот - поможет.
ФНЧ по сути вычисляет среднее напряжение ШИМ сигнала на интервале времени, соответствующем полосе пропускания ФНЧ, поэтому изменение скважности будет менять напряжение на выходе ФНЧ.
thamjell
Цитата(Jurenja @ Jul 30 2014, 16:29) *
Наоборот - поможет.
ФНЧ по сути вычисляет среднее напряжение ШИМ сигнала на интервале времени, соответствующем полосе пропускания ФНЧ, поэтому изменение скважности будет менять напряжение на выходе ФНЧ.

Раз так, то спасибо rolleyes.gif Попробую этот вариант, знал про ФНЧ, но сомневался, думая, что при регулировке он не подойдёт.
A. Fig Lee
Цитата(thamjell @ Jul 30 2014, 08:09) *
Каким образом лучше всего преобразовать сигнал, промодулированный при помощи ШИМ, в постоянное напряжение? Дополнительным требованием является возможность регулировки уровня постоянного напряжения: повышается/понижается скважность ШИМ-импульсов = изменяется уровень постоянного напряжения.

На сахаре писали об интересной микросхеме LTC2645 как раз для таких задач.
Подаешь ШИМ, получаешь напряжение.
kovigor
Цитата(thamjell @ Jul 30 2014, 15:09) *
Каким образом лучше всего преобразовать сигнал, промодулированный при помощи ШИМ, в постоянное напряжение?

Книжку Трамперта гляньте, там и выкладки необходимые есть:

http://my-files.ru/f0dolc
Меджикивис
Цитата(thamjell @ Jul 30 2014, 16:15) *
А использование ФНЧ не помешает регулировке?
ФНЧ не позволит регулировать быстрее, чем его собственная частота.

thamjell
Спасибо за советы. Однако микросхему не могу найти в продаже у нас sad.gif придётся ФНЧ разрабатывать
Nightmare76
Индуктивность дросселя в ФНЧ выбирай так, чтобы ток через дроссель не прерывался. И ещё нужно предусмотреть диоды для сброса энергии с дросселя.
A. Fig Lee
То бишь, если PWM имеет частоту 100 kHz, надо режекторный фильтр на 100 kHz?
И будет счастье..
Xenia
Цитата(A. Fig Lee @ Jul 30 2014, 18:18) *
На сахаре писали об интересной микросхеме LTC2645 как раз для таких задач.
Подаешь ШИМ, получаешь напряжение.


Эта микросхема стоит от 5 до 15 долларов штука (efind.ru). Дешевле купить ЦАП, и качество регулирования будет выше.
A. Fig Lee
Цитата(Xenia @ Jul 31 2014, 10:21) *
Эта микросхема стоит от 5 до 15 долларов штука (efind.ru). Дешевле купить ЦАП, и качество регулирования будет выше.

По условию задачи ШИМ УЖЕ есть.
Микросхема недешевая, но для единичных изделий может обойтись дешевле исследований и разработки ФНЧ.
Не то чтоб я грудью стоял за микросхему..
Tanya
Цитата(thamjell @ Jul 31 2014, 15:30) *
Спасибо за советы. Однако микросхему не могу найти в продаже у нас sad.gif придётся ФНЧ разрабатывать

Можно собрать на интеграторе и некотором количестве ключей.
Две ступени.
Первая - интегрируем поочередно два опорных напряжения (разных знаков). Переключаем при смене входного сигнала.
После, например, второго фронта нарастания включается УВХ - с него выход. Интегратор сбрасывается. Если не хочется терять немного (можно это подкорректировать), то надо завести второй интегратор. Довольно громоздко. Но быстро. Быстрее не бывает.
Это если мы не хотим видеть на выходе пилу, которую тоже можно фильтровать.
Примерно то же самое - генератор, реверсивный счетчик, ЦАП с параллельной загрузкой.
iosifk
Цитата(Nightmare76 @ Jul 31 2014, 18:08) *
Индуктивность дросселя в ФНЧ выбирай так, чтобы ток через дроссель не прерывался. И ещё нужно предусмотреть диоды для сброса энергии с дросселя.

А кто сказал, что фильтру нужен "дроссель" и что вообще фильтр "силовой"?
А уж про "режекторный" - вообще лучше не читать...
Для начала неплохо сказать, надо ли что-то регулировать или нет? Т.е. фильтр охвачен обратной связью?
Вообще сильно помогает, если построить ЛАХ и на нем выделить 3 точки.
Подавление пульсаций на частоте ШИМ - сколько?
Усиление в статике - даст ошибку рассогласования - сколько?
Полоса пропускания фильтра?

вот отсюда получится и порядок фильтра. А уж будет в нем "дроссель" или только усилители и конденсаторы - об этом не сказано.
Nightmare76
Про силовой фильтр это я не подумовши брякнул. Хотя может оказаться, что это самый простой способ преобразовать ШИМ в напряжение. Недлостаток этого способа отсутствие КПД при токах нагрузки в несколько мкА. Вместо дросселя можно использовать гиратор.
RC фильтр тоже проблематичен при коэффициенте заполнения меньше 50%. Как вариант можно попробовать после RC фильтра использовать пиковый детектор в режиме хранения с сбросом заднему фронту импульса ШИМ.

Какая частота ШИМ?
thamjell
Цитата(Nightmare76 @ Aug 1 2014, 10:24) *
Какая частота ШИМ?

Частота ШИМ - 500 Гц
Herz
Цитата(Nightmare76 @ Aug 1 2014, 09:24) *
Про силовой фильтр это я не подумовши брякнул. Хотя может оказаться, что это самый простой способ преобразовать ШИМ в напряжение. Недлостаток этого способа отсутствие КПД при токах нагрузки в несколько мкА. Вместо дросселя можно использовать гиратор.
RC фильтр тоже проблематичен при коэффициенте заполнения меньше 50%. Как вариант можно попробовать после RC фильтра использовать пиковый детектор в режиме хранения с сбросом заднему фронту импульса ШИМ.

ФНЧ и есть самый простой способ получения усреднённого напряжения. Интегратор, другими словами. А чем это проблематичен RC фильтр при коэффициенте заполнения меньше 50%? Где в принцип его работы входят проценты?
Tanya
Фиксированная? Заранее известна? Сколько разрядов (разрешение)?
DASM
Да уж... чего только не поставишь заместо RC цепочки в целях распила sm.gif
thamjell
Цитата(Tanya @ Aug 1 2014, 12:54) *
Фиксированная? Заранее известна? Сколько разрядов (разрешение)?

Если быть точнее, то 490 Гц. Фиксированная. Разрешение 8 бит
Tanya
Цитата(DASM @ Aug 1 2014, 13:17) *
Да уж... чего только не поставишь заместо RC цепочки в целях распила sm.gif

Это очень медленно и не очень точно. Иначе ТС и не спрашивал бы.

Цитата(thamjell @ Aug 1 2014, 13:35) *
Если быть точнее, то 490 Гц. Фиксированная. Разрешение 8 бит

Так нужна быстрая и точная реакция, - фиксировать каждую посылку?
Могут ли быть случаи 0 или 100% заполнения?
Plain
Цитата(thamjell @ Jul 30 2014, 15:09) *
Каким образом лучше всего преобразовать сигнал, промодулированный при помощи ШИМ, в постоянное напряжение?

Например, измерить периоды защёлкой таймера микроконтроллера и преобразовать в напряжение ЦАП, либо создать такой же сигнал его встроенным генератором ШИМ, только на порядки больше частоте, и преобразовать в напряжение RC-фильтром.

Если же под сигналом имеется ввиду некое изменяемое аналоговое напряжение, модулированное другим сигналом, т.е. произведение двух сигналов, тогда измерить АЦП микроконтроллера уровень сигнала, измерить защёлкой таймера периоды, вычислить произведение сигналов и создать ЦАП соответствующее результату напряжение.
thamjell
Цитата(Tanya @ Aug 1 2014, 13:37) *
Так нужна быстрая и точная реакция, - фиксировать каждую посылку?
Могут ли быть случаи 0 или 100% заполнения?

Каждую посылку. Случаи 0% и 100% заполнения точно есть
DASM
Ну если каждую, поставьте какой-нить STM8 процик, он пусть заполнение меряет и выкидывает на частоте на порядок большей. дальше - RC фильтр sm.gif Всяко дешевле, чем дроссели мотать. В принципе можно и STM8 с DAC встроенным, но я что-то на барахолке их не нашел по полбакса
iosifk
Цитата(DASM @ Aug 1 2014, 14:07) *
Ну если каждую, поставьте какой-нить STM8 процик, он пусть заполнение меряет и выкидывает на частоте на порядок большей. дальше - RC фильтр sm.gif

Как-то это слишком примитивно...
а вот сделать многофазную ШИМ да еще на более высокой частоте? Это-же насколько круче будет?
Tanya
Цитата(thamjell @ Aug 1 2014, 13:53) *
Каждую посылку. Случаи 0% и 100% заполнения точно есть

Тогда плохо дело... Если нет синхронизации, то, даже точно зная период, мы из посылки 0, 100, 0, 100 легко можем получить все до 50, 50, 50 %.
thamjell
Цитата(Tanya @ Aug 1 2014, 14:17) *
Тогда плохо дело... Если нет синхронизации, то, даже точно зная период, мы из посылки 0, 100, 0, 100 легко можем получить все до 50, 50, 50 %.

Сейчас в голову идея пришла странноватая) Что если поставить заполнение на 100% и этот сигнал направить на какую-либо микросхему с программно управляемым усилением?
TSerg
Цитата(thamjell @ Aug 1 2014, 14:25) *
Сейчас в голову идея пришла странноватая) Что если поставить заполнение на 100% и этот сигнал направить на какую-либо микросхему с программно управляемым усилением?


Прежде чем фантазировать, Вы бы задачу точнее описали.
thamjell
Цитата(TSerg @ Aug 1 2014, 14:58) *
Прежде чем фантазировать, Вы бы задачу точнее описали.

Есть некий прибор, построенный на одном весьма обеднённом функциональностью микроконтроллере (имеется в виду Arduino). Появилась идея немного усовершенствовать этот прибор, но для этого надо бы получить регулируемое постоянное напряжение с аналогового выхода микроконтроллера. Поскольку таковых выходов у него нету, но есть цифровые и ШИМ-выводы, то появилась мысль получить требуемое напряжение при помощи широтно-импульсной модуляции. Ширина импульсов в таком случае будет регулироваться через приложение на компьютере. Вот и вся проблема. Конечно, лучше использовать более продвинутые микроконтроллеры, вроде STM32, однако на переход к ним потребуется гораздо больше времени, чем на получение аналогового напряжения с ШИМ. Если бы было достаточно времени я бы этим занялся, но времени не так уж и много, поэтому хочу сделать всё на ШИМ
DASM
поставьте лучше ЦАП 8 ногий, у Филипса были такие 8-ногие в ДИП корпусе
Nightmare76
Цитата
А чем это проблематичен RC фильтр при коэффициенте заполнения меньше 50%? Где в принцип его работы входят проценты?


проблема в постоянной времени. в идеале постоянная времени RC цепи должна быть равна периоду. Если длительность импульса меньше чем половина периода, то конденсатор разрядится до нуля ДО прихода следующего импульса. Если увеличить постоянную времени, то начинается проблема с переходом когда рядом расположены импульсы с коэффициентом заполнения больше 50 %. Пример: пришёл импульс с длительностью 50% от преиода и амплитудой ШИМ 5В. Конденсатор зарядился от нуля до напряжения 2В. За паузу длительностью 50% от периода он не успеет разрядиться до нуля и на нём останется напряжение Uост > 0 (постоянная времени RC больше периода!!!). Следующий такой же импульс заряжает конденсатор до напряжения 2В + Uост (началась накапливаться ошибка.). Следующий такой импульс зарядит конденсатор до ещё большего значения (примерно 2В + 2Uост) и т.д. Если длительность импульсов не измениться, то через некоторое количество импульсов конденсатор зарядится до 5В.
Поскольку частота низкая, можно ШИМом управлять источником тока который будет заряжать конденсатор (этим мы обеспечим линейность преобразования ШИМ-напряжение), с конденсатора по заднему фронту импульса снять пиковым детектором напряжение пропорциональное длительность импульса ШИМ после чего сбросить напряжение на конденсаторе в ноль тем самым подготовив его к приходу следующего импульса. Ток заряда конденсатора выбирается так, чтобы время заряда конденсатора было равно периоду ШИМ.
thamjell
Цитата(Nightmare76 @ Aug 1 2014, 15:28) *
Поскольку частота низкая, можно ШИМом управлять источником тока который будет заряжать конденсатор (этим мы обеспечим линейность преобразования ШИМ-напряжение), с конденсатора по заднему фронту импульса снять пиковым детектором напряжение пропорциональное длительность импульса ШИМ после чего сбросить напряжение на конденсаторе в ноль тем самым подготовив его к приходу следующего импульса. Ток заряда конденсатора выбирается так, чтобы время заряда конденсатора было равно периоду ШИМ.

Исчерпывающий ответ) Спасибо
DASM
Это дурдом имхо такое городить.

Цитата(Nightmare76 @ Aug 1 2014, 15:28) *
проблема в постоянной времени. в идеале постоянная времени RC цепи должна быть равна периоду. Если длительность импульса меньше чем половина периода, то конденсатор разрядится до нуля ДО прихода следующего импульса. Если увеличить постоянную времени, то начинается проблема с переходом когда рядом расположены импульсы с коэффициентом заполнения больше 50 %. Пример: пришёл импульс с длительностью 50% от преиода и амплитудой ШИМ 5В. Конденсатор зарядился от нуля до напряжения 2В. За паузу длительностью 50% от периода он не успеет разрядиться до нуля и на нём останется напряжение Uост > 0 (постоянная времени RC больше периода!!!). Следующий такой же импульс заряжает конденсатор до напряжения 2В + Uост (началась накапливаться ошибка.). Следующий такой импульс зарядит конденсатор до ещё большего значения (примерно 2В + 2Uост) и т.д. Если длительность импульсов не измениться, то через некоторое количество импульсов конденсатор зарядится до 5В.
Поскольку частота низкая, можно ШИМом управлять источником тока который будет заряжать конденсатор (этим мы обеспечим линейность преобразования ШИМ-напряжение), с конденсатора по заднему фронту импульса снять пиковым детектором напряжение пропорциональное длительность импульса ШИМ после чего сбросить напряжение на конденсаторе в ноль тем самым подготовив его к приходу следующего импульса. Ток заряда конденсатора выбирается так, чтобы время заряда конденсатора было равно периоду ШИМ.

Вы, как мне кажется, совершенно не представляете себе работу RC цепочки, да и понятие "постоянная времени" сильно отличается от классического sm.gif
SSerge
Цитата(Nightmare76 @ Aug 1 2014, 18:28) *
...

"Наша наука простая: но Псалтирю да по Полусоннику, а арифметики мы нимало не знаем."
А просто написать и решить дифуравнение не проще ли?
kovigor
Цитата(SSerge @ Aug 1 2014, 15:20) *
А просто написать и решить дифуравнение не проще ли?

Я не случайно в самом начале ссылку на Трамперта дал. Там теория расписана. И практика - тоже. Да только не слушают меня sm.gif
thamjell
Цитата(SSerge @ Aug 1 2014, 16:20) *
А просто написать и решить дифуравнение не проще ли?

Кажется, что это сарказм biggrin.gif

Цитата(kovigor @ Aug 1 2014, 16:59) *
Я не случайно в самом начале ссылку на Трамперта дал. Там теория расписана. И практика - тоже. Да только не слушают меня sm.gif

Скачал, посмотрел, хотел побыстрее и не стал читать sm.gif А похоже, что придётся laughing.gif
ViKo
Цитата(Nightmare76 @ Aug 1 2014, 14:28) *
проблема в постоянной времени. в идеале постоянная времени RC цепи должна быть равна периоду.

Нет, не должна, и поэтому остальное все неверно.
Постоянная времени должна определяться скоростью изменения НЧ сигнала, модулирующего ШИМ.
Iptash
Самое лучшее ЦАП, тем более на 8 бит. С помощью ШИМ качественного сигнала не получите.
Nightmare76
А если это скорость не известна? Или близка к частоте ШИМ?
DASM
Можно проще. К выходу ШИМ подключаем сервомашику, они как раз управляются ШИМ-ом. На вал сервомашинки крепим потенциометр. Соответсвенно ШИМ будет определять угол, на который сервомашинка повернет вал потенциометра. Ну а снять с потенциометра напряжение, пропорциональное углу поворота вала вроде более простая задача... Вот такая пойдет вполне.
iosifk
Цитата(thamjell @ Aug 1 2014, 15:16) *
Есть некий прибор, построенный на одном весьма обеднённом функциональностью микроконтроллере (имеется в виду Arduino). Появилась идея немного усовершенствовать этот прибор, но для этого надо бы получить регулируемое постоянное напряжение с аналогового выхода микроконтроллера. Поскольку таковых выходов у него нету, но есть цифровые и ШИМ-выводы, то появилась мысль получить требуемое напряжение при помощи широтно-импульсной модуляции. Ширина импульсов в таком случае будет регулироваться через приложение на компьютере. Вот и вся проблема. Конечно, лучше использовать более продвинутые микроконтроллеры, вроде STM32, однако на переход к ним потребуется гораздо больше времени, чем на получение аналогового напряжения с ШИМ. Если бы было достаточно времени я бы этим занялся, но времени не так уж и много, поэтому хочу сделать всё на ШИМ

ну наконец-то...
Обычно я всегда задаю вопрос: "а что на самом деле нужно?"...
И вот наконец-то выясняется, что вся головоломка яйца выйденного не стоит...
1. Делать ШИМ и его потом обрабатывать - это идиотизм. Проще купить копеечный ЦАП с последовательным интерфейсом...
2. А если будут крики о том, что не хватает выводов, то и это не проблема. Или взять сдвиговый регистр и через него управлять периферией. Или на SPI перевесить периферию, что то-же самое. Или на I2C...

А выкрутасы с ШИМ - это бред... И заявления о 0 и 100% - тоже бред... Если все делается в микроконтроллере и код доступен...
В очередной раз подтверждается - НЕПРАВИЛЬНОЕ СУЖДЕНИЕ приводит к НЕПРАВИЛЬНОЙ ЗАДАЧЕ. И порождает бессмысленные дискуссии...

А вот это: "постоянная времени RC цепи должна быть равна периоду" - бред не только редкостный, но еще и дикий, т.к. написал это человек, абсолютно не понимающий ничего в автоматическом регулировании!
Егоров
Прям какой-то конкурс наипростейших решений. От простейшего ЦАП до наипростейшей сервомашинки.
Лучшее решение тут простой RC-фильтр. Постоянная времени его - как масло к каше - чем больше, тем меньше погрешность преобразования.
Но это при условии, что частота ШИМ на 1-2 порядка выше частоты изменения сигнала. И еще, на выходе фильтра должен быть повторитель напряжения, достаточно высокоомный по входу.
Если же частота ШИМ сравнима со скоростью изменения параметра дело обстоит сложнее. Теоретически информация сохраняется, если частота ШИМ хотя бы вдвое выше частоты изменения сигнала, но фильтрация уже требует достаточно тщательных расчетов.
В этом случае поможет не АЦП или ЦАП (они тут вообще ни при чем), а прямое измерение параметров ШИМ ( соотношение длительностей сигнала и паузы) и вычисления, если МК позволит по скорости. Последнее уже за исходными рамками задачи, поскольку требуется преобразование ШИМ - напряжение, а не ШИМ-код.
З.Ы. А в общем-то, выше iosifk заметил верно - неправильная постановка задачи приводит к заведомо неудачным решениям.
Nightmare76
Цитата
А вот это: "постоянная времени RC цепи должна быть равна периоду" - бред не только редкостный, но еще и дикий, т.к. написал это человек, абсолютно не понимающий ничего в автоматическом регулировании!


у как у Вас тут плохо всё..... Вы ещё обратную связь найдите здесь. Я решил задачу для преобразования ШИМ напряжение в пределах ОДНОГО периода. Поэтому время заряда конденсатора должно быть равно периоду. Если частота моделируемого сигнала много больше частоты ШИМ то достаточно просто RC цепи с постоянной времени равной моделируемому сигналу. Читайте внимательно что я написал.
DASM
при ненулевом сопротивлении источника и ненулевой емкости время его полного заряда, собственно говоря - бесконечно. Что дальше ?
Nightmare76
Цитата
при ненулевом сопротивлении источника и ненулевой емкости время его полного заряда, собственно говоря - бесконечно. Что дальше ?


Баян :||||||||:
iosifk
Цитата(Nightmare76 @ Aug 1 2014, 18:03) *
у как у Вас тут плохо всё..... Вы ещё обратную связь найдите здесь. Я решил задачу для преобразования ШИМ напряжение в пределах ОДНОГО периода. Поэтому время заряда конденсатора должно быть равно периоду. Если частота моделируемого сигнала много больше частоты ШИМ то достаточно просто RC цепи с постоянной времени равной моделируемому сигналу. Читайте внимательно что я написал.

Ну ладно, для особо настырных объясняю...
Для того, чтобы получить хоть какую-нибудь "точность" регулирования надо ШИМ сгладить. А если "пределах ОДНОГО периода", то какая будет переменка по отношению к постоянке на выходе такой цепочки?
Это обычная ошибка тех, кто не занимался регулированием.
Я уже написал, что есть 3 точки на ЛАХ, которые все определяют. Так что не надо "теорий" о "преобразовании"....
Есть просто классика - Бесекерский или что-то аналогичное...
DASM
Это не баян, а ТЭЦ. Вам уже предложили перейти к источнику тока , интегратору и УВХ. По сути тот же преобразователь время напряжение.Только нынче это проще все в цифре сделать. Лучше скажите, кто Вам мешает обычный ЦАП поставить? Оффтопик Молодой еврей спрашивает раввина:
- Ребе, я хочу жениться на дочери Лифшица.
- Так женись.
- Но, папа Лифшиц против.
- Так не женись.
- Но, я ее очень люблю.
- Так женись.
- Но, и мои родители против.
- Так не женись.
- Но, я не могу без нее жить.
- Так женись.
- Но, на что мы будем жить?
- Тогда крестись!
- Ребе, почему я должен креститься?
- Тогда ты будешь хх-ать мозги попу, а не мне.
ViKo
Цитата(Nightmare76 @ Aug 1 2014, 16:30) *
А если это скорость не известна? Или близка к частоте ШИМ?

Тогда плохо. И ШИМ не пойдет.
А сгладить ШИМ лучше фильтром на ОУ. Если впереди еще RC цепочку поставить, будет фильтр 3-го порядка. Тогда частота сигнала и частота модуляции могут быть более близкими. Важно подавить частоту модуляции, а частоту сигнала не затронуть.

В любом телевизоре можно найти регулировки с помощью ШИМ.
iosifk
Цитата(ViKo @ Aug 1 2014, 19:06) *
Тогда плохо. И ШИМ не пойдет.
А сгладить ШИМ лучше фильтром на ОУ. Если впереди еще RC цепочку поставить, будет фильтр 3-го порядка. Тогда частота сигнала и частота модуляции могут быть более близкими. Важно подавить частоту модуляции, а частоту сигнала не затронуть.

Если тракт замкнут цепью ОС, то что "фильтр 3-го порядка", что " фильтр 3333-го порядка" будет почти все равно...
А в телевизоре нет тракта замкнутого ОС...
Так что пока ТС не объяснит, что и как он хочет регулировать, можно продолжить то, что написал DASM, т.е. дрючить друг-другу мозги...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.