Zy2abcd.m
上传用户:eighthdate
上传日期:2014-05-24
资源大小:270k
文件大小:3k
源码类别:

其他行业

开发平台:

Matlab

  1. % This function computes the ABCD constants and the parameters
  2. % of the transmission line pi models from impedance and admittance
  3. % per unit length.
  4. %
  5. % Copyright (C) 1998 by H. Saadat.
  6. function [Z, Y, ABCD] = zy2abcd(z, y, Length);
  7. global resp model par1 par2 linelngt freq
  8. par1=2;
  9. if exist('z')~=1
  10. z = input('Enter series impedance r + j*x in ohms per unit length, z = ');
  11. else, end
  12. if exist('y')~=1
  13. y = input('Enter shunt admittance  g + j*b in siemens per unit length, y = ');
  14. else, end
  15. if exist('Length')~=1
  16. Length = input('Enter Line length = '); linelngt = Length; else, end
  17. %else, end
  18.    model =-1;
  19.    Z = z*Length;
  20.    Y = y*Length;
  21. if  real(Y)== 0 & imag(Y) == 0
  22.     ZC = 0;
  23.     fprintf(' n'), disp(' Short line model')
  24.     disp(' ----------------')
  25.     fprintf('n'), fprintf(' Z = %g + j ',real(Z)), fprintf('%g ohmsn',imag(Z)),
  26. else
  27.     Zc = sqrt(Z/Y); Gamal = sqrt(Z*Y);
  28.        while model ~=1 & model ~=2
  29.        model = input('Enter 1 for Medium line or 2 for long line --> ');
  30.          if model ~=1 & model ~=2
  31.          disp('Enter 1 or 2'), else,end
  32.        end
  33.       if model==2
  34.       Z = Zc*sinh(Gamal);  Y = 2*tanh(Gamal/2) /Zc;
  35.       else, end
  36.   if model==1,  disp(' '),  disp(' Nominal pi model'),disp(' ----------------')
  37.       fprintf('n'), fprintf(' Z = %g + j ',real(Z)), fprintf('%g ohmsn',imag(Z)),
  38.       fprintf(' Y = %g + j ',real(Y)), fprintf('%g Siemensn',imag(Y))
  39.       elseif model==2, disp(' '), disp(' Equivalent pi model')
  40.       disp(' -------------------')
  41.       fprintf('n')
  42.       fprintf(' Z'' = %g + j ',real(Z)),  fprintf('%g ohmsn',imag(Z)),
  43.       fprintf(' Y'' = %g + j ',real(Y)),  fprintf('%g siemensn',imag(Y))
  44.       fprintf(' Zc  = %g + j ',real(Zc)), fprintf('%g ohmsn',imag(Zc))
  45.       fprintf(' alpha l  = %g neper', real(Gamal))
  46.       fprintf('    beta l = %g radian', imag(Gamal))
  47.       fprintf('   = %g degreen', imag(Gamal*180/pi))
  48.       else, end,
  49. %  end
  50. end
  51. if model == -1 | model == 1 | model == 2
  52.   %  A,B,C,D constants of line
  53.   A = 1 + Z*Y/2;  B = Z;
  54.   C = Y*(1 + Z*Y/4);  D = A;
  55.   ABCD = [A B; C D];
  56.   disp(' ')
  57.   fprintf('         %-11.5g + j', real(A)), fprintf(' %-11.5g', imag(A))
  58.   fprintf('   %-11.5g + j', real(B)), fprintf(' %-11.5g  n', imag(B))
  59.   fprintf(' ABCD =                                                             n')
  60.   fprintf('         %-11.5g + j', real(C)), fprintf(' %-11.5g', imag(C))
  61.   fprintf('   %-11.5g + j', real(D)), fprintf(' %-11.5g   n', imag(D))
  62. else, fprintf(' You must enter 1 or 2. Tray again n'), return, end