Я ищу лучшую постоянную времени RC и ее причину в ШИМ для преобразования цифрового сигнала в аналоговый на основе рабочего цикла, частоты и других параметров. Частота ШИМ 10 кГц.
Лучший RC бесконечен, тогда у вас будет идеальный выход постоянного тока без пульсаций. Проблема в том, что реакция на изменения рабочего цикла также занимает целую вечность. Так что это всегда компромисс.
RC-фильтр первого порядка имеет частоту среза
и спад 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:
Э&ОЕ. "d" - рабочий цикл, 0..1. Пульсация наибольшая для d = 0,5.
Реакция на скачок до 99 % от конечного значения составляет 5 x RC.
Частота среза для фильтра Саллена-Ки:
Для фильтра Баттерворта (максимальная плоскость): R1 = R2, C1 = C2.
Как сказал Стивен, это компромисс между ослаблением частоты ШИМ и временем отклика. Вот почему любое такое решение должно начинаться со спецификации того, что вы хотите получить от результирующего аналогового сигнала. Каким должно быть отношение сигнал/шум или, по крайней мере, какой уровень шума на частоте ШИМ вы можете допустить? Как быстро он должен прийти к минимальному уровню шума? Или наоборот, какая верхняя частота вас волнует?
Обратите внимание, что может оказаться невозможным соответствие определенному набору критериев с определенным выходом ШИМ. Допустим, вам нужен качественный голосовой вывод. Мы скажем, что это до 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, используя каскадные каскады RC. В чистом многокаскадном пассивном RC-фильтре нельзя получить такие же хорошие характеристики, как в активных фильтрах, но, тем не менее, производительность может быть лучше, чем с одним каскадом. К сожалению, я не знаю каких-либо особенно хороших методов вычисления оптимальных значений RC.
Следует также отметить, что, хотя широтно-импульсная модуляция является наиболее распространенной формой модуляции рабочего цикла, она не единственная. Один простой подход, который может быть очень полезен в тех случаях, когда целевое выходное напряжение не будет меняться слишком часто и где выходное напряжение, скорее всего, будет ближе к центру диапазона, чем к краям, заключается в генерации набора сигналов. путем вычисления (текущее значение счетчика "а не" предыдущее значение счетчика) и объединения этого сигнала с битами желаемого значения данных в обратном порядке (так что старший бит значения данных подвергается операции И с xor текущего счетчика LSB и предыдущий). Использование такого подхода, например, с шестибитной модуляцией рабочего цикла будет означать, что волна рабочего цикла 32/64 будет представлена частотой, равной половине тактовой частоты ШИМ, а не меандр с частотой 1/64 тактовой частоты ШИМ. Рабочий цикл 33/64 будет представлен в основном частотой, равной половине тактовой частоты ШИМ, но с добавлением некоторых сверхвысоких импульсов.
Вот демонстрация того, о чем я говорю.
Все отличные ответы, данные до сих пор, хорошо написаны и актуальны, но часто для лучшего ответа нужен лучший вопрос.
Когда вы рассматриваете «наилучшее количество RC?», Какие допущения необходимо учитывать для любого проекта;
Каково сопротивление фильтра по отношению к сопротивлению источника и нагрузки?
Если не критично, выбирайте R между источником и нагрузкой. Но скажем, если драйвер CMOS имеет значение 10 ~ 100 Ом, а нагрузка составляет 100 кОм, но вам нужна точность 0,3% по потерям постоянного тока, тогда выберите R << 0,3% от R-нагрузки, или, как я называю это, «метод отношения импеданса». из соображений нагрузки, поэтому здесь R <0,003 * 1e5 = 300 Ом. Этот выбор R не является критическим, но вы должны позаботиться о том, чтобы не нагружать фильтр, поэтому вы можете выбрать коэффициент импеданса для быстрого расчета потерь по постоянному току и подавления переменного тока.
Предполагая, что вы знаете критерий импеданса конденсатора, это простое решение. В противном случае, чтобы найти импеданс в середине источника и нагрузки, рассмотрим один метод 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 с отметкой на ШИМ. Это легко, как только вы получите ответ;
Насколько приемлем отказ от несущей ШИМ
азин