查看: 238|回复: 2|关注: 0
打印 上一主题 下一主题

[已解决] matlab函数求解时输入单个变量和输入连续变量求得的结果不一致

[复制链接]

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
我写了一个m函数,自变量是e。
当给定e为一值时,比如e=0时,计算结果为0,此为正确结果,此种情况算出的结果均正确;
而当给定e为连续变量时,比如e=-2:0.01:2,所求得的结果图像和正确结果不一致,请问这是什么情况?

以下是函数程序,请帮帮我,这个问题已经困扰好久了:'( :'( :'(

%齿轮基本参数
z1 = 25;
                      %输入齿轮1(主动轮)的齿数
z2 = 31;
                      %输入齿轮2(从动轮)的齿数
i = z2./z1 ;
                      %计算传动比
%fprintf('i=%g\n',i)
                      %输出传动比
m = 3.25;
                      %输入齿轮模数
r1 = m.*z1./2;          %计算齿轮1分度圆
r2 = m.*z2./2;          %计算齿轮2分度圆
a = r1+r2;           %中心距
rb1 = r1.*cosd(20);    %计算齿轮1基圆
rb2 = r2.*cosd(20);   %计算齿轮2基圆
ra1 = r1+1.*m;   %计算齿轮1齿顶圆
ra2 = r2+1.*m;    %计算齿轮2齿顶圆
rf1 = (z1-2-0.5).*m./2;    %齿轮1齿根圆半径
rf2 = (z2-2-0.5).*m./2;    %齿轮2齿根圆半径


pb = pi.*m.*cosd(20);    %基圆齿距

alphaa1 = acosd(rb1./ra1);    %齿轮1齿顶角
alphaa2 = acosd(rb2./ra2);    %齿轮2齿顶角
epsilonalpha1 = (z1.*(tand(alphaa1)-tand(20))+z2.*(tand(alphaa2)-tand(20)));
epsilonalpha = epsilonalpha1./(2.*pi);    %齿轮1、2重合度
%fprintf('epsilonalpha=%g\n',epsilonalpha)    %输出重合度



n1 = 1800;
                      %输入齿轮1(主动轮)的转速/rpm
omega1 = 2.*pi.*n1./60;
                      %计算齿轮1(主动轮)的角速度/rads
%fprintf('omega1=%g\n',omega1)
                      %输出齿轮1的角速度/rads
omega2 = omega1./i;
                      %计算齿轮2的角速度/rads
%fprintf('omega2=%g\n',omega2)
                      %输出齿轮2的角速度/rads
                     
                     
                     
%重合度分段讨论
PN1 = sqrt(ra2.^2-rb2.^2)-r2.*sind(20);
PI1 = r1.*sind(20)+pb-sqrt(ra1.^2-rb1.^2);
PI2 = r2.*sind(20)+pb-sqrt(ra2.^2-rb2.^2);
PN2 = sqrt(ra1.^2-rb1.^2)-r1.*sind(20);
N1I1 = (epsilonalpha-1).*pb;
N2I2 = N1I1;


e = -PN1:0.01:PN2;
%e = input('e = ');


%PN1段Vs1、Vr1平方的计算

rK11pingfang = r1.^2+(-e).^2-2.*r1.*(-e).*cosd(70);   %rK11的平方
rK11 = sqrt(rK11pingfang);   %开方


rK12pingfang = r2.^2+(-e).^2-2.*r2.*(-e).*cosd(110);   %rK12的平方
rK12 = sqrt(rK12pingfang);   %开方


cosjiaoO1K1O2 = (rK11.^2+rK12.^2-a.^2)/(2.*rK11.*rK12);
jiaoO1K1O2hudu = acos(cosjiaoO1K1O2);     %角O1K1O2的弧度大小
jiaoO1K1O2 = jiaoO1K1O2hudu*(180/pi);     %角O1K1O2的大小

jiaoVK11VK12 = 180-jiaoO1K1O2;  %VK11与VK12的角度
jiaoVK11VK12hudu = jiaoVK11VK12*(pi/180);  %VK11与VK12的角度弧度
VK11 = omega1.*rK11;   %VK11大小
VK12 = omega2.*rK12;   %VK12大小

Vr1pingfang = 0.25*(VK11.^2+2.*VK11.*VK12.*cos(jiaoVK11VK12hudu)+VK12.^2);
%Vr1平方的大小
Vr1 = sqrt(Vr1pingfang);   %Vr1大小

Vs1pingfang = VK11.^2-2.*VK11.*VK12.*cos(jiaoVK11VK12hudu)+VK12.^2;
Vs1 = sqrt(Vs1pingfang);   %Vs1大小

SR1 = Vs1./Vr1;   %滑滚比计算


%PN2段Vs2、Vr2平方段计算

rK21pingfang = r1.^2+e.^2-2.*r1.*e.*cosd(110);   %rK21的平方
rK21 = sqrt(rK21pingfang);   %开方

rK22pingfang = r2.^2+e.^2-2.*r2.*e.*cosd(70);   %rK22的平方
rK22 = sqrt(rK22pingfang);   %开方

cosjiaoO1K2O2 = (rK21.^2+rK22.^2-a.^2)/(2.*rK21.*rK22);
jiaoO1K2O2hudu = acos(cosjiaoO1K2O2);     %角O1K2O2的弧度大小
jiaoO1K2O2 = jiaoO1K2O2hudu*(180/pi);    %角O1K2O2的大小

jiaoVK21VK22 = 180-jiaoO1K2O2;  %VK21与VK22的角度
jiaoVK21VK22hudu = jiaoVK21VK22*(pi/180);   %VK21与VK22的角度弧度
VK21 = omega1.*rK21;   %VK21大小
VK22 = omega2.*rK22;   %VK22大小

Vr2pingfang = 0.25.*(VK21.^2+2.*VK21.*VK22.*cos(jiaoVK21VK22hudu)+VK22.^2);
%Vr2平方的大小
Vr2 = sqrt(Vr2pingfang);   %Vr2大小

Vs2pingfang = VK21.^2-2.*VK21.*VK22.*cos(jiaoVK21VK22hudu)+VK22.^2;
Vs2 = sqrt(Vs2pingfang);     %Vs2大小


SR2 = Vs2./Vr2;   %滑滚比计算


Vs = Vs1.*(e>=-PN1 & e<0)+Vs2.*(e>=0 & e<PN2);
%plot(e,Vs);


Vr = Vr1.*(e>=-PN1 & e<0)+Vr2.*(e>=0 & e<PN2);
%plot(e,Vr);


SR = SR1.*(e>=-PN1 & e<0)+SR2.*(e>=0 & e<PN2);
plot(e,SR);

%fprintf('Vs=%g\n,Vr=%g\n,SR=%g\n',Vs,Vr,SR);
%fprintf('SR=%g\n',SR);




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

中级

678 麦片

财富积分


5001500


0

主题

1149

帖子

146

最佳答案
  • 关注者: 23
2#
发表于 2019-6-23 12:38:11 | 只看该作者 |此回复为最佳答案
cosjiaoO1K1O2 = (rK11.^2+rK12.^2-a.^2)/(2.*rK11.*rK12);
你的./和.*与*和/混用,是不是这里的问题呢?
比如上面的代码是不是应该是:
cosjiaoO1K1O2 = (rK11.^2+rK12.^2-a.^2)./(2.*rK11.*rK12);

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
3#
 楼主| 发表于 2019-6-23 13:10:44 | 只看该作者
WarnerChang 发表于 2019-6-23 12:38
cosjiaoO1K1O2 = (rK11.^2+rK12.^2-a.^2)/(2.*rK11.*rK12);
你的./和.*与*和/混用,是不是这里的问题呢?
...

是的,十分感谢您!:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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