Главная » Статьи » На пальцах |
Немного теорииКак было отмечено ранее, при анализе динамических режимов электрических цепей необходимо решить следующую систему уравнений: , (1) где x1, …, xn — токи и напряжения в цепи; x'1, …, x'm — производные токов и напряжений. Число производных в системе (1) может быть меньше числа неизвестных токов и напряжений, то есть m ≤ n, число уравнений в системе всегда равно числу неизвестных x1, …, xn. В случае наличия в электрической цепи нелинейных элементов система (1) представляет собой систему нелинейных дифференциально-алгебраических уравнений. Если определить векторы x=[x1, x2, … xn] t и x'=[x'1, x'2, … x'n] t, то уравнения (1) можно записать в следующем (матричном) виде: f(x, x', t) = 0. (2) Следует заметить, что если m ≤ n, то в векторе x' будут отсутствовать соответствующие значения. Если обозначить x(tj) через xj, то решение xn+1 уравнения (2) в точке t = tn+1 должно удовлетворять уравнению (здесь n — номер точки решения) f(xn+1, x'n+1, tn+1) = 0. (3) В соответствии с формулой дифференцирования назад (BDF) значение производной x'n+1 аппроксимируется с использованием xn+1 и K последних значений xn, xn-1, …, xn-K+1 , (4) где αj — коэффициенты BDF; h — текущий шаг интегрирования; K — порядок BDF. В правой части выражения (4) неизвестной является только текущее значение xn+1, поэтому обозначим как функцию g(xn+1). Подставив выражение (4) в (3), получим уравнение f(xn+1, g(xn+1), tn+1) = 0, которое является системой нелинейных алгебраических уравнений относительно неизвестной xn+1. Для решения этой системы может быть применен, например, метод Ньютона–Рафсона. После определения xn+1 можно аналогичным образом найти xn+2, xn+3 и т.д. В начальный момент времени t = t0 известны лишь начальные значения x0 = x(t0), поэтому в выражении (4) следует взять порядок K = 1 и найти x1. Затем, зная x0 и x1 можно вычислить x2, применяя порядок K ≤ 2. Поступая таким образом, можно последовательно выйти на требуемый порядок BDF, в большинстве случаев используется K ≤ 6. Таким образом при наличии в электрической цепи нелинейных элементов расчет динамического режима с использованием BDF можно свести к решению системы нелинейных алгебраических уравнений методом Ньютона-Рафсона на каждом шаге интегрирования. При этом нужно помнить, что итерационный процесс сходится, когда начальная приближенная оценка достаточно близка к решению xn+1 уравнения (3). В нашем случае, когда известны последние K + 1 значений предыдущих решений, можно вычислить хорошее начальное приближение с помощью формулы прогноза BDF: , (5) Коэффициенты γ1, γ2, …, γK+1, входящие в выражение (5), при неравномерном шаге интегрирования должны вычисляться для каждого нового момента времени, формулы расчета коэффициентов приведены в [1] и [2]. При постоянном шаге интегрирования коэффициенты прогноза BDF представляют собой константы и не зависят ни от времени, ни от шага интегрирования, их значения можно найти в [3]. В начальный момент времени t = t0, когда известно лишь начальное значение x0, прогнозное значение следует принять . Расчет параметров дискретной модели нелинейной индуктивностиРассмотрим особенности расчета параметров дискретной модели нелинейной индуктивности, характеристика которой задана в виде зависимости Ψ = f(i), где Ψ — потокосцепление катушки. Характеристика может быть задана либо в табличной форме, либо в виде аналитического выражения (по ссылкам приведены примеры, как это выполнено в LazDiscret2). В случае применения таблично-заданной характеристики для аппроксимации можно использовать, например, кубический сплайн, который позволяет и выполнять интерполяцию характеристики между опорными точками. Учитывая связь напряжением на индуктивности и потокосцеплением, а также выражение BDF, для момента времени tn+1 можно записать . (6) Значение потокосцепления на k+1-ом шаге итерации решения методом Ньютона-Рафсона можно найти [4] , здесь верхний индекс у переменных обозначает номер итерации решения методом Ньютона-Рафсона, а нижний индекс — момент времени для интегрирования с помощью BDF. Значения потокосцепления и его производной по току могут быть найдены по заданной характеристике Ψ = f(i): и , где calcValue и calcDeriv — функции вычисления интерполяционных значений величины потокосцепления и его производной для заданной величины тока. Для таблично-заданной характеристики эти значения вычисляются с помощью принятой аппроксимирующей функции, в случае аналитически заданной характеристики — по функции характеристики, определенной на этапе редактирования параметров. Для первого шага итерации в качестве предыдущего значения тока (начальное приближение) берется значение, вычисленное по формуле прогноза , для которой необходимо сохранение значений тока на предыдущих K+1 шагах интегрирования (K — порядок BDF). В итоге для момента времени tn+1 на k+1 шаге итерации выражение (6) можно записать в следующем виде , где — эквивалентное сопротивление дискретной модели нелинейной индуктивности на k+1 шаге итерации для момента времени tn+1; — эквивалентная ЭДС дискретной модели нелинейной индуктивности на k+1 шаге итерации для момента времени tn+1. Итеративный процесс для момента времени tn+1 необходимо повторять до достижения условия сходимости решения. Для исключения зацикливания при расходимости итеративного процесса нужно ограничить максимальное числ шагов итерации. Аналогичные модели можно получить для нелинейной емкости с заданной характеристикой Q = f(u) и для нелинейной взаимной индуктивности с характеристикой материала сердечника B = f(H) или Φ = f(iнам), где iнам — ток намагничивания. Алгоритм расчета динамического режима нелинейной цепиАлгоритм расчета нелинейной цепи при постоянном шаге интегрирования упрощенно выглядит следующим образом: //расчет/установка начальных значений Возможная реализация соответствующих процедур для модели нелинейной индуктивности описана далее. Предположим, что для работы с BDF имеются следующие процедуры: function BDF.AlphaSumma(const aSavedVar: TStateArray): TFloat; function BDF.GammaSumma(const aSavedVar: TStateArray): TFloat; procedure BDF.addToStateArray(var aSavedVar: TStateArray; aValue: TFloat); Модель нелинейной индуктивности имеет следующие переменные FStateVar — сохраненные значения Ψ в моменты времени tn, tn-1, tn-2, ...; Также процедуры, используемые на различных этапах расчета: //calculateAlphaSumm; ------------------------------------------------------------------------------ //calculatePredictor; ------------------------------------------------------------------------------ //matrixSetup; ------------------------------------------------------------------------------------- //calculateCurrent; -------------------------------------------------------------------------------- //saveStateVars; ----------------------------------------------------------------------------------- //saveNLControlVars; ------------------------------------------------------------------------------- Аналогично могут быть построены процедуры для моделей других нелинейных элементов. Литература 1. Чуа Л.О., Лин Пен-Мин. Машинный анализ электронных схем: Алгоритмы и вычислительные методы. - М.: Энергия, 1980 2. Влах И., Сингхал К. Машинные методы анализа и проектирования электронных схем. - М.: Радио и связь, 1988 3. Нерретер В. Расчет электрических цепей на персональной ЭВМ М.: Энергоатомиздат 1991 4. L. W. Nagel. SPICE2: A computer program to simulate semiconductor circuits. Univ. of California, Berkley, ERL Memo ERL M520(May). 1975 | |
Просмотров: 380 | | |
Всего комментариев: 0 | |