Advertisement
Guest User

Егоркины графики по Вахитову

a guest
Nov 25th, 2015
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Octave 3.44 KB | None | 0 0
  1. clear all;
  2. clf;
  3. close all;
  4.  
  5. X_STEPS = 1;
  6. global plot_num = 0;
  7. global plots = [2 4];
  8.  
  9.  
  10.  
  11. %pt3;
  12. D = 275E-3;
  13. a_d = D/2;
  14. num_req = 3;
  15. K_em = 17;
  16. K_fem = 3;
  17. L_k = 7E-3;
  18. R_k = 16;
  19. F_m = 50;
  20.  
  21. S_d = pi * a_d^2;
  22. W_el = 75;
  23. rho_v = 1.23; % кг/м^3
  24.  
  25. m_1 = 46E-3;
  26. r_1 = 22.5;
  27. c_1 = 2.2E-4;
  28. c_sum = 7E-5;
  29. V_v = 340; % м/с
  30.  
  31.  
  32.  
  33. l_z = 31.5;
  34.  
  35.  
  36.  
  37.  
  38. function myfig (X1, fun, arg, X, XLabels, MT)
  39.   global plot_num;
  40.   global plots;
  41.   plot_num++;
  42.   figure (gcf, 'papertype', 'A4', 'paperunits', 'centimeters', 'papersize', [21 29.7], 'Position', [10 10 810 610]);
  43.   %orient('Landscape');
  44.   orient('Portrait');
  45.   subplot(plots(1), plots(2), plot_num);
  46.   A1 = semilogx(X1, fun);
  47. %  MT
  48.   title(MT);
  49.   grid('on');
  50.   set(gca, 'XMinorGrid', 'off');
  51.   set(gca, 'XMinorTick', 'off');
  52.   set(gca, 'XLabel', 'f, Hz/kHz');
  53.   set(gca, 'YLabel', arg);
  54.   set(gca, 'XLim', 1e3 * [X(1) X(size(X,2)) ]);
  55.   set(gca, 'XTick', X * 1E3);
  56.   set(gca, 'XTickLabel', XLabels);
  57.  
  58. %  legend('location', 'northwest');
  59. %  set(gcf, 'Position', [10 10 810 610]);
  60. endfunction
  61.  
  62.  
  63.  
  64. F_v = 2*V_v/(a_d*pi);
  65.  
  66.  
  67. points    = 1E4; % Количество точек
  68. %oct_start = -8; % Начало графика (октава)
  69. oct_start = log2(F_m * 1e-3);
  70. %oct_end   = 4; % Конец  графика (октава)
  71. oct_end   = log2(F_v * 1e-3);
  72.  
  73. X       = 2.^[floor(oct_start):X_STEPS:ceil(oct_end)]; % отсчеты по X
  74. XLabels = round(X*1E3);
  75. %XLabels = [round(2.^[oct_start:X_STEPS:oct_end]*1E3)]% .1*round(10*2.^[0:X_STEPS:oct_end])]
  76. X1      = 2.^linspace(oct_start,oct_end,points) * 1e3;
  77.  
  78. Z_m1    = r_1;
  79. Z_m2    = i * 2*pi * m_1 * X1;
  80. Z_m3    = i ./ (2*pi .* [c_1; c_sum] .* X1);
  81. Z_meh = Z_m1 + Z_m2 .- Z_m3;
  82.  
  83. Z_1 = R_k;
  84. Z_2 = i * 2*pi * L_k * X1;
  85. Z_3 = K_em^2 ./ (Z_meh);
  86. Z   = Z_1 + Z_2 + Z_3;
  87. clear Z_?
  88.  
  89. M_chg = rho_v / (sqrt(2)) * (i*K_em*S_d*X1) ./ (Z_meh(2,:) .* Z(2,:));
  90. K_omb = sqrt (num_req * (1 + (pi*X1*a_d/V_v).^3));
  91. %K_omb_fm = sqrt (num_req * (1 + (pi*F_m*a_d/V_v).^3));
  92. K_omb_fm = sqrt (num_req * (1 + (pi*F_m*K_fem*a_d/V_v).^3));
  93. M_chk = M_chg .* K_omb;
  94.  
  95. %E_hchk = E_hch * K_omb_fm;
  96. E_hchk = rho_v * K_em * S_d / (sqrt(8*R_k)*pi * m_1) * K_omb_fm;
  97. N_hchk = 20*log10(E_hchk/2E-5);
  98. p_lN = E_hchk * sqrt(num_req * W_el) / l_z;
  99.  
  100. N_lN = 20*log10(p_lN/2e-5);
  101.  
  102.  
  103.  
  104. THETA = linspace(-pi/2, pi/2, points);
  105. ka = [.25 .5 1 2 4]';
  106. R_hor = abs(2*besselj(1,ka*sin(THETA))./(ka*sin(THETA)));
  107. R_vert = R_hor .* abs((sin(3*ka*num_req * sin(THETA)/2)) ./ (num_req * sin(3*ka * sin(THETA)/2)));
  108.  
  109. plot_num++;
  110. subplot(plots(1), plots(2), plot_num)
  111. polar(THETA, R_hor);
  112. title('Горизонтальная плоскость колонки');
  113. %legend (num2str(ka));
  114.  
  115. plot_num++;
  116. subplot(plots(1), plots(2), plot_num)
  117. polar(THETA, R_vert);
  118. title('Вертикальная плоскость колонки');
  119. %legend (num2str(ka));
  120.  
  121.  
  122. myfig (X1, abs(Z(1,:)), '|Z|', X, XLabels, 'Зависимость модуля Z от частоты');
  123. myfig (X1, 180*angle(Z(1,:)) / pi, '\phi(Z)', X, XLabels, 'Зависимость фазы Z от частоты');
  124.  
  125. myfig (X1, abs(M_chg), 'Па/В', X, XLabels, 'ЧХЗД динамической головки');
  126. myfig (X1, 20*log10(abs(M_chg)/max(abs(M_chg))), 'дБ', X, XLabels, 'ЧХЗД динамической головки (дБ)');
  127.  
  128. myfig (X1, abs(M_chk), 'Па/В', X, XLabels, 'ЧХЗД колонки');
  129. myfig (X1, 20*log10(abs(M_chk)/max(abs(M_chk))), 'дБ', X, XLabels, 'ЧХЗД колонки (дБ)');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement