查看: 86|回复: 2|关注: 0

[已答复] 未定义与 'double' 类型的输入参数相对应的函数 'int'。

[复制链接]

新手

10 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
发表于 7 天前 | 显示全部楼层 |阅读模式
function dz=bearing_gear_seal1(t,z)       %函数:dz是返回变量列表 z t 是输入变量列表         
dz=zeros(12,1);%zeros函数:生成一个12行1列的零矩阵
z1=53;z2=125;pi=3.14159;m=4;hp=1;hg=0.89;c=0.25;%主齿轮齿数 副齿轮齿数 pi 重力加速度 模数 齿顶高系数 顶隙系数
b=0.07;%齿侧间隙的一半
alpha0=20;%分度圆压力角
psipg=alpha0;%啮合面与y轴的夹角
r1=0.5*m*z1;%p齿轮的分度圆半径
r2=0.5*m*z2;%g齿轮的分度圆半径
rbp=0.5*m*z1*cos(alpha0)/1000 ; %P齿轮的基圆半径
rbg=0.5*m*z2*cos(alpha0)/1000;  %g齿轮的基圆半径
rfp=(0.5*m*z1-(hp+c)*m);%p齿轮的齿根圆半径
rfg=(0.5*m*z2-(hg+c)*m);%g齿轮的齿根圆半径
rap=0.5*m*(z1+2*hp);%P齿顶圆半径
rag=0.5*m*(z2-2*hg);%g齿顶圆半径
mp=523.38;mg=158.34;%P齿轮质量 g齿轮质量
Jp=6.55;Jg=198;%齿轮P的转动惯量 齿轮g的转动惯量
n1=5; n2=z1*n1/z2;%主齿轮转速r/min 副齿轮转速r/min
Omega1=2*pi*n1;Omega2=2*pi*n2;%角速度
%%%%齿廓曲线的精确建模
%%过渡曲线部分
upsilon=alpha0:0.5*pi;%刀具进行加工时的啮合点的压力角!!!!!!!!!!!!!!!!!是否恰当??????
rp=c*m/(1-sin(alpha0));%刀顶圆角半径
a1=(hp+c)*m-rp;%刀顶圆角圆心距中线的距离
b1=pi*m/4+hp*m*tan(alpha0)+rp*cos(alpha0);%刀顶圆角距刀具齿槽中心线的距离
phi=(a1./tan(upsilon)+b1)./r1;%
x1=r1.*sin(phi)-(a1./sin(upsilon)+rp).*cos(upsilon-phi);%%%%过渡曲线的表达式  !!!!!!!!!!
y1=r1.*cos(phi)-(a1./sin(upsilon)+rp).*sin(upsilon-phi);
%%渐开线部分
invalph0=tan(alpha0)-alpha0;%分度圆展开角
rc=((r1*tan(alpha0)-hp*m/sin(alpha0))^2+r1^2)^0.5;%渐开线起始点所在圆的半径
alphac=acos(r1/rc);%渐开线起始点压力角
alphaa=acos(r1/rap);%渐开线齿顶圆压力角
thetab=(pi/(2*z1))+invalph0;%齿基角的一半
tau=alphac:alphaa;%渐开线上任意一点的压力角???????是否恰当!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
x2p=r1.*((tau+thetab).*cos(tau)-sin(tau));
y2p=r1.*((tau+thetab).*sin(tau)-cos(tau));%渐开线方程
%%%啮合点的坐标
theta1=Omega1*t;%齿轮p的角位移!!!!!!!!!!!!!!!!!!!!
beta=theta1-(pi/(2*z1))-tan(alpha0)+alpha0+tan(acos((z1*cos(alpha0))/((z2-2).^2+(z2-z1).^2-2*(z2-2)*(z2-z1)*cos(alpha0-acos((z2*cos(alpha0))/(z2-2)))).^0.5));%啮合压力角
xbeta=rbp.*((beta+thetab).*cos(beta)-sin(beta));
ybeta=rbp.*((beta+thetab).*sin(beta)+cos(beta));
%%%%%%epsilon=(z1*(tan(A_a1)-tan(Alpha))+z2*(tan(A_a2)-tan(Alpha)))/(2*pi);%重合度
%%%时变啮合刚度\
%线性赫兹接触刚度
E=210;L=1;V=0.3;%弹性模量 齿宽 泊松比
kh=(pi*E*L)/(4*(1-V^2));%线性赫兹接触刚度
%基体刚度
rp1=rp/m;%无量纲的刀具圆角半径
thetafp=(pi/2+2*tan(alpha0)*(hp-rp1)+(2*rp1)/cos(alpha0))/z1;%参数
ufp=rbp./cos(beta)-rfp;%参数
sfp=2.*rfp./thetafp;%参数
rintp=78;%p的内径孔
hfp=rfp/rintp;%参数
L1=(-5.574e-5)/(thetafp)^2+(-1.9986e-3)*(hfp)^2+(-2.3015e-4)*(hfp)/(thetafp)+4.7702e-3/(thetafp)+(0.0271)*(hfp)+6.8045;%L1的值
M1=(60.111e-5)/(thetafp)^2+(28.100e-3)*(hfp)^2+(-83.431e-4)*(hfp)/(thetafp)+(-9.9256e-3)/(thetafp)+(0.1624)*(hfp)+0.9086;%
P1=(-50.952e-5)/(thetafp)^2+(185.50e-3)*(hfp)^2+(0.0538e-4)*(hfp)/(thetafp)+(53.300e-3)/(thetafp)+(0.2895)*(hfp)+0.9236;%
Q1=(-6.2042e-5)/(thetafp)^2+(9.0889e-3)*(hfp)^2+(-4.0964e-4)*(hfp)/(thetafp)+(7.8297e-3)/(thetafp)+(-0.1472)*(hfp)+0.6904;
kfp=1./(((cos(beta)).^2./(E.*L)).*((L1.*(ufp./sfp).^2+M1.*(ufp./sfp)+P1.*(1+Q1.*(tan(beta)).^2))));%P齿轮的基体刚度
%%轮齿刚度
syms dy1 dy2 G Ay1 Ay2 Iy1 Iy2 sb1 sb2 ss1 ss2 sa1 sa2 bk bk1 sk sk1 ak ak1;
dy1=((a1.*sin((a1./tan(upsilon)+b1)/r1).*(1+(tan(upsilon)).^2))/(tan(upsilon)).^2)+((a1.*cos(upsilon))./(sin(upsilon)).^2).*sin(upsilon-((a1./tan(upsilon))+b1)./r1)...
    -((a1./sin(upsilon))+rp).*cos(upsilon-(a1./tan(upsilon)+b1)./r1)*(1+(a1.*(1+(tan(upsilon)).^2))/(r1.*(tan(upsilon)).^2));
dy2=rbp.*(tau+thetab).*cos(tau);
G=E./(2.*(1+V));
Ay1=2.*x1.*L;Ay2=2.*x2p.*L;Iy1=2/3.*(x1).^3.*L;Iy2=2/3.*(x2p).^3.*L;%截面惯性惯性矩 截面积
sb1=(((cos(beta)).*(ybeta-y1)-xbeta.*sin(beta)).^2/(E.*Iy1)).*dy1;
sb2=(((cos(beta)).*(ybeta-y2p)-xbeta.*sin(beta)).^2/(E.*Iy2 )).*dy2;
ss1=((1.2.*(cos(beta)).^2)./(G.*Ay1)).*dy1;
ss2=((1.2.*(cos(beta)).^2)./(G.*Ay2)).*dy2;
sa1=(((sin(beta)).^2)./(E.*Ay1)).*dy1;
sa2=(((sin(beta)).^2)./(E.*Ay2)).*dy2;
bk=int(sb1,upsilon,[0.5*pi,alpha0])+int(sb2,tau,[alphac,beta]);




这是我写的公式的一部分,现在到了最后那个地方就出现了这种报错提示,请问应该如何解决。

回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

5

主题

2590

帖子

790

最佳答案
  • 关注者: 218
发表于 7 天前 | 显示全部楼层
1. 你给出的代码太长太复杂了,恐怕九成坛友懒得看完逐行分析。建议你对原代码进行化简,例如合并某些对结果影响不大的函数,只突出会导致报错的部分——既然是int(sb1,upsilon,[0.5*pi,alpha0])会报错,那么胡略略掉一堆复杂的赋值、直接给出sb1是个什么表达式就行了,而且既然是以 upsilon 为积分变量,表达式中不包含 upsilon 的部分统统可以先用一个常数C代替,这样更直观更突出。

2.请仔细去看int积分函数的调用语法规则
https://www.mathworks.com/help/symbolic/int.html
F = int(expr,var,a,b) computes the definite integral of expr with respect to the symbolic scalar variable var from a to b.
int(expr,var,[a b]) is equivalent to int(expr,var,a,b).
expr — Integrand
symbolic expression | symbolic function | symbolic vector | symbolic matrix | symbolic number
var — Integration variable
symbolic variable

你写的upsilon=alpha0:0.5*pi;导致这个upsilon是一个具体的数值,而不是int函数语法所要求的符号变量,肯定报错。
提问请:①准确描述问题②提出你的思考(等着抄作业的一律锁帖)③提供代码文本而非截图④及时反馈
回复此楼 已获打赏: 0 积分

举报

新手

10 麦片

财富积分


050


2

主题

4

帖子

0

最佳答案
 楼主| 发表于 7 天前 | 显示全部楼层
我现在已经将那个删除了,然后用syms upsilon 来表示,现在正在运行,但是已经很长时间了,还未运行完毕。
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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