В этом примере показано, как работать с модулями в вычислениях физики. Вычислите терминальную скорость падающего парашютиста-десантника и в SI и в имперских модулях. Решите движение парашютиста-десантника, учтя гравитационную силу и силу сопротивления.
Вообразите парашютиста-десантника, выпрыгивающего из самолета. Примите, что существует только две силы, действующие на парашютиста-десантника: гравитационная сила и противостоящая сила сопротивления от парашюта. Сила сопротивления пропорциональна скорости, в квадрате из парашютиста-десантника.
Сетевая сила, действующая на парашютиста-десантника, может быть описана как
,
,
где
масса парашютиста-десантника
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 =
Найдите единицу СИ перетаскивания постоянной .
Единицей СИ силы является Ньютон . В терминах основных единиц Ньютон . Поскольку они эквивалентны, у них есть модульный коэффициент преобразования 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)])