как определить постоянную времени RC в цифро-аналоговом PWM фильтре нижних частот?

Я ищу лучшую постоянную времени RC и ее причину в ШИМ для преобразования цифрового сигнала в аналоговый на основе рабочего цикла, частоты и других параметров. Частота ШИМ 10 кГц.

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

Ответы (5)

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

RC-фильтр первого порядка имеет частоту среза

ф с знак равно 1 2 π р С

и спад 6 дБ/октава = 20 дБ/декада. На графике показана частотная характеристика для частоты среза 0,1 Гц (синий), 1 Гц (фиолетовый) и 10 Гц (другой цвет).

введите описание изображения здесь

Итак, мы видим, что для фильтра 0,1 Гц основная частота ШИМ-сигнала 10 кГц подавляется на 100 дБ, это неплохо; это даст очень низкую пульсацию. Но!

введите описание изображения здесь

На этом графике показана переходная характеристика для трех частот среза. Изменение скважности — это скачок уровня постоянного тока и некоторые сдвиги гармоник сигнала 10 кГц. Кривая с лучшим подавлением 10 кГц реагирует медленнее всего, по оси абсцисс отложены секунды.

введите описание изображения здесь

На этом графике показана характеристика времени RC 30 мкс (частота среза 5 кГц) для сигнала 10 кГц с рабочим циклом 50 %. Имеются огромные пульсации, но они реагируют на изменение рабочего цикла от 0 % за 2 периода или 200 мкс.

введите описание изображения здесь

Это время RC 300 мкс (частота среза 500 Гц). Все еще некоторая пульсация, но переход от 0 % до 50 % рабочего цикла занимает около 10 периодов или 1 мс.

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

Эта веб-страница вычисляет, что для R = 16 кОм и C = 1 мкФ мы имеем частоту среза 10 Гц, время установления до 90 % 37 мс для размаха пульсаций 8 мВ при максимальном напряжении 5 В.

edit
Вы можете улучшить свой фильтр, перейдя на более высокие порядки:

введите описание изображения здесь

Синяя кривая соответствует простому RC-фильтру со спадом 20 дБ/декаду. Фильтр второго порядка (фиолетовый) имеет спад 40 дБ/декада, поэтому для той же частоты среза будет подавление 120 дБ на 10 кГц вместо 60 дБ. Эти графики довольно идеальны и могут быть лучше всего получены с активными фильтрами, такими как Саллен-Ки.

введите описание изображения здесь

Уравнения

Размах напряжения пульсаций для RC-фильтра первого порядка в зависимости от частоты ШИМ и постоянной времени RC:

В р я п п л е знак равно е г ф п Вт М р С ( е 1 ф п Вт М р С е г ф п Вт М р С ) ( 1 е г ф п Вт М р С ) 1 е 1 ф п Вт М р С В +

Э&ОЕ. "d" - рабочий цикл, 0..1. Пульсация наибольшая для d = 0,5.

Реакция на скачок до 99 % от конечного значения составляет 5 x RC.

Частота среза для фильтра Саллена-Ки:

ф с знак равно 1 2 π р 1   р 2   С 1   С 2

Для фильтра Баттерворта (максимальная плоскость): R1 = R2, C1 = C2.

Привет, спасибо за ваш ответ. Я ищу уравнения, чтобы решить эту проблему и определить количество Rc на основе рабочего цикла, частоты и других параметров. Я ценю это, если кто-нибудь может мне помочь
Хорошие графики! Какое программное обеспечение вы использовали?
@m.Alin - 1, 2 и 5: Mathematica, 3 и 4: некоторые старые вещи, которые я когда-то делал в Excel.
Большое спасибо за ваш ответ. это было очень полезно
@m.Alin - All Mathematica (я заменил изображения Excel)
Они выглядят очень аккуратно. Я бы хотел, чтобы у Matlab были такие красивые графики.
@ m.Alin - я бы хотел, чтобы Scilab тоже - это действительно очень хорошо. У Стивена всегда самые красивые ответы :-)
@Oli и m.Alin - я видел удивительные вещи, которые можно делать с Mathematica. Это абсолютно отличный пакет, не только для математического анализа. Я нашел эту картинку , созданную с помощью Mathematica, здесь . Это тоже приятно. :-)
@m.Alin - см. мой комментарий на 2 см выше :-)
Это волшебство! :-)
@Steven - это крутая штука, надо как-нибудь попробовать.

Как сказал Стивен, это компромисс между ослаблением частоты ШИМ и временем отклика. Вот почему любое такое решение должно начинаться со спецификации того, что вы хотите получить от результирующего аналогового сигнала. Каким должно быть отношение сигнал/шум или, по крайней мере, какой уровень шума на частоте ШИМ вы можете допустить? Как быстро он должен прийти к минимальному уровню шума? Или наоборот, какая верхняя частота вас волнует?

Обратите внимание, что может оказаться невозможным соответствие определенному набору критериев с определенным выходом ШИМ. Допустим, вам нужен качественный голосовой вывод. Мы скажем, что это до 8 кГц и 60 дБ сигнал/шум. Этого не произойдет ни с одним разумно управляемым аналоговым фильтром с ШИМ 20 кГц, и уж точно не с чем-то настолько простым, как одиночные резисторы R и C.

В качестве примера, давайте вернемся назад и посмотрим, какими должны быть характеристики ШИМ для поддержки приведенного выше примера голоса с одним фильтром R,C. Мы уже говорили, что частота спада -3 дБ составляет 8 кГц, поэтому мы установили R и C на это значение. Частота спада одного фильтра R,C:

  F = 1 / (2 π RC)

Если R в омах, C в фарадах, то F в герцах. Должно быть очевидно, что это уравнение можно перестроить, чтобы решить для любого из R, C или F, учитывая два других. Я всегда держу 1/(2 π) = 0,15915 в регистре своего калькулятора, потому что это вычисление регулярно используется в электронике. Затем я просто делю это на два из R, C или F, чтобы получить третье.

У нас есть две степени свободы, и приведенное выше уравнение определяет только одну из них. О другом можно думать как об импедансе, который должен иметь результирующий сигнал. Давайте возьмем около 10 кОм, что мы и сделаем R, просто чтобы посмотреть, что получится C:

  1 / (2 π 8 кГц 10 кОм) = 1,99 нФ

Это в основном стандартное значение конденсатора 2 нФ, поэтому мы просто будем использовать его. Если бы не было общего значения, мы бы выбрали близкое, а затем вернулись и соответствующим образом скорректировали R. Резисторы доступны в гораздо более тонких вариациях и с более высокими допусками, чем обычные конденсаторы, поэтому вы обычно находите близкое значение конденсатора, а затем позволяете ему управлять точным значением резистора.

Итак, мы остановились на R = 10 кОм и C = 2 нФ. Обратите внимание, что это произошло из-за требований к верхней частоте 8 кГц. У нас больше нет выбора, поэтому время установления и отношение сигнал/шум будут такими, какими они будут. Все, что мы можем сейчас сделать, это определить, будет ли он достаточно хорошим, или, наоборот, какие характеристики ШИМ потребуются для поддержки спецификаций выходного сигнала.

Поскольку в спецификации указано отношение сигнал/шум 60 дБ, это означает, что шум должен быть меньше 1 части на 1000 напряжения, что означает, что частота ШИМ должна быть ослаблена настолько сильно. Один фильтр R,C ослабляет обратно пропорционально частоте после частоты спада. Это приближение, которое ломается вблизи частоты спада и ниже, но в большинстве случаев оно достаточно хорошо после октавы или двух после частоты спада. Другими словами, 16 кГц будет ослаблено на 2 с некоторой ошибкой, 32 кГц на 4 с меньшей ошибкой, и после этого вы можете просто разделить интересующую частоту на частоту спада, чтобы получить затухание. Мы хотим, чтобы частота ШИМ была ослаблена на 1000, а это значит, что она должна быть 8 МГц или выше. Это много, но выполнимо с некоторыми процессорами. Например,

Теперь давайте посмотрим на разрешение ШИМ. Опять же, это обусловлено характеристикой отношения сигнал/шум 60 дБ, что, как мы уже знаем, означает 1:1000. Для этого потребуется разрешение ШИМ не менее 999 (вы всегда получаете на один выходной уровень больше, чем разрешение ШИМ). Это означает, что внутренний тактовый импульс слайса ШИМ должен работать в 999 раз больше выходной частоты ШИМ 8 МГц, или в основном 8 ГГц. Этого не произойдет с достаточно доступными готовыми деталями.

Однако есть способ обойти эти ограничения, а именно использовать больше, чем один фильтр R,C. Когда мне нужен хороший аналоговый сигнал, я обычно использую два или три из них последовательно. Давайте посмотрим, как использование трех последовательных фильтров R,C меняет ситуацию.

Первоначально мы сказали, что наша верхняя интересующая частота составляет 8 кГц, что означает, что мы можем допустить снижение на 3 дБ, если мы не укажем иное. Один фильтр R,C будет ослаблять на 3 дБ на частоте спада, поэтому мы установили его правильно на 8 кГц. У нас не может быть трех фильтров на частоте 8 кГц, так как они вместе ослабят сигнал на 9 дБ. Итак, мы перемещаем фильтры по количеству полюсов (в данном случае отдельные фильтры R, C).

Таким образом, три фильтра R, C (три полюса) работают на частоте 24 кГц. Кажется, что мы потеряли почву под ногами, делая это, но большим преимуществом является то, что частоты выше, которые теперь ослабляются кубическим отношением, а не просто отношением, как с одним полюсом. Опять же, мы хотим, чтобы частота ШИМ была ослаблена на 1000, что составляет 10 ^ 3, поэтому нам нужно всего лишь в 10 раз превышать частоты спада фильтра, что означает, что 240 кГц достаточно высоки. Это большая разница с 8 МГц. Теперь внутренние часы ШИМ или частота среза ШИМ должны быть только 240 МГц. Это все еще много, но достижимо.

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

Привет, спасибо за ваш ответ. Я ищу уравнения, чтобы решить эту проблему и определить количество Rc на основе рабочего цикла, частоты и других параметров. Я ценю это, если кто-нибудь может мне помочь
@azin: Рабочий цикл не имеет к этому никакого отношения, но имеет значение частота ШИМ, как я подробно описал в своем ответе.

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

Следует также отметить, что, хотя широтно-импульсная модуляция является наиболее распространенной формой модуляции рабочего цикла, она не единственная. Один простой подход, который может быть очень полезен в тех случаях, когда целевое выходное напряжение не будет меняться слишком часто и где выходное напряжение, скорее всего, будет ближе к центру диапазона, чем к краям, заключается в генерации набора сигналов. путем вычисления (текущее значение счетчика "а не" предыдущее значение счетчика) и объединения этого сигнала с битами желаемого значения данных в обратном порядке (так что старший бит значения данных подвергается операции И с xor текущего счетчика LSB и предыдущий). Использование такого подхода, например, с шестибитной модуляцией рабочего цикла будет означать, что волна рабочего цикла 32/64 будет представлена ​​частотой, равной половине тактовой частоты ШИМ, а не меандр с частотой 1/64 тактовой частоты ШИМ. Рабочий цикл 33/64 будет представлен в основном частотой, равной половине тактовой частоты ШИМ, но с добавлением некоторых сверхвысоких импульсов.

Вот демонстрация того, о чем я говорю.

Привет, спасибо за ваш ответ. Я ищу уравнения, чтобы решить эту проблему и определить количество Rc на основе рабочего цикла, частоты и других параметров. Я ценю это, если кто-нибудь может мне помочь
@supercat - кажется, ваш ответ описывает метод, который обладает общими свойствами, о которых я думал и искал (гораздо более высокая частота, чем базовая частота ШИМ). Вы знаете название этой техники?
@gbulmer: я не знаю названия этого подхода, но его можно наблюдать в конструкции CD4089 (см . техническое описание на ti.com/lit/ds/symlink/cd4089b.pdf ).

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

Когда вы рассматриваете «наилучшее количество RC?», Какие допущения необходимо учитывать для любого проекта;

  1. Каково сопротивление фильтра по отношению к сопротивлению источника и нагрузки?

    Если не критично, выбирайте R между источником и нагрузкой. Но скажем, если драйвер CMOS имеет значение 10 ~ 100 Ом, а нагрузка составляет 100 кОм, но вам нужна точность 0,3% по потерям постоянного тока, тогда выберите R << 0,3% от R-нагрузки, или, как я называю это, «метод отношения импеданса». из соображений нагрузки, поэтому здесь R <0,003 * 1e5 = 300 Ом. Этот выбор R не является критическим, но вы должны позаботиться о том, чтобы не нагружать фильтр, поэтому вы можете выбрать коэффициент импеданса для быстрого расчета потерь по постоянному току и подавления переменного тока.

    • если вы хотите, чтобы шум при 10 кГц ШИМ был <1% от источника, тогда выберите импеданс Zc(f) <1% от R для серии RC LPF.
    • если вы хотите снизить пульсации >80 дБ на всех гармониках выше 0,5 МГц из-за помех, скажем, на AM-радио или испытаниях EMC FCC/CE, снова посмотрите на коэффициент импеданса конденсатора, включая ESR, относительно R, оцените значение C, затем выберите немного большее значение с помощью запас по темп. терпимость и подумайте, какой запас вам нужен. Вы знаете, что фильтры 1-го порядка имеют наклон 20 дБ/декада, и тогда вы можете решить, достаточно ли фильтра 1-го порядка. Каскадные RC-фильтры должны учитывать эффекты нагрузки на каждом каскаде. LC-фильтры стоят дороже, и может потребоваться активный фильтр.

Предполагая, что вы знаете критерий импеданса конденсатора, это простое решение. В противном случае, чтобы найти импеданс в середине источника и нагрузки, рассмотрим один метод Rf = √(Rs*Rl), где Rf — значение RC фильтра для источника, Rs и нагрузки Rl как один метод для среднего диапазона.

Что хорошо в дизайне, так это то, что в зависимости от ваших критериев часто бывает несколько «лучших» ответов для значения RC. :)

Определите наилучшую постоянную времени RC в цифро-аналоговом ШИМ-фильтре нижних частот?

Лучший ответ зависит от разных вопросов;

? Каков спектр исходных данных? ЧБ=? ? Насколько приемлем отказ от несущей ШИМ? Аттен = 40 дБ? 60? 10??

При разработке фильтра, основанного только на постоянной времени, игнорируется более важное значение понимания сохранения данных. Лучше всего определить исходный сигнал, чтобы можно было разработать простой «оптимальный согласованный фильтр». Нам нужно позаботиться о сохранении исходного сигнала и подавлении несущего сигнала (ШИМ f).

Вы можете выбрать любой LPF N-го порядка, чтобы фильтр соответствовал исходному сигналу. Простые 1-чиповые переключаемые конденсаторные фильтры или активные фильтры дадут наилучшие результаты. Тип ФНЧ зависит от критериев соответствия исходному сигналу.

Pick Best = максимально плоская частота. ответ, или групповая задержка mf, или самые крутые юбки, или фильтр Найквиста до 1/2 PWM f.

Затем следующий лучший метод:

определяют величину джиттера напряжения из-за несовершенных RC-фильтров.

Если кто-то разрабатывал VCXO с ФАПЧ для ВЧ и использовал ШИМ для управления контуром, вас могли бы волновать паразитные боковые полосы от ШИМ, поэтому вам нужно рассмотреть LPF с отметкой на ШИМ. Это легко, как только вы получите ответ;

Насколько приемлем отказ от несущей ШИМ