RFToolbox - Network correctly constructed? - Matrix gets singular
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
0 commentaires
Réponse acceptée
Giorgia Zucchelli
le 3 Déc 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
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Circuit Envelope Simulation dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!