% 生成多組雙扭線
% 根據曲線趨勢選取點的疏密
clear
d=100; % 後部平直段的直徑D
a=[0.45 0.50 0.55];
% 控制曲線形狀的參數,a越大曲率越小,一般取a=0.5就可以。
% 較小的a值對應喇叭的外徑小,佔空間小,加工成本低,
% 但a值太小的話收縮後的流場不好。
alpha_end=-15;
% 曲線結束位置,一般取0°即可,-15°對應最大直徑。
fid(1)=fopen('a45.dat','w');
fid(2)=fopen('a50.dat','w');
fid(3)=fopen('a55.dat','w');
yy=0;
xx=0;
for i=1:length(a);
for alpha=45:-0.01:alpha_end
% 起點45°在左側,與後面的平直段相接,終點alpha_end對應最大直徑。
x=a(i)*d*sqrt(cosd(2*alpha))*cosd(45-alpha);
y=a(i)*d*sqrt(cosd(2*alpha))*sind(45-alpha);
r=y+d/2;
if ((sqrt((y-yy)^2+(x-xx)^2)>=0.5) && abs(y-yy)>=0.1 && abs(x-xx)>=0.1) || alpha==45 || alpha==alpha_end
% 根據曲線趨勢選取點的疏密
fprintf(fid(i),'%8.3f %8.3f\n',x,r);
yy=y;
xx=x;
end
end
fclose(fid(i));
end
xr45=load('a45.dat');
xr50=load('a50.dat');
xr55=load('a55.dat');
plot(xr45(:,1),xr45(:,2),'ro-',xr50(:,1),xr50(:,2),'g+-',xr55(:,1),xr55(:,2),'bd-');
grid on;
axis equal;
legend('a=4.5','a=5.0','a=5.5','Location','NorthWest');