


Численное решение диффура для тока в колебательном контуре.
Игрался я вот с таким колебательным контуром:

В начальный момент времени ток равен нулю, а конденсатор заряжен до напряжения E таким образом, что при разрядке ток потечет в прямом для диода направлении. Попытка найти ток как функцию времени приводит к такой задаче Коши:

Уравнение выглядит как обычное уравнение затухающих колебаний, но с переменным коэффициентом затухания:
β / (1 + α X).
-
Проблема в том, что при достаточно больших α (примерно при 1.3) и отрицательных X знаменатель во втором слагаемом становится близким к нулю, и коэффициент затухания резко становится огромным. При недостаточной точности метода знаменатель просто пролетает через 0 и становится отрицательным. В таком случае численное решение становится мусором) Вот пример решения без лажи для α = 1.25, β = 0.02:

На первой картинке зависимость безразмерного тока X от безразмерного врмени tau. Красной линией показан максимальный обратный ток диода (равный 1/α). На второй картинке - коэффициент затухания. Там видно, какой резкий возникает пик (он превышает 10⁴) в момент, когда ток упирается в граничное значение. Метод Рунге-Кутты 4-го порядка (с динамическим выбором шага для поддержания точности) не справляется. При увеличении α с 1.25 до 1.3 число шагов по времени в окрестности пика взлетает с десятков тысяч до десятков миллионов, a хотелось бы доползти до α ~ 10².
-
Вопрос: какими численными методами можно попробовать решить уравнение с такими резкими пиками?
Насчет того ,как получился диффур. Записал суммарное падение напряжения на всем контуре и получил интегродиффур:

Взял от него производную по времени, чтобы избавиться от интеграла, обезразмерил и ввел пару обозначений:

Ошибаться тут, кажется, было не где.
Ты нормальный?
Ну, ты крут, стеляга!
Я думаю, что проблема не в численных методах, а в самом уравнении. Оно «ломается» при X=-1/a. Вблизи этого значения стоит пользоваться другим соотношением, можно приписать какое-либо определённое (физически обоснованное) значение для второй производной, когда X’/(1+aX) = 0/0...
Я не понимаю альфу-бету.
Рисуй параллельно диоду R.
И последовательно катушки r.
... если уж, то и параллельно конденсатору.
Тогда будет электротехника.
А альфа-бета это... углы.
)))
Ваша задача связана с численным решением дифференциального уравнения, описывающего ток в колебательном контуре, состоящем из индуктивности (L), диода с насыщением (\varphi_0) и (\frac{i(t)}{i_0}), и конденсатора (C), заряженного до напряжения (E).
Вы преобразовали исходное уравнение, взяли его производную по времени, чтобы избавиться от интеграла, затем обезразмерили уравнение и ввели новые обозначения. Это привело к следующему уравнению:
[ i(t) = E\sqrt{\frac{C}{L}} x \left(\frac{t}{\sqrt{LC}}\right) ]
и параметрам:
[ \alpha = \frac{E\sqrt{C}}{i_0\sqrt{L’}}, \quad \beta = \frac{\varphi_0\sqrt{C}}{2i_0\sqrt{L’}}, \quad \tau = \frac{t}{\sqrt{LC}} ]
Вы столкнулись с проблемой “жесткого” дифференциального уравнения, где некоторые решения могут изменяться гораздо быстрее других. Это может привести к нестабильности некоторых численных методов, если не использовать очень маленькие шаги.
Я предложил несколько методов, которые могут быть полезны для решения жестких уравнений, включая неявные методы, методы Розенброка, методы обратной дифференциации (BDF), методы Гира и VSVO-BBDF методы. Выбор подходящего метода зависит от конкретной задачи, и может потребоваться некоторое время для экспериментов, чтобы определить, какой метод работает лучше всего в вашем случае.