📄 match_net.m
字号:
% Getting close to the finish ! Now need to develop ABCD (chain) to s param transoformation
% since the matching networks were (sucessfully) described using ABCD two port description.
% Assume same Zo on both ports
clear
clc
syms a b c d z11 z12 z21 z22 s11 s12 s21 s22 Zo s
% first, abcd -> z
z11 = a/(c); z12 = (a*d-b*c)/(c); z21=1/(c); z22 = d/(c); % dimensionally ok and "confirmed"
% note that C=0 (no shunt) is a bummer ....
% Then, z -> s parameters ...
D = ((z11/Zo+1)*(z22/Zo+1)-z12*z21/(Zo^2));
sp(1,1) = simple(((z11/Zo-1)*(z22/Zo+1)-z12*z21/(Zo^2))/D);
sp(2,2) = simple(((z11/Zo+1)*(z22/Zo-1)-z12*z21/(Zo^2))/D);
sp(1,2) = simple(2*z12/(D*Zo));
sp(2,1) = simple(2*z21/(D*Zo));
% using the aboove, convert LC matching net to s param
% First, create ABCD as before in s_plu_match_2.m
syms x y Z Y s L1 L2 C1 C2 Co Rl w
Z(1,1) = 1; Z(1,2) = x; Z(2,1) = 0; Z(2,2)=1; % series impedance
Y(1,1) = 1; Y(1,2) = 0; Y(2,1) = y; Y(2,2)=1; % shunt admittance
% build a network using abcd chain parameters, same topology *happens* to be used on transistor input and output
Z(1,2) = L2*s; % series L2
Y(2,1) = C2*s; % shunt C2
N = Z*Y; % combine (series 1st)
Z(1,2) = L1*s + 1/(C1*s); % series lC
N_abcd = N*Z; % series L2, shunt C2, followed by series L1 C1
disp('Here is the general S parameter description of the INPUT matching network: ')
N_s = subs(sp,{a b c d Zo},{N_abcd(1,1), N_abcd(1,2), N_abcd(2,1),N_abcd(2,2),50})
Y(2,1) = Co*s; % for output match, need to add a shunt cap
Nout_abcd = simple(Y*N_abcd);
disp('Here is the general S parameter description of the OUTPUT matching network: ')
Nout_s = subs(sp,{a b c d Zo},{Nout_abcd(1,1), Nout_abcd(1,2), Nout_abcd(2,1),Nout_abcd(2,2), 50});
% determine polynonials
[numi,deni] = numden(N_s);
numi = collect(numi,s);
deni = collect(deni,s);
[numo,deno]=numden(Nout_s);
numo = collect(numo,s);
deno = collect(deno,s);
load amp_data; % Now pick up LC NUMERICAL values for matching network
a=1e6; % Simulink Model was scaled by 1 MHz for computation reasons.
for i=1:2
for k=1:2
% input matching network
L1=(L1i+Loi)*a; L2=L2i*a; C1=C1i*a; C2=C2i*a; % scale components
ni(i,k).p= sym2poly(subs(numi(i,k)));
di(i,k).p= sym2poly(subs(deni(i,k)));
% output matching network
L1=(L1o)*a; L2=L2o*a; C1=C1o*a; C2=C2o*a; % scale components
Co = Coo*a;
no(i,k).p= sym2poly(subs(numo(i,k)));
do(i,k).p= sym2poly(subs(deno(i,k)));
end
end;
% We now (ostensibly) have s parameter matching networks in the s-domain
% with numerical coefficients for the powers of s.
% Confused yet ? Sorry, too many s's !
save match_net ni di no do
% The final confirmation will be to use these matching networks in a
% Simulink model, along with the Transistor model that was checked in
% sp_ex1.m
disp('Doing this algebra by long hand would be very very painful ! ')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -