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

其他行业

开发平台:

Matlab

  1. % This program is developed for the complete analysis and compensation
  2. % of a transmission line.
  3. % Copyright (C)1998 by H. Saadat.
  4. global resp model par1 par2 linelngt freq
  5. clc
  6. par1 = -1;
  7. menu1 =[
  8. '              TRANSMISSION LINE MODEL             '
  9. '                                                  '
  10. ' Type of parameters for input              Select '
  11. '                                                  '
  12. ' Parameters per unit length                       '
  13. ' r(ohms), g(siemens) L(mH) & C (micro F)      1   '
  14. '                                                  '
  15. ' Complex z and y per unit length                  '
  16. ' r+j*x (ohms/length), g+j*b (siemens/length)  2   '
  17. '                                                  '
  18. ' Nominal pi or Eq. pi model                   3   '
  19. '                                                  '
  20. ' A, B, C, D constants                         4   '
  21. '                                                  '
  22. ' Conductor configuration and dimension        5   '
  23. '                                                  '
  24. ' To quit                                      0   '
  25. '                                                  '];
  26. disp(menu1)
  27.   while par1 ~=1 & par1 ~= 2 & par1 ~= 3 & par1 ~= 4 & par1 ~= 5 & par1 ~= 0
  28. par1 = input(' Select number of menu --> ');
  29.     if par1 ~= 1 & par1 ~= 2 & par1 ~= 3 & par1 ~= 4 & par1 ~= 5 & par1 ~= 0
  30.      disp(' Enter 1, 2, 3, 4, 5 or 0'), end
  31.   end
  32. fprintf(' n')
  33. if par1 == 0,
  34.     if exist('par2')==1
  35.     fprintf('n To display the Analysis Menu for the existing model enter listmenu n')
  36.     else, end
  37. return, end
  38. if par1 == 1
  39. Length = input('Enter Line length = '); linelngt= Length;
  40. f = input('Enter Frequency in Hz = ');  freq=f;
  41. r = input('Enter line resistance/phase in ohms per unit length r = ');
  42. L = input('Enter line inductance/phase in millihenry per unit length L = ');
  43. C = input('Enter line capacitance/phase in micro F per unit length C = ');
  44. g = input('Enter line conductance/phase in siemens per unit length g = ');
  45. [Z,Y, ABCD] = rlc2abcd(r, L, C, g, f, Length);
  46. end
  47. if par1 ==2
  48. Length = input('Enter Line length = '); linelngt=Length;
  49. f = input('Enter Frequency in Hz = ');  freq=f;
  50. z = input('Enter series impedance r + j*x in ohms per unit length z = ');
  51. y = input('Enter shunt admittance  g + j*b in siemens per unit length y = ');
  52. r = real(z);  L = abs(imag(z))/(2*pi*f)*1000;
  53. g = real(y);  C = abs(imag(y))/(2*pi*f)*1000000;
  54. [Z,Y, ABCD] = zy2abcd(z, y, Length);
  55. end
  56. if par1 == 3
  57. Z = input('Enter total series impedance R + j*X in ohms Z = ');
  58. Y = input('Enter total shunt admittance G + j*B in siemens Y = ');
  59. [Z, Y, ABCD] = pi2abcd(Z, Y);
  60. end
  61. if par1 == 4
  62. model = 1;
  63. A = input('Enter the complex constant A = ');
  64. B = input('Enter the complex constant B = ');
  65. C = input('Enter the complex constant C = ');
  66. D = A;
  67. [Z, Y, ABCD] = abcd2pi(A, B, C);
  68. end
  69. if par1==5
  70. [L, C]=gmd2lc;
  71.   if isempty(L)==0 |isempty(C)==0
  72.   Length = input('Enter Line length = '); linelngt=Length;
  73.   f = input('Enter Frequency in Hz = ');  freq=f;
  74.   r = input('Enter line resistance/phase in ohms per unit length = ');
  75.   g = input('Enter line conductance/phase in siemens per unit length = ');
  76. shrt=input('Is the line model Short? Enter ''Y'' or ''N'' within quotes --> ');
  77. if shrt == 'Y' | shrt == 'y', C = 0; g = 0; else, end
  78.   [Z,Y, ABCD] = rlc2abcd(r, L, C, g, f, Length);
  79.   else lineperf, end
  80. end
  81. if par1 ==1 | par1== 2 | par1==3 | par1==4 | par1 ==5
  82. if model == -1 | model == 1 | model ==2
  83.   fprintf('n Hit return to continue n')
  84.   pause
  85. listmenu
  86. else, fprintf(' You must Enter 1, 2, 3, 4 or 5. Try again n'), end
  87. end