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

其他行业

开发平台:

Matlab

  1. % This function returns the ABCD constants when the pi model parameters
  2. % are specified.
  3. % Copyright (C) 1998 by H. Saadat.
  4. function [Z, Y, ABCD] = pi2abcd(Z, Y);
  5. global resp model par1 par2 linelngt freq
  6. par1=3;
  7. if exist('Z')~=1
  8. Z = input('Enter total series impedance R + j*R in ohms, Z = '); else end
  9. if exist('Y')~=1
  10. Y = input('Enter total shunt admittance G + j*B in siemens, Y = '); else end
  11. model = -1;
  12. if imag(Y)==0, Zc= 0; model =1, else, Zc = sqrt(Z/Y); Gamal=sqrt(Z*Y); ,end
  13. while model ~= 1 & model ~=2
  14.    model=input(' Enter 1 for medium line or 2 for long line -> ');
  15.    if model ~=1 & model ~=2
  16.    disp(' Enter 1 or 2 '), else, end
  17. end
  18. if model == 2
  19. Z = Z*sinh(Gamal)/Gamal; Y = Y*tanh(Gamal/2)/(Gamal/2);
  20. else, end
  21. fprintf(' n'), disp(' pi to ABCD')
  22. disp(' ----------')
  23. fprintf('n'), fprintf(' Z = %g + j ',real(Z)), fprintf('%g ohmsn',imag(Z)),
  24. fprintf(' Y = %g + j ',real(Y)), fprintf('%g Siemensn',imag(Y))
  25. A = 1 + Z*Y/2;  B = Z;
  26. C = Y*(1 + Z*Y/4);  D = A;
  27. ABCD = [A B; C D] ;
  28.  disp(' ')
  29.  fprintf('         %-11.5g + j', real(A)), fprintf(' %-11.5g', imag(A))
  30.  fprintf('   %-11.5g + j', real(B)), fprintf(' %-11.5g  n', imag(B))
  31.  fprintf(' ABCD =                                                             n')
  32.  fprintf('         %-11.5g + j', real(C)), fprintf(' %-11.5g', imag(C))
  33.  fprintf('   %-11.5g + j', real(D)), fprintf(' %-11.5g   n', imag(D))