求等高线与线图的交点坐标

33次浏览(最近30天)
杰克逊福利
杰克逊福利 2020年5月14日
评论道: 杰克逊福利2020年5月14日
你好,
我要输出效率等高线与红蓝线交点的x值。我用了 getContourLineCoordinates 函数获取等高线图的x和y值。然后我试图找到这些线的x值与等高线的x值匹配的地方,但遇到了一些问题。任何帮助都将不胜感激。谢谢!
清晰的
clc
clf ()
%电机数据来自规格
Raw_peak =[0 462;2000 462;4000 462;6000 462;
Raw_cont =[0 440;2000 440;4000 440;6000 440;
N = linspace (60 0 16000);% (rpm) %
Tq = linspace(0462年,50);% (Nm) %
N_p_rpm_X = raw_peak (: 1);% (rpm) %
Tq_p_Nm_Y = raw_peak (:, 2);% (Nm) %
N_c_rpm_X = raw_cont (: 1);% (rpm) %
Tq_c_Nm_Y = raw_cont (:, 2);% (Nm) %
kc = 0.1;% (W / Nm ^ 2) %
ki = 0.0;% (W / (rad / s)] %
千瓦= 1.0 e-5;% (W / (rad / s) ^ 3) %
C = 500;% [W] %
effMin = 0.89;% - - - %
ω= N *π/ 30;% (rad / s)
i = 1:长度(ω)
j = 1:长度(Tq操作)
撅嘴(i, j) =ω(我)* Tq (j));% [W]
普洛斯(i, j) = kc * Tq (j) ^ 2 + ki *ω(i) +千瓦*ω(i) ^ 3 + C;% [W]
结束
结束
eff = max (effMin Pout. /(撅嘴+普洛斯))* 100;% (-)
eff_trans = eff ';
V = (70, 85, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99];
持有
[C, h] =轮廓(N, Tq eff_trans, V);
情节(N_p_rpm_X Tq_p_Nm_Y,“b”“线宽”2);
情节(N_c_rpm_X Tq_c_Nm_Y,“r”“线宽”2);
clabel (C)
contourTable = getContourLineCoordinates (C);
x2 = table2array (contourTable(1:结束,3));
y2 = table2array (contourTable(1:结束,4));
N_p_rpm_X_new = [N_p_rpm_X 0(大小(N_p_rpm_X, 1),大小(x2, 2)造(N_p_rpm_X 2));0(大小(x2, 1) (N_p_rpm_X, 1),大小(x2, 2)));
Tq_p_Nm_Y_new = [Tq_p_Nm_Y 0(大小(Tq_p_Nm_Y, 1),大小(y2, 2)造(Tq_p_Nm_Y 2));0(大小(y2, 1) (Tq_p_Nm_Y, 1),大小(y2, 2)));
Tq_c_Nm_Y_new = [Tq_c_Nm_Y 0(大小(Tq_c_Nm_Y, 1),大小(y2, 2)造(Tq_c_Nm_Y 2));0(大小(y2, 1) (Tq_c_Nm_Y, 1),大小(y2, 2)));
x_cord_c = N_p_rpm_X_new (abs (Tq_p_Nm_Y_new - y2) < 0.1);
高频= gcf ();
甘氨胆酸公顷= ();
xlim (16500 [0]);
ylim (500 [0]);
网格
包含(的电动机转速(rpm)”);
ylabel ('电机扭矩[Nm] &电机效率[%]');
标题(电动机效率的

接受的答案

亚当Danz
亚当Danz 2020年5月14日
编辑:亚当Danz 2020年5月14日
杰克逊福利 ,我刚刚更新了 getContourLineCoordinates 功能,请下载最新版本(1.1.0)。最新版本中的(x,y)坐标是按照接近度排序的,这是容易解决这个问题所需要的。你还需要 十字路口() 函数从文件交换。
然后,交叉点很简单,
[xi,彝族]=十字路口(contourTable。X, contourTable。Y, N_p_rpm_X Tq_p_Nm_Y);
情节(xi,咦,“柯”
你可以对红线重复一遍。
3评论
杰克逊福利
杰克逊福利 2020年5月14日
了不起的工作!非常感谢你的帮助,亚当。

登录评论。

答案(1)

KSSV
KSSV 2020年5月14日
2的评论
KSSV
KSSV 2020年5月14日
你需要运行InterX为每一条等高线和每一条线。

登录评论。

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!