四、附录
将拉距(单位:厘米)和拉力(单位:磅)数据写入data.txt中(第一列拉距,第二列拉力),将txt文件与m文件放在同一文件夹。
利用以下代码可以计算弓的储能、箭的动能、能量储存效率、能量转化效率。
a = load('data.txt'); %读入拉力(单位lb)-拉距(单位cm)数据
m = 22; %箭的质量(单位g)
v = 200; %箭速(单位fps)
t = size(a);
t =t(1); %拉力测量次数
for i = 1:t
x(i) = (a(i,1)-a(1,1))/100; %相对拉距(单位m)
y(i) = a(i,2)*0.4536*9.8; %拉力(单位N)
end
p = polyfit(x,y,6); %用6次多项式进行拟合
% 直接求出原函数计算定积分
z = x(t);
E =1/7*p(1)*z^7+1/6*p(2)*z^6+1/5*p(3)*z^5+1/4*p(4)*z^4+1/3*p(5)*z^3+1/2*p(6)*z^2+p(7)*z;
m = m/1000; %将箭的质量单位转换为kg
v = v*0.3048; %将箭速单位转换为m/s
Ek = m*v^2*0.5; %箭的动能
EF = Ek/E; %效率
EF2 = E/(y(t)*x(t)); %能量储存效率
fprintf('弓的储能:%3.2f',E);
fprintf('J\n箭的动能:%3.2f',Ek);
fprintf('J\n能量储存效率:%2.2f%%',EF2*100);
fprintf('\n能量转化效率:%2.2f%%',EF*100);
fprintf('\n');
在CommandWindow中输出结果(如图5)。
图5 计算结果
以上计算中所用数据均为杜撰。