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

传真(Fax)编程

开发平台:

Matlab

  1. function [rcs] = rcs_cylinder(r1, r2, h, freq, phi, CylinderType)
  2. % rcs_cylinder.m
  3. % This program compute monostatic RCS for a finite length
  4. % cylinder of either cricular or elliptical cross-section.
  5. % Plot of RCS versus aspect angle theta is generated at a specified 
  6. % input angle phi
  7. % Last modified on July 16, 2003
  8.  r = r1;           % radius of the circular cylinder
  9. eps =0.00001;
  10. dtr = pi/180;
  11. phir = phi*dtr;
  12. freqGH = num2str(freq*1.e-9);
  13. lambda = 3.0e+8 /freq;      % wavelength
  14. % CylinderType= 'Elliptic';   % 'Elliptic' or 'Circular' 
  15. switch CylinderType
  16. case 'Circular'
  17.     % Compute RCS from 0 to (90-.5)  degrees 
  18.     index = 0;
  19.     for theta = 0.0:.1:90-.5
  20.         index = index +1;
  21.         thetar = theta * dtr;
  22.         rcs(index) = (lambda * r * sin(thetar) / ...
  23.             (8. * pi * (cos(thetar))^2)) + eps;
  24.     end
  25.     % Compute RCS for broadside specular at 90 degree
  26.     thetar = pi/2;
  27.     index = index +1;
  28.     rcs(index) = (2. * pi * h^2 * r / lambda )+ eps;    
  29.     % Compute RCS from (90+.5) to 180 degrees
  30.     for theta = 90+.5:.1:180.
  31.         index = index + 1;
  32.         thetar = theta * dtr;
  33.         rcs(index) = ( lambda * r * sin(thetar) / ...
  34.             (8. * pi * (cos(thetar))^2)) + eps;
  35.     end
  36. case 'Elliptic'
  37.     r12 = r1*r1;
  38.     r22 = r2*r2;
  39.     h2 = h*h;
  40.     % Compute RCS from 0 to (90-.5)  degrees 
  41.     index = 0;
  42.     for theta = 0.0:.1:90-.5
  43.         index = index +1;
  44.         thetar = theta * dtr;
  45.         rcs(index) =  lambda * r12 * r22 * sin(thetar) / ...
  46.                  ( 8*pi* (cos(thetar)^2)* ( (r12*cos(phir)^2 + r22*sin(phir)^2)^1.5 ))+ eps;    
  47.     end
  48.     % Compute RCS for broadside specular at 90 degree
  49.     index = index +1;
  50.     rcs(index) = 2. * pi * h2 * r12 * r22 / ...
  51.                  ( lambda*( (r12*cos(phir)^2 + r22*sin(phir)^2)^1.5 ))+ eps;    
  52.     % Compute RCS from (90+.5) to 180 degrees
  53.     for theta = 90+.5:.1:180.
  54.         index = index + 1;
  55.         thetar = theta * dtr;
  56.         rcs(index) =  lambda * r12 * r22 * sin(thetar) / ...
  57.                  ( 8*pi* cos(thetar)^2* ( (r12*cos(phir)^2 + r22*sin(phir)^2)^1.5 ))+ eps;    
  58.     end
  59. end
  60. % Plot the results
  61. delta= 180/(index-1);
  62. angle = 0:delta:180;
  63. plot(angle,10*log10(rcs),'k','linewidth',1.5);
  64. grid;
  65. xlabel ('Aspect angle, Theta [Degrees]');;
  66. ylabel ('RCS - dBsm');
  67. title  ([[CylinderType],'  Cylinder','  at Frequency = ',[freqGH],'  GHz']);