此示例显示如何使用物理计算中的单位。计算Si和英制单位的下落伞兵的终端速度。解决伞兵的运动,考虑到重力和拖曳力。GydF4y2Ba
想象一位伞兵跳出飞机。假设只有两种力量作用在伞兵上:引力力和来自降落伞的反向阻力。阻力与伞兵的速度平衡成比例。GydF4y2Ba
作用于伞兵的净力可以表示为GydF4y2Ba
那GydF4y2Ba
那GydF4y2Ba
在哪里GydF4y2Ba
是伞兵的质量GydF4y2Ba
GGydF4y2Ba是引力加速度GydF4y2Ba
是伞兵的速度GydF4y2Ba
拖动常量是GydF4y2Ba
定义描述运动方程的微分方程。GydF4y2Ba
Syms.GydF4y2BaGGydF4y2BamGydF4y2Ba光盘GydF4y2BaSyms.GydF4y2Bav(t)GydF4y2Baeq = m * diff(v(t),t)+ m * g == c_d * v(t)^ 2GydF4y2Ba
eq =GydF4y2Ba
假设降落伞立即打开GydF4y2Ba
那么等式GydF4y2Baeq.GydF4y2Ba
对所有值都有效GydF4y2Ba
。分析使用解决微分方程GydF4y2BaDsolve.GydF4y2Ba
初始条件GydF4y2Ba
。该溶液表示伞阀作为时间函数的速度。GydF4y2Ba
Velocity =简化(DSolve(eq,v(0)== 0)))GydF4y2Ba
速度=GydF4y2Ba
找到拖动常量的SI单位GydF4y2Ba 。GydF4y2Ba
Si的武力单位是牛顿GydF4y2Ba 。就基本单位而言,牛顿是GydF4y2Ba 。由于这些是等同的,因此它们具有单位转换因子为1。GydF4y2Ba
u = symit;UnitConversiachFactor(U.n,U.kg * U.m / U.S ^ 2)GydF4y2Ba
ans =.GydF4y2Ba
拖动力GydF4y2Ba 必须在牛顿拥有同一个单位GydF4y2Ba 作为引力力GydF4y2Ba 。使用尺寸分析,解决单位GydF4y2Ba 。GydF4y2Ba
Syms.GydF4y2Badrag_units_si.GydF4y2Badrag_units_si = simplify(求解(drag_units_si *(u.m / u.s)^ 2 == u.n))GydF4y2Ba
drag_units_si =GydF4y2Ba
通过定义以下值来描述伞阀的运动。GydF4y2Ba
伞兵GydF4y2Ba
引力加速度GydF4y2Ba
拖动系数GydF4y2Ba
将这些值替换为速度方程并简化结果。GydF4y2Ba
vel_si = summ(速度,[g,m,c_d],[9.81 * u.m / u.s ^ 2,70 * u.kg,40 * drag_units_si])GydF4y2Ba
vel_si =GydF4y2Ba
vel_si =简化(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
最后,将SI单位的速度函数转换为帝国单位。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
绘制速度作为时间的函数,表达时间GydF4y2BaT.GydF4y2Ba
在几秒钟内更换GydF4y2BaT.GydF4y2Ba
经过GydF4y2BaT.GydF4y2Ba
s,哪里GydF4y2BaT.GydF4y2Ba
是一个无量纲象征性变量。GydF4y2Ba
Syms.GydF4y2BaT.GydF4y2Bavel_si = summ(vel_si,t,t * U.S)GydF4y2Ba
vel_si =GydF4y2Ba
vel_imperial =重写(vel_si,u.ft)GydF4y2Ba
vel_imperial =.GydF4y2Ba
通过使用将表达与单位分开GydF4y2Ba隔离GydF4y2Ba
。使用表达式绘制GydF4y2BaFplot.GydF4y2Ba
。将单位转换为字符串,通过使用用作绘图标签GydF4y2BaSymunit2str.GydF4y2Ba
。GydF4y2Ba
[data_si,eners_si] = soldenunits(vel_si);[data_imperial,sens_imperial] =隔离(Vel_imperial);GydF4y2Ba
伞阀的速度何时接近稳态GydF4y2Ba 。通过在范围内绘制速度来示出速度如何接近终端速度GydF4y2Ba 。GydF4y2Ba
子图(1,2,1)fplot(data_si,[0 2])标题(GydF4y2Ba'SI单位的速度'GydF4y2Ba)Xlabel(GydF4y2Ba'时间在s'GydF4y2Ba)ylabel([GydF4y2Ba'速度在'GydF4y2BaSymunit2str(UNITS_SI)])子图(1,2,2)fplot(data_imperial,[0 2])标题(GydF4y2Ba“帝国单位的速度”GydF4y2Ba)Xlabel(GydF4y2Ba'时间在s'GydF4y2Ba)ylabel([GydF4y2Ba'速度在'GydF4y2BaSymunit2str(Unile_imperial)])GydF4y2Ba