我正在制作一个matlab文件来分析飞机的性能。我想要做的是查看多余功率最大值以及多余功率变为最小值的位置。我能够使matlab不考虑超过Clmax的值(使用NaN
)。
现在我想为多余的力量做同样的事情:我不希望我的轮廓图显示PS的负值。我尝试过和Cl一样,但没有成功。
到目前为止的代码:
TA= 667233.2;
W=228000;
S=360;
CDO=0,02;
b=60;
AR=10;
h=0;
v= [60:10:350]
hoogte= [0:1000:17000]
%TEST
for j=1:length(hoogte)
hoogte_temp = hoogte(j)
[rho c] = Atmos(hoogte_temp)
sigma= rho/1.225
for i= 1:length(v)
v_temp = v(i);
q= rho*v_temp*v_temp/2
cl(i,j) = W*9.81/S/q
if (cl<1.91)
cd(i,j) = 0.02 + cl(i,j)^2/(AR*3.14*0.8)/beta(i)
D(i,j)= cd(i,j)*q*S
PS(i,j)=(TA*sigma-D(i,j))*v_temp/(W*9.81)
else %als Cl groter is dan 1,91: niet weergeven, ook niet Cd, D en ook niet Ps
cl(cl>1.91) = NaN;
cd(i,j)= NaN;
D(i,j)=NaN;
PS(i,j)=NaN;
end
if(v_temp/c<1)
beta(i)=sqrt(1-(v_temp/c)^2)
else
beta(i) = NaN
end
cd(i,j) = 0.02 + cl(i,j)^2/(AR*3.14*0.8)/beta(i)
D(i,j)= cd(i,j)*q*S
PS(i,j)=(TA*sigma-D(i,j))*v_temp/(W*9.81)
end
我想添加另一个if (PS<0)
甚至是if PS<=D
PS=NaN
,但如果我重新运行程序并查看图表,那似乎无法正常工作。
atmos.m
文件是我制作的文件,其中大气及其属性(如温度,海拔高度和密度)会有所不同。
我现在想做什么:
取消负PS值,找到PS变为0
的sigma和v_temp值。这将导致我达到最大巡航高度。
我是matlab的新手,此代码中的所有内容都是通过在互联网上查找并查看YouTube电影来完成的。任何反馈将非常感谢!我发现了这个:
data( indices_to_data_not_to_plot ) = NaN;
surf(x,y,data); %# or whatever you're using
在另一个主题中,但这是我尝试过的东西,这是行不通的,除了我使用轮廓而不是冲浪。
答案 0 :(得分:1)
一段简单的代码,用于澄清我在上述评论中所说的内容。这会创建一个波浪状的2D图案(2D sinc
函数),然后在不同的级别添加轮廓 - 有时通过强制轮廓级别,有时通过强制数据。
% contour example
x = linspace(-10,10,20); y=x;
[xx yy]=meshgrid(x,y);
r = sqrt(xx.^2+yy.^2);
z = sin(r)./r;
figure
subplot 121
imagesc(x,y,z); axis xy; axis image
colormap gray
hold all
contour(x,y,z,0:0.1:1,'r')
contour(x,y,z,[0 0],'b') % blue line at "good" zero
zclip = z;
zclip(z<0)=0;
contour(x,y,zclip,[0 0],'g') % green line at "clipped" zero
subplot 122
imagesc(x,y,z); axis xy; axis image
colormap gray
hold all
contour(x,y,z,'w')
这会产生以下输出:
如您所见,在第一个0:0.1:1
命令中使用向量contour
会导致仅绘制正轮廓(红色,来自'r'
);在第二次调用中使用[0 0]
作为轮廓规范会导致在'b'
处绘制蓝色(z==0
)轮廓;但是当我实际上将负数据设置为零时,我得到了参差不齐的第三个轮廓(绿色)。这是因为当没有真正的“交叉”时,很难“估计过零点”......
在右侧,您可以看到“常规”等高线绘图的结果,白色轮廓为“默认”间距。
注意 - 我绘制了强度图以显示它是如何完成的,但显然你可以绘制轮廓图而不先显示强度图......
请使用上面的示例作为改进问题的起点(您可以运行的完整代码,并显示问题和解决方案的方法) - 然后我们将能够为您提供更相关的答案。
快乐的编码。