-
Notifications
You must be signed in to change notification settings - Fork 3
/
run_winding_circuit.m
65 lines (51 loc) · 1.6 KB
/
run_winding_circuit.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
function run_winding_circuit()
% Compute the equivalent circuit of a litz wire winding (inductance and resistance).
%
% In this example, a simple circular air winding realized with litz wire is considered
%
% This example is composed of two files:
% - run_winding_fem.m - extract the winding geometry, energy and field patterns from FEM
% - run_winding_circuit.m - extract the winding equivalent circuit (losses and inductance)
%
% The following properties are computed:
% - the inductance
% - the frequency-dependent winding resistance
%
% (c) 2016-2020, ETH Zurich, Power Electronic Systems Laboratory, T. Guillod
close('all')
addpath('utils')
%% param
% load the FEM data
winding = load('data/winding.mat');
% winding geometry
winding.d_litz = 71e-6; % stranding diameter
winding.N_litz = 500; % number of strands per turn
winding.N_turn = 10; % number of turns
% winding conductivity
winding.T_vec = [20 46 72 98 124 150]; % temperature vector
winding.sigma_vec = 1e7.*[5.800 5.262 4.816 4.439 4.117 3.839]; % conductivity vector
% operating condition
T = 80.0; % average winding temperature
f = logspace(log10(10e3), log10(100e6), 1000); % operating frequencies
%% run
% get the winding para
[L, R] = get_winding_litz(winding, T, f);
Z = R+1i.*2.*pi.*f.*L;
%% plot the results
figure()
subplot(1,3,1)
loglog(f, 1e3.*real(Z))
xlabel('f [Hz]')
ylabel('R [mOhm]')
title('Resistance')
subplot(1,3,2)
loglog(f, imag(Z))
xlabel('f [Hz]')
ylabel('X [Ohm]')
title('Reactance')
subplot(1,3,3)
semilogx(f, imag(Z)./real(Z))
xlabel('f [Hz]')
ylabel('Q [1]')
title('Quality Factor')
end