?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
?????????????? ?????? ? ????????? ?????????? ??????? ?????
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)