Algorithms for Autobalancing of a Digitally Controlled Amplifier Stage

Research article
DOI:
https://doi.org/10.23670/IRJ.2023.129.21
Issue: № 3 (129), 2023
Suggested:
08.01.2023
Accepted:
22.02.2023
Published:
17.03.2023
884
4
XML
PDF

Abstract

In the article, the algorithms of automatic initial balancing of the direct current amplifier cascade using a control microcontroller are examined. Two algorithms are described, which differ in the complexity of software implementation and in the principle of bias step control. The proposed algorithms are implemented as a software model of the controlling microcontroller in the SimInTech environment. The work presents a study of the algorithms for different application conditions, a comparative evaluation of their effectiveness by the criteria of zero-point accuracy, speed and stability. It is shown that both algorithms are stable with noisy signals, with the balancing accuracy and speed-up for each algorithm determined by a set of initial conditions.

1. Введение

Малошумящие усилители постоянного тока используются во многих приложениях современной электроники. Их применение необходимо в тех случаях, когда необходимо усиление слабых и медленно изменяющихся величин. Одной из областей их использования является техника эксперимента, при этом к измерительному тракту предъявляются достаточно жесткие требования к ширине полосы усиления, напряжению собственных шумов каскадов и коэффициенту усиления измерительного тракта в целом. Часто чувствительность измерительного тракта ограничивается напряжением собственных шумов первого каскада, при этом во внимание принимается уровень шумов в средней полосе частот. Другим фактором, ограничивающим чувствительность тракта, является дрейф нулевого уровня, представляющий собой фликкер-шум первого каскада. Если перед разработчиками усилительного тракта ставится задача усиления сигналов на предельно низкой частоте (0.1 – 0.001 Гц), возникает проблема как начального (балансировка), так и периодического устранения смещения (удаление фликкер-шума) усилителя постоянного тока (УПТ). Использование дифференцирующих RC-цепей с большой постоянной времени, определяющей нижнюю граничную частоту среза усилителя сопряжено с длительным переходным процессом при включении УПТ. По этой причине такие усилители не получают широкого применения. Теоретически, первая проблема может быть решена простыми способами, в том числе – методом компенсации, тогда как решение второй сопряжено со многими сложностями. Традиционно, в литературе подробно освещены теоретические и практические аспекты способов периодической компенсации и методов модуляции-демодуляции (МДМ), каждый из которых имеет свои достоинства и недостатки. В частности метод МДМ, реализованный в некоторых чувствительных УПТ интегрального исполнения имеет существенный недостаток – наличие побочных гармоник в основном спектре усиливаемого сигнала. Метод периодической компенсации (ПКД) требует тщательного выбора частоты компенсации с последующей фильтрацией гармоник, что также ограничивает область применения этого метода. Существуют также методы кросс-корреляции, требующие использования нескольких УПТ

.

Методы начальной балансировки УПТ в литературе практически не освещены, так как подразумевается, что их реализация достаточно проста. Однако в некоторых случаях реализация схемы балансировки может представлять значительную сложность – например, в усилительных трактах постоянного тока с большим коэффициентом усиления (105-106), где применение традиционных электромеханических компонентов (переменных резисторов) практически исключено. В работах

,
описан принцип компенсации начального смещения при помощи электронных цифровых потенциометров (ЭЦП). В работе
показано, что собственные шумы ЭЦП на практике соответствуют шумам металлопленочных резисторов, что открывает некоторые новые возможности для реализации, как начальной балансировки, так и устранения фликкер-шумов усилителя цифровыми методами. Очевидно, что использование встроенного управляющего микроконтроллера позволяет совместить процедуру начальной балансировки и периодической компенсации. В работах
,
описан принцип начальной балансировки, как отдельного каскада, так и усилительного тракта в целом. Основой этого принципа является анализ цифрового кода, соответствующего выходному напряжению усилителя и его компенсация путем задания расчетного кода смещения. Если для отдельного каскада точность балансировки будет определяться дискретностью установки кода смещения, то для балансировки многокаскадного тракта в общем случае потребуется итерационная процедура, по результатам которой подбирается наилучшая комбинация кодов смещения в каждом каскаде. Практическая реализация такого способа требует наличия внешней управляющей системы и точных значений параметров каскада. Как показала практика, данный метод позволяет достичь баланса с высокой точностью только в идеальных условиях и отсутствии возмущающих факторов. Альтернативным способом решения проблемы является реализация встроенных алгоритмов балансировки непосредственно в управляющих микроконтроллерах каждого каскада, что делает измерительный тракт независимым от внешней управляющей системы
. Целью проводимых исследований является разработка и моделирование алгоритмов автоматической балансировки усилительного каскада на базе встроенного микроконтроллера без использования внешней управляющей системы. Это позволит не только полностью автоматизировать процесс начальной компенсации напряжения смещения, но и использовать разработанные алгоритмы для эффективного подавления собственных фликкер-шумов усилительного тракта.

2. Аналитическая модель схемы балансировки

На рисунке 1 показан основной принцип балансировки усилительного каскада с применением встроенного микроконтроллера.
Функциональная схема УПТ с балансировкой

Рисунок 1 - Функциональная схема УПТ с балансировкой

Выходное напряжение усилителя Uout определяется величиной входного напряжения Uin, а также зависит от величины напряжения схемы смещения Uc и коэффициента усиления Ku. Напряжение на входе усилителя Uin представляет собой сумму напряжений источника сигнала Es и напряжения сдвига En. Как показали предварительные исследования
, такая схема балансировки вносит минимальный вклад в общую мощность шумов усилительного каскада, включенного по неинвертирующей схеме. Коэффициент усиления задается пользователем посредством микроконтроллера MCU в виде управляющего кода ЭЦП Rf (Nf) и зависит также от величины R1, которая выбирается согласно шумовому расчету каскада. Схема балансировки состоит из элементов Rsi (ЭЦП) и R2, при этом существует зависимость между напряжением смещения, коэффициентом усиления и величиной R2. В общем случае, увеличение R2 уменьшает диапазон изменения напряжения смещения. Как показано в
, напряжение смещения слабо зависит от величины коэффициента усиления, за исключением малых его значений (не более 10). Основное уравнение усилителя, связывающее все перечисленные выше параметры
, описывается формулой (1):
img
(1)

При невыполнении условия R2>>R1 зависимость Uout от Uc приобретает нелинейный характер. Данная формула справедлива при условии, что делитель напряжения, образованный резисторами Rc, R1 и R2 является не нагруженным. В противном случае, возникает дополнительная нелинейность

.

Так как величины Ku и Uc задаются при помощи кодов управления потенциометрами Nc и Nf, их значения приобретают дискретный характер, при этом величина Uout определяется формулой:

img
(2)

где Rfbn номинальное значение потенциометра обратной связи;

Nfb, Nc – управляющие коды потенциометров (0-255);

Vdd, Vss – напряжение питания делителя Rc (В) по отношению к сигнальному общему проводу.

Таким образом, для выполнения балансировки при данной схеме смещения, необходимо рассчитать такое значение управляющего кода Nc, чтобы скомпенсировать измеренное и неравное нулю напряжение Uout (Nout). При этом необходимо учитывать тот факт, что условие R2>>R1>>Rc на практике реализовать весьма сложно. Это объясняется двумя причинами: 1) при условии R2>>Rc диапазон балансировки становится весьма узким; 2) для уменьшения сквозного тока через потенциометр Rc его величина выбирается около 5-10 кОм, что делает условие (R2+R1)>>Rc сложным в реализации, так как величина R1 в малошумящих каскадах не превышает десятков Ом. Минимальное значение Rc определяется максимально допустимым током, протекающим через электронный потенциометр (обычно 1-3 мА). Возникающие при этом нелинейности при формировании Uc делают расчет необходимого кода Nc весьма сложным в управляющем микроконтроллере. Для решения проблемы автоматической балансировки необходимо разработать алгоритмы, обладающие, в первую очередь, вычислительной простотой. Это становится возможным при пошаговом изменении кода Nc с одновременным анализом величины Nout, при этом способ формирования управляющего кода будет определять как точность, так и быстродействие алгоритма.

Произведем качественный анализ и взаимовлияние параметров, воздействующих на комплексный показатель эффективности алгоритмов (производительность). В данном случае под производительностью следует понимать совокупность следующих параметров: быстродействие, точность балансировки и устойчивость. Очевидно, что напряжение питания делителя Rc увеличивает динамический диапазон балансировки, но при фиксированной разрядности ЭЦП снижает точность установления нулевого значения, так как возрастает величина шага напряжения Uc. Соотношение R2/R1 существенно влияет на линейность формирования Uc. Нелинейность приводит к увеличению шага изменения Uout вблизи нулевого значения, что приводит, в свою очередь, к уменьшению точности установления нуля, и в некоторых случаях - к потере устойчивости.

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

Разрядность АЦП микроконтроллера теоретически увеличивает точность балансировки, однако точность зависит так же и от разрядности ЭЦП Rc. Так как разрядность Rc обычно не превышает 8 (для большинства потенциометров общего применения), повышение разрядности MCU выше 10 уже не приносит дополнительной точности.

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

В работе предложены два алгоритма автоматической балансировки – алгоритм последовательного приближения с постоянным шагом и итерационный алгоритм с переменным шагом. Оба алгоритма реализованы в среде SimInTech

,
c использованием ранее созданной модели
.

3. Алгоритм последовательного приближения с постоянным шагом

Основной особенностью данного алгоритма является относительная простота реализации. Один шаг балансировки происходит в одном общем цикле MCU без выполнения бесконечных циклов с предусловием, что повышает стабильность работы и синхронизирует работу алгоритма с другими процедурами, в частности – с алгоритмами защиты ЭЦП

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

1) определяется направление балансировки. Если Uout>0, направление балансировки – «вниз», если Uout<0 – «вверх»;

2) выполняется процедура шага балансировки с необходимым знаком;

3) анализируется знак выходного напряжения ОУ. Если знак по сравнению с прошлой итерацией не изменился, балансировка продолжается;

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

5) если на любом шаге величина выходит за границы 0>Nc>255, балансировка завершается со статусом «предельно возможное значение».

Для реализации алгоритма необходимо задать начальный шаг приращения величины Nc, при этом алгоритм не использует каких-либо данных о параметрах усилителя. На рисунке 2 приведен общий принцип работы алгоритма.
Логика функционирования алгоритма №1

Рисунок 2 - Логика функционирования алгоритма №1

Компенсация продолжается до тех пор, пока не будет достигнуто пересечение значения, принятого за нулевой уровень (для 10-разрядного АЦП – значение 512). Так как Ni>Ni-1, производится обратный шаг для возврата к предыдущей итерации. Очевидно, что уменьшая шаг приращения величины Nc, можно достичь высокой точности установления нулевого значения на выходе ОУ, при условии, что величина Uc будет зависеть от Nc по линейному закону. Это обеспечивается за счет большого соотношения R2/R1, однако при этом снижается динамический диапазон компенсации. Если соотношение R2/R1 невелико, данный алгоритм может обеспечить высокую точность только в том случае, если величина смещения невелика, и изменение Nc лежит в узком диапазоне вблизи нейтрального положения. В остальных случаях вблизи границ Nc=255 и Nc=0 будет наблюдаться существенная разница между Ui и Ui+1. В большинстве случаев это приведет к уменьшению точности баланса. Увеличением шага приращения Nc можно повысить быстродействие, однако точность установления нуля будет при этом существенно снижена.

Моделирование работы алгоритма выполнено со следующими начальными условиями: R1=10 Ом, Ku=20, R2=1 кОм, Rcn=10 кОм. Такой набор параметров наиболее характерен для усилителя в малошумящем включении, который используется в первом каскаде усилительного тракта. При этом обеспечивается достаточно широкий диапазон компенсации смещения, однако ввиду выбранного сочетания параметров R1, R2, Rс , формирование напряжения балансировки будет происходить с некоторой нелинейностью. Величина шага приращения Nc Nstep=5 выбиралась таком образом, чтобы обеспечить компромисс между быстродействием и точностью балансировки. Процесс балансировки приведен на рисунке 3.

Результат работы алгоритма №1 c шагом приращения Nstep=5

Рисунок 3 - Результат работы алгоритма №1 c шагом приращения Nstep=5

Напряжения сдвига усилителя имитировалось подачей на вход внешнего смещения в момент времени t=3.5 c. Все постоянные времени и тактовая частота управляющего микроконтроллера смещены на величину 1000, что обеспечивает наглядность работы алгоритма с пошаговым наблюдением результатов. Для сопоставления результатов входное напряжение приведено по масштабу к величине выходного с учетом коэффициента усиления. После установления значения смещения на выходе ОУ был запущен процесс балансировки с достижением результата, показанного на рисунке 2. Заметно, что зависимость напряжения на выходе ОУ от величины Nc носит нелинейный характер, что обусловлено приведенным выше соотношением R2/R1. В целом балансировка завершена с положительным и наилучшим для данного шага приращения результатом. Так как величина Nc при завершении близка к предельному значению, величина шага приращения Uout также изменяется в процессе балансировки и достигает максимума около нулевого значения. На рисунке 4 приведен результат балансировки при увеличении шага Nstep=20 и величине напряжения смещения, близкой к предельному значению. При этом величина смещения на выходе может достигать порогов срабатывания защиты
.
Результат работы алгоритма №1 c шагом приращения Nstep=20

Рисунок 4 - Результат работы алгоритма №1 c шагом приращения Nstep=20

В данном примере показан случай отрицательного смещения. Как видно из рисунка, существенно возросло быстродействие, однако точность снизилась почти на порядок, при этом алгоритм вновь произвел выбор наименьшего из значений Nout c возвратом к предыдущему значению.

4. Итерационный алгоритм балансировки с динамическим шагом

Данный алгоритм позволяет достичь достаточно высокого быстродействия при одновременной высокой точности балансировки, однако отличается некоторой сложностью реализации. Подобно алгоритму, рассмотренному выше, данный алгоритм синхронизирован с общим циклом микроконтроллера, и каждая итерация не имеет вложенных циклических процедур. Сущность алгоритма заключается в последовательном уменьшении шага приращения величины Nc с одновременным изменением направления балансировки, при этом изменение шага происходит при каждом пересечении нулевого значения. Алгоритм функционирует следующим образом. Процедура инициализации и основной цикл изменения Nc в положительном и отрицательном диапазонах Uout аналогичны алгоритму, описанному выше. Однако логика обработки события пересечения нуля несколько усложнена. Если зафиксировано такое событие, то изменяется знак приращения Nc, при этом шаг приращения уменьшается вдвое. Таким образом, в следующей итерации будет осуществлен возврат к предыдущему значению Uout, но так как величина шага уменьшена, произойдет возврат к новому значению, меньше текущего по модулю. В этом случае возможны два варианта – на следующей итерации будет вновь пересечено нулевое значение с последующим изменением направления баланса, либо будет продолжена балансировка до очередного возникновения этого события. Таким образом, данный алгоритм будет обладать высокой устойчивостью, так как формальным окончанием баланса будет являться достижение величины шага Nc=1, которое всегда будет достигнуто, даже в условиях постоянно изменяющегося Uin. В данном алгоритме на последнем этапе также производится процедура выбора из пары около нулевых значений Nc наименьшего значения, что повышает точность балансировки. Логика алгоритма приведена на рисунке 5, где N1 - начальный шаг балансировки.

Теоретически, данный алгоритм способен обеспечить более высокую точность, чем алгоритм № 1, где величина шага Uout может достигать очень высоких значений из-за возникающей нелинейности, тогда как в данном случае точность повышается с каждым пересечением нуля. На рисунке 6 приведен результат моделирования алгоритма № 2 при тех же параметрах усилителя (рисунок 3).

Результат работы алгоритма № 2 c шагом приращения Nstep=5

Рисунок 5 - Результат работы алгоритма № 2 c шагом приращения Nstep=5

Заметно, что алгоритм № 2 произвел динамическое изменение шага приращения Nc за 18 итераций, при этом зафиксировано 5 пересечений нулевого значения. В окрестности нулевого значения наблюдается существенная нелинейность приращения Uc. Несмотря на этот факт, балансировка выполнена с лучшим результатом, по сравнению с алгоритмом № 1 (точность возросла более чем вдвое). Наблюдается также устойчивое поведение алгоритма без склонности к релаксационным колебаниям вблизи нулевого значения. Как показали дальнейшие эксперименты, увеличение начального шага до предельно высоких значений (Nstep=40, рисунок 7) не приводит к существенному увеличению числа итераций около нулевого значения, при этом точность балансировки остается на прежнем значении, что говорит о хорошей устойчивости и универсальности алгоритма в целом.
Работа алгоритма № 2 с предельно высоким значением начального шага

Рисунок 6 - Работа алгоритма № 2 с предельно высоким значением начального шага

На рисунке 8 приведен пример неустойчивой работы алгоритма № 2. Такая ситуация возможна при несогласованности параметров периода тактовой частоты управляющего микроконтроллера Tosc и постоянной времени усилителя. Так как любое приращение Nc вызывает переходный процесс с длительностью Tпп, для корректной работы любого алгоритма необходимо соблюдать условие Tosc>Tпп, чтобы оценка величины Uout производилась в установившемся режиме. В противном случае возможно возникновение нелинейной положительной обратной связи в контуре «UoutNoutNc». Пример неустойчивой работы алгоритма показан на рисунке. 8.
Работа алгоритма № 2 при условии Tosc=Tпп

Рисунок 7 - Работа алгоритма № 2 при условии Tosc=Tпп

Как видно из результата моделирования, итерационный процесс около нулевого значения привел к незатухающим колебаниям и насыщению схемы балансировки.
Логика функционирования алгоритма № 2

Рисунок 8 - Логика функционирования алгоритма № 2

5. Моделирование работы алгоритмов при наличии шумов в измерительном тракте

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

1) нестабильность кода АЦП, вызванная собственным шумом АЦП и нестабильностью источника опорного напряжения;

2) наличие собственных шумов усилительного каскада;

3) наличие собственных шумов источника сигнала.

Нестабильность кода АЦП на практике составляет 2-3 разряда. Очевидно, что наличие таких флуктуаций в первую очередь скажется на точности балансировки только в тех случаях, когда величина шага приращения Nc соразмерна шагу дискретизации АЦП. В некоторых случаях это может привести к нестабильной и неустойчивой работе алгоритма № 1, тогда как алгоритм № 2 потенциально будет более устойчив. Наличие шума на выходе ОУ, обусловленное собственными шумами усилителя или источника сигнала будет влиять на точность и быстродействие обоих алгоритмов, если напряжение шума будет выше разрешающей способности в несколько раз. Здесь необходимо учитывать спектральный состав шума. Так, например, наличие шума c нормальным распределением будет существенно влиять на быстродействие и точность, тогда как наличие фликкер-шума окажет на эти параметры меньшее воздействие. Очевидно, что определенная граница между белым и фликкер-шумом будет определяться соотношением частот циклов балансировки и верхней частотой шумов, подаваемых на вход АЦП контроллера. На рисунках 9-10 приведены примеры работы алгоритмов балансировки при наличии фликкер-шума на входе усилителя. Такая ситуация возможна в тех случаях, когда усилитель подключен к предыдущим каскадам в измерительном тракте.

Работа алгоритма № 1 при наличии фликкер-шума

Рисунок 9 - Работа алгоритма № 1 при наличии фликкер-шума

Работа алгоритма № 2 при наличии фликкер-шума

Рисунок 10 - Работа алгоритма № 2 при наличии фликкер-шума

Для имитации зашумленного входного сигнала в среде SimInTech использовался источник шума с нормальным распределением и единичной амплитудой, сглаженный фильтром первого порядка. При этом коэффициент передачи фильтра выбирался в диапазоне 0.1-0.2, а постоянная времени фильтра составляла 2 с (с учетом сдвига всех постоянных времени на величину 1000). Таким образом, входное напряжение складывалось из величины смещения до 0.4 В (порог срабатывания защиты при данных параметрах каскада) и напряжения шума. Параметры усилителя выбирались аналогично описанным выше результатам (рисунки 3, 6). Как видно из результатов моделирования, алгоритм № 1 в целом достаточно успешно произвел балансировку, однако говорить о точности в данном случае нет смысла, так как усреднение фликкер-шума необходимо производить по длительной выборке сигнала. Такое усреднение значительно увеличивает время необходимой выборки, тогда как процедура балансировки может производиться с меньшим интервалом периодичности. Как показали дальнейшие эксперименты, алгоритм имеет большой разброс, как по числу итераций, так и по максимальным отклонениям выходного напряжения от нуля. Это определяется моментом начала балансировки и мгновенным значением амплитуды шума в этот момент. Как видно из рисунка 9, алгоритм № 2 при начальном шаге Nstep=20 также успешно завершил балансировку, при этом число итераций не более 5 при количестве тактов 12.

6. Заключение

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

Результаты моделирования наглядно демонстрируют возможности обоих алгоритмов балансировки. Алгоритм № 1 в целом работает устойчиво при слабо зашумленных сигналах. Максимальная его эффективность достигается при малых величинах смещения, которые требуют малого изменения величины Nc относительно среднего значения (128). Использование этого алгоритма обязательно требует определения оптимального шага приращения Nc, который вычисляется относительно параметров R1 и R2. Этот шаг должен быть таким, чтобы приращение Uc несколько превышало разрешающую способность АЦП микроконтроллера. В противном случае алгоритм сохраняет работоспособность, но неоправданно увеличивается время балансировки. К основному его достоинству следует отнести максимальную простоту реализации.

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

Article metrics

Views:884
Downloads:4
Views
Total:
Views:884