rcs_frustum.m
上传用户:szahd2008
上传日期:2020-09-25
资源大小:1275k
文件大小:3k
源码类别:

传真(Fax)编程

开发平台:

Matlab

  1. function [rcs] = rcs_frustum (r1, r2, h, freq, indicator)
  2. % This program computes the monostatic RCS for a frustum.
  3. % Incident linear Polarization is assumed.
  4. % To compute RCP or LCP RCS one must use Eq. (2.24)
  5. % When viewing from the small end of the frustum
  6. % normal incedence occurs at aspect pi/2 - half cone angle
  7. % When viewing from the large end, normal incidence occur at
  8. % pi/2 + half cone angle.
  9. % RCS is computed using Eq. (2.43). This program assumes a geomtry
  10. % similar top Fig. 2.13
  11. format long
  12. index = 0;
  13. eps = 0.000001;
  14. lambda = 3.0e+8 /freq;
  15. % Enter frustum's small end radius
  16. %r1 =.02057;
  17. % Enter Frustum's large end radius
  18. %r2 = .05753;
  19. % Compute Frustum's length
  20. %h = .20945;
  21. % Comput half cone angle, alpha
  22. alpha = atan(( r2 - r1)/h);
  23. % Compute z1 and z2
  24. z2 = r2 / tan(alpha);
  25. z1 = r1 / tan(alpha);
  26. delta = (z2^1.5 - z1^1.5)^2;
  27. factor = (8. * pi * delta) / (9. * lambda);
  28. %('enter 1 to view frustum from large end, 0 otherwise')
  29. large_small_end = indicator;
  30. if(large_small_end == 1)
  31.    % Compute normal incidence, large end
  32.    normal_incedence = (180./pi) * ((pi /2) + alpha)
  33.    % Compute RCS from zero aspect to normal incidence
  34.    for theta = 0.001:.1:normal_incedence-.5
  35.       index = index +1;
  36.       theta = theta * pi /180.;
  37.       rcs(index) = (lambda * z1 * tan(alpha) *(tan(theta - alpha))^2) / ...
  38.          (8. * pi *sin(theta)) + eps;
  39.    end
  40.    %Compute broadside RCS
  41.    index = index +1;
  42.    rcs_normal = factor * sin(alpha) / ((cos(alpha))^4) + eps;
  43.    rcs(index) = rcs_normal;
  44.    % Compute RCS from broad side to 180 degrees 
  45.    for theta = normal_incedence+.5:.1:180
  46.       index = index + 1;
  47.       theta =  theta * pi / 180. ;
  48.       rcs(index) = (lambda * z2 * tan(alpha) *(tan(theta - alpha))^2) / ...
  49.          (8. * pi *sin(theta)) + eps;
  50.    end
  51. else
  52.    % Compute normal incidence, small end
  53.    normal_incedence = (180./pi) * ((pi /2) - alpha)
  54.    % Compute RCS from zero aspect to normal inicedence (large end of frustum)
  55.    for theta = 0.001:.1:normal_incedence-.5
  56.       index = index +1;
  57.       theta = theta * pi /180.;
  58.       rcs(index) = (lambda * z1 * tan(alpha) *(tan(theta + alpha))^2) / ...
  59.          (8. * pi *sin(theta)) + eps;
  60.    end
  61.    %Compute broadside RCS
  62.    index = index +1;
  63.    rcs_normal = factor * sin(alpha) / ((cos(alpha))^4) + eps;
  64.    rcs(index) = rcs_normal;
  65.    % Compute RCS from broad side to 180 degrees (small end of frustum)
  66.    for theta = normal_incedence+.5:.1:180
  67.       index = index + 1;
  68.       theta =  theta * pi / 180. ;
  69.       rcs(index) = (lambda * z2 * tan(alpha) *(tan(theta + alpha))^2) / ...
  70.          (8. * pi *sin(theta)) + eps;
  71.    end
  72. end
  73. % Plot RCS versus aspect angle
  74. delta = 180 /index;
  75. angle = 0.001:delta:180;
  76. plot (angle,10*log10(rcs),'k','linewidth',1);
  77. grid;
  78. xlabel ('Apsect angle - degrees');
  79. ylabel ('RCS - dBsm');
  80. if(indicator ==1)
  81.     title ('Viewing from large end');
  82. else
  83.     title ('Viewing from small end');
  84. end
  85.