查看: 238|回复: 11|关注: 0

[已解决] 新手求助,图形最后多出一条垂直线

[复制链接]

新手

7 麦片

财富积分


050


1

主题

9

帖子

0

最佳答案
检查代码没发现啥问题呀,大神求教
微信截图_20191022171809.png

MATLAB 基础讨论
版块优秀回答者

中级

1249 麦片

财富积分


5001500


0

主题

1712

帖子

252

最佳答案
  • 关注者: 42
发表于 2019-10-22 17:46:57 | 显示全部楼层
把数据和代码上传上来呢!

新手

7 麦片

财富积分


050


1

主题

9

帖子

0

最佳答案
 楼主| 发表于 2019-10-22 18:54:33 | 显示全部楼层
WarnerChang 发表于 2019-10-22 17:46
把数据和代码上传上来呢!
  1. L1=v*t/sin(Bb).*(t>=0&t<tz);
  2. L2=(v*t+pt)/sin(Bb).*(t>=0&t<=(b*tan(Bb)-pt)/v)+b/cos(Bb).*(t>=(b*tan(Bb)-pt)/v&t<=(f-pt)/v)+(f-(pt+v*t-b*tan(Bb)))/sin(Bb).*(t>=(f-pt)/v&t<tz);
  3. L3=(f-(2*pt-b*tan(Bb))-v*t)/sin(Bb).*(t>=0&t<tz);
  4. L4=(f-(3*pt-b*tan(Bb))-v*t)/sin(Bb).*(t>=0&t<=(f+tan(Bb)*b-3*pt)/v)+0.*(t>=(f+tan(Bb)*b-3*pt)/v&t<tz);
  5. L=L1+L2+L3+L4;
  6. fplot(L,[0,tz]);
复制代码

字母表示的都是定值。

MATLAB 基础讨论
版块优秀回答者

中级

1249 麦片

财富积分


5001500


0

主题

1712

帖子

252

最佳答案
  • 关注者: 42
发表于 2019-10-22 19:18:35 | 显示全部楼层
Archer1993 发表于 2019-10-22 18:54
字母表示的都是定值。

你这数据不传上来我怎么知道,定值我也不知道啊!!!
看代码我只知道你最后画了4条线,那么和图像中有四条线也没什么区别啊!没数据我也运行不了,也不知道你画的对不对,我怎么帮你解决问题呢!

新手

7 麦片

财富积分


050


1

主题

9

帖子

0

最佳答案
 楼主| 发表于 2019-10-22 21:48:25 | 显示全部楼层
WarnerChang 发表于 2019-10-22 19:18
你这数据不传上来我怎么知道,定值我也不知道啊!!!
看代码我只知道你最后画了4条线,那么和图像中有四条 ...
  1. clear
  2. clc
  3. z1=140;%齿轮齿数
  4. z2=140;
  5. mn=4;%法向模数
  6. an=20/180*pi;%法向压力角
  7. B=15.0908/180*pi;
  8. b=75;b1=75;b2=75;%齿宽
  9. mt=mn/cos(B);
  10. at=atan(tan(an)/cos(B));%端面压力角,弧度
  11. Bb=atan(tan(B)*cos(at));%基圆螺旋角
  12. zv1=z1/cos(B)/cos(B)/cos(B);
  13. zv2=z2/cos(B)/cos(B)/cos(B);
  14. xn1=0.115;
  15. xn2=0.03391032344401/cos(B);
  16. xt1=xn1*cos(B);
  17. xt2=0.03391032344401;
  18. L12=580.6;
  19. a12=mt*(z1+z2)/2;
  20. y12=(L12-a12)/mt;
  21. ha1=(1*cos(B)+y12-xt2)*mt;     %齿顶高,m
  22. ha2=(1*cos(B)+y12-xt1)*mt;
  23. hf1=(1*cos(B)+0.25*cos(B)-xt1)*mt;%齿根高,m
  24. hf2=(1*cos(B)+0.25*cos(B)-xt2)*mt;
  25. ra1=mt*z1/2+ha1;%齿顶圆半径
  26. ra2=mt*z2/2+ha2;
  27. rf1=mt*z1/2-hf1;%齿根圆角半径,m
  28. rf2=mt*z2/2-hf2;
  29. rb1=mt*z1/2*cos(at);
  30. rb2=mt*z2/2*cos(at);
  31. am12=acos(cos(at)/(1+2*y12/(z1+z2)));%由中心距变动系数y求得啮合角
  32. a_a1=acos(rb1/ra1);
  33. a_a2=acos(rb2/ra2);
  34. n1=7500;  %r/h
  35. tz=3600/z1/n1; %s
  36. e=1/2/pi*(z1*(tan(a_a1)-tan(am12))+z2*(tan(a_a2)-tan(am12)))+b1*sin(B)/pi/mn;
  37. et=1/2/pi*(z1*(tan(a_a1)-tan(am12))+z2*(tan(a_a2)-tan(am12)));
  38. %H=ha1+hf1;
  39. H=2.25*mn;
  40. rm1=rb1/cos(am12);
  41. r1=mt*z1/2;r2=mt*z2/2;
  42. Bm=atan(tan(B)*(rm1/r1));%Bm是节圆柱上的螺旋角
  43. PB1=r1*cos(at)*(tan(a_a1)-tan(am12));
  44. PB2=r2*cos(at)*(tan(a_a2)-tan(am12));
  45. B1B2=PB1+PB2;
  46. B2B1=B1B2;
  47. pb=mt*pi*cos(at);%基圆齿距

  48. f=B1B2;
  49. pt=pi*mt;
  50. f2=4*pt-f-b*tan(Bb);
  51. syms t
  52. v=7500*2*pi*r1/3600;
  53. L1=v*t/sin(Bb).*(t>=0&t<tz);
  54. % fplot(L1,[0,tz]);
  55. % hold on;
  56. L2=(v*t+pt)/sin(Bb).*(t>=0&t<=(b*tan(Bb)-pt)/v)+b/cos(Bb).*(t>=(b*tan(Bb)-pt)/v&t<=(f-pt)/v)+(f-(pt+v*t-b*tan(Bb)))/sin(Bb).*(t>=(f-pt)/v&t<tz);
  57. % fplot(L2,[0,tz]);
  58. % hold on;
  59. L3=(f-(2*pt-b*tan(Bb))-v*t)/sin(Bb).*(t>=0&t<tz);

  60. % fplot(L3,[0,tz]);
  61. % hold on;
  62. L4=(f-(3*pt-b*tan(Bb))-v*t)/sin(Bb).*(t>=0&t<=(f+tan(Bb)*b-3*pt)/v)+0.*(t>=(f+tan(Bb)*b-3*pt)/v&t<tz);
  63. % fplot(L4,[0,tz]);
  64. L=L1+L2+L3+L4;
  65. fplot(L,[0,tz]);
复制代码

MATLAB 基础讨论
版块优秀回答者

中级

1249 麦片

财富积分


5001500


0

主题

1712

帖子

252

最佳答案
  • 关注者: 42
发表于 2019-10-22 22:23:13 | 显示全部楼层 |此回复为最佳答案

由于你的t=tz时,所有判断条件式均为0,所以L的值为零,最终形成了竖线

你可以将你的t<tz
改成t<(tz+0.001)应该就不会出现竖线了

望设置为最佳答案!谢谢

clear
clc
z1=140;%齿轮齿数
z2=140;
mn=4;%法向模数
an=20/180*pi;%法向压力角
B=15.0908/180*pi;
b=75;b1=75;b2=75;%齿宽
mt=mn/cos(B);
at=atan(tan(an)/cos(B));%端面压力角,弧度
Bb=atan(tan(B)*cos(at));%基圆螺旋角
zv1=z1/cos(B)/cos(B)/cos(B);
zv2=z2/cos(B)/cos(B)/cos(B);
xn1=0.115;
xn2=0.03391032344401/cos(B);
xt1=xn1*cos(B);
xt2=0.03391032344401;
L12=580.6;
a12=mt*(z1+z2)/2;
y12=(L12-a12)/mt;
ha1=(1*cos(B)+y12-xt2)*mt;     %齿顶高,m
ha2=(1*cos(B)+y12-xt1)*mt;
hf1=(1*cos(B)+0.25*cos(B)-xt1)*mt;%齿根高,m
hf2=(1*cos(B)+0.25*cos(B)-xt2)*mt;
ra1=mt*z1/2+ha1;%齿顶圆半径
ra2=mt*z2/2+ha2;
rf1=mt*z1/2-hf1;%齿根圆角半径,m
rf2=mt*z2/2-hf2;
rb1=mt*z1/2*cos(at);
rb2=mt*z2/2*cos(at);
am12=acos(cos(at)/(1+2*y12/(z1+z2)));%由中心距变动系数y求得啮合角
a_a1=acos(rb1/ra1);
a_a2=acos(rb2/ra2);
n1=7500;  %r/h
tz=3600/z1/n1; %s
e=1/2/pi*(z1*(tan(a_a1)-tan(am12))+z2*(tan(a_a2)-tan(am12)))+b1*sin(B)/pi/mn;
et=1/2/pi*(z1*(tan(a_a1)-tan(am12))+z2*(tan(a_a2)-tan(am12)));
%H=ha1+hf1;
H=2.25*mn;
rm1=rb1/cos(am12);
r1=mt*z1/2;r2=mt*z2/2;
Bm=atan(tan(B)*(rm1/r1));%Bm是节圆柱上的螺旋角
PB1=r1*cos(at)*(tan(a_a1)-tan(am12));
PB2=r2*cos(at)*(tan(a_a2)-tan(am12));
B1B2=PB1+PB2;
B2B1=B1B2;
pb=mt*pi*cos(at);%基圆齿距

f=B1B2;
pt=pi*mt;
f2=4*pt-f-b*tan(Bb);
syms t
v=7500*2*pi*r1/3600;
L1=v*t/sin(Bb).*(t>=0&t<(tz+0.001));
% fplot(L1,[0,tz]);
% hold on;
L2=(v*t+pt)/sin(Bb).*(t>=0&t<=(b*tan(Bb)-pt)/v)+b/cos(Bb).*(t>=(b*tan(Bb)-pt)/v&t<=(f-pt)/v)+(f-(pt+v*t-b*tan(Bb)))/sin(Bb).*(t>=(f-pt)/v&t<(tz+0.001));
% fplot(L2,[0,tz]);
% hold on;
L3=(f-(2*pt-b*tan(Bb))-v*t)/sin(Bb).*(t>=0&t<t<(tz+0.001));

% fplot(L3,[0,tz]);
% hold on;
L4=(f-(3*pt-b*tan(Bb))-v*t)/sin(Bb).*(t>=0&t<=(f+tan(Bb)*b-3*pt)/v)+0.*(t>=(f+tan(Bb)*b-3*pt)/v&t<t<(tz+0.001));
% fplot(L4,[0,tz]);
L=L1+L2+L3+L4;
fplot(L,[0,tz]);
axis([0 0.004 -10 200])

新手

7 麦片

财富积分


050


1

主题

9

帖子

0

最佳答案
 楼主| 发表于 2019-10-23 11:15:16 | 显示全部楼层
WarnerChang 发表于 2019-10-22 22:23
由于你的t=tz时,所有判断条件式均为0,所以L的值为零,最终形成了竖线

你可以将你的t ...

谢谢大佬

新手

7 麦片

财富积分


050


1

主题

9

帖子

0

最佳答案
 楼主| 发表于 2019-10-23 11:16:55 | 显示全部楼层
WarnerChang 发表于 2019-10-22 22:23
由于你的t=tz时,所有判断条件式均为0,所以L的值为零,最终形成了竖线

你可以将你的t ...

还有个问题想问下大佬,就这个图象怎么编辑循环代码呀,for或者while吗,求参考

MATLAB 基础讨论
版块优秀回答者

中级

1249 麦片

财富积分


5001500


0

主题

1712

帖子

252

最佳答案
  • 关注者: 42
发表于 2019-10-23 11:35:19 | 显示全部楼层
Archer1993 发表于 2019-10-23 11:16
还有个问题想问下大佬,就这个图象怎么编辑循环代码呀,for或者while吗,求参考 ...

编辑循环代码?这是什么意思,没太明白呀

新手

7 麦片

财富积分


050


1

主题

9

帖子

0

最佳答案
 楼主| 发表于 2019-10-23 21:46:11 | 显示全部楼层
WarnerChang 发表于 2019-10-23 11:35
编辑循环代码?这是什么意思,没太明白呀

就是得到类似这样的图,就是继续画下去,上面代码得到的是一个周期的图像嘛,想画连续几个周期的。
微信截图_20191023214249.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表