MATLAB推論計算の例

%************************************************* **************************************
%FOLDED_DIPOLE.m
%******* ************************************************** ***************
%これは、折り返しダイポールアンテナの設計を支援するために作成されたMATLABベースのプログラムです。

%折り返しダイポールは、特性用途に使用される
入力伝送線路の%インピーダンスZcは、50または75より大きい
%オーム。これらの状況では、単一要素のダイポールは
伝送線路との良好なマッチング特性を提供しません
より良いマッチング特性を提供するために、非常に
細い(s <<ラムダ)長方形ループを形成する折り返しワイヤが使用されます。デザインを一般化するために、
折りたたまれたダイポールの2本のワイヤの%半径は必ずしも同じではありません。
%ダイポールの半径はaで表され、フィードワイヤの半径は
%要素の半径はa 'です。折りたたまれたダイポールは、
昇圧インピーダンス%トランスとして機能しますこれは
、「ツインリード」伝送線路などのインピーダンス平衡伝送線路と組み合わせて使用​​する場合に非常に役立ち
ます。等しい値の2つのコンデンサC
がダイポールの給電に直列に配置され、回路が共振し、ラインの
バランスが保たれるようにします。総入力インピーダンスが容量性の場合、
%単一インダクタLinが
%ダイポールの給電点に並列に配置され、回路が共振し、ラインのバランスが保たれるようにします。

%このアンテナを分析するために、ユーザは、次の数量を入力する必要があります
%1ダイポール半径、(波長における)
(波長で)%2。フィード線ダイポール半径、」
%3の中心をワイヤ分離、s、(波長)
%既知の長さのダイポールに対してインピーダンスが計算される場合
%4。ダイポール長、L、(波長)
%アンテナインピーダンスが指定されている場合
%5。アンテナ入力抵抗Rd、(オーム) )
%6。アンテナ入力リアクタンスXd、(オーム)
%7。共振する周波数f、(MHz)
%8。アンテナに給電するラインの実際の特性インピーダンスZc、(オーム)

%プログラムは以下の量を計算します。
%1。ワイヤ電流分割係数、アルファ
%2。有効半径ae、(波長
単位)
3。単一要素ダイポールの入力インピーダンスZd、(オーム単位)%4。伝送ラインモードの特性インピーダンス、 Zo、
%(オーム)
%5。伝送ラインモードインピーダンス、Zt、(オーム)
%6。総入力抵抗、Rin、(オーム)
%7。総入力リアクタンス、Xin、(オーム)
%合計入力リアクタンスは誘導性です
%8。ダイポールを共振させるための合計入力容量Cin
%(ファラッド単位)
%9。各共振コンデンサCの容量
(ファラッド単位)
ラインのバランスをとる合計入力リアクタンスが容量性
%10。ダイポールを共振させるための合計入力インダクタンスLin(
%ヘンリー)
%11。合計入力インピーダンスが
共振した後の反射係数
%12。合計入力インピーダンスが共振した後のVSWR
%------- -------------------------------------------------- --------------------------------------
%Jason Latimer著、2002年11月
%--- -------------------------------------------------- ------------------------------------------
すべてクリア;
すべて閉じる;
長いフォーマット;

定数の定義
C = 0.5772;
k = 2 * pi;

%フラグ変数
cap_used = 0;

fprintf( '出力デバイスオプション\ n \ tオプション(1):画面\ n \ tオプション(2):ファイル\ n');
ERR = 1;
while(
ERR〜= 0)DEVICE = str2num(input( '\ nOutput device ='、 's'));
if(DEVICE == 1)
ERR = 0;
elseif(DEVICE == 2)
FILNAM = input( '目的の出力ファイル名を入力します:'、 's');
ERR = 0;
else
fprintf( '\ n出力デバイス番号は1または2のいずれかである必要があります\ n');
エンド
エンド

%ユーザーにアンテナインピーダンスを計算するか指定するかを決定するように求める
fprintf( '\ n \ nアンテナインピーダンスオプション\ n \ tオプション(3):既知の長さのダイポールのインピーダンスを計算する\ n \ tオプション(4):折り返しダイポールインピーダンスの合計を指定する\ n ');
ERR = 1;
while(
ERR〜= 0)IMP_OPT = str2num(input( '\ nアンテナインピーダンスオプション='、 's'));
if(IMP_OPT == 3)
ERR = 0;
elseif(IMP_OPT == 4)
ERR = 0;
else
fprintf( '\ nアンテナインピーダンスオプションは3または4のいずれかである必要があります\ n');
エンド
エンド

%シャントまたはシリーズマッチングを使用するかどうかを決定するようにユーザーに
促しますfprintf( '\ n \ nアンテナマッチングオプション\ n \ tオプション(5):シリーズマッチング\ n \ tオプション(6):シャントマッチング\ n');
ERR = 1;
while(
ERR〜= 0)MAT_OPT = str2num(input( '\ nアンテナマッチングオプション='、 's'));
if(MAT_OPT == 5)
ERR = 0;
elseif(MAT_OPT == 6)
ERR = 0;
else
fprintf( '\ nアンテナマッチングオプションは5または6のいずれかである必要があります\ n');
エンド
エンド

%ユーザー入力を取得
if(IMP_OPT == 3)
a = str2num(input( '\ nダイポールの半径a、(波長)='、 's'));
a_prime = str2num(input( '\ n給電線の半径、aprime、(波長)='、 's'));
s = str2num(input( '\ n中心間のワイヤ間隔、s、(波長)='、 's'));
L = str2num(input( '\ nダイポールの全長L(波長単位)='、 's'));
end
if(IMP_OPT == 4)
Rin_tot = str2num(input( '\ n折り返しダイポール入力抵抗、Rin、(オーム)='、 's'));
Xin_tot = str2num(input( '\ n折り返しダイポール入力リアクタンス、Xin、(オーム)='、 's'));
Zin_tot = Rin_tot + j * Xin_tot;
end
f = str2num(input( '\ n中心周波数、f、(MHz)='、 's'));
Zc = str2num(input( '\ nアンテナに給電するラインの実際の特性インピーダンス、Zc、(オーム)='、 's'));

if(IMP_OPT == 3)
%現在の分割係数を計算します== alpha
u = a / a_prime;
v = s / a_prime;
alpha =(acosh((v 2-u 2 + 1)/(2 v)))/(acosh((v 2 + u 2-1)/(2 v * u)));

%Obtain the effective radius for the given dipole geometry
ln_ae = log(a_prime)+(1/((1+u)^2))*(u^2*log(u)+2*u*log(v));
ae = exp(ln_ae);

%Determine the input impedance of the (outer) dipole in the antenna
%(radiating) mode
%note: This method is only used if option three is chosen
Rr = (120*pi)/(2*pi)*(C+log(k*L)-cosint(k*L)+0.5*sin(k*L)*(sinint(2*k*L)-2*sinint(k*L))+0.5*cos(k*L)*(C+log(0.5*k*L)+cosint(2*k*L)-2*cosint(k*L)));
Rin = Rr/((sin(0.5*k*L))^2);
Xm = (120*pi)/(4*pi)*(2*sinint(k*L)+cos(k*L)*(2*sinint(k*L)-sinint(2*k*L))-sin(k*L)*(2*cosint(k*L)-cosint(2*k*L)-cosint((2*k*a^2)/L)));
Xin = Xm/((sin(0.5*k*L))^2);
Zin = Rin + j*Xin;
Za = Zin;
Ra = real(Za);
Xa = imag(Za);

%Determine the characteristic impedance at the input terminals for the
%transmission line mode
Zo = 60*acosh((s^2-a^2-a_prime^2)/(2*a*a_prime));
Zt = j*Zo*tan(0.5*k*L);
Rt = real(Zt);
Xt = imag(Zt);

%Determine the total input impedance, which combines the antenna
%(radiating) and transmission line modes
Zin_tot = 2*Zt*(Za*(1+alpha)^2)/(2*Zt+Za*(1+alpha)^2);
Rin_tot = real(Zin_tot);
Xin_tot = imag(Zin_tot);

終わり

%シリーズマッチング専用のコード化された部分
if(MAT_OPT == 5)
X_LE = --Xin_tot;
if(X_LE <0)
%回路を共振させるための直列容量を決定します
C = 1 /(pi *(f *(10 ^ 6))Xin_tot);
Cin = C / 2;
cap_used = 1;
それ以外の
場合、回路を共振させるための直列インダクタンスを決定します
このセクションを確認する必要があります)
Lin = X_LE /(2
pi f 10 ^ 6);
L = Lin / 2;
終了
Rin_tot_new = Rin_tot;
終わり

%シャントマッチング専用のコードの一部
if(MAT_OPT == 6)
Yin_tot = 1 / Zin_tot;
Bin_tot = imag(Yin_tot);
B_L = --j Bin_tot;
X_LE = 1 / B_L;
if(imag(X_LE)<0)
%回路を共振させるシャント容量を決定します
Cin = 1 /(j
X_LE 2 pi f 10 ^ 6);
cap_used = 1;
else
%回路を共振させるシャントインダクタンスを決定します
Lin = X_LE /(j 2 pi f 10 ^ 6);
終了
Rin_tot_new = 1 /(real(Yin_tot));
終わり


(MAT_OPT == 6)
gamma =(Rin_tot_new-Zc)/(Rin_tot_new + Zc);の場合、VSWRと反射係数を決定します。
else
gamma =(Rin_tot-Zc)/(Rin_tot + Zc);
終了
VSWR =(1 + abs(ガンマ))/(1-abs(ガンマ));

%出力が画面に送信されるのか、ユーザー名のファイルに送信されるのかを判別します
if(DEVICE == 2)
fid = fopen(FILNAM、 'w');
else
fid = DEVICE;
終わり

%入力パラメータ値と計算された出力結果を表示します
fprintf(fid、 '\ n \ n- ---- ---- ---- ---- ---- ---- Folded Dipole ---- ---- ---- ---- ---- ---- ---- ---- ----' );
fprintf(fid、 '\ n ------------------------入力データの要約--------------- ----------- ');
if(IMP_OPT == 3)
fprintf(fid、 '\ n双極子の半径a(波長)は%s \ n'、num2str(a));
fprintf(fid、 '\ n送り線の半径、aprime、(波長)は%s \ n'、num2str(a_prime));
fprintf(fid、 '\ n中心間のワイヤ間隔s、(波長)は%s \ n'、num2str(s))
fprintf(fid、 '\ nダイポールの全長L、(in波長)は%s \ n '、num2str(L));
elseif(IMP_OPT == 4)
fprintf(fid、 '\ n折り返しダイポール入力抵抗Rin、(オーム)は%s \ n'、num2str(Rin_tot));
fprintf(fid、 '\ n折り返しダイポール入力リアクタンスXin、(オーム)は%s \ n'、num2str(Xin_tot));
end
fprintf(fid、 '\ n中心周波数f、(MHz)は%s \ n'、num2str(f));
fprintf(fid、 '\ nアンテナに給電するラインの実際の特性インピーダンスZc、(オーム)は%s \ n'、num2str(Zc));
fprintf(fid、 '\ n \ n');
fprintf(fid、 '----------------------------------出力---------- ------------------------ ');
if(IMP_OPT == 3)
fprintf(fid、 '\ n現在の分割比:alpha =%s \ n'、num2str(alpha));
fprintf(fid、 '\ n双極子ペアの有効半径(波長単位):ae =%s \ n'、num2str(ae));
fprintf(fid、 '\ nダイポール入力抵抗(オーム):Rd =%s \ n'、num2str(Ra));
fprintf(fid、 '\ nダイポール入力リアクタンス(オーム):Xd =%s \ n'、num2str(Xa));
fprintf(fid、 '\ n伝送線路モードの特性インピーダンス(オーム):Zo =%s \ n'、num2str(Zo));
if abs(Zt)<(10 ^ 12)
fprintf(fid、 '\ n伝送線路モードの入力端子の抵抗(オーム):Rt =%s \ n'、num2str(Rt));
fprintf(fid、 '\ n伝送線路モードの入力端子でのリアクタンス(オーム):Xt =%s \ n'、num2str(Xt));
else
fprintf(fid、 '\ n伝送線路モードの入力端子のインピーダンス(オーム):Zt =無限大\ n');
エンド
エンド
fprintf(fid、 '\ n合計入力抵抗(オーム):Rin =%s \ n'、num2str(Rin_tot));
fprintf(fid、 '\ n総入力リアクタンス(オーム):Xin =%s \ n'、num2str(Xin_tot));
if(MAT_OPT == 5)
if(cap_used == 1)
fprintf(fid、 '\ n入力インピーダンスを共振させるための入力直列容量の合計(ファラッド単位):Cin =%s \ n'、num2str(Cin));
fprintf(fid、 '\ nラインのバランスをとるための入力直列容量(ファラッド単位):C =%s \ n'、num2str©);
else
fprintf(fid、 '\ n入力インピーダンスを共振させるための入力直列インダクタンスの合計(ヘンリー単位):Lin =%s \ n'、num2str(Lin));
fprintf(fid、 '\ nラインのバランスをとるための入力直列インダクタンス(ヘンリー単位):L =%s \ n'、num2str(L));
終了
終了
if(MAT_OPT == 6)
if(cap_used == 1)
fprintf(fid、 '\ n入力インピーダンスを共振させるための入力並列容量の合計(ファラッド単位):Cin =%s \ n'、num2str(Cin));
else
fprintf(fid、 '\ n入力インピーダンスを共振させるための入力並列インダクタンスの合計(ヘンリー単位):Lin =%s \ n'、num2str(Lin));
end
end
fprintf(fid、 '\ n共振後の新しい入力抵抗は次のとおりです。Rin(total)=%s \ n'、num2str(Rin_tot_new));
fprintf(fid、 '\ nインピーダンスが共振した後の反射係数:gamma =%s \ n'、num2str(gamma));
fprintf(fid、 '\ nインピーダンスが共振した後のVSWRは次のとおりです:VSWR =%s \ n'、num2str(VSWR));
fprintf(fid、 '\ n \ n');

if(DEVICE == 2)
fclose(fid);
終わり

%-プログラムの終了-------------------------------------------

折りたたまれた
出力デバイスオプション
オプション(1):画面
オプション(2):ファイル

出力デバイス= 1

アンテナインピーダンスオプション
オプション(3):既知の長さのダイポールのインピーダンスを計算します
オプション(4):折り返しダイポールの合計インピーダンスを指定します

アンテナインピーダンスオプション= 3

アンテナマッチングオプション
オプション(5):シリーズマッチング
オプション(6):シャントマッチング

アンテナマッチングオプション= 5

双極子の半径a(波長)= 12

給電線の半径、aprime、(波長)= 24

中心間のワイヤ間隔、s、(波長)= 50

ダイポールの全長L(波長単位)= 34

中心周波数f、(MHz)= 321

アンテナに給電するラインの実際の特性インピーダンスZc(オーム)= 24

おすすめ

転載: blog.csdn.net/m0_38127487/article/details/115283668