matlab pdetool lezione 4 · matlab pdetool lezione 4 mutua induttanza con ferro e correnti indotte...
Post on 10-Jul-2020
5 Views
Preview:
TRANSCRIPT
Matlab Pdetool
Lezione 4Mutua induttanza con ferro
e Correnti Indotte
Ing. Flavio Calvano
Argomenti trattati
• Calcolo mutua in presenza di ferro;
Nucleo magnetico assialsimmetrico;
Nucleo magnetico 2D.
• Calcolo tensione indotta in presenza di piatto conduttore.
Nucleo magnetico assialsimmetrico
JA
A
AJ
zAAA
AAA
A
con
z
2
2222
2
2
2
ˆˆ2ˆ
2
0)(
AJ
A
JA
AAAA
J
Formulazione
Equazione risolvente
JPsizz
Psi
APsi
AA
AAAAAA
JAzz
AA
Azz
AA
)1
()1
(
)(1111
)(1
)(1
)(1
)(1
22
2
2
2
Geometria[pde_fig,ax]=pdeinit;
pdetool('appl_cb',1);
set(ax,'DataAspectRatio',[1 1 1]);
set(ax,'PlotBoxAspectRatio',[1 1 1]);
set(ax,'XLim',[-0.1 0.8]);
set(ax,'YLim',[-0.4 0.4]);
set(ax,'XTickMode','auto');
set(ax,'YTickMode','auto');
ymin=-10*10^-3;
ymax=10*10^-3;
xmin=0;
xmax=0.008;
xmax2=0.048;
xmax3=0.052;
dh=0.04;
dh2=0.1;
dr=0.002;
dr2=0.01;
l=0.001;
pderect([xmax2-dr/2 xmax2+dr/2 -dh/2 dh/2],'R1');
pderect([xmax3-dr/2 xmax3+dr/2 -dh/2 dh/2],'R2');
pderect([xmin xmax -dh2/2 dh2/2],'R3');
pderect([xmax xmax+dh2 dh2/2 dh2/2-xmax],'R4');
pderect([xmax xmax+dh2 -dh2/2 -dh2/2+xmax],'R5');
pderect([xmax+dh2-(xmax) xmax+dh2 -dh2/2+xmax -l],'R6');
pderect([xmax+dh2-(xmax) xmax+dh2 l dh2/2-xmax],'R7');
pderect([0 8*dh2 4*(-dh2) 4*dh2],'R8');
Esportazione geometria e mesh
set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','R1+R2+R3+R4+R5
+R6+R7+R8');
gd=get(findobj(get(pde_fig,'Children'),'flat','Tag','PDEMeshMenu'),'UserData');
dl=decsg(gd);
[p,e,t]=initmesh(dl,'Hmax',5e-1,'init','off');
[p,e,t]=refinemesh(dl,p,e,t,'regular');
box=find(t(4,:)==1);
ferro1=find(t(4,:)==2);
ferro2=find(t(4,:)==3);
ferro3=find(t(4,:)==4);
ferro4=find(t(4,:)==5);
ferro5=find(t(4,:)==8 );
ferro=[ferro1 ferro2 ferro3 ferro4 ferro5];
ric=find(t(4,:)==7);
trasm=find(t(4,:)==6);
pdeplot(p,e,t(:,ferro))
axis equal
Lavorando con gli indici
delle regioni è possibile
eliminare i cicli for sui
triangoli della mesh e
ridurre il costo
computazionale
Plot della mesh
relativo alla regione ferro
Calcolo MutuaNspire=1;
I1=1;
J=zeros(size(t,2),1);
mu0=4*pi*1e-7;
mur=1000;
mu(box)=mu0;
mu(ferro)=mur*mu0;
mu(trasm)=mu0;
mu(ric)=mu0;
J1=Nspire*I1/(dh*(dr));
J(trasm)=J1;
rc=pdeintrp(p,t,p(1,:)');%baricentro triangoli
zc=pdeintrp(p,t,p(2,:)');%baricentro triangoli
area=abs(pdetrg(p,t));%area di ogni triangolo
Psi = assempde(bl,p,e,t,1./(rc.*mu),'0',J','0');
figure
pdegplot(dl)
hold on
pdecont(p,t,Psi,20)
axis equal
%%%%%%%%%energia magnetica
Psi=pdeintrp(p,t,Psi);
ee=2*pi*(J1.*Psi(ric).*area(ric));
M=sum(ee)%correnti unitarie
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
S=pi*((xmax+dh2)^2)-pi*((xmax+dh2-(xmax))^2);
R1=(2*(2*l))/(mu0*S); %2l lunghezza traferro
Manalitica=1/(R1)
Maria=(4*pi*1e-7)*(pi*(xmax2)^2)/dh
22221
21
121
21
12
22
21dzdrJA
iidVJA
iiM
SV
Risultati
Mnumerica = 1.6557e-006
Manalitica = 1.6423e-006 formula traferro
mur=1000 In presenza di ferro
Mnumerica = 9.8943e-008
Maria=2.2740e-007
mur=1 In aria
-0.05 0 0.05 0.1 0.15
-0.1
-0.08
-0.06
-0.04
-0.02
0
0.02
0.04
0.06
0.08
-0.1 -0.05 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
-0.15
-0.1
-0.05
0
0.05
0.1
0.15
0.2
Nucleo magnetico 2D
Formulazione
zz
zz
con
JA
AAJJ
AAAA
2
2 0)(
XZ
Y
Geometria[pde_fig,ax]=pdeinit;
pdetool('appl_cb',1);
set(ax,'DataAspectRatio',[1 1 1]);
set(ax,'PlotBoxAspectRatio',[1 1 1]);
set(ax,'XLim',[-0.8 0.8]);
set(ax,'YLim',[-0.4 0.4]);
set(ax,'XTickMode','auto');
set(ax,'YTickMode','auto');
ymin=-10*10^-3;
ymax=10*10^-3;
xmin=0;
dh=0.02;
dh2=0.1;
dr=0.002;
dr2=0.01;
l=0.002;
xmax=0.008;
xmax2=dh2-0.002;
xmax3=xmax+dh2+0.002;
pderect([xmax2-dr/2 xmax2+dr/2 -dh/2 dh/2],'R1');
pderect([xmax3-dr/2 xmax3+dr/2 -dh/2 dh/2],'R2');
pderect([xmin xmax/2 -dh2/2 dh2/2],'R3');
pderect([xmax/2 xmax+dh2 dh2/2 dh2/2-xmax],'R4');
pderect([xmax/2 xmax+dh2 -dh2/2 -dh2/2+xmax],'R5');
pderect([dh2 xmax+dh2 -dh2/2+xmax+l dh2/2-xmax-l],'R6');
pderect([-xmax2+dr/2 -xmax2-dr/2 -dh/2 dh/2],'R7');
pderect([-xmax3+dr/2 -xmax3-dr/2 -dh/2 dh/2],'R8');
pderect([-xmin -xmax/2 -dh2/2 dh2/2],'R9');
pderect([-xmax/2 -xmax-dh2 dh2/2 dh2/2-xmax],'R10');
pderect([-xmax/2 -xmax-dh2 -dh2/2 -dh2/2+xmax],'R11');
pderect([-dh2 -xmax-dh2 -dh2/2+xmax+l dh2/2-xmax-l],'R12');
pderect([-8*dh2 8*dh2 4*(-dh2) 4*dh2],'R13');
Esportazione geometria e meshset(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','R
1+R2+R3+R4+R5+R6+R7+R8+R9+R10+R11+R12+R13');
gd=get(findobj(get(pde_fig,'Children'),'flat',...
'Tag','PDEMeshMenu'),'UserData');
dl=decsg(gd);
[p,e,t]=initmesh(dl,'Hmax',5e-1,'init','off');
[p,e,t]=refinemesh(dl,p,e,t,'regular');
box=find(t(4,:)==1);
ferro1=find(t(4,:)==2);
ferro2=find(t(4,:)==5);
ferro3=find(t(4,:)==4);
ferro4=find(t(4,:)==3);
ferro5=find(t(4,:)==6);
ferro6=find(t(4,:)==13);
ferro7=find(t(4,:)==16 );
ferro8=find(t(4,:)==11);
ferro9=find(t(4,:)==12 );
ferro=[ferro1 ferro2 ferro3 ferro4 ferro5 ferro6 ferro7 ferro8
ferro9];
ric1=find(t(4,:)==8);
ric2=find(t(4,:)==7);
trasm1=find(t(4,:)==9);
trasm2=find(t(4,:)==10);
ric=[ric1 ric2];
trasm=[trasm1 trasm2];
pdeplot(p,e,t(:,ferro))
Lavorando con gli indici delle
regioni è possibile eliminare i cicli
for sui triangoli della mesh e ridurre
il costo computazionale
Plot della mesh relativo alla
regione ferro
Condizioni al contorno% Boundary conditions:
pdetool('changemode',0)
pdesetbd(2,...
'dir',...
1,...
'1',...
'0')
pdesetbd(3,...
'dir',...
1,...
'1',...
'0')
pdesetbd(15,...
'dir',...
1,...
'1',...
'0')
pdesetbd(16,...
'dir',...
1,...
'1',...
'0')
% PDE coefficients:
h=findobj(get(pde_fig,'Children'),'flat','Tag','PDEBoundMenu');
bl=get(findobj(get(h,'Children'),'flat','Tag','PDEBoundMode'),'UserData');
Calcolo Mutua per unità di lunghezzaNspire1=1;
Nspire2=1;
I1=1;
I2=1;
J=zeros(size(t,2),1);
mu0=4*pi*1e-7;
mur=1000;
mu(box)=mu0;
mu(ferro)=mur*mu0;
mu(trasm)=mu0;
mu(ric)=mu0;
J1=Nspire*I1/(dh*(dr));
J(trasm)=J1;
area=abs(pdetrg(p,t));%area di ogni triangolo
A = assempde(bl,p,e,t,1./mu,'0',J','0');
figure
pdegplot(dl)
hold on
pdecont(p,t,A,10)
axis equal
%%%%%%%%%%energia magnetica
AT=pdeintrp(p,t,A);
ee=(J1.*AT(ric).*area(ric));
M=sum(ee)/(I1*I2)%correnti unitarie
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
lz=1;
S=xmax*lz;
R1=(4*(2*l))/(mu0*S); %riluttanza per unità di lunghezza
Manalitica=1/(R1)
Maria=(4*pi*1e-7)*(pi*(xmax2)^2)/dh
22
S
21
21
z1
V
21
21
12 dydxJAii
ldVJA
ii
1M
22
Risultati
Mnumerica = 6.0976e-007
Manalitica = 6.2832e-007 formula traferro
mur=1000
Formulazione nel caso di correnti indotte
EJ
B
JJH
BE
eddy
seddy
0
t
Sonda con corrente imposta Js
Piatto conduttore sede di correnti indotte Jeddy
Formulazione
gaugedicondizione00
0
A
JA
H
AE
AE
ABB
st
t
t
Il potenziale vettore A è univocamente determinato dalla gauge di
Coulomb
Equazione risolvente
s
tj
M
s
j
e
t
JAA
AA
AAA
JA
A
00
2
2
0
)(
1
Caso Assial-simmetrico
eeJs AAJ
J
1)
1()
1( 00
PsijPsi
zzPsi
APsi
Pdetool
Configurazione geometrica
Sonda trasmittente
Sonda ricevente
Piatto conduttore
GeometriaRmin_disk=[0]; Rmax_disk=[0.04];
Zmin_disk=[-0.0015/2]; Zmax_disk=[0.0015/2];
sigma_disk=1/(0.027e-6);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
liftoff=0.5e-3;
Rmin_transmitter=[0.005];
Rmax_transmitter=[0.005+1e-3];
Zmin_transmitter=[liftoff+0.0015/2];
Zmax_transmitter=[liftoff+4.5e-3+0.0015/2];
sigma_transmitter=0;
I_transmitter_pp=1;%corrente unitaria
I_transmitter=[I_transmitter_pp/(2*sqrt(2))]; % corrente rms
N_transmitter=[16];
areat=(Rmax_transmitter-Rmin_transmitter)*(Zmax_transmitter-Zmin_transmitter);
Jt=(I_transmitter*N_transmitter)/areat;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Rmin_receiver=[0.005]; Rmax_receiver=[0.005+1e-3];
Zmin_receiver=[-0.0015/2-liftoff-4.5e-3]; Zmax_receiver=[-0.0015/2-liftoff];
sigma_receiver=0;
N_receiver=[16];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Rmin_grid=[0]; Rmax_grid=[5e-2];
Zmin_grid=[-5e-2]; Zmax_grid=[5e-2];
sigma_grid=0;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Sonda
Creazione geometria e mesh
[pde_fig,ax]=pdeinit;
pdetool('appl_cb',1);
set(ax,'DataAspectRatio',[1 1 1]);
set(ax,'PlotBoxAspectRatio',[1 1 1]);
set(ax,'XLim',[Rmin_grid-0.5*(Rmax_grid-Rmin_grid)
Rmax_grid+0.5*(Rmax_grid-Rmin_grid)]);
set(ax,'YLim',[Zmin_grid-0.5*(Zmax_grid-Zmin_grid)
Zmax_grid+0.5*(Zmax_grid-Zmin_grid)]);
set(ax,'XTickMode','auto');
set(ax,'YTickMode','auto');
pderect([0 Rmax_grid Zmin_grid Zmax_grid],'R1');
pderect([Rmin_disk Rmax_disk Zmin_disk Zmax_disk],'R2')
pderect([Rmin_transmitter Rmax_transmitter Zmin_transmitter
Zmax_transmitter], 'R3')
pderect([Rmin_receiver Rmax_receiver Zmin_receiver Zmax_receiver], 'R4')
set(findobj(get(pde_fig,'Children'),'Tag','PDEEval'),'String','R1+R2+R3+R4');
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Mesh generation:
gd=get(findobj(get(pde_fig,'Children'),'flat','Tag','PDEMeshMenu'),'UserData');
dl=decsg(gd);
[p,e,t]=initmesh(dl,'Hmax',5e-1,'init','off');
[p,e,t]=refinemesh(dl,p,e,t,'regular');
[p,e,t]=refinemesh(dl,p,e,t,'regular');
pdeplot(p,e,t)
0 0.005 0.01 0.015 0.02 0.025 0.03 0.035 0.04 0.045 0.05-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05
Condizioni al contorno% Boundary conditions:
pdetool('changemode',0)
pdesetbd(9,...
'dir',...
1,...
'1',...
'0')
pdesetbd(8,...
'dir',...
1,...
'1',...
'0')
pdesetbd(7,...
'dir',...
1,...
'1',...
'0')
pdesetbd(6,...
'dir',...
1,...
'1',...
'0')
pdesetbd(2,...
'dir',...
1,...
'1',...
'0')
pdesetbd(1,...
'dir',...
1,...
'1',...
'0')
% PDE coefficients:
h=findobj(get(pde_fig,'Children'),'flat','Tag','PDEBoundMenu');
bl=get(findobj(get(h,'Children'),'flat','Tag','PDEBoundMode'),'User
Data');
end
Definizione parametri regioni
box=find(t(4,:)==1); %indici delle regioni
piatto=find(t(4,:)==2);
ric=find(t(4,:)==3);
trasm=find(t(4,:)==4);
Js=zeros(size(t,2),1);
Js(trasm)=Jt;
sigma(box)=0;
sigma(piatto)=sigma_disk;
sigma(trasm)=0;
sigma(ric)=0;
rc=pdeintrp(p,t,p(1,:)');%baricentro triangoli
area=abs(pdetrg(p,t));%area di ogni triangolo
mu0=4*pi*1e-7;
Definendo le regioni del
dominio totale è possibile
evitare l’utilizzo dei cicli for
sui triangoli della mesh
Calcolo tensione bobina riceventef=[0.5 1 2 5 10 20]*1e3; % freq
for kf=1:length(f)
aa=j*2*pi.*f(kf).*mu0.*sigma./rc;
ff=mu0.*Js;
Psi = assempde(bl,p,e,t,1./rc,aa,ff','0');
omega(kf)=2*pi*f(kf);
PsiT=pdeintrp(p,t,Psi);
ee=2*pi*(Jt.*PsiT(ric).*area(ric));
energiamutua=sum(ee);
Vreceiver(kf)=energiamutua*j*omega(kf);
figure
subplot(1,2,1)
pdegplot(dl)
hold on
pdecont(p,t,real(Psi)'*2*pi,10)
title('Real')
subplot(1,2,2)
pdegplot(dl)
hold on
pdecont(p,t,imag(Psi)'*2*pi,10)
title('Imag')
end
12121
22121
21
2
1
iMjV
dVJAii
M
V
Tensione indotta sulla
bobina ricevente (2)
Plot flusso campo magnetico
0 0.05 0.1-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05Real
0 0.05 0.1-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05Imag
0 0.05 0.1-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05Real
0 0.05 0.1-0.05
-0.04
-0.03
-0.02
-0.01
0
0.01
0.02
0.03
0.04
0.05Imag
Conducibilità piastra=0 Conducibilità piastra alluminio=37 MS/m
Inserendo il piatto conduttore il flusso ha anche una componente immaginaria e
sulla tensione indotta è introdotto uno sfasamento che dipende dalla frequenza
di eccitazione.
Flusso a diverse frequenzeSigma=58 MS/m conducibilità rame
1 KHz 10 KHz
100 KHz
All’aumentare della frequenza
diminuisce lo spessore di
penetrazione d e il campo viene
schermato quasi completamente
dalla piastra conduttrice
0
2
d
Calcolo conducibilità
Effettuando misure sperimentali è possibile risalire alla conducibilità dell’oggetto in esame
valutando la variazione della fase della tensione indotta a varie frequenze, inserendo nel
calcolo numerico una conducibilità di tentativo vicina a quella del tipo di materiale
considerato.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2
x 104
-150
-100
-50
0
50
f (Hz)
V p
hase (
deg)
Numerico sigma=37 MS/m
Numerico sigma=50 MS/m
Numerico sigma=20 MS/m
Sperimentale
figure,
plot(f,angle(Vreceiver)*180/pi,f,angle(Vreceiver2)
*180/pi,f,angle(Vreceiver3)*180/pi,f,exp,'or')
xlabel('f (Hz)')
ylabel('V phase (deg)')
legend('Numerico sigma=37 MS/m','Numerico
sigma=50 MS/m','Numerico sigma=20
MS/m','Sperimentale')
AXIS([0 22000 -180 80])
NB: le vreceiver vanno calcolate singolarmente al variare di sigma_disk
top related