Решите дифференциальные уравнения при помощи Преобразований Лапласа в Symbolic Math Toolbox™ с этим рабочим процессом. Для простых примеров на Преобразовании Лапласа смотрите laplace
и ilaplace
.
Преобразование Лапласа функции
Символьные рабочие процессы сохраняют вычисления в естественной символьной форме вместо числовой формы. Этот подход помогает вам изучить свойства своего решения и использовать точные символьные значения. Вы заменяете числами вместо символьных переменных только, когда вы требуете числового результата, или вы не можете продолжить символически. Для получения дополнительной информации смотрите, Выбирают Numeric or Symbolic Arithmetic. Как правило, шаги:
Объявите уравнения.
Решите уравнения.
Замените значениями.
Постройте результаты.
Анализ результатов.
Можно использовать Преобразование Лапласа, чтобы решить дифференциальные уравнения с начальными условиями. Например, можно решить конденсатор индуктора сопротивления (RLC) схемы, такие как эта схема.
Сопротивления в Оме:
Токи в ампере:
Индуктивность в Генри:
Емкость в фараде:
Источник напряжения переменного тока в вольтах:
Заряд конденсатора в кулоне:
Примените напряжение Кирхгоффа и действующие законы, чтобы получить следующие уравнения.
Замените отношением (который является уровнем заряжаемого конденсатора) к вышеупомянутым уравнениям, чтобы получить дифференциальные уравнения для схемы RLC.
Объявите переменные. Поскольку физические количества имеют положительные значения, устанавливают соответствующие предположения на переменных. Пусть будьте переменным напряжением 1 В.
syms L C I1(t) Q(t) s R = sym('R%d',[1 3]); assume([t L C R] > 0) E(t) = 1*sin(t); % AC voltage = 1 V
Объявите дифференциальные уравнения.
dI1 = diff(I1,t); dQ = diff(Q,t); eqn1 = dI1 - (R(2)/L)*dQ == -(R(1)+R(2))/L*I1
eqn1(t) =
eqn2 = dQ == (1/(R(2)+R(3))*(E-Q/C)) + R(2)/(R(2)+R(3))*I1
eqn2(t) =
Вычислите Преобразование Лапласа eqn1
и eqn2
.
eqn1LT = laplace(eqn1,t,s)
eqn1LT =
eqn2LT = laplace(eqn2,t,s)
eqn2LT =
Функциональный solve
решает только для символьных переменных. Поэтому использовать solve
, сначала замените laplace(I1(t),t,s)
и laplace(Q(t),t,s)
с переменными I1_LT
и Q_LT
.
syms I1_LT Q_LT eqn1LT = subs(eqn1LT,[laplace(I1,t,s) laplace(Q,t,s)],[I1_LT Q_LT])
eqn1LT =
eqn2LT = subs(eqn2LT,[laplace(I1,t,s) laplace(Q,t,s)],[I1_LT Q_LT])
eqn2LT =
Решите уравнения для I1_LT
и Q_LT
.
eqns = [eqn1LT eqn2LT]; vars = [I1_LT Q_LT]; [I1_LT, Q_LT] = solve(eqns,vars)
I1_LT =
Q_LT =
Вычислить и путем вычисления обратного Преобразования Лапласа I1_LT
и Q_LT
. Упростите результат. Подавите выход, потому что это длинно.
I1sol = ilaplace(I1_LT,s,t); Qsol = ilaplace(Q_LT,s,t); I1sol = simplify(I1sol); Qsol = simplify(Qsol);
Прежде, чем построить результат, замените символьными переменными числовыми значениями элементов схемы. Пусть , , , , . Примите, что начальный ток и первоначальный сбор .
vars = [R L C I1(0) Q(0)]; values = [4 2 3 1.6 1/4 2 2]; I1sol = subs(I1sol,vars,values)
I1sol =
Qsol = subs(Qsol,vars,values)
Qsol =
Постройте текущий I1sol
и заряжайте Qsol
. Покажите и поведение переходного и устойчивого состояния при помощи двух различных временных интервалов: и .
subplot(2,2,1) fplot(I1sol,[0 15]) title('Current') ylabel('I1(t)') xlabel('t') subplot(2,2,2) fplot(Qsol,[0 15]) title('Charge') ylabel('Q(t)') xlabel('t') subplot(2,2,3) fplot(I1sol,[2 25]) title('Current') ylabel('I1(t)') xlabel('t') text(3,-0.1,'Transient') text(15,-0.07,'Steady State') subplot(2,2,4) fplot(Qsol,[2 25]) title('Charge') ylabel('Q(t)') xlabel('t') text(3,0.35,'Transient') text(15,0.22,'Steady State')
Первоначально, текущее уменьшение и уменьшение заряда экспоненциально. Однако за длительный срок, они являются колебательными. Эти поведения называются "переходным" и "устойчивым состоянием", соответственно. Символьным результатом можно анализировать свойства результата, который не возможен числовыми результатами.
Визуально смотрите I1sol
и Qsol
. Они - сумма терминов. Найдите термины при помощи children
. Затем найдите вклады терминов путем графического вывода их по [0 15]
. Графики показывают термины переходного и устойчивого состояния.
I1terms = children(I1sol); I1terms = [I1terms{:}]; Qterms = children(Qsol); Qterms = [Qterms{:}]; figure; subplot(1,2,1) fplot(I1terms,[0 15]) ylim([-0.5 2.5]) title('Current terms') subplot(1,2,2) fplot(Qterms,[0 15]) ylim([-0.5 2.5]) title('Charge terms')
Графики показывают тот I1sol
имеет термин переходного и устойчивого состояния, в то время как Qsol
имеет переходный процесс и два термина устойчивого состояния. От визуального осмотра заметьте I1sol
и Qsol
имейте термин, содержащий exp
функция. Примите, что этот термин вызывает переходное экспоненциальное затухание. Разделите термины переходного и устойчивого состояния в I1sol
и Qsol
путем проверки терминов на exp
использование has
.
I1transient = I1terms(has(I1terms,'exp'))
I1transient =
I1steadystate = I1terms(~has(I1terms,'exp'))
I1steadystate =
Точно так же отдельный Qsol
в термины переходного и устойчивого состояния. Этот результат демонстрирует, как символьные вычисления помогают вам анализировать свою проблему.
Qtransient = Qterms(has(Qterms,'exp'))
Qtransient =
Qsteadystate = Qterms(~has(Qterms,'exp'))
Qsteadystate =