RFToolbox - Network correctly constructed? - Matrix gets singular
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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 comentarios
Respuesta aceptada
Giorgia Zucchelli
el 3 de Dic. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Circuit Envelope Simulation en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!