MATLAB Answers

RFToolbox - Network correctly constructed? - Matrix gets singular

1 view (last 30 days)
I try to optimize a matching network for a GaAs FEt which is an adaption of the Matlab-examples:"broadband_matching_antenna.m" and broadband_matching_amplifier.m". Analyzing the matched circuit Matlab quits the function "analyze" after the warning:
"Warning: Matrix is singular, close to singular or badly scaled." and later on with: "??? Error using ==> rfdata.rfdata.convertmatrix at 214 Y_PARAMETERS does not exist."
What is the meaning of this warning and error?
The network itself is a source with a coil (L1) in series, followed by a shunt capacitor (C1) to GND, followed by a second coil (L1) , followed by a shunt branch which is a mixture of a microstripline (called LB in the code) in series with a Resistor and a capacitor which are in parallel, both connected to GND (LB+(C2||R)).
Is the network ("InputMatchingNW") constructed correctly?
My code:
if true
Zl =50; Zr =50; Zs =50;
FET_IN =rfckt.seriesrlc('C',0.5e-12,'L',0.5e-9,'R',35); % FET Input
C1 =0.25e-12; % matching: C1 in F
C2 =0.33e-12; % matching: C2 in F (in parallel with R)
L =1e-9; % matching: L1 in H
R =72; % matching: R in Ohm (in parallel with C2)
LB =0.5e-9; % matching: L of microstrip in H (in series with C2 || R)
L_Obj =rfckt.seriesrlc('L',L);
C1_Obj =rfckt.shuntrlc('C',C1);
LB_Obj =rfckt.seriesrlc('L',LB);
C2R_Obj =rfckt.shuntrlc('C',C2,'R',R);
% LB in series with C2R
LBC2R_Obj =rfckt.series('ckts',{LB_Obj,C2R_Obj});
% complete matching netzwork
InputMatchingNW =rfckt.parallel('ckts',{rfckt.cascade('ckts',{L_Obj,...
C1_Obj,L_Obj}),LBC2R_Obj});
% with chip
MatchedFET =rfckt.cascade('ckts',{InputMatchingNW,FET_IN});
%----------------------------------------------------------------------
NPTS =128; % points for anaylze, BW = 3,9 GHz
fu =fc-(BW/2); % lower cut-off (200 MHz)
fo =fc+(BW/2); % upper cut-off (4 GHz)
freq=linspace(fu,fo,NPTS);
w =2*pi*freq;
%----------------------------------------------------------------------
analyze(FET_IN,freq,Zl,Zs,Zr);
analyze(MatchedFET,freq,Zl,Zs,Zr);
end

Accepted Answer

Giorgia Zucchelli
Giorgia Zucchelli on 3 Dec 2012
Dear Lars,
The problem is in the network LBC2R_Obj: it is built as a series, while I think that you wanted to have a cascade (correct me if I am wrong). Please the difference between rfckt.series and rfckt.cascade. If you change the construction of the network as follows: LBC2R_Obj =rfckt.cascade('ckts',{LB_Obj,C2R_Obj}); then the analysis of MatchedFET is correct.
A small tip: you can use rftool to visually inspect and analyze the objects you build in the MATLAB workspace. I find it quite useful to debug objects.
I hope that this helps, with best regards, Giorgia

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by