物理计算单元gydF4y2Ba
这个例子展示了如何在物理计算中使用单位。用国际单位和英制单位计算空降兵下落的终端速度。在考虑重力和阻力的情况下,求解伞兵的运动。gydF4y2Ba
介绍gydF4y2Ba
想象一个伞兵从飞机上跳下来。假设只有两种力作用在伞兵身上:重力和来自降落伞的相反阻力。阻力与伞兵速度的平方成正比。gydF4y2Ba
作用在伞兵身上的合力可以表示为gydF4y2Ba
,gydF4y2Ba
,gydF4y2Ba
在哪里gydF4y2Ba
伞兵的质量是多少gydF4y2Ba
ggydF4y2Ba是重力加速度gydF4y2Ba
伞兵的速度是多少gydF4y2Ba
是拖动常数gydF4y2Ba
定义并求解运动方程gydF4y2Ba
定义描述运动方程的微分方程。gydF4y2Ba
信谊gydF4y2BaggydF4y2Ba米gydF4y2Ba重金属镉gydF4y2Ba信谊gydF4y2Bav (t)gydF4y2BaEq = m*diff(v(t),t) + m*g == c_d*v(t)²gydF4y2Ba
情商=gydF4y2Ba
假设降落伞在gydF4y2Ba
所以这个方程gydF4y2Ba情商gydF4y2Ba
对的所有值都有效gydF4y2Ba
。对微分方程进行解析求解gydF4y2BadsolvegydF4y2Ba
在初始条件下gydF4y2Ba
。解表示伞兵的速度作为时间的函数。gydF4y2Ba
速度=简化(dsolve(eq, v(0) == 0))gydF4y2Ba
速度=gydF4y2Ba
找到单位的拖动常数gydF4y2Ba
求阻力常数的SI单位gydF4y2Ba 。gydF4y2Ba
力的国际单位是牛顿gydF4y2Ba 。用基单位表示,牛顿是gydF4y2Ba 。因为它们是等价的,所以它们的单位转换系数是1。gydF4y2Ba
U =符号单位;unitConversionFactor (u。N, u.kg * u.m /美国^ 2)gydF4y2Ba
ans =gydF4y2Ba
拖曳力gydF4y2Ba 必须有相同的单位牛顿gydF4y2Ba 因为引力gydF4y2Ba 。利用量纲分析,求出单位gydF4y2Ba 。gydF4y2Ba
信谊gydF4y2Badrag_units_SIgydF4y2Badrag_units_SI = simplify(solve(drag_units_SI * (u.m / us)^2 == u.N))gydF4y2Ba
drag_units_SI =gydF4y2Ba
估计终端速度gydF4y2Ba
通过定义以下值来描述伞兵的运动。gydF4y2Ba
伞兵的质量gydF4y2Ba
重力加速度gydF4y2Ba
阻力系数gydF4y2Ba
将这些值代入速度方程并简化结果。gydF4y2Ba
vel_SI = subs(速度,[g,m,c_d],[9.81*u.m/u。s ^ 2, 70 * u。公斤,40*drag_units_SI])
vel_SI =gydF4y2Ba
vel_SI = simplify(vel_SI)gydF4y2Ba
vel_SI =gydF4y2Ba
计算速度的数值近似为3位有效数字。gydF4y2Ba
(3) vel_SI = vpa(vel_SI)gydF4y2Ba
vel_SI =gydF4y2Ba
当重力与阻力平衡时,伞兵接近恒定速度。这被称为终端速度,它发生在降落伞的拖曳力抵消了重力(没有进一步的加速度)时。求极限,求终速度gydF4y2Ba 。gydF4y2Ba
vel_term_SI = limit(vel_SI, t, Inf)gydF4y2Ba
vel_term_SI =gydF4y2Ba
将速度转换为帝国单位gydF4y2Ba
最后,将速度函数从国际单位转换为英制单位。gydF4y2Ba
vel_Imperial =重写(vel_SI,u.ft)gydF4y2Ba
vel_Imperial =gydF4y2Ba
转换终端速度。gydF4y2Ba
vel_term_Imperial =重写(vel_term_SI,u.ft)gydF4y2Ba
vel_term_Imperial =gydF4y2Ba
随时间变化的Plot VelocitygydF4y2Ba
要把速度画成时间的函数,要把时间表示出来gydF4y2BatgydF4y2Ba
在几秒钟内gydF4y2BatgydF4y2Ba
通过gydF4y2BaTgydF4y2Ba
年代,gydF4y2BaTgydF4y2Ba
是一个无量纲符号变量。gydF4y2Ba
信谊gydF4y2BaTgydF4y2Bavel_SI = subs(vel_SI, t, t *u)gydF4y2Ba
vel_SI =gydF4y2Ba
vel_Imperial =重写(vel_SI, u.ft)gydF4y2Ba
vel_Imperial =gydF4y2Ba
使用将表达式与单元分开gydF4y2BaseparateUnitsgydF4y2Ba
。使用以下方法绘制表达式gydF4y2BafplotgydF4y2Ba
。将单位转换为字符串,以用作绘图标签gydF4y2Basymunit2strgydF4y2Ba
。gydF4y2Ba
[data_SI, units_SI] = separateUnits(vel_SI);[data_Imperial, units_Imperial] = separateUnits(vel_Imperial);gydF4y2Ba
空降兵速度趋于稳定时gydF4y2Ba 。通过绘制速度在范围内的曲线来显示速度如何接近终端速度gydF4y2Ba 。gydF4y2Ba
subplot(1,2,1) fplot(data_SI,[0 2]) title(gydF4y2Ba“国际单位制速度”gydF4y2Ba)包含(gydF4y2Ba' s中的时间'gydF4y2Ba) ylabel ([gydF4y2Ba“速度”gydF4y2Basymunit2str(units_SI)) subplot(1,2,2) fplot(data_Imperial,[0 2]) title(gydF4y2Ba“帝国单位的速度”gydF4y2Ba)包含(gydF4y2Ba' s中的时间'gydF4y2Ba) ylabel ([gydF4y2Ba“速度”gydF4y2Basymunit2str (units_Imperial)))gydF4y2Ba