файл - Exponenta.ru

advertisement
Ивановский Государственный Энергетический Университет
Кафедра ТОЭЭ
ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ ПЛОСКИХ
ЭЛЕКТРОМАГНИТНЫХ ВОЛН В ФЕРРОМАГНЕТИКЕ
Выполнил: студент группы II-35
Горячев Максим Николаевич
Научный руководитель: Кадников Сергей Николаевич
г. Иваново. 2005 г
ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ ПЛОСКИХ
ЭЛЕКТРОМАГНИТНЫХ ВОЛН В ФЕРРОМАГНЕТИКЕ
При расчетах электромагнитного поля в нелинейной ферромагнитной среде до сих пор применяются
различные эмпирические методики, основанные на приближенных формулах и натурном эксперименте. В
частности, ввиду своей простоты популярностью пользуется методика, предложенная Л.Р.Нейманом [1]. Она
основана на замене сложных временных зависимостей индукции и напряженности магнитного поля первыми
гармониками и введении вместо нелинейной зависимости магнитной проницаемости от H функции от
пространственной координаты. Методика Л.Р. Неймана используется, например, при расчете процессов
индукционного нагрева [2], при расчете потерь на вихревые токи в трансформаторной стали и различных других
областях. Однако вопрос о точности такой методики остается открытым, поскольку натурный эксперимент может
дать оценку только интегральных параметров. Между тем при проектировании, например, установок для
индукционного нагрева и, в особенности, индукторов для индукционной закалки необходимо достоверно знать
распределение магнитного поля внутри стальных деталей с учетом нелинейности кривой намагниченности и
вихревых токов. Эту проблему можно успешно решать только с применением численных методов
математического моделирования. Для электродинамических нелинейных задач единственным продуктивным
подходом является применение метода сеток или конечных элементов. Такой подход применительно к процессам
индукционного нагрева рассматривается в [2]. Методика, предложенная в этой работе, предусматривает кусочнопостоянную аппроксимацию проницаемости ферромагнитной среды, что может привести к значительным
погрешностям, в особенности при глубоком насыщении ферромагнитной стали и резкой неоднородности
распределения поля.
Поэтому представляется актуальной разработка методов прямого численного моделирования
электромагнитного поля в нелинейной ферромагнитной среде. Это позволит детально исследовать характер
электромагнитных явлений, происходящих в нелинейной среде и создать базу для оценки точности различных
приближенных методик.
Рассмотрим характерную одномерную задачу, когда на поверхности плоской стальной стенки, толщина
которой значительно больше глубины проникновения, задано переменное магнитное поле с напряженностью
H 0  H 0m  sin(  t )
Частота в проводимых вычислительных экспериментах изменялась от 1000 Гц до 8000 Гц, а амплитуда
напряженности H0m должна варьироваться от 1000А/м до 70000 А/м.
В линейном варианте (μ=const) действующее значение напряженности электрического и магнитного полей
выражается формулами, то есть они описывается точными формулами:
H y  H 0  ek  z
(1)
Ex  zb  H0  ek  z
(2)
где z – расстояние от поверхности стенки, b – глубина проникновения:
zb 
1
  0  
, k
b

Для нелинейной задачи используется то же граничное условие. Магнитная характеристика нелинейного
ферромагнетика (конструкционной стали) задавалась в форме:
By  k1  arctg(k2  H y )
где k1, k2 – постоянные коэффициенты: k1=1,28 Тл, k2=9,8·10-4 (А/м)-1. Такая зависимость позволяет
аппроксимировать кривые намагничивания для различных сортов сталей, особенно при сильных полях. С
использованием данной зависимости можно получить следующее нелинейное уравнение в частных производных
на основе уравнений Максвелла:
H y
t

1  k 22 H y2  2 H y
  k1  k2 z 2
(3)
Данное уравнение решалось методом сеток. Испытывались различные способы аппроксимации и методы
решения полученных нелинейных уравнений. В начале была рассмотрена явная схема на пятиточечном шаблоне,
как наиболее простая:
H yin 1  H yin
t
a
H yn(i 1)  2 H yin  H yn(i 1)
z 2
(4)
где
a
1  (k 2 H yin ) 2
  k1  k2
Данная схема имеет первый порядок точности по времени (относительно Δt) и второй относительно
пространственной координаты. Численные эксперименты показали, что данная схема предъявляет жесткие
требования к величине шага по времени, который должен подчиняться условию:
t 
1 z 2
2 a
Поскольку коэффициент a пропорционален квадрату напряженности поля, то с ее увеличением шаг Δt
должен быстро уменьшаться. При этом число шагов по времени на периоде колебания также быстро растет и при
H0m>104 А/м может достигать сотен тысяч. Это приводит к неоправданно высоким затратам машинного времени и
заставляет отказаться от явных схем.
Далее была проверена неявная схема первого порядка точности по времени вида:
H yin 1  H yin
t
a
H yn(i11)  2 H yin 1  H yn(i11)
z 2
(5)
Данная схема имеет первый порядок точности по времени и второй по пространству. В отличие от схемы (4)
она абсолютно устойчива и позволяет существенно увеличить шаг по времени. Однако расчеты показали, что при
больших значениях H0 (глубоком насыщении) точность аппроксимации по времени в данной схеме оказывается
недостаточной. На зависимостях Hy(t) появляются осцилляции, характерные для вычислений при недостаточной
точности аппроксимации на устойчивой разностной схеме. Шаг по времени приходиться уменьшать, причем
довольно значительно, и основное преимущество неявной схемы теряется. Если учесть к тому же, что в неявной
схеме на каждом временном шаге необходимо решать систему нелинейных уравнений (которое сопровождается
обращением матрицы), можно сделать вывод, что такой подход так же несостоятелен.
Анализ показал, что основной причиной возникших проблем является высокая степень жесткости (или
плохая обусловленность) системы обыкновенных дифференциальных уравнений, к которой может быть сведено
решение уравнения (3). Она получается при сохранении непрерывной производной по времени и дискретизации
дифференциального оператора по z:
dH yi
dt
a
H y (i 1)  2H yi  H y (i 1)
z 2
, (i  2,..., N  1)
(6)
где N – полное число шагов по z. Система N-2 дифференциальных уравнений (6) заменяет (аппроксимирует)
исходное уравнение (3). Жесткость этой системы можно оценить, определяя якобиан правой части и вычисляя для
матрицы якобиана при фиксированном распределении Hyi собственные числа. Следует отметить, что применение
полунеявных методов типа Розенброка для решения уравнений в частных производных ранее не рассматривалось,
поскольку сильная нелинейность для такого рода уравнений является, вообще говоря, нехарактерной. В тех
случаях, когда ее приходилось учитывать, обычно применялись грубые методы кусочно-постоянной
аппроксимации, не обеспечивающие адекватного моделирования. Спектральная норма матрицы якобиана может
служить оценкой жесткости ν системы (6). Вычисления показали, что на линейном участке при относительно
малых Hy ν≈2000, в режиме насыщения ν≈107, то есть жесткость системы весьма высока. Для решения подобного
рода систем разработаны специальные методы. В данном случае наилучшие результаты показал полунеявный
метод Розенброка. Он был реализован в следующей форме:
k1  t  ( E  J ( X n )  t  a1)1  F ( X n )
k2  t  ( E  J ( X n  k1c1)  t  a2 )1  F ( X n  k1b1)
(7)
X n 1  X n  k1 1  k2 2
где X n - вектор неизвестных Hyi на n-ом временном слое, F ( X n ) – правая часть системы (6), k1 , k 2 –
вспомогательные вектора, a1 , a2 , c1, b1, γ1, γ2 – постоянные числа, J ( X n ) – якобиан правой части (6). Данный
метод имеет второй порядок точности по времени. Подобная схема гораздо более устойчива, чем для простые
явные методы. Вычислительные эксперименты показали, что вплоть до H0=105 А/м число шагов по периоду не
превосходит 800, что обеспечивает высокую экономию вычислительных ресурсов.
Для реализации приведенных численных алгоритмов использовалась система MATLAB. Данный выбор среды
совершенно не случаен, так как необходимые вычисления связаны с большим числом разного рода матриц и
векторов. Такая ситуация характерна для научного программирования, основным инструментом которого и
становится в последнее время MATLAB, интерактивная среда матриц и массивов высокого уровня. Как уже было
сказано, решение осуществляется относительно (N-2) уравнений, поэтому из вектора решения системы
исключатся первый и последний элементы, так как их значения определяются только из граничных условий.
Итак, вычисления значения значений H на n-ом временном слое (n-ом шаге цикла) производились по следующему
алгоритму:
x1=Hm*sin(w*del_t*n+alpha);
%H при z=0
x2=0;
%H при z=z0 (правая граница)
XX=Ht(2:(N-1),n-1);
%остальные значения H с прошлого временного
%слоя (начальные условия для решения системы (6))
FF1=f1(XX,x1,x2,N,del_z,as,k2);
%вектор F для вычисления k1
J1=Jacobian1(XX,x1,x2,as,del_z,N,k2);
%якобиан J для вычисления k1
K1=Rozenbrok(J1,FF1,del_t,N,1);
%вектор k1
FF2=f1(XX+K1*b1,x1,x2,N,del_z,as,k2);
%вектор F для вычисления k2
J1=Jacobian1(XX+K1*c1,x1,x2,as,del_z,N,k2); %якобиан J для вычисления k2
K2=Rozenbrok(J1,FF2,del_t,N,2);
%вектор k1
Ht(2:(N-1),n)=Ht(2:(N-1),n-1)+K1.*g1+K2.*g2; %получаем H на n-ом слое
Ht(N,n)=x1; Ht(1,n)=x2;
Bt(:,n)=k1.*atan(k2.*Ht(:,n));
%временная зависимость для B
%сумма квадратов значений H и B для последнего периода
if (n>n_last)
%n_last – начало последнего периода
Hd=Ht(:,n).^2+Hd;
Bd=Bt(:,n).^2+Bd;
end
Функция вычисления F ( X n ) :
function Y1=f1(X,x0,xe,N,del_z,as,k2)
%Y1 – требуемый результат
%Вход: X=XX, x0=x1, xe=x2;
%del_z, N – длина и число шагов по пространству
%as=a – постоянная из формулы (6)
%k2 – параметр аппроксимации кривой намагничивания
Y1(1,1)=(1+((k2*X(1))^2))*as*(X(2)-2*X(1)+x0)/(del_z^2);
for ii=2:1:(N-3)
Y1(ii,1)=(1+((k2*X(ii))^2))*as*(X(ii+1)-2*X(ii)+X(ii-1))/(del_z^2);
end
Y1(N-2,1)=(1+((k2*X(N-2)^2))*as*(xe-2*X(N-2)+X(N-3))/(del_z^2);
End
Функция вычисления J ( X n ) :
function JJ1=Jacobian1(X,x0,xe,as,del_z,N,k2)
%JJ1 – вычисляемый якобиан
%Вход: все входные данные аналогичны предыдущей функции
for ii=1:1:(N-2)
if (ii>1)
JJ1(ii,ii-1)=as*(1+((k2*X(ii))^2))/(del_z^2);
xl= X(ii-1);
else
xl=x0;
end
if (ii<(N-2))
JJ1(ii,ii+1)=as*(1+((k2*X(ii))^2))/(del_z^2);
xr= X(ii+1);
else
xr=x4;
end
JJ1(ii,ii)=2*((xl-2*X(ii)+xr)*k2*k2*X(ii)-(1+((k2*X(ii))^2))*as/(del_z^2);
end
end
Функция Rozenbrok вычисляет вектора k1 и k2:
function K=Rozenbrok(Jac,F,del_t,N,step)
%Выход: вектор k1 или k2
%Вход: step=1 => вычисляем k1 или step=2 => вычисляем k2
%Jac, F – матрица Якоби и вектор F для данного временного слоя
EE=sparse(eye(N-2));
%единичная матрица
if (step==1)
a=1.40824829;
else
a=0.59175171;
end
K=del_t*((EE-Jac.*(del_t*a))\F);
End
Полный листинг программы приведен в Приложении. При написании подобного алгоритма на “скалярных”
языкаках программирования, например C++, возникает ряд сложностей, связанных с трудоемкостью обработки
больших массивов данных.
Рис. 1. Зависимость B(t) на поверхности стали (z=0,
H0m=60000 A/м).
Результаты расчетов магнитного поля представлены на рисунках 1-5. Точность представленных результатов
составляет не менее 1 %. Она была получена путем сравнения результатов при различных уровнях дискретизации
по времени и пространству.
На рис. 1, 2, 3, 4 представлены временные зависимости Hy и By при различных z. Данные кривые показывают,
что время переходного процесса почти не зависит от расстояния от поверхности и амплитуды напряженности на
поверхности, то есть от степени искажения кривых и не превышает одного периода. При этом степень искажения
кривых падает с ростом расстояния от поверхности, что вызывается уменьшением амплитуды напряженности.
Рис. 2. Зависимость H(t) при z=b/2, H0m=60000 A/м.
На рис. 5 и 6 представлены кривые зависимости действующих значений H и B соответственно от координаты
z, отсчитываемой от поверхности металла. На тех же графиках приведены зависимости действующих значений B и
H от z для линейного варианта, построенные по формулам (1), (2). В качестве постоянного μ выбиралось значение
проницаемости на линейном участке зависимости B(H), равное k1·k2/μ0. Сравнение показывает, что отклонение
кривых H(z) для нелинейного варианта зависит от амплитуды напряженности на поверхности от кривых при
μ=const и при H0m=71000 А/м может достигать 45 %. В то же время отклонение кривой B(z) весьма значительно
поскольку при данном значеии H0m сталь насыщается. В действительности значения, полученные в линейном
варианте для B(z), не могут возникать на практике.
Рис. 3. Зависимость H(t) при z=1,5∙b, H0m=60000 A/м.
Рис. 4. Зависимость B(t) при z=1,5∙b, H0m=60000 A/м.
Рис. 5. Нормированные зависимости H(z) в линейном (кривая 1) и нелинейных вариантах при
H0m=7000 А/м (2), H0m=35000 А/м (3), H0m=71000 А/м (4).
При этом форма кривых в ферромагнетике заметно отличается от экспоненциальной зависимости. На
начальном участке она близка к линейной, что качественном смысле согласуется с известными результатами [1].
Рис. 6. Зависимости B(z) в линейном (кривая 1) и нелинейном (2) вариантах.
При рассмотрении нормированных кривых действующих значений напряженностей магнитного поля (рис. 7
и 8), можно сделать вывод, что в рассмотренном интервале частот (от 1 до 8 КГц) характер зависимостей не
изменяется. С ростом частоты меняется лишь глубина проникновения электромагнитной волны в глубь стали.
В заключение можно отметить, что, несмотря на относительную внешнюю простоту рассмотренной задачи,
полученные результаты имеют достаточно универсальный характер, поскольку электромагнитное поле в стали у
ее поверхности всегда близко одномерному.
Рис. 7. Нормированные зависимости H(z) в нелинейном варианте при H0m=71000 А/м и частотах
f=2000 Гц (кривая 1), f=5000 Гц (2), f=8000 Гц (3).
Рис. 8. Нормированные зависимости H(z) в линейном варианте при H0m=71000 А/м и частотах
f=2000 Гц (кривая 1), f=5000 Гц (2), f=8000 Гц (3).
Литература
1. Нейман Л.Р. Поверхностный эффект в ферромагнитных телах. – Л.; Госэнергоиздат, 1949. -190 с.
2. Слухоцкий А.Е., Рыскин С.Е. Индукторы для индукционного нагрева. – Л.; Энергия, 1974. – 264 с.
3. Немков В.С., Полеводов Б.С. Математическое моделирование на ЭВМ устройств высокочастотного нагрева. – Л.: Машиностроение,
1980. – 210 с.
4. Современные численные методы решения обыкновенных дифференциальных уравнений. / Ред. Дж. Холл, Дж. Уатт. – М.: Мир, 1979.
– 312 с.
5. Джон Г. Мэтьюз, Куртис Д. Финк Численные методы. Использование MATLAB, 3-е издание.: Пер. с англ. – М.: Издательский дом
“Вильямс”, 2001. – 720 с.: ил. – Парал. тит. англ.
Приложение. Полный алгоритм решения уравнения электромагнтного поля (6) с использованием полунеявного
метода Розенброка в системе MATLAB:
function [Hd, Ht, Bd, Bt]=field(Hm)
%Equation of Electromagnetic Field Solving
%(by Goryachev Max & Kadnicov S.N.) Ivanovo, 2005
%Output: Hd и Ht – действующая и временная зависимости напряженности магнитного
%поля соответственно; аналогично Bd и Bt для индукции магнитного поля
%Input: Hm – амплитуда синусоиды на входе
% constants (The Rozenbrok method)
b1=0.17378667;
c1=b1;
g1=-0.41315432;
g2=1.41315432;
% some more constants
f=8000;
T=1/f;
%frequency and period
w=2*pi*f;
%angular frequency
t0=5.0*T;
%total time
M=900*5;
%number of time steps (can be more than 900*5)
n_last=(5-1)*M/5;
%last period
del_t=t0/(M-1);
mu=1000; mu0=4.0*pi*(10^(-7));
% permeability of the material
alpha=0;
gs=0.5*(10^(7));
%conductivity
as=1/(mu*mu0*gs);
%constant a (see formula (6))
k1=1.28208647108156;k2=(mu*mu0)/k1;%parameters of approximation
bs=(2/(w*gs*mu0*mu))^(0.5);
z0=10*bs;
%right boundary
N=50;
%number of space steps
del_z=z0/(N-1);
% main output matrices
Hd=zeros(N,1);Ht=zeros(N,M);
Bd=zeros(N,1);Bt=zeros(N,M);
% main cycle
for n=2:1:M
x1=Hm*sin(w*del_t*n+alpha);
x2=0;
XX=Ht(2:(N-1),n-1);
FF1=f1(XX,x1,x2,N,del_z,as,k2);
J1=Jacobian1(XX,x1,x2,as,del_z,N,k2);
K1=Rozenbrok(J1,FF1,del_t,N,1);
FF2=f1(XX+K1*b1,x1,x2,N,del_z,as,k2);
J1=Jacobian1(XX+K1*c1,x1,x2,as,del_z,N,k2);
K2=Rozenbrok(J1,FF2,del_t,N,2);
% inner elements
Ht(2:(N-1),n)=Ht(2:(N-1),n-1)+K1.*g1+K2.*g2;
% boundary conditions
Ht(N,n)=x2; Ht(1,n)=x1;
%instantaneous values (B)
Bt(:,n)=k1.*atan(k2.*Ht(:,n));
% active values
if (n>n_last)
Hd=Ht(:,n).^2+Hd;
Bd=Bt(:,n).^2+Bd;
end
w=100*n/M
end
% Active values
Hd=(Hd.*(del_t*f)).^(0.5);
Bd=(Bd.*(del_t*f)).^(0.5);
% lets greet the world
% and quit program
end
;)
%Jacoby’s matrix++++++++++++++++++++++++++++++++
function JJ1=Jacobian1(X,x0,xe,as,del_z,N,k2)
for ii=1:1:(N-2)
if (ii>1)
JJ1(ii,ii-1)=as*(1+k2*k2*X(ii)*X(ii))/(del_z^2);
xl= X(ii-1);
else
xl=x0;
end
if (ii<(N-2))
JJ1(ii,ii+1)=as*(1+k2*k2*X(ii)*X(ii))/(del_z^2);
xr= X(ii+1);
else
xr=xe;
end
JJ1(ii,ii)=2*((xl-2*X(ii)+xr)*k2*k2*X(ii)-(1+k2*k2*X(ii)*X(ii)))*as/(del_z^2);
end
end
%function F(X)++++++++++++++++++++++++++++++++++
function Y1=f1(X,x0,xe,N,del_z,as,k2)
Y1(1,1)=(1+((k2*X(1))^2))*as*(X(2)-2*X(1)+x0)/(del_z^2);
for ii=2:1:(N-3)
Y1(ii,1)=(1+((k2*X(ii))^2))*as*(X(ii+1)-2*X(ii)+X(ii-1))/(del_z^2);
end
Y1(N-2,1)=(1+((k2*X(N-2))^2))*as*(xe-2*X(N-2)+X(N-3))/(del_z^2);
end
%vectors k1 and k2++++++++++++++++++++++++++++++
function K=Rozenbrok(Jac,F,del_t,N,step)
EE=sparse(eye(N-2));
% unitary matrix
if (step==1)
a=1.40824829;
else
a=0.59175171;
end
K=del_t*((EE-Jac.*(del_t*a))\F);
end
Download