книги / Оптимизация параметров импульсных и широкополосных усилителей
..pdfif is^ k l—1 then go to 11;
output (3, ‘e \ til, tfO, kl, n, m, v, k); go to 187;
12:f4: = f2:=.f3:=0;
13:for i: = l step 1 until kl do
|
begin dk [i, |
1]: =0.05X k[i]; |
kO[i]:=k[i]; |
|
|
|
|
|||||||||||||||||
|
k[i]:=k[i] + dk[i, |
1]; |
|
|
ch, |
kl, tt, |
k3, k2, el, |
e3, |
e tO, til, |
|||||||||||||||
|
prpx |
(n, |
|
m, |
prl, |
v, |
k, eps, |
|
||||||||||||||||
|
tf); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
d(kl, tO, til, dhl); k[i]:=.kO[i]; |
|
i]: = (dhl[j] —dhO[j])/dk[i, 1]; |
|||||||||||||||||||||
|
for |
j:= l |
|
step |
|
1 until |
kl |
do aa [j, |
||||||||||||||||
end; |
|
step |
|
1 |
until |
kl |
do |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
for |
j:= l |
|
|
bbfj]: = |
abs(bbl[j, |
1]); |
end; |
|
|
|||||||||||||||
begin bbl[j, |
1]: = |
dh[j]—dhO[j]; |
|
|
||||||||||||||||||||
output(3, *e\ aa, dh, dhO, dhl, bbl, dk); |
|
|
|
|
|
|
||||||||||||||||||
sp(1, kl, aa); sp(3, kl, kl, aa, bbl, dk); |
|
|
|
|
|
|
||||||||||||||||||
output(3, |
’e’, |
|
aa, |
dk); |
alfa 1:=2; |
|
|
|
|
|
|
|
|
|
|
|||||||||
14: alfal: = a!fal/2; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
if alfa 1 <0.125 |
then |
|
until kl do |
k[i]:=kO[i]; |
|
|
|
|
||||||||||||||||
begin for |
i: = l |
step 1 |
|
|
t il,t f ) ; |
|||||||||||||||||||
|
prpx(n, m, prl, v, k, |
eps, |
ch, |
kl, |
tt, k3, k2, el, еЗ, e, tO, |
|||||||||||||||||||
|
d(kl, Ю, til, dhO); go to 186; |
|
|
|
|
|
|
|
|
|
||||||||||||||
end; |
l |
step |
|
1 |
until |
kl do k[i] : = ko[i]+alfalXdk [i, 1]; |
|
|
||||||||||||||||
for |
i: = |
|
til, |
tf); |
||||||||||||||||||||
prpx(n, |
m, prl, |
v, |
k, |
eps, ch, |
kl, |
tt, |
k3, |
k2, |
el, |
e3, e, |
tO, |
|||||||||||||
d(kl, tO, |
til, |
|
dhl); |
|
kl |
do cc[i]: = |
abs(dh |
[i]—dhl[i]); |
|
|
|
|||||||||||||
for |
i: = |
l |
step |
|
1 |
until |
|
|
|
|||||||||||||||
ba*— bb [ij * j*— o* |
|
then go to 16; ba:=bb[i]; |
|
|
|
|
|
|||||||||||||||||
15: if ba—b b [i]^ 0 |
|
|
|
|
|
|||||||||||||||||||
16 |
i:= i + l; if |
i^ k l then |
go |
to 15; |
ca:=cc[i]; i: = 2; |
|
|
|
||||||||||||||||
17 |
if ca—cc[i] ^ 0 |
|
then |
goо to |
1'8; ca:=cc [i]; |
|
|
|
|
|
||||||||||||||
18 |
i:= i+ l; if i^ k l then |
go to |
17; |
|
|
|
|
|
|
|
|
|
||||||||||||
if ca—ba^O then go to 14; |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
for i: = |
l step |
|
1 |
until kl |
do dhO[i] : = dhl [1]; |
|
|
|
|
|
||||||||||||||
if ca>epsl then |
go |
to 13; |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
186: output (3, *e\ kOO, |
k); |
bbl |
(j, |
l]: = |
dh[j]—dhOfj]; |
|
|
|
||||||||||||||||
for j: = |
1 |
step |
|
I |
until |
kl |
do |
tO, til, |
tfr), |
|||||||||||||||
prpx(n, |
m, iprl, |
v, |
|
k, |
eps, |
ch, |
kl, |
tt, |
k3,-k2, |
el, e3, e, |
||||||||||||||
d(kl, Ю, til, |
dhO); |
|
|
|
tO, tfr, tfO, |
dhO); |
|
|
|
|
|
|||||||||||||
output |
(3, ‘e\ |
|
k, |
kOO, til, |
|
|
|
|
|
|||||||||||||||
if f2=I |
then |
go |
to 110; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
if f3= 1 then go to 112; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
if f4 = l |
then |
go |
to |
113; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
187: wl:=.\v:=0; |
until |
kl |
do |
dhrO[i]: = dhO[i]; f2: = f3: = f4=0; |
|
|||||||||||||||||||
for |
i: = 1 |
step |
|
|
1 |
|
||||||||||||||||||
188: |
alfa2:=0.1Xdhr; |
w := .w +l; |
dh2: = dhr; |
tf2: = tfr; |
f2: = l; |
|
||||||||||||||||||
19: |
alfa2: = alfa2/2; |
|
dh[w]: = dhrO[w]—alfa2; |
go |
to 13; |
|
|
|
||||||||||||||||
110: dh3: = dh[w]; |
tf3: = tfr; |
f2:=0; |
|
|
|
|
|
|
|
|
||||||||||||||
if tf3—tf2 ^ 0 |
|
then |
|
go |
to |
114; |
|
go |
to 13; |
|
|
|
|
|||||||||||
lll:= d h [w ]: = dh[w]—O.lXdhr; |
f3: = l; |
|
|
|
|
|||||||||||||||||||
112: dh4: = dh[w]; |
tf4: = tfr; |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
if tf4—tf3 < 0 |
then |
|
|
|
go |
to |
111; end; |
|
|
|
|
||||||||||||
|
begin |
tf3: = tf4; |
dh3: = dh4; |
|
|
|
|
|||||||||||||||||
|
tri, |
Il:-dh2X dh2; |
Ш , 21:=dh2; |
t |l, |
3]:=t[2. 3]:=t[3,31: = l; |
|||||||||||||||||||
|
t[2, |
l]:=dh3Xdh3; |
t[2, 2J:=dh3; |
t[3, |
l]:=dh4Xdh4; t [3, |
2]: = |
dh4;
181
tin, i;:=tf2;
t l [2, 1| :=tf3; |
tl[3, l]:=tf4; sp(l, |
3, |
t) sp(3, 3, 3, 1, t, t l%t2) |
|||
t3 * = t9 ‘l |
11* t4* —t9T9 |
П* |
:=.t2[3, |
1J; |
||
|
" |
|
' |
|||
dhopt: ==—1«4/(2Xt3); |
tfopt: = (4Xt3Xt5--t4XM )/(4Xt3); |
|||||
output (3, *e\ dhopt, tfopt); |
go |
to |
13; |
|||
dh[w]:=dhopt; f3:=0; |
f4: = l; |
|||||
113: f4:=0* |
k, dhO, dh, tfO, tfr, w ); |
|||||
output (3, |
V, |
|||||
114: if w ^ k l |
then go to 138; |
|
|
|
||
if wl=7*=kl then go to 187; |
tfO, |
tfr); |
||||
output (3, |
'e\ |
kOO, k, dhO, dh, |
end;
end;
а •
П Р И Л О Ж Е Н И Е 2
ПРОГРАММА ОПТИМИЗАЦИИ ПАРАМЕТРОВ
АМПЛИТУДНО-ЧАСТОТНОЙ ХАРАКТЕРИСТИКИ
Программа предназначена для:
.1) определения экстремумов и граничной частоты АЧХ;
2) определения параметров коррекции, при которых АЧХ имеет экстремумы заданной величины;
3) оптимизации параметров методом сжатия области ограни чений.
Число параметров коррекции не должно превышать число экс тремумов АЧХ. Результаты выводятся на БПМ. Печатаются исход ные и оптимальные параметры коррекции, пары координат экстрему мов АЧХ и граничная частота для исходного и оптимального вариан тов (koo, k, ато, wgr).
Впрограмме имеются процедуры:
1.Процедура рг — определение параметров АЧХ; экстремумов и
граничной частоты. 'В ней используются вложенные процедуры:
а) |
процедура hor — вычисление |
значения полинома п-й |
степени |
|||||
в точке х; |
pal— вычисление |
коэффициентов |
изображения |
|||||
<5) процедура |
||||||||
h(p) и функции М2(х), Процедура pal — сменная. В |
программе при |
|||||||
ведены данные для усилителя рис. |
1-7; |
|
значения |
аргумента, |
||||
в) |
zs — определение точек |
экстремумов и |
||||||
при котором функция достигает заданного уровня. |
|
|
от еди |
|||||
2. Процедура d — определение |
отклонений |
экстремумов |
||||||
ничного уровня. |
|
и для программы |
приложения 1, |
|||||
Исходные данные те же, чго |
||||||||
за исключением: |
экстремальное |
отклонение |
АЧХ |
от единичного |
||||
dtnt — заданное |
||||||||
уровня; |
определения абсцисс АЧХ, |
соответствующих 3aj |
||||||
eps — точность |
||||||||
данным ординатам; |
|
|
|
|
|
|
|
|
|
= 4 — признак счета я печати ординат АЧХ на интервале хх |
|||||||
с шагом ch\ при pf\ |
печать не производится. |
|
|
|
|
182
begin
procedure pr(n, m, pri, v, k, eps, ch, kl, xx, |
mm, e, Id, k3, wgf, |
||
dmr); |
|
|
|
value n, m, prl, v, k, eps, ch, kl, xx, k3, dmr; |
|
||
integer n, m, prl, kl, e, k2, k3; |
|
||
real v, eps, ch, xx, wgr, dmr; array k, mm; |
|
||
begin integer |
i, pr; |
|
|
real x, |
c, |
xO, x3, m2, z, mOO, m il, x4, chi, |
mi; |
array |
a[0:mj, b[0:n]; |
|
|
real procedure hor(n, x, a); |
|
||
value n, x; real x; integer n; array a; |
|
||
begin real h; integer i; |
|
||
h;=0; |
|
for i: = N step —-1 until 0 do h:=h X x+a[ij; hor:=h:
end hor;
procedure pal(n, m, v, k, a, b);
value n, m; integer n, m; real v; array k, a, b; begin real al, Ы, Ь2, b3, b4;
al: = k[l] + k [3 ]; Ы := 1; b 2 := k [l]+ v X (k [2 ]+ 2 x k [3 ];
b 3 := v X (l—v)Xk[2]; |
b 4 := v X (l-v )X (k [lJ X k [2 ]-k [3 ]X |
|
3]); |
r |
|
0 : = |
b[0]:=.l; a [l]:= a lX a l; |
|
Ь[1]:=Ы Х Ы —2Xb2; |
b['2]:=b2Xb2—2XblXb3+2Xb4; |
|
b[3J: = |
ЬЗХЬЗ—2xb2Xb4; b[4]: = Ь4ХЬ4; |
end;
procedure zs(n, m, c, xO, x3, eps, ipr, m2, z);
value xO, x3, eps, n, m; integer pr, n, m; real xO, x3, eps, m2, z, c; begin real xl, x2, rl, r2, ml;
xl:=x0-f* (3—sqrt(5))/2Х (x3—xO); |
x2:=x3— (3—sqrt(5))/2 X |
|||
(x3—xO); |
|
|
xl, a)/hor(n, |
xl, b)); |
pal(n, m, v, k, a, b); ml : = sqrt (hor (m, |
||||
rl: = abs(ml—c); |
m l:=sqrt(hor(m , |
x2, |
a)/hor(n, x2, |
b)); |
r2: = abs(m l—c); |
go to 14; |
|
|
|
11: if rl< r2 then |
go to 12; go to 13; |
|
|
|
12: begin x3:=x2;x2:=xl; m2:=rl; z:=xl; r2:—rl; |
|
|||
xl= .x0+ (x3—xO) X (3—sqrt(5) )/2; |
|
|
|
|
ml:=sqrt(hor(m, xl, a)/hor(n, xl, b)); |
|
|
||
rl = abs(ml—c); |
go to 14; |
|
|
|
end; |
|
|
|
|
13:x0:=xl; xl:=x2; m2: = r2; z:=x2; rl: = r2; x2:=x3— (x3—xO) X (3—sqrt (5))/2;
ml:=sqrt(hor(m, x2, a)/hor(n, x2, b)); r2:=abs(ml—c);
14:if (x3—x0)>eps then
begin if pr=0 then go to 11 else go to 15; end; go to out;
15: if rl<r2 then go to 13; go to 12; out: output (3, ‘e’, pr, z, m2);
end zs; |
|
v, k, a, b); |
|
k2:=0; c:=0; e:=2; pal(n, m, |
|||
if prl —I then for x:=0; |
x+ch |
while |
x ^ x x do |
begin m00: = sqrl(hor(m, |
x, a)/hor(n, |
x, b)); |
output (3, ‘e\ mOO, x);
end;
x:=0;
183
for i: 1 step |
l Until 2X(n—1) do m m [l]:=0; |
|
|
|
|
|||||||||
mOO:=sqrt(hor(m, x, a)/hor(n, x, b)); x:=x+ch; |
|
|
|
|||||||||||
mll:=sqrt(hor(m, x, a)/hor(n, x, b)); x4:=x+ch; |
|
|
||||||||||||
pi: if mll^mOO then |
|
|
|
|
|
|
|
|
|
|||||
begin for x:=x4, x+ch while mll^mOO do |
|
|
x, |
b); if |
||||||||||
|
begin moo:=mll; ml l:=sqrt(hor(mj xt a)/hor(ri, |
|||||||||||||
|
xx then |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
begin e:=0; go to fin; end; |
|
|
|
|
|
|
|
|
|||||
|
end; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xO:=x—2xch; хЗ:=х-^-сЬ; x4:=x; |
|
|
|
|
|
||||||||
|
zs(n, m, c, |
xO, x3, eps, 1, m2, |
z); |
|
|
|
pr: = 1; |
|||||||
|
k2:=k2+l; |
mm[2Xk2—l]:= z; |
mm[2Xk2]:=m2; |
|||||||||||
|
output |
(3, ‘e\ |
m2, z, |
k2, pr); |
go |
to |
fin; end; |
|
|
|
||||
|
if k 2^ n —1 |
then begin e:= l; |
|
|
|
|||||||||
|
go to p2; |
|
|
|
|
|
|
|
|
|
|
|
|
|
end; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for x:=x4, x+ch while mll^mOO do; |
a)/hor(n, |
x, |
b)); |
|||||||||||
begin m 00:=m ll; |
mll:=sqrt(hor(m, x, |
|||||||||||||
|
if x>xx then begin e:=0; go to fin; end; |
|
|
|
|
|||||||||
end; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xO:=x—2Xch; x3:=x—ch; x4:=x; |
|
|
|
|
|
|
|
|||||||
zs(n, m, c, xO, x3, eps, 0, m2, z) |
|
|
|
|
pr:=0; |
|
||||||||
k2:=k2+l; |
mm[2Xk2—l]:= z; |
mm['2Xk2]:=m2; |
|
|||||||||||
output (3, ‘e’, m2, |
z, |
k2, pr); |
|
|
|
|
|
|
|
|
||||
if k2>n—1 then begin e:=.l; go to fin end; |
|
|
|
|
||||||||||
p2: m00:=mll; x4:=x4+ch; |
|
|
|
|
|
|
|
|
||||||
mll:=sqrt(hor(m, x4, a)/hor(n, x4, b)); |
|
|
|
|
|
|||||||||
x4:=x4+ch; |
go to pi; |
|
|
|
|
|
|
|
|
|
||||
fin: output (3, ‘e\ mm, k2, e); |
|
|
|
|
|
|
|
|
||||||
if k3—0 then go to p3; |
|
|
|
|
|
|
|
|
|
|||||
c:= 1—dmr; chi =0.5; |
x:=0; |
|
|
|
|
|
|
|
|
|||||
ml:=sqrt(hor(m, x, a)/hor(n, x, b)); |
|
|
|
|
|
|
||||||||
for x:=chl, x+chl |
while m l^ 0 .3 do m l:=sqrt(hor(m ,x, a)/hor |
|||||||||||||
(n, |
x, b)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
x4:=x; |
|
|
|
|
|
do |
ml:=sqrt(hor(m, x, a)/hor |
|||||||
for |
x:=x4, x—ch while ml ^ c |
|||||||||||||
(n, |
x, b)); |
|
|
|
|
|
|
|
|
|
|
|
|
|
xO:=x+ch; x3:=x+2Xch; |
|
|
|
|
|
|
|
|
|
|||||
zs(n, m, c, xO, x3, eps, 0, m2, wgr); |
|
|
|
|
|
|
|
|||||||
output (3 'e\ m2, wgr); |
|
|
|
|
|
|
|
|
|
|||||
p3: end; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
procedure d(k2, mm, dmo) ; |
|
|
|
|
|
|
|
|
||||||
value k2, mm; integer k2; array dmo, mm; |
|
|
|
|
||||||||||
begin integer |
i |
|
1 |
until k2— 1 |
do |
d m o[i+ l]:= ab s(I—mm[2X |
||||||||
, |
for i:=0 |
step |
||||||||||||
i+2]); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
integer nl, n, m, prl, kl, e, k2, k3, i, |
ff, vv, f2, f3, f4, |
j, w, ww; |
||||||||||||
real v, eps, ch, xx, |
wgr, |
dmr, epsl, |
wo, |
alfa3, |
alfal, |
ba, |
ca, w lr |
|||||||
alfa2, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dm2, w2, dm3, w3, dm4, w4, t3, t4, t5, dmopl, xopt; |
|
|
|
|||||||||||
input (1, nl, n, m, kl, v, eps, ch, xx, dmr); |
|
|
cc |
[l*kll, |
||||||||||
begin array k [l:n ], |
kOO, kO, dm, dmO, dml, dmrO, bb, |
|||||||||||||
|
m m [l:2X kl], |
dk, |
bbl |
[l:kl, |
1:1], aa[l:kl, |
l:k l], |
tl, |
1:1],
184