Jump to content

    

Леонид Иванович

Участник
  • Content Count

    314
  • Joined

  • Last visited

Community Reputation

0 Обычный

About Леонид Иванович

  • Rank
    Местный

Контакты

  • Сайт
    Array

Информация

  • Город
    Array

Recent Profile Visitors

2624 profile views
  1. Похоже, что так. Думал, а вдруг что-то есть готовое. Спасибо.
  2. Есть необходимость посчитать коэффициенты IIR-фильтра 2-го порядка по частоте среза (2.1 Гц при Fs = 96 кГц) и по добротности (0.62). Каким софтом это можно сделать?
  3. В реальности будет немного не так: вместо таймера - программный NCO, вместо capture - обычное внешнее прерывание.
  4. Вот так выглядят подписи. А вот это вижу в настройках. Где там искать подпись?
  5. Делал примерно так же. Несколькими постами выше я приводил диаграммы состояний частотно-фазового детектора, значения FDET там - это и есть значения cnt. Только у меня не было cnt-- и сравнение делал с 1. Получается, что именно так и делают, вопрос можно считать закрытым. А не попадался ли какой-нибудь готовый проект или appnote на тему ФАПЧ управления двигателями? Еще раз - разрядность таймера влияет только на точность представления фазы. Полный диапазон кодов таймера - это угол от 0 до 360 градусов. На каждый импульс таходатчика всегда приходится одно переполнение таймера. Меняется частота вращения - меняется и частота переполнений таймера (фактически там будет NCO, а не таймер, я об этом писал).
  6. Период таймера - это опорный сигнал, он всегда равен номинальному периоду сигнала таходатчика. То, что Вы описали дальше, это АПЧ, а не ФАПЧ.
  7. Присоединяюсь к вопросу. Хочу убрать из подписи ЖЖ, который больше не обновляется, но не знаю, как.
  8. При чем тут разрядность таймера? Она влияет только на точность измерения ошибки фазы.
  9. Файл нашелся чуть по другой ссылке: http://homepages.cae.wisc.edu/~brodskye/mr/phaseunwrap/unwrap.c Только в данном случае не вижу от него пользы. Хотелось бы увидеть пример, как реализуют управление электродвигателями на микроконтроллере не спомощью PID, а с помощью PLL. Вроде, распространенная задача, а ничего найти почему-то не удалось.
  10. > почему не подходит ЧФД на двух триггерах с выходом типа "зарядовый насос" ? Потому что он увеличивает количество компонентов в устройстве. Требуется полностью цифровое решение, которое будет реализовано внутри микроконтроллера. > копите абсолютную фазу По сравнению с этим мои костыли выглядят менее страшными: //Состояния частотно-фазового детектора: //NCO OVF: _|_____|_____|_____|_____|_____|_ //SENSOR: _____|_____|_____|_____|_____|____ //FDET: 0 1 0 1 0 1 0 1 0 1 0 //FREQ OK OK (1->0) //NCO OVF: _|_____|_____|_____|_____|_____|_ //SENSOR: _____|____|_|___|||____|_____|____ //FDET: 0 1 0 1 2 0 123 0 1 0 1 0 //FREQ HI H H(2->0, 3->0, etc) //NCO OVF: _|_____|_____|_____|_____|_____|_ //SENSOR: _____|___________|_____|_____|____ //FDET: 0 1 0 0 1 0 1 0 1 0 //FREQ LO L (0->0) Самое близкое, что находил по теме, это реализация частотно-фазового детектора на FPGA, но и там нет "честного" насыщения, коды при отклонении частоты дергаются. A FPGA Implementation of a PLL.pdf
  11. Если скорость двигателя выше номинальной, частотно-фазовый детектор должен выдавать максимальное положительное значение ошибки. Если ниже - максимальное отрицательное. Разность двух последовательных значений таймера ничего не даст, например, в случае вдвое более низкой скорости двигателя получим номинальное значение. Не хотелось бы детектор разбивать отдельно на частотный и фазовый. Лучше, если фазовый детектор будет иметь зоны насыщения при больших ошибках. Аналогично детекторам микросхем синтезаторов частоты.
  12. Задача тривиальная - стабилизировать скорость вращения электродвигателя с помощью ФАПЧ. В качестве генератора опорного сигнала выступает таймер (потом будет NCO, но это сути не меняет), импульсы с таходатчика производят захват мгновенного значения таймера, эта величина сразу дает текущую ошибку фазы. Проблема состоит в том, что у такого фазового детектора передаточная характеристика пилообразная. Будут захватываться сигналы кратной частоты, чего допустить нельзя. Нужен частотно-фазовый детектор, у которого при больших ошибках передаточная характеристика должна быть горизонтальной. Вроде, это называется phase unwrapping. Как ни странно, не удалось найти вменяемых примеров, как это красиво делается. Придумывается только какая-то громоздкая машина состояний, состояния которой должны меняться в прерываниях по захвату и переполнению, и решение принимается на основе анализа нескольких периодов. Как это обычно делают?
  13. А зачем входные токи ОУ компенсировать? Ну будет смещение нуля на выходе, так в такой схеме оно в любом случае будет из-за разброса полевиков, вклад ОУ здесь незначительный. Нулевую линию дальше подстроите в осциллографе - и всё. Если хотите хорошего нуля от такого пробника, тогда надо вводить сервопетлю по DC на низкочастотном прецизионном ОУ.