Идентификация параметров нелинейной модели УВХ на Verilog-A

№ 1’2012
В статье описан процесс идентификации модели Хаммерштайна для устройств выборки-хранения в среде проектирования Cadence. Рассмотрен Verilog-A модуль, позволяющий проводить автоматическое измерение DC-характеристики схем, параметры которых зависят от тактового сигнала.

Введение

В [1] рассмотрен процесс идентификации квазилинейной модели УВХ. Однако такая модель не учитывает нелинейности передаточной характеристики УВХ. Популярной универсальной моделью, учитывающей нелинейность, является модель Хаммерштайна [2] (рис. 1). Эта модель состоит из нелинейного блока без памяти, описывающего статическую нелинейность системы, и линейного блока с памятью, описывающего линейную динамику системы.

Модель УВХ на основе нелинейной модели Хаммерштайна

Рис. 1. Модель УВХ на основе нелинейной модели Хаммерштайна

Данная модель хорошо подходит для описания устройств, которые не имеют нелинейной динамики, однако не могут быть описаны как полностью линейная система. Для идентификации нелинейного блока был разработан специальный Verilog-A модуль, позволяющий строить DC-характеристику системы, чьи параметры зависят от тактового сигнала. Линейный блок может быть идентифицирован на основе проведения AC-анализа, как описано в [1].

DC-характеристика тактируемого устройства

На рис. 2 показана схема измерения DC-характеристики УВХ. Verilog-A модуль выдает постоянный сигнал на вход УВХ в течение времени, достаточного для установки выходного сигнала (УВХ находится в режиме выборки). Затем Verilog-A модуль выдает перепад тактового сигнала, переводя УВХ в режим хранения. Установившееся значение на выходе УВХ записывается в выходной файл. После этого Verilog-A модуль переводит УВХ в режим выборки и переходит к следующему значению напряжения на входе УВХ.

Схема измерения DC-характеристики УВХ

Рис. 2. Схема измерения DC-характеристики УВХ

Verilog-A модуль для DC-анализа тактируемых схем:

01 module DCTestGenerate (SHin, SHout, Sample);
02 output SHin, Sample; // Вход УВХ и тактовый сигнал
03 input Shout; // Выход УВХ
04
05 electrical SHin,Sample,SHout;
06
07 //Период тактового сигнала
08 parameter real T = 4u;
09 //Ширина импульса тактового сигнала, соответствует режиму УВХ «выборка»
10 parameter real PW = 1u;
11 //Шаг напряжения
09 parameter real SHoutStep = 0.00022;
// Момент записи устоявшегося значения на выходе УВХ
10 parameter real m=0.9 from (0:1);
11
12 real Vout,Vs; // Численное значение выходного напряжения и напряжения тактового сигнала
13 integer out_file; // Дескриптор выходного файла
14 // Аналоговый процесс
15 analog begin
16 //Установка начальных значений
17 @(timer(0)) begin
18 Vout=0;
19 Vs=3.3;
20 out_file = $fopen(“LOG.DAT” );
21 $fstrobe(out_file,“SH input, SH output”);
22 end
23 //Переход в режим хранения
24 @(timer(PW,T) Vs=0;
25 //Переход в режим выборки и изменение уровня выходного напряжения
23 @(timer(T,T)) begin
24 Vout=Vout+SHoutStep;
25 Vs=3.3
26 end
27 //Запись в файл значения напряжения на выходе УВХ
28 @(timer(PW+m*(T-PW),T)) $fstrobe(out_file,“%f, %f”, V(SHin),V(SHout));
29
30 V(SHin)<+transition(Vout,0,10n);
31 V(Sample)<+transition(Vs,0,10n);
32
33 end
34 endmodule

В результате выполнения временного анализа пользователь получает стандартный CSV (Comma Separated Values) файл, который может быть передан для обработки в MATLAB.

Аппроксимация DC-характеристики

Стандартным способом аппроксимации слабонелинейной функции является аппроксимация полиномом вида:

Подобная аппроксимация может быть выполнена в системе Mathworks MATLAB с использованием средства Curve Fitting Tool. На рис. 3 показана ошибка аппроксимации для схемы УВХ, выполненного по технологии 0,35 мкм, для 14-разрядного АЦП. DC-анализ проводился с шагом 200 мкВ, что соответствует значению младшего разряда АЦП. Ошибка не превышает значения 100 мкВ (половины младшего разряда АЦП), степень полинома N = 9.

Зависимость ошибки аппроксимации от величины входного напряжения

Рис. 3. Зависимость ошибки аппроксимации от величины входного напряжения

Аппроксимация DC-характеристики может быть напрямую использована в Verilog-A описании нелинейного блока без памяти:

01 module NonlinearBlockNM (in,out);
02 input in;
03 output out;
04 electrical in,out;
05
06 real OUT;
07 parameter real a0=0 ;
08 ѕ
09 parameter real a9=0 ;
10
11 analog begin
12 // Уравнение аппроксимации
13 OUT=a0+a1*V(in)+a2*pow(V(in),2)+ѕ+a9*pow(V(in),9);
14 V(out)<transtion(OUT,0,1n);
15 end
16
17 endmodule

Идентификация линейного блока

После выполнения AC-анализа и аппроксимации, как изложено в [1], мы получим передаточную функцию вида:

Однако, так как в данной модели линейный блок действует не непосредственно на входной сигнал s(t), а на выходной сигнал нелинейного блока x(t), передаточная функция (2) соотносится с изображением входного сигнала как:

где g0 — первая производная от полинома (1) при s(t) = const: постоянный уровень «большого» сигнала на входе, при котором снималась AC-характеристика. Таким образом, для того чтобы получить передаточную функцию линейного блока модели, необходимо выполнить:

После этого линейный блок может быть представлен в виде Verilog-A описания линейного фильтра, как в [1].

Результаты

В процессе проектирования 14-разрядного АЦП последовательных приближений по технологии фабрики AMS, Австрия, с нормами 0,35 мкм была построена модель блока УВХ. Для идентификации параметров использовалась схема, полученная с учетом экстракции паразитных параметров с помощью Mentor Graphics Calibre.

В качестве проверки модели применялся временной анализ полной модели с экстракцией топологических параметров и предложенной модели. В качестве входного сигнала использовался синусоидальный сигнал с амплитудой 80% от полной шкалы и частотой 10 кГц и случайным шумом амплитудой 10% от полной шкалы. Использование случайного шума позволяет оценить точность модели для широкого спектра входных сигналов. Схема моделирования в окне САПР Cadence Virtuoso показана на рис. 4.

Тестирование модели в САПР Cadence Virtuoso

Рис. 4. Тестирование модели в САПР Cadence Virtuoso

Модуль генерации тестовых воздействий:

01 module TestGenerate (SHAin, SHAout, Sample);
02 output SHAin, Sample;
03 input SHAout;
04
05 electrical SHAin, SHAout, Sample;
06
07 parameter real SampleDuration=0.2u;
08 parameter real T=1u;
09 parameter real m=0.09 from (0:1); // Установка времени записи
// выходного сигнала
// тестируемой схемы
10 parameter real Fin=100K; // Частота входного сигнала
11 parameter real Ain=3; // Амплитуда входного сигнала
12 parameter real NoiseAmpl=0.01; // Амплитуда шума
13 parameter real Offset=1.65; // Смещение входного сигнала
14
15 integer randseed; // Инициализирующее значение
// генератора случайных чисел
16 real randnum, noise,sample;
17 integer Outfile;
18
19 analog begin
21 // Установка начальных значений
22 @ (initial_step) begin
23 randseed = 123;
24 Outfile=$fopen(“OUT.DAT”);
25 sample=3.3;
26 end
27 // Тактовый генератор для тестируемой схемы (1)
28 @ (timer(SampleDuration,T)) begin
29 sample=0;
30 end
31 // Запись выходного сигнала тестируемой схемы
32 @(timer(SampleDuration+m*(T-SampleDuration),T)) begin
33 $fstrobe(Outfile,”%f”,3.3-V(SHAout));
34 $strobe(“%f”,3.3-V(SHAout));
35 end
36 // Тактовый генератор для тестируемой схемы (2)
37 @ (timer(T-SampleDuration,T)) begin
38 sample=3.3;
39 end
40 // Генерация нового случайного значения
41 randnum=($random(randseed) % 100);
42 // Установка уровня шума
43 noise=transition((randnum/100)*NoiseAmpl,0,10n,10n);
44 // Входной сигнал для тестируемой схемы
45 V(SHAin)<+ Offset + (Ain/2)*cos(`M_TWO_PI * (Fin)*($abstime)) + noise;
46 V(Sample)<+transition(sample,0,10n);
47 end
48 endmodule

Этот модуль позволяет управлять параметрами сигнала, подаваемого на вход УВХ, а также сохранять значение выходного сигнала в задаваемый пользователем момент времени.

Сравнивалось устоявшееся значение на выходе УВХ для Verilog-A модели и полной модели с экстракцией топологии. Результат теста показан на рис. 5.

Ошибка моделирования

Рис. 5. Ошибка моделирования (разница выходных значений для Verilog-A модели и полной модели с экстракцией топологических параметров)

Время выполнения анализа работы 100 мкс устройства для предложенной модели — 20 c и 40 мин — для полной модели. Таким образом, обеспечивается существенное ускорение моделирования систем, содержащих данный блок в качестве СФ-блока, с сохранением точности.

Заключение

Рассмотрен процесс идентификации модели Хаммерштайна для схем выборки-хранения. Приведены необходимые Verilog-A модули для характеризации линейного и нелинейного блоков модели. Использование предложенной модели может существенно ускорить процесс моделирования системы, содержащей моделируемый блок.

Литература

  1. Осипов Д. Л., Бочаров Ю. И. Универсальная квазилинейная поведенческая модель УВХ // Компоненты и технологии. 2011. № 11.
  2. Janczak A. Identification of nonlinear systems using neural networks and polynomial models: a block-oriented approach. New York: Springer, 2004.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *