Этот пример показывает, как работать с модулями в физических вычислениях. Вычислите конечную скорость падающего десантника как в единицах СИ, так и в имперских модулях. Решить движение десантника с учетом силы тяжести и силы сопротивления.
Представьте, как десантник выпрыгивает из самолета. Предположим, что на десантника действуют только две силы: гравитационная сила и противоположная сила сопротивления от парашюта. Сила сопротивления пропорциональна скорости в квадрате десантника.
Сетевая сила, действующая на десантника, может быть выражена как
,
,
где
- масса десантника
g - ускорение свободного падения
- скорость десантника;
- константа перетаскивания
Задайте дифференциальное уравнение, описывающее уравнение движения.
syms g m c_d syms v(t) eq = m*diff(v(t),t) + m*g == c_d*v(t)^2
eq =
Предположим, что парашют открывается сразу при так что уравнение eq
действителен для всех значений . Решить дифференциальное уравнение аналитически используя dsolve
с начальным условием . Решение представляет скорость десантника как функцию времени.
velocity = simplify(dsolve(eq, v(0) == 0))
velocity =
Найдите модуль СИ константы перетаскивания .
Силовой модуль СИ является Ньютон . С точки зрения базовых модулей, Newton is . Поскольку они эквивалентны, они имеют единичный коэффициент преобразования 1.
u = symunit; unitConversionFactor(u.N, u.kg*u.m/u.s^2)
ans =
Сила перетаскивания должно иметь тот же модуль в Ньютоне как гравитационная сила . Используя размерный анализ, решите для модуля .
syms drag_units_SI
drag_units_SI = simplify(solve(drag_units_SI * (u.m / u.s)^2 == u.N))
drag_units_SI =
Опишите движение десантника путем определения следующих значений.
Масса десантника
Ускорение свободного падения
Коэффициент перетаскивания
Замените эти значения в скоростное уравнение и упростите результат.
vel_SI = subs(velocity,[g,m,c_d],[9.81*u.m/u.s^2, 70*u.kg, 40*drag_units_SI])
vel_SI =
vel_SI = simplify(vel_SI)
vel_SI =
Вычислите численное приближение скорости к 3 значащим цифрам.
digits(3) vel_SI = vpa(vel_SI)
vel_SI =
Десантник приближается к постоянной скорости, когда сила тяжести уравновешивается силой сопротивления. Это называется конечной скоростью и происходит, когда сила сопротивления от парашюта отменяет силу свободного падения (дальнейшее ускорение отсутствует). Найдите конечную скорость, взяв предел .
vel_term_SI = limit(vel_SI, t, Inf)
vel_term_SI =
Наконец, преобразуйте функцию скорости из модулей СИ в имперские модули.
vel_Imperial = rewrite(vel_SI,u.ft)
vel_Imperial =
Преобразуйте конечную скорость.
vel_term_Imperial = rewrite(vel_term_SI,u.ft)
vel_term_Imperial =
Чтобы построить график скорости как функции времени, выразите время t
в секундах и замените t
по T
s, где T
является безразмерной символьной переменной.
syms T
vel_SI = subs(vel_SI, t, T*u.s)
vel_SI =
vel_Imperial = rewrite(vel_SI, u.ft)
vel_Imperial =
Разделите выражение от модулей при помощи separateUnits
. Постройте график выражения с помощью fplot
. Преобразуйте модули в строки для использования в качестве меток графика при помощи symunit2str
.
[data_SI, units_SI] = separateUnits(vel_SI); [data_Imperial, units_Imperial] = separateUnits(vel_Imperial);
Скорость десантника приближается к установившемуся состоянию, когда . Покажите, как скорость приближается к конечной скорости путем построения графика скорости в области значений .
subplot(1,2,1) fplot(data_SI,[0 2]) title('Velocity in SI Units') xlabel('Time in s') ylabel(['Velocity in ' symunit2str(units_SI)]) subplot(1,2,2) fplot(data_Imperial,[0 2]) title('Velocity in Imperial Units') xlabel('Time in s') ylabel(['Velocity in ' symunit2str(units_Imperial)])