В эпоху расцвета цифровых вольтметров иногда с ностальгией вспоминаешь старые, которые со стрелочкой. Цифры - это хорошо до тех пор, пока измеряемая величина постоянная. Если же она слегка меняется, прыгает, то по цифрам сложно уследить за характером изменений и представить себе, что конкретно с этой величиной происходит. Редко когда бывает чтобы измеряемое напряжение оставалось постоянным до четвертой значащей цифры. Из-за шума оно будет всегда слегка меняться, и при снятии показаний обычно хочется взять некое средненаблюдаемое значение. Усреднять в уме прыгающие на экране цифры - занятие неприятное и неточное.
Бывает еще и так, что измеряешь величину заведомо переменную, и снимать показания не требуется, а нужно лишь наблюдать за изменениями. В этом случае тем более наблюдать за стрелкой приятнее, чем за цифрами.
Недавно мне пришлось реализовывать в виде программы такую вот измерительную стрелку на экране компьютера. Я сделал, правда, не стрелку, а столбик переменной высоты, но суть одна и та же.
Когда имеешь дело со стрелкой настоящего прибора, то принимаешь ее поведение как данность. Если подать на вольтметр напряжение, то его стрелка переместится в нужное место не сразу, а с некоторой задержкой. Характер движения стрелки при переходных процессах зависит от конструкции вольтметра, изменять его затруднительно, да и никому в голову не приходит. "Не трожь машину, пока она работает".
Иное дело - экран компьютера, где программист может нарисовать виртуальную "стрелку" так, как ему заблагорассудится. Реакцию такой стрелки на переходные процессы тоже можно сделать какой захочется. Вот тут-то и встает вопрос: как сделать лучше?
С одной стороны хочется, чтобы стрелка быстро реагировала на изменения измеряемой величины. С другой стороны, реакция стрелки должна быть не слишком быстрой, чтобы давать эффект сглаживания колебаний и шумов. В конце концов, за слишком быстрыми изменениями не успевает уследить глаз. Есть и другие соображения. Например, при измерении напряжения переменного тока необходимо иметь усреднение. Если частота измеряемого напряжения составляет 10Гц, то после выпрямления образуется пульсирующее напряжение 20Гц. Чтобы корректно отобразить амплитуду, стрелка должна эффективно подавлять колебания на частотах 20Гц и выше.
Только что я описал действие фильтра низких частот (ФНЧ). И действительно, свою первую программную "стрелку" я реализовал с помощью цифрового ФНЧ. Задался частотой, на которой нужно подавить колебания (20Гц) и выбрал наилучший (как я тогда думал) тип фильтра - фильтр Кауэра 4го порядка, который имел очень крутой срез и плоскую полосу пропускания. Грубо говоря, моя стрелка в точности повторяла форму сигнала на частотах ниже 10Гц, а колебания выше 10Гц почти полностью подавляла. И эти ее свойства я счел очень привлекательными.
Пошли полевые испытания. Стрелка вела себя примерно как я и ожидал - относительно медленно реагировала на изменения входного сигнала, а еще, после установления постоянного входного сигнала, она некоторое время еще колебалась, прежде чем остановиться. Некоторые стрелки из реальной жизни тоже ведут себя так - сначала они "проскакивает" верные показания, а потом, после некоторых колебаний, устанавливаются там, где надо.
Колебания моей стрелки затухали слишком уж долго. Чтобы измерить напряжение, мне приходилось ждать несколько секунд, пока показания установятся.
Характер колебаний стрелки не был загадкой для меня. Им является переходная характеристика фильтра. Все мы (или почти все :) знаем, что если взять фильтры Баттерворта, Чебышева и Кауэра одного и того же порядка, то импульсная и переходная характеристики будут больше всего колебаться именно в случае Кауэра. То есть, на первый взгляд, я явно выбрал неподходящий тип фильтра. Но не все так просто. Чтобы обеспечить заданные характеристики в частотной области, приходится выбирать фильтры Чебышева или Баттерворта более высокого порядка, чем Кауэра, и вот тогда их фазовая и прочие характеристики куда более искаженные!
Позже я пришел к выводу, что плоская полоса пропускания - совсем не нужное свойство для стрелки. Главное - это то, чтобы на постоянном сигнале она давала заданную реакцию, и еще чтобы на некоторой высокой частоте она в достаточной степени подавляла колебания. Все! То, что происходит от постоянного тока до частоты подавления, в принципе, не играет роли. Время установления показаний - важный параметр. Допустим, я хочу измерить постоянную величину с точностью 1%. Тогда по переходной характеристике фильтра я смотрю, через какое время она затухает до величины 1 +- 1%. Это и есть время установления. И вот, экспериментируя с фильтрами второго порядка, я пришел к выводу, что оптимальное поведение (заданно низкая частота подавления колебаний и минимальное время установления) наблюдается все-таки у фильтров Баттерворта. Колебания стрелки при установлении остались, но стали гораздо меньше, чем раньше. Я специально взял именно фильтр второго порядка, а не более высокого, потому что у
Читать далее...