Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Оптимизация параметров импульсных и широкополосных усилителей

..pdf
Скачиваний:
1
Добавлен:
12.11.2023
Размер:
17.93 Mб
Скачать

обходимость минимизировать дисперсию выходного па­ раметра (тф, ©ш В, А ит. д.) и одновременно удовлетво­

рить некоторым ограничениям, заданным в виде ра­ венств или неравенств.

Если ограничения заданы в виде одного или не­ скольких равенств, выраженных аналитически, то задача сводится к нахождению минимума и может быть реше­ на с помощью множителей Лагранжа. Применение чув­ ствительностей первого и второго порядка позволяет сформулировать задачу и решить ее в более компактной форме.

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

Определим значения математических ожиданий т х при которых Dby минимальна для заданных Dbx. Учитывая

только линейные члены разложения, на основании (4-37) получаем

или

9=1

п

9=1

Минимум дисперсии относительного отклонения Ьу най­ дем, дифференцируя по всем п изменяющимся парамет­

рам функцию

ф= ° ъ » - хУ

дФ

п

и решая систему, состоящую из п уравнении вида -г— =

и

и п-\-\ уравнения у ( х и . . . , л'п) = */о. При этом для ми­

нимизации дисперсии относительного отклонения будем иметь систему

ПdSyx

2 Y . А _ S*

____

Ьхг

dxj - X ШГ = 0' / = 1 ’ 2.........«

У = Уо

 

12*

171

или, иначе,

%

Du S \ W % x l= ± T > Xi, j = i, 2,. » п \

g=i

> (4-44)

 

У=

У*.

Аналогично для нахождения минимума дисперсии абсолютного отклонения Ау необходимо решить систему

(4-45)

У = Уо

Рассмотрим сначала простейший случай, когда ми­ нимизируется дисперсия относительного отклонения функции

y = X i ± X 2>

где Xi и х2— положительные случайные величины. Тогда

система (4-44) принимает вид:

W

' x , + W

w = T r V

W

^ + W

\ = = T r V

После подстановки значений чувствительностей полу­ чаем:

D

Xl

 

 

|

П

±*г

^

Ь*1

X i + X z

( Х г ± х ) г

” *

 

Х1

+

Х2

^

V

XlXi

^

у .

 

 

 

 

 

 

/ ^(xl ±Xi)z

2

*’

 

 

 

 

 

 

[ )

X l ______+

Х1Х2

|

n

_ ±

X

2

± X 1X2

5*3

X l ± Xz

(X l ± Xz)Z “ Г

bxa

 

 

x 2

(X i ± X 2) 2

_ i . r

2***'

У= XidzX2

и окончательно

^Ъх*1= — ^ Ьхх 2.

172

Верхний знак соответствует функции y ~X i-\ -x* и да­ ет физически реализуемое решение. Нижний знак отно­ сится к случаю у — х i—х2 и приводит к нереализуемым условиям л^<0 или х2< 0 , так как дисперсия всегда дол­

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

lj= ± Х\±'х2± . . . ± Л'„.

условие оптимума имеет вид:

^Ъ х*1 • •

. . = ± Д ГЛЯ

и\п

и реализуемо только для арифметической суммы слагае­ мых.

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

Так, например, функции y — X id zx2x 3 или y = X i ±

r t —^ имеют условный минимум дисперсии, если выполнено

Хз

равенство

DlxxXl ~ (DhXi~\~Dbx) AVVj

или соответственно

Dbx,X' — (Dbxt+ Dbx)

Нижние знаки в этих выражениях приводят к не­ реализуемым параметрам.

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

Если имеются два параметра xL и ,v2, изменением

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

173

Задаваясь значением хС=х10 из ограничения типа равен­

ства

f(x 1, х2) “ i/o>

 

находят величину х 2 — х 20, затем вычисляют

выходной

параметр y (xl0t х 20)= У о и его дисперсию Dby.

Тогда оп­

тимизация сводится к одномерному поиску по параме­ тру Xt. Для ускорения такого поиска используется зо­

лотое сечение илы числа Фибоначчи [44, 64].

Более подробно рассматривать методику оптимизации по статистическим критериям minoAS или minofi,и нет необхо-

димости. Она остается такой же, как и в случае детер­ минированных критериев minAB и min6£y, и оптимум достигается в той же области параметров. Например, минимальная нестабильность длительности фронта ПХ усилителя (рис. 4-6) при Л0= 2, х=2, /1=0,368, J5i= 10% достигается, когда второй выброс £ 2= 10%, и равна

бтф=0,348. В этом случае Д£=0,118. Минимум средне­ квадратичного отклонения длительности фронта, опре­ деляемого по формуле

% = ° V (S'ф)°+ (S'/)»+ ( s ;*)>+ (s;ф)«+ фф)«

при условии oy5o= o JC= o n = o9= o r = o, достигается так­ же в случае В1 = В2 = 10% и для о= 0,033 составляет

о6Тф= 0,057. При этом °дв= 0,021. Аналогично обстоит

дело и с минимизацией o6S . Например, для того же усили­

теля (рис. 4-5) при Л0 = 2, // = 0,368, 5А0 = 0,133 мини­

мум o5g достигается в случае равноволновой АЧХ и сос-

В

тавляет 0,1132 (0,1135) при ±ДМ=0,1 и 0,1023 (0,1024) при ±ДМ =0,2. В скобках приведены значения средне­ квадратичного отклонения граничной частоты, рассчи­ танной по формуле (4-41), учитывающей чувствитель­ ности второго порядка. Результаты получаются очень близкими, несмотря на сравнительно большое изменение глубины обратной связи. Поэтому при статистической оптимизации можно ограничиваться только членами пер­ вого порядка.

174

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

П Р И Л О Ж Е Н И Е 1

ПРОГРАММА ОПТИМИЗАЦИИ ПАРАМЕТРОВ ПЕРЕХОДНОЙ

ХАРАКТЕРИСТИКИ

Программа оптимизации параметров ПХ предназначена для:

1)определения величины выбросов и времени нарастания ПХ;

2)определения параметров коррекции, при которых ПХ имеет

выбросы заданной величины; 3) оптимизации параметров методом сжатия области ограни*

чений.

Число параметров коррекции не должно превышать числа вы­ бросов. Вывод результатов оптимизации осуществляется на быстропе­ чатающий механизм (БПМ) с помощью оператора вывода output. Пе­ чатаются начальные значения параметров коррекции (koo) и пара­ метры исходной ПХ—длительность фронта tf, массив пар координат

экстремумов ПХ (тг). Затем выводятся те же данные для равно­ волновой и оптимальной ПХ.

Впрограмме имеются две глобальные процедуры:

И.Процедура ргрх — определение величины выбросов и длитель­

ности

фронта ПХ. В ней используются вложенные процедуры:

а)

pal — вычисление коэффициентов изображения ПХ;

 

б)

norm — вычисление коэффициентов дважды

нормированного

изображения ПХ;

начальных

условий

дифференциального

в)

пи — определение

уравнения системы;

начальных

условий, когда

аргумент в

на­

г)

р т — определение

чальной точке не равен нулю;

 

 

 

 

д) f—вычисление правых частей дифференциального уравнения,

решаемого методом Рунге — Кутта;

 

значения аргумента,

е)

zs — определение

точек экстремумов и

при котором функция достигает заданного уровня;

 

 

ж)

rk — процедура Рунге — Кутта [65, алгоритм № 9,а].

 

2. Процедура d — определение выбросов ПХ.

 

схе­

Процедура ра/ — сменная и определяется рассматриваемой

мой. В приведенном варианте оптимизируется

усилитель рис.

1-7.

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

Оператором ввода input в программу вводятся следующие исход­

ные данные:

п1— общее число варьируемых и фиксируемых параметров

цепи ( « 1 = 4 , введены параметры ki,

fo,

k$,

х)\

« — порядок

знаменателя изображения

ПХ

(1-2) (п = 4 );

«/ — порядок

числителя изображения ПХ >(1-2)

(т=»1)*

!7 fi

 

pf=t\ — признак счета

и печати

ординат ПХ на всем интерва­

 

ле с шагом сЛ; при рг

печать не производится;

 

k\ — число варьируемых параметров коррекции

(А*1— 3);

 

v —: значение

фиксируемого

параметра

(я);

 

 

eps—.точность определения абсцисс ПХ, соответствующих

 

 

заданным ординатам to,i, tо.о, Аа;

 

 

 

 

ch — шаг вычисления ПХ;

 

 

 

 

 

 

 

хх — длина

интервала, в котором определяются экстрему­

 

 

мы ПХ;

 

 

 

 

 

 

 

 

 

 

 

dhr — заданное значение выброса;

 

 

 

 

А[|1 : Й1]— начальные значения

варьируемых

параметров коррек­

 

 

ции (At, кг,

Аз);

 

 

параметров

цепи

(.v).

А[1+А1 ; я1] — значения

фиксируемых

begin

 

 

prl,

v, k, eps,

ch, kl, tt, k3,

k2,

el, e3,

procedure prpx (n, m,

e,

tO, tl, tf);

 

 

 

 

 

 

 

 

 

 

 

value n, m, prl, v, k, eps, ch, kl, tt;

 

 

 

 

 

integer n, m, prl, kl, k2, el, e3, e, k3;

 

 

 

 

real v, eps, ch, tt, tO, tf; array k, tl;

 

 

 

 

 

begin integer i, e2, pr; boolean prim;

 

 

 

 

 

real t, h, t2, hO, c, hi, tOl, hOI, t09, h09, x, xfin, xO, хл-, yl;

 

array a[0:mj, g{l:m], b[0:nj, d, y, yfin, z, yfinO[l:n];

 

procedure pal

(n, m, v, k, a, b); value n, m;

 

 

 

integer n, m; real v; array k, a, b;

 

 

1; b[l]: = i ;

 

begin a[0]: =

1;

a [l]: =

k[l] +

k[3]; b[0]: =

 

2 ]:= k[ 1 ] + v X (k [2] + 2Xk [3]);

 

 

 

 

31: = vX (1—v)Xk[2];

b[4]: = vX (1—v) X (k [1 ] Xk [2]

 

[3]X k[3]);

 

 

 

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

procedure norm(n, m, a, b, g, d); value n, m;

 

 

 

integer n, m; array a, b, g, d;

 

 

 

 

 

 

begin integer

i;

1

until

n

do

d[i]: = b[i]/b[0]X (b[0]/b[n]l f

 

for

i: = l

step

 

(i/n);

step

1

until

m

do

g[i]:=aa[iJ/a[0]X (b[0]/b[n])f

 

for

i:==l

 

(i/n);

 

 

 

 

 

 

 

 

 

 

 

 

end norm;

 

 

 

 

 

 

 

 

 

 

 

 

procedure nu(n, m, g, d, y);

 

 

 

 

 

 

 

value n, m; integer n, m; array g, d, y;

 

 

 

 

begin integer k, i, j;

k: = n—m;

 

 

 

 

 

 

for

i: = l

step

1

until

k do у £i]:=0;

to

p;

 

 

y [k + l]; = g[m]/d[n]';

if

m = l

then go

 

 

for

i: = 1

step

1

until

m— 1

do

 

 

 

 

 

begin y[k + i + l]:= 0;

 

i— 1

do y[k -H + l]: = y [k + i-fl] +

 

for

j:= 0

step

1

until

 

d{n—i+ j] X y[k+ j+1];

 

 

 

 

 

 

 

 

y fk + i+ l] *• =

l/d[n]X (g[m—П—y[k-f i-f l]l,

 

 

end

i;

 

 

 

 

 

 

 

 

 

 

 

p:

end nu;

 

 

 

 

 

 

 

 

 

 

 

 

 

procedure pm(n, yfin, y);

 

 

 

 

 

 

 

 

value n, yfin; integer n; array y, yfin;

 

 

 

 

begin integer

k;

 

until

n do y[k]:—yfin[k];

 

 

 

for k: = l

step 1

 

 

 

end;

 

 

 

m,

g,

d,

z);

value x, y,

n,

m:

 

 

procedure f(x, y, n,

 

177

fea! x; integer n, rti; arfay y, t %g, d;

 

 

 

 

 

begin integer i; real

s; s : = l—у [1];

 

 

 

 

 

 

for

i:= l

step 1

until

п—1

do

 

 

 

 

end;

 

begin z[i]:=y[i+l];

s : = s —dfi]Xy[i+1];

 

z[n]:=s;

 

 

 

 

 

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

procedure rk(x, y, n* f, eps, prim, xfin, yfin);

 

 

 

value x, y; real x, eps, xfin; integer n;

 

 

 

 

boolean prim; array y, yfin; procedure f;

 

 

 

 

begin real xl, x2, x3, h, \vl, \v2, hs; integer k, j, ss;

 

boolean out; array z, yl, y2, уЗ[1:n];

yih);

 

 

 

procedure rklstep (x,

y, h) result:(xn,

 

 

 

real z, h, zh; array y, yh;

 

 

 

 

 

 

 

 

 

 

begin integer

j,

k; array w[l : n], al[l‘: 5];

 

 

 

a l[l]: = al[2]: = al[5]: = 0J5Xh;

a1 [3]: =.a 1 [4 ]:= h; xh: = x;

for k: = l

step

1

until

n do yh[k] :=w[k] :=y[k];

xh:=x-f-al ГП

for j: = l,

2, 3,4

do begin f(xh,

w,

n, m, g, d,

z);

for k:=l

step

1

until

n do

 

 

 

 

 

 

 

 

UJ

begin yh [k]:=yh [k]+ al [j+1] X z [k] /3;

 

 

 

 

w[k]:=y[k] + al[j]X z[k]; end;

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

start: if prim then begin h:=xfin—x;

 

 

 

 

 

 

ss: = 0; end else h:=hs;

 

 

 

 

 

 

 

 

 

 

out := false;

 

 

 

 

 

 

 

 

 

 

 

 

 

labl: if (x+2.0lXh—xfin>0) and (h>0) then

 

 

 

 

begin hs:=h; out:=true; h:=(xfin—x)/2; end;

 

 

 

rklstep(x, y, 2Xh, xl, yl);

 

 

 

 

 

 

 

 

 

lab2: rklstep (x, y, h, x2, y2);

 

 

 

 

 

 

 

 

rklstep (x2, y2, h, x3, y3);

w l:=0;

 

 

 

 

 

 

 

for k:= l

step

1

until

n do

 

 

 

 

 

then wl:=.w2;

end-

begin \v2: = abs(yl[k]—y3[k]); if w 2>w l

if w l>eps then

go to lab3;

x:=x3;

if out then

go to

fin; ’

for k: = l

step

1

until

n do у [к]:= уЗ [к];

 

 

 

 

if ss= 5 then begin ss:=0;

h: = 2Xh;

end;

 

 

 

 

ss:= ss+ l; go

to labl;

 

xl:= x2;

 

 

 

 

 

lab3:h:=0.5Xh; out:= false;

 

go

to

lab2;

 

for k: = l

step

1

until

n do

у Ifк): = у2[k];

 

fin: for k: = l

step 1 until

n

do

yfin[k]: =

y3[k];

 

 

end;

 

 

 

 

 

 

pr,

yl,

x);

 

 

 

procedure zs(n, c, xO, x3, yfinO, eps,

 

 

 

value xO, eps, yfinO; integer pr, n;

 

 

 

 

 

 

 

 

real xO, x3, eps, yl, x, c; array yfinO;

 

 

[1:n];

 

 

 

begin real xl, x2, rl,

r2, eps array y,

yfinl

 

 

 

x l:= x0 + (3—sqrt(5))/2Х (x3—xO);

x2:=x3— (3—sqrt (5))/2 x

(x3—xO);

 

 

rk(xO, y,

n,

f, eps, true, xl, yfinl);

 

pm(n, yfinO, y);

 

rl: = abs(yfinl£1]—c);

pm(n,

yfinl,

y);

 

 

 

 

rk(xl, y, n, f,

eps, true, x2,

yfinl);

r2: = abs(yfinl[lj—c);

if pr=0 then

 

 

 

 

 

 

 

 

 

 

 

 

 

begin

 

 

go to 12; go to 13;

 

 

 

 

 

 

 

11: if rl <r2 then

 

x;=xl;

r2:=rl;

 

12: begin,

x3:=x2; x2:= xl;

y l:= rl;

 

xl:= x0+ (x3 —xO)X(3—sqrt(5))/2;

pm(n,

yfinO,

y);

 

rk(xO, y, n, f, eps, true, xl,

yfinl);

 

 

 

 

 

 

 

178

 

r l: =.abs (yfin 1 [1]—c);

go to

14;

 

 

 

 

 

 

 

 

end;

 

 

 

xl: = x2;

yl: = r2;

x: = x2;

rl: = r2;

 

 

 

13: xO:= xl;

 

 

 

x2:—x3— ((x3—xO)X(3—sqrt ( 5 ) ) /2;

pm(n,

yfinl, y);

 

 

rk(xl, y,

n,

f,

eps,

true,

x2,

yfinl);

r2: = abs(yfinl[1]—c);

 

14: if

(x3—xO)>eps then

 

 

 

 

 

 

 

 

 

 

 

begin if pr=0 then go to 11 else go to 15; end;

 

 

 

go to

out;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end;

rl< r2

then go to 13; go to 12;

 

 

 

 

 

 

 

15: if

 

 

(3,

‘e\

pr, x, yl);

 

out: x: =

(b[n]/b[0])

f

(l/n)X x;

output

end

zs;

 

 

 

 

 

е1: = ё2: = еЗ: = к2: =

кЗ: = 0;

e: =

2;

 

c.s=t: = t0:=h0:=0;

 

 

pal(n,

m,

v, k, a, b); norm(n, m, a, b, g, d);

 

 

 

 

If prl = 1

then

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

beg*0 nu (n, m, g, d, y);

 

 

 

yfin);

 

 

 

 

 

 

 

rk(t,

y,

n,

f,

eps,

true, t+ ch,

 

 

 

 

 

 

 

h: = yfin 11]; t2: =

t+ch;

 

 

 

 

 

 

 

 

 

 

output (3, 'e\ h, t2);

 

t ^ tt

do

 

 

 

 

 

 

 

 

for l: = ch, t+ch while

 

 

 

 

 

 

 

 

begin

pm(n,

yfin,

y);.

t+ch,

yfin);

 

 

 

 

 

 

 

rk(t,

y,

n,

f,

eps,

false,

 

 

 

 

 

 

 

h: = yfin[l]:

t2: = t+ch;

 

 

 

 

 

 

 

 

 

 

 

 

output (3,

‘e’,

h,

t2);

 

 

 

 

 

 

 

 

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t:=t2:=0;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

end;

 

1

step

1

until 2X k l+ 2

do

tl[i]:=0;

 

 

 

 

for i: =

 

 

y);

 

m il:

if

t= 0

then

nu(n,

m, g,

d,

y)

else pm(n, yfin,

 

rk(t,

y,

n, f, eps,

true,

t+ch,

yfin);

t: = t+ch;

 

 

 

if t> tt

then

begin e:=0; go to fin; end;

 

 

 

 

 

if

k 2 ^ k l

then

begin

e:= l; go to

fin;

end;

 

 

 

 

hl: = yfin[l];

 

begin

e l: = 1;

к1: = к 1 +1;

h i: = abs(hl);

go to

 

if

h i< 0

then

 

m'4; end;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c : = 0 . 1 ;

 

then

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m2: if

h l< c

 

while

h l< c do

 

 

 

 

 

 

 

 

begin

for t2: = t2+ch

 

 

 

 

 

 

 

 

 

begin

pm(n,

yfin,

y);

 

 

 

 

 

 

 

 

 

 

 

 

 

rk(t2, y, n, f, eps, false, t2+ch, yfin);

 

 

 

 

 

 

hO: =

hi;

h i: =

 

yfin

[lj;

go

to fin;

end;

 

 

 

 

 

if t2> tt

then

begin

e:=0;

 

 

 

 

 

end;

 

 

 

 

 

 

 

 

t: = t2; zs(n,

c,

xO, x3,

y, eps, 0, yl, x);

 

x0: = t2—ch; x3: = t2;

end;

if el =1

then go

to

m5;

if c=0.9 thorn go

to

m3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

c:=0.9; 101 : = x—tO; hO 1:= у 1; go to m2;

 

 

 

 

 

 

m3: t09: = x—Ю; h09: = yl;

tf: = t09—Ю1;

 

 

 

 

 

 

output

(3,

‘e\ tOl, hOl, t09, h09, tf, Ю);

 

 

 

 

 

 

 

c:=0;

m33: h 0:-h l;

 

pm(n, yfin, y);

 

 

 

 

 

 

 

 

rk(t,

y, n,

f, eps, true, t+ch, yfin);

 

 

 

 

 

 

 

 

 

h i:= yfin [ 1];

t: = t+ch;

 

 

 

 

 

 

 

 

 

 

 

 

 

m4: if

(hi—hO)> 0 then

while

(abs(hl)—abs(hO))>Q

do

 

begin for t2: =

t, t2+ch

 

b e g i n

pm(n, yfin, y);

 

 

 

 

 

 

 

 

 

 

 

 

179