Пассивность: Протестируйте, визуализируйте и осуществите пассивность rationalfit выход

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

Разделите 1 пассивность данных S-параметра

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

Данные S-параметра N-порта представляют зависимую частотой передаточную функцию H (f). Объект sparameter может быть создан в RF Toolbox путем чтения файла Пробного камня, такой как пассивного s2p, в функцию sparameter. Функция ispassive может использоваться, чтобы проверять пассивность данных S-параметра, и функция пассивности может использоваться, чтобы построить 2-норму матриц NxN H (f) на каждой частоте данных.

S = sparameters('passive.s2p');

ispassive(S)
ans = logical
   1

passivity(S)

Разделите 2 Тестирования и визуализацию rationalfit выходная пассивность

rationalfit функция преобразует N-порт sparameter данные S в матрицу NxN объектов rfmodel.rational.

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

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

fit = rationalfit(S);

ispassive(fit)
ans = logical
   0

passivity(fit)

Разделите 3 Тестирования и визуализацию rationalfit выходная пассивность

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

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.327  MHz	-40.9167	5
2		1 + 9.233e-05	365.865  MHz	-40.9092	7
3		1 - 3.541e-07	368.137  MHz	-40.906 	9
ispassive(pfit)
ans = logical
   1

passivity(pfit)

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

Разделите 4 Запуска 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)

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

Разделите 5 Генерации эквивалентной схемы SPICE от пассивной подгонки

Функция generateSPICE берет пассивную подгонку и генерирует эквивалентную схему как SPICE subckt файл. Входная подгонка является массивом NxN объектов rfmodel.rational, как возвращено rationalfit с объектом sparameters, как введено. Сгенерированный файл является моделью 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
Eu1 u1 um1 p1 0 1
Hu1 um1 0 Vsp1 50
Ru1 u1 0 1
Vsp2 po2 p2 0
Eu2 u2 um2 p2 0 1
Hu2 um2 0 Vsp2 50
Ru2 u2 0 1
Rx1 x1 0 1
Cx1 x1 xm1 2.73023897845301e-12
Vx1 xm1 0 0
Gx1_1 x1 0 u1 0 -1.17331140035562
Rx2 x2 0 1
Cx2 x2 xm2 7.77758888047627e-12
Vx2 xm2 0 0
Gx2_1 x2 0 u1 0 -1.49027907586191
Rx3 x3 0 1
Cx3 x3 xm3 2.29141629359547e-11
Vx3 xm3 0 0
Gx3_1 x3 0 u1 0 -0.517082276083613
Rx4 x4 0 1
Cx4 x4 xm4 9.31845201292013e-11
Vx4 xm4 0 0
Gx4_1 x4 0 u1 0 -0.653520333611856
Rx5 x5 0 1
Cx5 x5 xm5 4.89917766186011e-10
Vx5 xm5 0 0
Gx5_1 x5 0 u1 0 -0.0808078632668898
Rx6 x6 0 1
Cx6 x6 xm6 3.95175907401638e-09
Vx6 xm6 0 0
Fxc6_7 x6 0 Vx7 19.0873716716282
Gx6_1 x6 0 u1 0 -0.0921092255396911
Rx7 x7 0 1
Cx7 x7 xm7 3.95175907401638e-09
Vx7 xm7 0 0
Fxc7_6 x7 0 Vx6 -0.082278153019079
Gx7_1 x7 0 u1 0 0.00757857695342356
Rx8 x8 0 1
Cx8 x8 xm8 1.25490425626002e-08
Vx8 xm8 0 0
Gx8_1 x8 0 u1 0 -0.947555441869583
Rx9 x9 0 1
Cx9 x9 xm9 2.73023897845301e-12
Vx9 xm9 0 0
Gx9_2 x9 0 u2 0 -1.31896484432979
Rx10 x10 0 1
Cx10 x10 xm10 7.77758888047627e-12
Vx10 xm10 0 0
Gx10_2 x10 0 u2 0 -1.5639966507489
Rx11 x11 0 1
Cx11 x11 xm11 2.29141629359547e-11
Vx11 xm11 0 0
Gx11_2 x11 0 u2 0 -0.549815401094269
Rx12 x12 0 1
Cx12 x12 xm12 9.31845201292013e-11
Vx12 xm12 0 0
Gx12_2 x12 0 u2 0 -0.672510434433946
Rx13 x13 0 1
Cx13 x13 xm13 4.89917766186011e-10
Vx13 xm13 0 0
Gx13_2 x13 0 u2 0 -0.0832947065766125
Rx14 x14 0 1
Cx14 x14 xm14 3.95175907401638e-09
Vx14 xm14 0 0
Fxc14_15 x14 0 Vx15 18.7065608378899
Gx14_2 x14 0 u2 0 -0.092680102366167
Rx15 x15 0 1
Cx15 x15 xm15 3.95175907401638e-09
Vx15 xm15 0 0
Fxc15_14 x15 0 Vx14 -0.0839530954267814
Gx15_2 x15 0 u2 0 0.00778078147811068
Rx16 x16 0 1
Cx16 x16 xm16 1.25490425626002e-08
Vx16 xm16 0 0
Gx16_2 x16 0 u2 0 -0.948025545602726
Ry1 y1 0 1
Gyc1_1 y1 0 x1 0 -0.24633827988472
Gyc1_2 y1 0 x2 0 -0.0436513588266539
Gyc1_3 y1 0 x3 0 -1.05287098762883
Gyc1_4 y1 0 x4 0 -1.00146197097233
Gyc1_5 y1 0 x5 0 1.00420322580232
Gyc1_6 y1 0 x6 0 -1.00126765877424
Gyc1_7 y1 0 x7 0 -1.02009260631201
Gyc1_8 y1 0 x8 0 0.999890657680585
Gyc1_9 y1 0 x9 0 1.57803715382434
Gyc1_10 y1 0 x10 0 -1.87067368958175
Gyc1_11 y1 0 x11 0 0.894346548640185
Gyc1_12 y1 0 x12 0 0.97009340489473
Gyc1_13 y1 0 x13 0 -0.966466117491626
Gyc1_14 y1 0 x14 0 0.994317590104102
Gyc1_15 y1 0 x15 0 0.975801395242396
Gyc1_16 y1 0 x16 0 -1.00002474114843
Gyd1_1 y1 0 u1 0 0.604384029339141
Gyd1_2 y1 0 u2 0 -0.351061842520764
Ry2 y2 0 1
Gyc2_1 y2 0 x1 0 1.75366172011528
Gyc2_2 y2 0 x2 0 -1.95634864117335
Gyc2_3 y2 0 x3 0 0.947129012371169
Gyc2_4 y2 0 x4 0 0.998538029027672
Gyc2_5 y2 0 x5 0 -0.995796774197685
Gyc2_6 y2 0 x6 0 0.998732341225759
Gyc2_7 y2 0 x7 0 0.979907393687995
Gyc2_8 y2 0 x8 0 -1.00010934231942
Gyc2_9 y2 0 x9 0 -0.421962846175657
Gyc2_10 y2 0 x10 0 0.129326310418248
Gyc2_11 y2 0 x11 0 -1.10565345135981
Gyc2_12 y2 0 x12 0 -1.02990659510527
Gyc2_13 y2 0 x13 0 1.03353388250837
Gyc2_14 y2 0 x14 0 -1.0056824098959
Gyc2_15 y2 0 x15 0 -1.0241986047576
Gyc2_16 y2 0 x16 0 0.999975258851565
Gyd2_1 y2 0 u1 0 -0.335799595335982
Gyd2_2 y2 0 u2 0 0.701657251468432
Ey1 p1 0 y1 ym1 1
Hy1 ym1 0 Vsp1 -50
Ey2 p2 0 y2 ym2 1
Hy2 ym2 0 Vsp2 -50
.ENDS
Для просмотра документации необходимо авторизоваться на сайте