问题称述
c步长为1
一身高为H的人以一定的速度V行走,假设其重心在H/2的位置,并且腿长也为H/2,试分析该人迈多大的步伐,能使额外消耗的能量最少?
问题分析和模型建立
由于行走速度V是定值,所以不同的步伐会对应不同的频率.同时,不同的步伐只需要用两腿迈步时的交角θ就可以确定.所以本题可以用穷举θ∈[0,π]计算消耗的多余能量就可以解决。消耗的多余能量可以用人行走的重心上下移动而产生的重力作的功来计算:即E0=mgΔh 其中, Δh=H-H` H`=f(θ, H) 再加上每一步所损失的生物能量E1,总消耗能量为E=t *(E1+E0 )――其中t为人行走的频率.
求解方法
高为H,腿的张角为θ,人行走的时间为Δt,人的质量为m。
走的路长为S=V×Δt。
每步长为T=sqrt(2×(H/2)2-cosθ×2×(H/2)2)。
上下移动距离为△h=H/2×(1-cos(θ/2))。
上下移动损失的能量为E0=S/T×△h×m。
每一步所损失的生物能量E1=S/T×c(c为一常数)
总消耗能量为E=E1+E0=S×((△h×m)+c)/T=[((1-cos(θ/2))×S×m)/(sqrt2×sqrt(1-cos(θ)))]+S×c/(H/2)/(sqrt2×sqrt(1-cos(θ)))。
依次计算出上述步骤的结果,使张角θ从0取到180,便可得到一个关于消耗能量E的函数图,得到一个最小值,即是本次实验所求结果。
四、计算机结果及分析
写出以上计算的源程序:
H=10;%高为H
V=10;%V速度
t1=10;%t1为人行走的时间Δt
m=10;%人的质量为m
c=10;%c为任意值,表每一步生物能量损失
for a=1:180;%a表示θ
E=(1-cos(a/2*(pi/180)))*V*t1*m/sqrt(2-2*cos(a*(pi/180)))+V*t1*c*2/H/sqrt(2-2*cos(a*(pi/180)));%E为走路损失的总能量
b(a)=E;%b为存值的变量
end;
plot(b)
for o=1:180;%求消耗能量最少的角度aa
if b(o)==min(b)
aa=o
end;
end;
得到如下图:

当把(H=112;%高为H,V=132;%V速度,t1=12;%t1为人行走的时间Δt,m=145;%人的质量为m,c=145;%c为任意值,表每一步生物能量损失)这些量加以变化成此值后,发现函数图像又变成了另一种样子:

于是推断,此最值应还与上述几个量有关,经公式演算判断,此最值与速度V,时间t1无关。与H,m,c有关,而与H,m关系不是很大,而且H,m应该是一个人的定值,故此次建模取男人高为H=1.8; 质量为m=70公斤、女人高为H=1.5; 质量为m=45公斤为例。
继续编程――取男人高为H=1.8; 质量为m=70公斤计算得到θ-c图:
c步长为1对局部进行放大:(下图)

得到其jd()图(显示出对应的c取值时人行走消耗能量最少的角度θ的值):图如下:

故此次建模取男人高为H=1.8; 质量为m=70公斤行走的结论如下:
|
高为H(m)
|
质量m(kg)
|
每步损失能量C(焦耳)
|
θ(度)
|
|
1.8
|
70
|
1
|
6
|
|
1.8
|
70
|
50
|
44
|
|
1.8
|
70
|
100
|
61
|
|
1.8
|
70
|
150
|
72
|
|
1.8
|
70
|
200
|
81
|
|
1.8
|
70
|
250
|
89
|
|
1.8
|
70
|
300
|
95
|
|
1.8
|
70
|
350
|
100
|
|
1.8
|
70
|
400
|
105
|
|
1.8
|
70
|
450
|
109
|
|
1.8
|
70
|
500
|
112
|
|
1.8
|
70
|
550
|
115
|
|
1.8
|
70
|
600
|
118
|
|
1.8
|
70
|
650
|
121
|
|
1.8
|
70
|
700
|
123
|
|
1.8
|
70
|
750
|
126
|
|
1.8
|
70
|
800
|
128
|
|
1.8
|
70
|
850
|
130
|
|
1.8
|
70
|
900
|
131
|
|
1.8
|
70
|
950
|
133
|
|
1.8
|
70
|
1000
|
135
|
取女人高为H=1.5; 质量为m=45公斤计算得到θ-c图:

得到其jd()图(显示出对应的c取值时人行走消耗能量最少的角度θ的值):图如下:

故此次建模取男人高为H=1.8; 质量为m=70公斤行走的结论如下:
|
高为H(m)
|
质量m(kg)
|
每步损失能量C(焦耳)
|
θ(度)
|
|
1.5
|
45
|
1
|
9
|
|
1.5
|
45
|
50
|
59
|
|
1.5
|
45
|
100
|
79
|
|
1.5
|
45
|
150
|
92
|
|
1.5
|
45
|
200
|
102
|
|
1.5
|
45
|
250
|
110
|
|
1.5
|
45
|
300
|
116
|
|
1.5
|
45
|
350
|
121
|
|
1.5
|
45
|
400
|
126
|
|
1.5
|
45
|
450
|
129
|
|
1.5
|
45
|
500
|
132
|
|
1.5
|
45
|
550
|
135
|
|
1.5
|
45
|
600
|
138
|
|
1.5
|
45
|
650
|
140
|
|
1.5
|
45
|
700
|
142
|
|
1.5
|
45
|
750
|
144
|
|
1.5
|
45
|
800
|
145
|
|
1.5
|
45
|
850
|
147
|
|
1.5
|
45
|
900
|
148
|
|
1.5
|
45
|
950
|
150
|
|
1.5
|
45
|
1000
|
151
|
附完整源代码:
V=134;%V速度
t1=102;%t1为人行走的时间Δt
H=1.8;%高为H--1.8米
m=700;%人的质量为m--70公斤
begin0=1;%临时变量
end0=1000;%临时变量
for c=begin0:end0%c为任意值,表每一步生物能量损失
for a=1:180%a表示θ
E=(1-cos(a/2*(pi/180)))*V*t1*m/sqrt(2-2*cos(a*(pi/180)))+V*t1*c*2/H/sqrt(2-2*cos(a*(pi/180)));%E为走路损失的总能量
b(a)=E;%b为存值的变量
end;
HOLD on;
plot(b)
for o=1:a%求消耗能量最少的角度,并记录下来
if b(o)==min(b)
jd(c)=o;
e(c)=min(b);
end;
end;
end;
%以上程序中jd()保存了c从begin到end0取值间,与c对应的损失最少的角度值
%画出jd()的图来就可以看到效果
for p=begin0:end0%求消耗能量最少的角度与生物能损失
if e(p)==min(e)
ok=p%以损失生物能o,以角度jd走能量损耗最少
jd(p)
end;
end;

通过分析行走速度、步幅与人体参数的关系,计算不同步幅角度下额外能量消耗,使用数学模型和编程求解出最小能量损耗的角度,结果表明最省能角度与生物能量损失、身高和体重有关。
4580

被折叠的 条评论
为什么被折叠?



