%--------------------------------------------------------------------------
% aRing_fr.m
%--------------------------------------------------------------------------
% Analyse d'un rsonateur annulaire (franais)
%
% A) ENTRES
%
% 1. 'a' = rayon externe du rsonateur (en cm)
% 2. 'b' = rayon interne du rsonateur (en cm)
% 3. 'h' = hauteur du rsonateur (en cm)
% 4. 'er' = constante dilectrique relative du rsonateur
% 5. 'VSWR' = taux d'ondes stationnaires tolr pour le calcul de la
% bande passante d'impdance
%
% B) SORTIES
%
% - La frquence de rsonance, le facteur-Q et la bande passante
% d'impdance pour les modes : TE01d et TM01d.
%--------------------------------------------------------------------------
% Rfrences :
%
% - M. Verplanken et J. Van Bladel, "The electric dipole resonances of
% ring resonators of very high permittivity", IEEE Transactions on
% microwave theory and techniques, Vol. 24, Num. 2, fvrier 1976, pp.
% 108-112.
% - M. Verplanken et J. Van Bladel, "The magnetic dipole resonances of
% ring resonators of very high permittivity", IEEE Transactions on
% microwave theory and techniques, Vol. 27, Num. 4, avril 1979, pp.
% 328-332
%--------------------------------------------------------------------------
% Note : Ce fichier fait partie de l'Outil de conception et d'analyse
% des rsonateurs dilectriques (DRA.m).
%
% Programmation : Alexandre Perron (perrona@emt.inrs.ca)
% Affiliation : Institut national de la recherche scientifique (INRS)
% Dernire modification : Le 31 juillet 2008
%--------------------------------------------------------------------------
function aRing_fr
% Entte :
clc
disp(strvcat('===============================================================',...
' Outil de conception et d''analyse des rsonateur dilectriques',...
'==============================================================='));
disp(sprintf('\n-------------- Analyse d''un rsonateur annulaire ---------------'));
repeter = 1;
while repeter == 1
repeter = 0;
% Entre des paramtres :
a = [];
while isempty(a)||(isnumeric(a) == 0),
a = input('\nEntrez le rayon externe (a) du rsonateur (en cm) : ');
end
b = [];
while isempty(b)||(isnumeric(b) == 0),
b = input('\nEntrez le rayon interne (b) du rsonateur (en cm) : ');
end
h = [];
while isempty(h)||(isnumeric(h) == 0),
h = input('\nEntrez la hauteur (h) du rsonateur (en cm) : ');
end
er = [];
while isempty(er)||(isnumeric(er) == 0),
er = input('\nEntrez la constante dilectrique (er) du rsonateur : ');
end
VSWR = [];
while isempty(VSWR)||(isnumeric(VSWR) == 0),
VSWR = input('\nEntrez le VSWR pour le calcul de la bande passante (ex.: 2) : ');
end
% Un avertissement est affich si certaines limites sont dpasses :
if (b/a > 0.75)||(h/a > 1.3)
choix = [];
while isempty(choix)||(choix ~= 1 && choix ~= 2 && choix ~= 3)
choix = input(['\nAvertissement! Le ratio ''rayon interne/rayon externe'' (b/a) dpasse 0.75 et/ou\n',...
'le ratio ''hauteur/rayon externe'' (h/a) dpasse 1.3. Les rsultats des estimations\n',...
'risquent d''tre errons, surtout pour le mode TE01d! Dsirez-vous :\n', ...
' (1) Effectuer tout de mme le calcul sans modifier les valeurs entres?\n', ...
' (2) Entrer de nouvelles valeurs?\n', ...
' (3) Retourner au menu principal?\n', ...
'Faites votre choix : ']);
end
switch choix
case 1
break
case 2
repeter = 1;
case 3
return
end
% Un avertissement est affich si la constante dilectrique est plus petite que 20 :
elseif (er < 20 && repeter == 0)
choix = [];
while isempty(choix)||(choix ~= 1 && choix ~= 2 && choix ~= 3)
choix = input(['\nAvertissement! Les approximations utilises ne sont valides que pour une constante\n',...
'dilectrique leve (er > 20). Les rsultats risquent d''tre errons! Dsirez-vous :\n', ...
' (1) Effectuer tout de mme le calcul sans modifier les valeurs entres?\n', ...
' (2) Entrer de nouvelles valeurs?\n', ...
' (3) Retourner au menu principal?\n', ...
'Faites votre choix : ']);
end
switch choix
case 1
break
case 2
repeter = 1;
case 3
return
end
end
end
%============================%
% Calculs pour le mode TE01d %
%============================%
% Frquence de rsonance (en GHz) :
freq_TE = 4.7713*polyval(coeffTE(b/a),h/a)/sqrt(er)/a;
% Facteur-Q
facteurQ_TE = polyval(coeffQTE(b/a),h/a)*er^1.5;
% Bande passante :
BW_TE = (VSWR-1)/(sqrt(VSWR)*facteurQ_TE)*100;
%============================%
% Calculs pour le mode TM01d %
%============================%
% Frquence de rsonance (en GHz) :
freq_TM = 299792458/2/pi/sqrt(er)*sqrt((pi/2/h)^2+(calcX0(b/a)/a)^2)/1e7;
% Facteur-Q
facteurQ_TM = polyval(coeffQTM(b/a),h/a)*er^2.5;
% Bande passante :
BW_TM = (VSWR-1)/(sqrt(VSWR)*facteurQ_TM)*100;
% Entte :
clc
disp(strvcat('===============================================================',...
' Outil de conception et d''analyse des rsonateur dilectriques',...
'==============================================================='));
disp(sprintf('\n-------------- Analyse d''un rsonateur annulaire --------------\n'));
% Affichage des paramtres d'entre :
disp(sprintf('Rayon externe (a) du rsonateur (en cm) = %5.4f',a));
disp(sprintf('Rayon interne (b) du rsonateur (en cm) = %5.4f',b));
disp(sprintf('Hauteur (h) du rsonateur (en cm) = %5.4f',h));
disp(sprintf('Constante dilectrique du rsonateur = %5.4f',er));
% Affichage des rsultats :
disp(sprintf('\n'));
disp(strvcat(' Mode TE01d ', ...
'-------------------------------------------------'));
disp(sprintf(' Frquence de rsonance (en GHz) = %5.4f',freq_TE));
disp(sprintf(' Facteur-Q = %5.4f',facteurQ_TE));
disp(sprintf(' Bande passante (en pourcentage) = %5.4f',BW_TE));
disp(sprintf('\n'));
disp(strvcat(' Mode TM01d ', ...
'-------------------------------------------------'));
disp(sprintf(' Frquence de rsonance (en GHz) = %5.4f',freq_TM));
disp(sprintf(' Facteur-Q = %5.4f',facteurQ_TM));
disp(sprintf(' Bande passante (en pourcentage) = %5.4f',BW_TM));
end