Пассивность: Тестируйте, визуализируйте и обеспечивайте пассивность рационального выхода подгонки

В этом примере показано, как протестировать, визуализировать и применить пассивность выхода из rationalfit функция.

Пассивность данных S-параметра

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

Данные S-параметра N-порта представляют частотно-зависимую передаточную функцию H (f). Можно создать объект S-параметров в RF Toolbox™ путем чтения файла Touchstone ®, такого как passive.s2p, в sparameters функция.

Можно использовать ispassive функция для проверки пассивности данных S-параметра и passivity функция для построения графика 2-нормы N x N матриц H (f) на каждой частоте данных.

S = sparameters('passive.s2p');
ispassive(S)
ans = logical
   1

passivity(S)

Figure contains an axes. The axes with title Data passive, max norm(H) is 1 - 4.06e-08 at 0.00054 GHz contains an object of type line.

Проверка и визуализация rationalfit Выходная пассивность

The rationalfit функция преобразует данные спараметра N-порта, S в матрицу NxN rfmodel.rational объекты. Использование ispassive функция на выходе N x N подгонка сообщает, что даже если входные данные S пассивен, выходная подгонка не пассивна. Другими словами, норма H (f) больше единицы на некоторой частоте в области значений [0, Inf].

The passivity функция принимает N x N подгонку как вход и строит график своей пассивности. Это график верхней границы нормы (H (f)) на [0, Inf], также известной как норма H-бесконечности.

fit = rationalfit(S);
ispassive(fit)
ans = logical
   0

passivity(fit)

Figure contains an axes. The axes with title Fit not passive, H_\infty norm is 1 + 1.791e-02 at 17.6816 GHz. contains 4 objects of type line.

The makepassive функция принимает на вход N x N массив объектов аппроксимации, а также исходные S-параметрические данные, и создает пассивную подгонку с помощью методов выпуклой оптимизации, чтобы оптимально соответствовать данным входного сигнала S-параметра S удовлетворяющий ограничениям пассивности. Остатки C и матрица D с сквозным соединением выхода pfit изменяются, но полюсы A выхода pfit идентичны полюсам A входа подгонки.

pfit = makepassive(fit,S,'Display','on');
ITER	 H-INFTY NORM	FREQUENCY		ERRDB		CONSTRAINTS
0		1 + 1.791e-02	17.6816  GHz	-40.4702
1		1 + 2.878e-04	275.332  MHz	-40.9167	5
2		1 + 9.284e-05	365.565  MHz	-40.9093	7
3		1 - 3.244e-07	368.334  MHz	-40.906 	9
ispassive(pfit)
ans = logical
   1

passivity(pfit)

Figure contains an axes. The axes with title Fit passive, H_\infty norm is 1 - 3.244e-07 at 368.334 MHz. contains an object of type line.

all(vertcat(pfit(:).A) == vertcat(fit(:).A))
ans = logical
   1

Начните makepassive с предписанными полюсами и нулем C и D

Чтобы продемонстрировать, что только C и D изменяются makepassiveможно обнулить C и D и запустить заново makepassive. Выход, pfit все еще имеет те же полюсы, что и входная подгонка. Различия между pfit и pfit2 возникает из-за различных начальных точек выпуклых оптимизаций.

Можно использовать эту функцию makepassive функция для получения пассивной подгонки из предписанного набора полюсов без какого-либо представления о запуске C и D.

for k = 1:numel(fit)
    fit(k).C(:) = 0;
    fit(k).D(:) = 0;
end
pfit2 = makepassive(fit,S);
passivity(pfit2)

Figure contains an axes. The axes with title Fit passive, H_\infty norm is 1 - 2.079e-07 at 363.08 MHz. contains an object of type line.

all(vertcat(pfit2(:).A) == vertcat(fit(:).A))
ans = logical
   1

Сгенерируйте эквивалентную схему SPICE из пассивной подгонки

The generateSPICE функция принимает пассивную подгонку и генерирует эквивалентную схему как файл SPICE. Вход подгонки является N x N массивом rfmodel.rational объекты, возвращенные rationalfit с объектом S-параметров в качестве входных данных. Сгенерированный файл является моделью SPICE, созданной исключительно из пассивных элементов R, L, C и управляемых исходных элементов E, F, G и H.

generateSPICE(pfit2,'mypassive.ckt')
type mypassive.ckt
* Equivalent circuit model for mypassive.ckt
.SUBCKT mypassive po1 po2
Vsp1 po1 p1 0
Vsr1 p1 pr1 0
Rp1 pr1 0 50
Ru1 u1 0 50
Fr1 u1 0 Vsr1 -1
Fu1 u1 0 Vsp1 -1
Ry1 y1 0 1
Gy1 p1 0 y1 0 -0.02
Vsp2 po2 p2 0
Vsr2 p2 pr2 0
Rp2 pr2 0 50
Ru2 u2 0 50
Fr2 u2 0 Vsr2 -1
Fu2 u2 0 Vsp2 -1
Ry2 y2 0 1
Gy2 p2 0 y2 0 -0.02
Rx1 x1 0 1
Cx1 x1 0 2.73023898465345e-12
Gx1_1 x1 0 u1 0 -2.06037605144133
Rx2 x2 0 1
Cx2 x2 0 7.77758888480764e-12
Gx2_1 x2 0 u1 0 -2.91719783970176
Rx3 x3 0 1
Cx3 x3 0 2.29141629324121e-11
Gx3_1 x3 0 u1 0 -0.544091742748738
Rx4 x4 0 1
Cx4 x4 0 9.31845201307192e-11
Gx4_1 x4 0 u1 0 -0.654513258312122
Rx5 x5 0 1
Cx5 x5 0 4.89917766088437e-10
Gx5_1 x5 0 u1 0 -0.0811505031955087
Rx6 x6 0 1
Fxc6_7 x6 0 Vx7 18.7423819585287
Cx6 x6 xm6 3.95175907370729e-09
Vx6 xm6 0 0
Gx6_1 x6 0 u1 0 -0.0922184581251887
Rx7 x7 0 1
Fxc7_6 x7 0 Vx6 -0.0837926412097417
Cx7 x7 xm7 3.95175907370729e-09
Vx7 xm7 0 0
Gx7_1 x7 0 u1 0 0.00772722817459953
Rx8 x8 0 1
Cx8 x8 0 1.2549042562048e-08
Gx8_1 x8 0 u1 0 -0.947642257963949
Rx9 x9 0 1
Cx9 x9 0 2.73023898465345e-12
Gx9_2 x9 0 u2 0 -2.08387060892649
Rx10 x10 0 1
Cx10 x10 0 7.77758888480764e-12
Gx10_2 x10 0 u2 0 -2.92726520533151
Rx11 x11 0 1
Cx11 x11 0 2.29141629324121e-11
Gx11_2 x11 0 u2 0 -0.607552950340464
Rx12 x12 0 1
Cx12 x12 0 9.31845201307192e-11
Gx12_2 x12 0 u2 0 -0.692661355009945
Rx13 x13 0 1
Cx13 x13 0 4.89917766088437e-10
Gx13_2 x13 0 u2 0 -0.0860909479346456
Rx14 x14 0 1
Fxc14_15 x14 0 Vx15 18.375614752664
Cx14 x14 xm14 3.95175907370729e-09
Vx14 xm14 0 0
Gx14_2 x14 0 u2 0 -0.0931990234760161
Rx15 x15 0 1
Fxc15_14 x15 0 Vx14 -0.0854650964338079
Cx15 x15 xm15 3.95175907370729e-09
Vx15 xm15 0 0
Gx15_2 x15 0 u2 0 0.00796526352891445
Rx16 x16 0 1
Cx16 x16 0 1.2549042562048e-08
Gx16_2 x16 0 u2 0 -0.948029916705958
Gyc1_1 y1 0 x1 0 -0.139050954236442
Gyc1_2 y1 0 x2 0 -0.0228458567013313
Gyc1_3 y1 0 x3 0 -1
Gyc1_4 y1 0 x4 0 -1
Gyc1_5 y1 0 x5 0 1
Gyc1_6 y1 0 x6 0 -1
Gyc1_7 y1 0 x7 0 -1
Gyc1_8 y1 0 x8 0 0.999808223323855
Gyc1_9 y1 0 x9 0 1
Gyc1_10 y1 0 x10 0 -1
Gyc1_11 y1 0 x11 0 0.809862556438535
Gyc1_12 y1 0 x12 0 0.941821208342022
Gyc1_13 y1 0 x13 0 -0.935048415590255
Gyc1_14 y1 0 x14 0 0.988844937737922
Gyc1_15 y1 0 x15 0 0.953968084602726
Gyc1_16 y1 0 x16 0 -1
Gyd1_1 y1 0 u1 0 0.603148969756518
Gyd1_2 y1 0 u2 0 -0.352295596552026
Gyc2_1 y2 0 x1 0 1
Gyc2_2 y2 0 x2 0 -1
Gyc2_3 y2 0 x3 0 0.900724125747921
Gyc2_4 y2 0 x4 0 0.996966344122147
Gyc2_5 y2 0 x5 0 -0.991555504294347
Gyc2_6 y2 0 x6 0 0.997614771592662
Gyc2_7 y2 0 x7 0 0.961714018242248
Gyc2_8 y2 0 x8 0 -1
Gyc2_9 y2 0 x9 0 -0.26566857056782
Gyc2_10 y2 0 x10 0 0.0684861292708228
Gyc2_11 y2 0 x11 0 -1
Gyc2_12 y2 0 x12 0 -1
Gyc2_13 y2 0 x13 0 1
Gyc2_14 y2 0 x14 0 -1
Gyc2_15 y2 0 x15 0 -1
Gyc2_16 y2 0 x16 0 0.999979862628444
Gyd2_1 y2 0 u1 0 -0.337190608715223
Gyd2_2 y2 0 u2 0 0.70019451349198
.ENDS

Похожие темы