ДУ диодного выпрямителя
Известно, что получить решение нелинейного дифференциального уравнения в явном виде удается только для крайне простых задач. Однако Maple способен визуализировать решение таких уравнений и, более того, обращаться с ними как с функциями. Это вполне естественно, многие известные элементарные функции являются корнями дифференциальных уравнений. Например функция exp(x) корень дифференциального уравнения - у'(x)=y(x). Фактически это означает, что если физический объкт удалось адекватно представить в виде системы дифференциальных уравнений, то задача в основном решена. Дальнейшее исследование решений этой системы дело техники и времени.
Ниже показана схема с экспоненциальной моделью диода (рис. 1. Диод представлен управляемым источником тока G1, заданным формулой. На диод от источника подается синусоидальное переменное напряжение амплитудой 3 В, 50 Гц. На выходе диода подключён резистор R1=100 Ом, с параллельно включённой ёмкостью C1=470 мкФ. Требуется найти напряжение в узле V(2).
Рис. 1. Схема однополупериодного диодного выпрямителя.
> | restart: with(MSpice): with(DEtools): with(plots): with(plottools): ESolve(DM,`Решение ДУ диода.CKT`); |
MSpice v9.03: http://pspicelib.narod.ru
Заданы источники: [VIN]
Заданы узлы: {V1}
Решениe: dsolve(ODE union ISc): assign(%);
Аналитическое решение будет весьма сложным, поэтому построим графическое решение полученного уравнения для напряжения на диоде V2(t).
Введем численные значения номиналов компонентов.
> | Values(DC,RLCVI,[]): |
Номиналы компонентов:
C1:=470e-6: [470U]
R1:=100: [100]
DC источник: VIN(t):=A*sin(omega*t):
Введем численные значения параметров модели диода, укажем амплитуду синусоиды 3 В и частоту 50 Гц.
> | JS:=1e-8: eta:=1.8: UT:=0.026: A:=3: omega:=2*Pi*50: |
Для визуализации решения дифференциальных уравнений в Maple есть функциея DEplot(). Воспользуемся ей.
> | DEplot(ODE,V2(t),t=0..0.08,ISc,linecolor=black,numpoints=500,title=`Рис. 2. Напряжение V2(t)`); ploth([VIN(t)],t=0..0.08,"3) Напряжение VIN(t) и V2(t) del[VIN(t)] "): display([%,%%],view=[0..0.08,-3..3]); |