13.08.2013 Views

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

?????????????? ?????? ? ????????? ?????????? ??????? ?????

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Схема включается на постоянный источник напряжения Е. Для такой<br />

схемы известно точное аналитическое решение:<br />

a⋅RE ⋅eb⋅t⋅a⋅RE<br />

it = a⋅[<br />

−1]<br />

.<br />

b⋅t⋅a⋅RE <br />

E a⋅R⋅e<br />

Ниже приведен алгоритм численного расчета методом трапеций. Схема<br />

заменяется разностно-итерационным аналогом, приведенным на<br />

рис.2.1.17б.<br />

Входные данные: b,a – параметры нелинейной индуктивности; Е – значение источника<br />

напряжения; r – сопротивление индуктивности; dt – расчетный шаг, T – время<br />

моделирования; eps – точность расчета; N – максимальное число итераций;<br />

m_trap - число точек до выхода на метод трапеций, если m_trap присвоить число<br />

М+1, где М+1 число расчетных точек переходного процесса, то весь переходный<br />

процесс будет рассчитываться неявным методом Эйлера 1-го порядка.<br />

Формула аналитического решения введена как функция f2=tok(x), которая<br />

выводится на график через массив ietalon(m). Нелинейная индуктивность задана в<br />

виде функции LL(x). x=0.0001 – это значение вводится для предотвращения деления<br />

на ноль.<br />

Промежуточные данные: zL – алгебраизированное сопротивление индуктивности;<br />

eL - источник напряжения индуктивной ветви; iL – ток индуктивной ветви.<br />

Соответствие обозначений, принятых в программе с обозначениями в формулах<br />

следующее:<br />

Ln=L_0, L j n+1=Lj, L j-1 n+1=Lj_1,<br />

iLn=iL_0, iLn+1=iL.<br />

Выходные данные: iLg(m) – массив значений тока в индуктивности.<br />

clear ;<br />

dt=0.002;T=0.028;t=[0:dt:T]; //ввод диапазона времени<br />

M=round(T/dt); //определение числа расчетных точек по времени<br />

eps=0.000002; //задание точности<br />

N=1500; //максимальное число итераций<br />

m_trap=1; //порядок метода<br />

b=3; a=1/3; E=120; r=20; x=0.0001; //ввод параметров схемы<br />

//ввод статической индуктивности и аналитической функции эталонного решения<br />

function f=LL(x), f=log((x+a)/a)/b/x; endfunction;<br />

function f2=tok(x), f2=a*((a*r+E)*exp(b*x*(a*r+E))/(E+a*r*exp(b*x*(a*r+E)))-1.0 );<br />

endfunction;<br />

iL_0=0.0001; //начальное значение тока в индуктивности<br />

L_0=LL(iL_0); //начальная индуктивность для шага по времени<br />

for m=1:M+1 // внешний цикл по времени<br />

Lj_1=L_0; //начальная индуктивность для итераций<br />

for n=1:N, //внутренний итерационный цикл<br />

//Расчет схемы<br />

if m>m_trap then zL=2*Lj_1/dt; eL=iL_0*2*L_0/dt+uL_0;<br />

else zL=Lj_1/dt; eL=iL_0*L_0/dt; end;<br />

iL=(E+eL)/(zL+r);<br />

if iL==0. then iL=0.0000001; end; //предотвращение деления на ноль<br />

Lj=LL(iL); //новая индуктивность внутри итерации<br />

if Lj==0. then Lj=0.0000001; end; //предотвращение деления на ноль<br />

if abs((Lj-Lj_1)/Lj)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!