流体力学H-B模型 距离和流速之间的关系 Matlab总是算不出结果% H-B模型平板流动速度
clc;
clear;
global n P l R
t0=3e3;
R=0.05;
n=0.6;
m=1.26;
l=0.1;
k=3.89;
P=5.5e4;
H=(1-n)*R;
w=(1+n)*R*pi;
r=0.03:0.0004:0.05;
c=length(r);
u1=zeros(1,c);
center=(1+n)*R/2;
for i=1:c
h=t0*l/P % 此处是hc=b-a的大小的 一半
tw=H*P/(2*l)
if r(i)<=center-h
u1(i)=-l*(-t0-P*(r(i)-center)/l).^(m+1)/((m+1)*P*k.^m)+(-t0+tw).^(m+1)*l/((m+1)*P*k.^m); %u1
else
if r(i)>=center+h
u1(i)=l*(-t0+tw).^(m+1)/((m+1)*P*k.^m)-l*((r(i)-center)*P/l-t0).^(m+1)/((m+1)*P*k.^m); %u2
else u1(i)=l*(tw-t0).^(m+1)/((m+1)*P*k.^m); %uc
end
end
end
figure;
plot(r,u1,'--r');
grid on;
axis([0.03 0.05 0 15]);
xlabel('Distance from center linr(m)');
ylabel('Velocity(m/s)')
hold on
n=0.6;
R=0.05;
m=1.26;
x0=[0.037,0.047];
x=fsolve(@(x)myfun2(x,t0),x0);
r=0.03:0.0004;0.05;
c=length(r);
u2=zeros(1,c);
A=P*x(2)*x(1)/(2*l);
for i=1:c
if r(i)<=x(1)
u2(i)=quad(@(r)(abs(1/k*(-P*r/(2*l)+A./r-t0))).^m,n*R,r(i)); %u1
else
if r(i)>=x(2)
u2(i)=quad(@(r)(abs((-1/k.^m)*(P*r/(2*l)-A./r-t0))).^m,R,r(i)); %u2
else
u2(i)=quad(@(r)(abs(1/k*(-P*r/(2*l)+A./r-t0))).^m,(n*R),x(1)); %uc
end
end
end
figure;
plot(r,u2,'-b');
grid on;
axis([0.03 0.05 0 15]);
xlabel('Distance from center linr(m)');
ylabel('Velocity(m/s)')
function y=myfun2(x,t0)
global R n m l P
y=[x(2)-x(1)-2*l*t0/P;
integral(@(r)(abs(-P*r./(2*l)+P*x(1)*x(2)./(2*l*r)-t0)).^m,(n*R),x(1))+integral(@(r)(abs(P*r./(2*l)-P*x(1)*x(2)./(2*r.*l)-t0)).^m,R,x(2))];
end
求大神帮忙
发自小木虫IOS客户端 |