Перейти к содержанию
    

shkal

Свой
  • Постов

    279
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные shkal


  1. Shkal.

    "у одного интегратора сдвиг фазы 90, у двух последовательно - 180". У Вас не интеграторы у Вас ФНЧ.

     

    Для определения сдвига фазы на частоте, более чем на декаду превышающую частоту среза, это абсолютно всё равно.

  2. ukpyr, спасибо, ответ максимально по делу. Пойду читать литературу по state machine.

    Вот ещё какой вопрос возник: каким образом реализуются неблокирующие функции задержки в такой среде?

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

  3. Не записывал, я это "на пальцах" делаю. Можно просто на клетчатой бумажке нарисовать ЛАЧХ, ЛФЧХ - самый наглядный инструмент для цепей 1 порядка.

    В микрокапе - probe AC анализ и покрутить R3, глядя на АЧХ и ФЧХ - очень наглядно.

  4. ICx - это и есть input capture. Если использовать ОДИН IC, то от задержки зависит, если два - не зависит. IC в принципе не может измерять частоты, большие чем Fтакт\2, без прескейлера. Повторять здесь дискуссию по поводу алгоритма смысла не вижу - он единственно возможный на НЧ. PIC24H в асинхронном режиме может измерять до 50 МГц (но соответственно только при прямом счёте)

  5. ICх буферизированы, но там надо читать одновременно состояние 2-х таймеров. Или с небольшой задержкой, но время задержки должно быть точно одинаковым в начале и конце цикла измерения. Хотя можно второй ICх задействовать, но лишнюю ногу жалко, уже и так не хватает. О, кстати, а можно ли входы разных ICx сконфигурить на одну ногу?

  6. Частотомер процессорного времени практически не занимает, одно измерение = 2 прерывания за период измерения (0.2 с) + прерывания переполнения 2-х таймеров, копейки даже при максимальной входной частоте.

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

  7. Это мой первый опыт общёния с контроллерами на старости лет, так что прошу сильно не пинать.

    Итак, делается управляющая часть для НЧ-генератора 5Гц-1МГц. Она должна выполнять следующие функции:

    1) Опрос состояния органов управления - кнопки, энкодер, переключатели.

    2) Выдачу команд по SPI на ЦАП, управляющий частотой и релюшки переключения диапазонов.

    3) Измерение частоты генератора , алгоритм приведён здесь: алгоритм

    4) Отображение частоты и другой информации на LCD 16x2

     

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

     

    Сейчас написаны пункты №1, №2, №4, и приступаю к №3. Вот тут-то и встал вопрос об общей структуре программы.

    Фактически параллельно должны выполняться несколько задачь

    №1 требует периодического выполнения по таймеру с точностью ,скажем, +-20% от номинала. Сейчас написана по прерыванию одного из таймеров.

    №2 требует значительного времени на исполнение команды (рэле-медленное устройство)

    №3 требует максимально быстрой и всегда одинаковой по кол-ву циклов реакции на прерывание ICx, в противном случае возникают ошибки счёта.

     

    Где можно посмотреть - почитать общие подходы к построению таких программ? Единственная книга по теме, котораю попалась в руки - embedded multitasking

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

     

    Да, пишется всё под pic24h

  8. Тут простая логика: у одного интегратора сдвиг фазы 90, у двух последовательно - 180, следовательно, надо второй интегратор надо с некоторой частоты превратить в обычный усилитель (ослабитель ;)

    А какая именно частота нужна - проще и точнее посмотреть в симуляции, чем считать. Я .cir не сохранял даже, его по картинке набрать 5 минут.

  9. Это просто два интегратора последовательно, Ку=1 в полосе пропускания, следовательно R1=R4, R2=R5.

    Частота среза каждого звена F=1/(2*pi*R1*C1)=1/(2*pi*R2*C2).

    Дальше нужно уменьшить сдвиг фаз на 5КГц введением нуля на частоте примерно 5КГц\3

    Fo=1/(2*pi*C2*R3). Изменяя один элемент R3, можно подстраивать сдвиг фазы на нужной частоте (естественно, за счёт ухудьшения подавления на этой частоте)

  10. Сомнительным? А вот такая функция - sin((w0+a*sin(w1*t))*t), где w1 много меньше частоты измерений? Или внутри не синус, а какая-нибудь другая медленная функция... Ведь нагрузка меняет частоту вращения генераторов электростанций

    А про фурье... Вы берете сигнал за фиксированное время и думаете, что он периодический? Что мы таким образом измеряем и кого обманываем?

     

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

    Использовать БПФ для измерения частоты предложил не я, я наоборот считаю для этой задачи нужным измерять частоту и сдвиг фаз с помощью модуля input capture, ссылку на алгоритм я давал.

     

    Кстати, если задача топикстартера практическая, а не учебная, может проще ade7763

    $1.66 в малых партиях. В даташите можно найти массу полезного о сетевых измерениях.

  11. Первое положение сомнительно...

    Не могли бы Вы уточнить, что именно сомнительно?

    на спектрограмме увидите реальный спектр

    Я его видел неоднократно. Что там не соотвествует тому, что я пишу?

    электромагнитные наводки на сеть питания

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

    Во всех остальных это не наводки, а падение напряжения на комплексном сопротивление сети, вызванное током потребителей.

  12. Напряжение в сети представляет собой сумму синусойды с частотой 50 Гц (которая безусловно является периодическим сигналом) и различных помех в широком диапазоне частот.

    Для того, чтобы помехи не влияли на процесс измерения частоты, их нужно отфильтровать. Что тут не согласуется?

    Очень периодическая функция - это шутко была.

  13. Представляю, там в законченных УМЗЧ высокого класса обычно раньше всё разбивали на три каскада усиления, а в аппаратуре класса HiFi и HiEnd делали селлективное усиление по полосам, кроме того вспомнил усилители типа D и ламповые усилители. Линейный блок питания и выходной каскад в таких усилителях обычно обвешаны гирляндой электролитов. Ну и какой из вариантов схемотехники мне надо себе представить?

    А теперь разберите современные китайские Диалоги или Genius со встроенными блоками питания и усилителями: ничего подобного в помине нет. Трансформатор обычно работает на пределе, электролиты - по минимуму. После достижения номинальной мощности начинается просадка цепей питания со всеми вытекающими последствиями.

    В этой теме это off, но 99.9% УМЗЧ с линейным БП имеют мостовой выпрямитель с ёмкостным фильтром. Ток, потребляемый от сети таким БП имеет вид импульсов с частотой 100Гц и большой скважностью (>10 навскидку), Ток, потребляемый самим усилителем от своего БП, модулирует эти импульсы по ширине. Очевидно, что спектр такого сигнала представляет собой в основном составляющую 100Гц и её высшие гармоники, а не составляющие с частотой тока, потребляемого усиоителем от своего БП.

     

    По поводу дрейфа фильтра - пугалка. Конденсаторы NP0 имеет ТКЕ порядка 30ppm, или 3Е-5, резисторы тонкоплёночные скажем 25 ppm. В диапазоне ,допустим, 0+40С уходы порядка

    0,0012. Теперь возьмём Бесселя второго порядка с частотой среза 100 Гц, у него уход фазового сдвига на 50Гц при изменении ёмкостей на +-5% составляет 2 градуса - видим, что дрейф можно вообще не учитывать.

    А вот при отсутствии фильтра и частоте семплирования 1 КГц помеха с частотой 550Гц окажется на 50 герцах, и никакой ЦФ её не отфильтрует.

    Надо сначала получить чистый синус, а уж потом измерять его частоту.

    А алгоритм измерения нужно переписывать, однозначно.

     

    Tanya напряжение в сети - сигнал очень периодический

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

    Вы поподробнее опишите, что вы делаете: что это за таинственный генератор с выходным 10К, где он стоит, как (каким кабелем) сигнал подаётся в указанную точку,

    и отключали ли вы родной возбудитель при подаче.

  15. Если использовать ФНЧ, а не полосовой фильтр, и частоту среза взять герц 100, то плавать ничего не будет.

    УЗЧ с линейным БП в пределах рассматриваемой задачи помех в сети с частотой входного сигнала не создают. Вы форму и спектр тока потребления УЗЧ представляете?

    Гистерезис в компараторе нужен для исключения дребезга при подаче на вход зашумлённого сигнала (каковым напряжение в сети и является)

    Алгоритм частотомера должен быть обратного счёта, иначе точность получиться +-1Гц при интервале измерения 1 с.

    MaslovVG Вы вот серьёзно предлагаете старттопику садиться писать ЦФ и БПФ, вместо того, чтобы впаять 1 ОУ 2 резистора и 2 конденсатора?

    Тем более, что ОУ уже есть. А фильтр пред АЦП должен быть всегда, если не стоит задачи собрать помехи из всей возможной полосы.

×
×
  • Создать...