Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW

Функции численных методов (рис. 3.31) позволяют выполнять численное интегрирование массивов входных данных, рассчитывать значения как самой функции, заданной формулой, так и ее интеграла и производной, а также такие параметры, как предел и длину кривой. В состав палитры входят также функции расчета частных производных, поиска экстремумов двумерной функции и поиска нулей и экстремумов одномерной функции. Набор функций численных методов решения дифференциальных уравнений включает ВП, реализующие методы Эйлера, Рунге-Кутта и Кэш-Капа, а также ВП решения линейного ОДУ n-го порядка и системы линейных ОДУ в численном и символьном виде.

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

Расчетные алгоритмы

Рассматривается переходный процесс в электрической цепи, состоящей из источника постоянной электродвижущей силы E , резистора с сопротивлением R и конденсатора емкостью C (рис. 5.1). Величины E,R ,C можно задать самостоятельно. Начальное значение напряжения на конденсаторе u(0) принято равным 0. Требуется определить напряжение u(t) и ток в цепи i(t) при t>0 , полагая, что в момент t=0 замыкается ключ К.

На основании второго закона Кирхгофа ток в цепи

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru откуда после подстановки значения тока Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru получается дифференциальное уравнение для определения переходного процесса Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

Решение данного дифференциального уравнения проводится с помощью программы LabVIEW, составленной с использованием явного либо неявного метода Эйлера интегрирования дифференциальных уравнений.

Для этого перейдем к конечным приращениям Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru , Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru и определим приращение напряжения на последующей итерации как

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru для явного метода Эйлера,

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru для неявного метода Эйлера,

где k — номер шага интегрирования, Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru . Здесь значения приращений

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

шаг интегрирования Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru . Таким образом, алгоритм явного метода Эйлера для расчета напряжения в переходном режиме имеет вид

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

в случае неявного метода Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

Выражая отсюда Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru , получаем алгоритм неявного метода Эйлера

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru (4)

После определения напряжения ток вычисляется по уравнению (1). Известно, что явный метод Эйлера неустойчив. Действительно, нетрудно видеть, что при больших шагах расчета Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru уравнение (3) дает расходящееся решение — это легко просчитать, задав, например, Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru . Что касается неявного метода Эйлера, то он устойчив, то есть при любом значении Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru даст решение, стремящееся к установившемуся режиму. Так, из уравнения (4) следует, что даже при Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru , стремящемся к бесконечности, Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru стремится к Е. Однако, при больших шагах Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru погрешность вычисления характеристик переходного процесса u(t) и i(t) очень велика. Поэтому в нашей работе шаг расчета Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru должен быть значительно меньше постоянной времени переходного процесса Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru (в нашем случае Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru ). Целесообразно его ориентировочное значение взять примерно на 2 порядка меньше, чем постоянная времени переходного процесса Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru . Количество итераций N примерно должно соответствовать Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru

1. Решение дифференциального уравнения явным методом Эйлера

Построить кривые напряжения u(t) и тока i(t) в цепи рис. 1 с использованием алгоритма явного метода Эйлера. Параметры цепи можно выбрать самостоятельно. Напряжение определяется по уравнению (3), ток - по уравнению (1).

1. Для выполнения работы используется цикл ForLoop. Вызов цикла ForLoop осуществляется через Functions =>Structures =>ForLoop.

2. В цикл нужно добавить регистр сдвига ShiftRegister, который осуществляет передачу результата вычислений из предыдущей операции в последующую, т.е. искомую переменную (и или i). Начальное условие в нашем случае будет нулевое.

Примечание. Для того, чтобы ток и номер операции не обозначались одной и той же буквой, рекомендуется вписать в эту рамку номера итерации букву k инструментом «ввод текста».

3. Внутрь цикла при помощи формульного узла (Functions =>Structures =>FormulaNode) записываются расчетные формулы (3) для расчета напряжения и (1) для расчета тока. Поскольку строятся зависимости тока и напряжения от времени, сюда же следует ввести значение времени

Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru (5)

4. Для наблюдения зависимости напряжения и тока от времени при переходном процессе нужно вызвать два виртуальных двухкоординатных осциллографа (на лицевой панели: Controls =>Graph => XY Graph). Для того, чтобы на вход осциллографа можно было подать две величины - время и напряжение (или ток), применяется кластер (связка), вызываемый на панели блок-схем нажатием RMB на иконку осциллографа и далее ClusterTools =>Bundle. К верхнему входу кластера подводится сигнал t, к нижнему - u(t) или i(t), выход подается на осциллограф.

6. После задания значений ЭДС, сопротивления, емкости, шага расчета и количества операций N программу можно запустить на исполнение и рассчитать переходные процессы в цепи при различных значениях шага расчета в диапазоне примерно от Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru до Численное решение обыкновенных дифференциальных уравнений в среде LabVIEW - student2.ru . При наблюдении переходных процессов на экране виртуального осциллографа нужно обратить внимание на картину процесса в области неустойчивости метода.


Наши рекомендации