-
Notifications
You must be signed in to change notification settings - Fork 27
/
get_design_data_vec.m
68 lines (61 loc) · 2.33 KB
/
get_design_data_vec.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
66
67
68
function data_vec = get_design_data_vec(geom, material, f)
% Function for getting the inductor data (struct of scalars).
%
% Parameters:
% geom (struct): inductor geometry information
% material (struct): inductor material information
% f (float): operating frequency
%
% Returns:
% data_vec (struct:) struct of scalars
%
% (c) 2019-2020, ETH Zurich, Power Electronic Systems Laboratory, T. Guillod
% get circuit data (inductance and load are unknown at this stage)
circuit = get_design_circuit(f, NaN, NaN);
% inductor physical parameters
% - T_winding_init: initial guess for the winding temperature
% - T_core_init: initial guess for the core temperature
% - I_test: test current for computing the magnetic circuit
other.T_winding_init = 80.0;
other.T_core_init = 80.0;
other.I_test = circuit.I_test;
% inductor scaling factor for the figures of merit
% - m_scale: scaling factor for the total mass
% - m_offset: offset for the total mass
% - V_scale: scaling factor for the box volume
% - V_offset: offset for the box volume
% - c_scale: scaling factor for the total cost
% - c_offset: offset for the total cost
% - P_scale: scaling factor for the total losses
% - P_offset: offset for the total losses
fom_data.m_scale = 1.0;
fom_data.m_offset = 0.0;
fom_data.V_scale = 1.0;
fom_data.V_offset = 0.0;
fom_data.c_scale = 1.0;
fom_data.c_offset = 0.0;
fom_data.P_scale = 1.0;
fom_data.P_offset = 0.0;
% bounds for the geometry figures of merit
% - c_tot: total cost
% - m_tot: total mass
% - V_box: box volume
fom_limit.c_tot = struct('min', 0.0, 'max', 20.0);
fom_limit.m_tot = struct('min', 0.0, 'max', 800e-3);
fom_limit.V_box = struct('min', 0.0, 'max', 200e-6);
% bounds for the circuit figures of merit
% - L: inductance
% - V_t_sat_sat: saturation voltage time product (complete hysteresis loop)
% - I_sat: maximum saturation current
% - I_rms: maximum RMS current
fom_limit.L = struct('min', circuit.L_min, 'max', Inf);
fom_limit.V_t_sat_sat = struct('min', circuit.V_t_sat_sat_min, 'max', Inf);
fom_limit.I_sat = struct('min', circuit.I_sat_min, 'max', Inf);
fom_limit.I_rms = struct('min', circuit.I_rms_min, 'max', Inf);
% assign the data
data_vec.other = other;
data_vec.material = material;
data_vec.geom = geom;
data_vec.fom_data = fom_data;
data_vec.fom_limit = fom_limit;
end