24小时热门版块排行榜    

查看: 839  |  回复: 3

周亦良

金虫 (小有名气)

[求助] matlab求助 已有1人参与

clear
clc
t=0.3;
vs=100;
vv=187;
yd=16;
yst=19;
yw=10;
kh1=0.6,kh1=0.1两种情况;
h=10;
ru=0.2;
b=0.2*h;
h=0.75*h;
b=30*pi/180;
d=b/2;
c=10*pi/180;
a=0:0.01*pi/180:pi/2;
t=0:0.001:0.3;
yy=((h/h)^2*yst+(1-(h/h)^2)*yd)
kh=yst*kh1/(yy*(1-ru))
kv=0.5*kh;
m1=t*vs*kh*(1+tan(a)*tan(c))/(2*pi^2*h^2*tan(a))*(2*pi*h*cos(2*pi*(t/t-h/(t*vs)))+t*vs*(sin(2*pi*(t/t-h/(t*vs)))-sin(2*pi*t/t)));
m2=t*vv*kv*(1+tan(a)*tan(c))/(2*pi^2*h^2*tan(a))*(2*pi*h*cos(2*pi*(t/t-h/(t*vv)))+t*vv*(sin(2*pi*(t/t-h/(t*vv)))-sin(2*pi*t/t)));
ke=(1+tan(a)*tan(c))*sin((a+b))/tan(a)/cos((a+b+d-c))-m1*cos((a+b))/cos((a+b+d-c))-m2*sin((a+b))/cos((a+b+d-c))
麻烦用matlab写出求得ke分别在kh1=0.6,kh1=0.1两种情况下的最小值(ke为正的最小值)程序,以及相应a,t的值
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyh700600

金虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ...
感谢参与,应助指数 +1
周亦良: 金币+70, ★★★★★最佳答案 2022-11-09 17:48:09
CODE:
  

kh1=0.38;

options = optimset('MaxFunEvals',1600);
[x,fval,exitflag] = fminsearch(@(x) Kem(x(1),x(2)),[0.01, 1.3],options)

经过试算, kh1 不能起过 0.38 。超过后无法求解。

1. 你可以依据你的专业知识,选择更为适当的初值 [0.01, 1.3];
2. 你也可以依据你的专业知识,判断 kh1 可能的取值区间。

CODE:
  


clear; clc
format long g

T=0.3;
Vsw=2500;
Vvw=3900;
Vs=100;
Vv=187;
yc=25;
yd=16;
yst=19;
yw=10;

kh1=0.38;

H=10;
ru=0.2;
b=0.2*H;
h=0.75*H;
B=30*pi/180;
D=B/2;
C=10*pi/180;

% A=0:0.01*pi/180:pi/2;
%  t=0:0.001:0.3;

syms A t

yy=((h/H)^2*yst+(1-(h/H)^2)*yd);
kh=yst*kh1/(yy*(1-ru));
kv=0.5*kh;

m1=T*Vs*kh*(1+tan(A)*tan(C))/(2*pi^2*H^2*tan(A))*(2*pi*H*cos(2*pi*(t/T-H/(T*Vs)))+T*Vs*(sin(2*pi*(t/T-H/(T*Vs)))-sin(2*pi*t/T)));
m2=T*Vv*kv*(1+tan(A)*tan(C))/(2*pi^2*H^2*tan(A))*(2*pi*H*cos(2*pi*(t/T-H/(T*Vv)))+T*Vv*(sin(2*pi*(t/T-H/(T*Vv)))-sin(2*pi*t/T)));
Ke = (1+tan(A)*tan(C))*sin((A+B))/tan(A)/cos((A+B+D-C))-m1*cos((A+B))/cos((A+B+D-C))-m2*sin((A+B))/cos((A+B+D-C));

Kem = matlabFunction(Ke);

%  [x,fval,exitflag] = fminsearch(@(x) Kem(x(1),x(2)),[0.1, 1.1])

options = optimset('MaxFunEvals',1600);
[x,fval,exitflag] = fminsearch(@(x) Kem(x(1),x(2)),[0.01, 1.3],options)


A0 = x(1)
t0 = x(2)
Ke_min = fval



2楼2022-11-08 13:06:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

周亦良

金虫 (小有名气)

引用回帖:
2楼: Originally posted by zyh700600 at 2022-11-08 13:06:19
kh1=0.38;

options = optimset('MaxFunEvals',1600);
= fminsearch(@(x) Kem(x(1),x(2)),,options)

经过试算, kh1 不能起过 0.38 。超过后无法求解。

1. 你可以依据你的专业知识,选择更为适当的 ...

好的,非常感谢

发自小木虫Android客户端
3楼2022-11-09 17:47:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyh700600

金虫 (小有名气)

引用回帖:
3楼: Originally posted by 周亦良 at 2022-11-09 17:47:55
好的,非常感谢
...

CODE:




clear
clc

t=0.3;
vs=100;
vv=187;
yd=16;
yst=19;
yw=10;

% kh1=0.6,kh1=0.1两种情况;

kh1=0.1;

h=10;
ru=0.2;
b=0.2*h;
h=0.75*h;
b=30*pi/180;
d=b/2;
c=10*pi/180;

% a=0:0.01*pi/180:pi/2;
% t=0:0.001:0.3;

syms a t

yy=((h/h)^2*yst+(1-(h/h)^2)*yd);
kh=yst*kh1/(yy*(1-ru));
kv=0.5*kh;

m1=t*vs*kh*(1+tan(a)*tan(c))/(2*pi^2*h^2*tan(a))*(2*pi*h*cos(2*pi*(t/t-h/(t*vs)))+t*vs*(sin(2*pi*(t/t-h/(t*vs)))-sin(2*pi*t/t)));
m2=t*vv*kv*(1+tan(a)*tan(c))/(2*pi^2*h^2*tan(a))*(2*pi*h*cos(2*pi*(t/t-h/(t*vv)))+t*vv*(sin(2*pi*(t/t-h/(t*vv)))-sin(2*pi*t/t)));
ke=(1+tan(a)*tan(c))*sin((a+b))/tan(a)/cos((a+b+d-c))-m1*cos((a+b))/cos((a+b+d-c))-m2*sin((a+b))/cos((a+b+d-c));

Kem = matlabFunction(ke);

options = optimset('MaxFunEvals',1600);
[x,fval,exitflag] = fminsearch(@(x) Kem(x(1),x(2)),[0.01, 1.3],options)


A0 = x(1)
t0 = x(2)
Ke_min = fval



CODE:



计算结果:

kh1=0.1;

A0 =    0.4336

t0 =  2.2050e+004

Ke_min =    3.8021


..................

kh1=0.6;

A0 =    0.4328

t0 =  2.3096e+004

Ke_min =    3.8022


4楼2022-11-09 18:23:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 周亦良 的主题更新
信息提示
请填处理意见