Skip to content

Commit 435c80f

Browse files
committed
AdvancedPsfb + AdvancedPshb: PDR overrides (Issue M1)
Each Advanced* class chains to the parent's process_design_requirements() then overrides turns ratios and magnetizing inductance from desired* fields. Completes the Issue M1 batch (11/11 Advanced* classes).
1 parent e28d5a7 commit 435c80f

4 files changed

Lines changed: 48 additions & 22 deletions

File tree

src/converter_models/PhaseShiftedFullBridge.cpp

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,17 +1157,6 @@ std::vector<std::variant<Inputs, CAS::Inputs>> Psfb::get_extra_components_inputs
11571157
Inputs AdvancedPsfb::process() {
11581158
auto designRequirements = process_design_requirements();
11591159

1160-
designRequirements.get_mutable_turns_ratios().clear();
1161-
for (auto n : desiredTurnsRatios) {
1162-
DimensionWithTolerance nTol;
1163-
nTol.set_nominal(n);
1164-
designRequirements.get_mutable_turns_ratios().push_back(nTol);
1165-
}
1166-
1167-
DimensionWithTolerance LmTol;
1168-
LmTol.set_minimum(desiredMagnetizingInductance);
1169-
designRequirements.set_magnetizing_inductance(LmTol);
1170-
11711160
if (desiredSeriesInductance.has_value())
11721161
set_computed_series_inductance(desiredSeriesInductance.value());
11731162
if (desiredOutputInductance.has_value())
@@ -1181,4 +1170,23 @@ Inputs AdvancedPsfb::process() {
11811170
return inputs;
11821171
}
11831172

1173+
DesignRequirements AdvancedPsfb::process_design_requirements() {
1174+
// Issue M1: chain to parent PDR then override turns ratios and
1175+
// magnetizing inductance with user-provided desired* values.
1176+
auto designRequirements = Psfb::process_design_requirements();
1177+
1178+
designRequirements.get_mutable_turns_ratios().clear();
1179+
for (auto n : desiredTurnsRatios) {
1180+
DimensionWithTolerance nTol;
1181+
nTol.set_nominal(n);
1182+
designRequirements.get_mutable_turns_ratios().push_back(nTol);
1183+
}
1184+
1185+
DimensionWithTolerance LmTol;
1186+
LmTol.set_minimum(desiredMagnetizingInductance);
1187+
designRequirements.set_magnetizing_inductance(LmTol);
1188+
1189+
return designRequirements;
1190+
}
1191+
11841192
} // namespace OpenMagnetics

src/converter_models/PhaseShiftedFullBridge.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,11 @@ class AdvancedPsfb : public Psfb {
230230

231231
Inputs process();
232232

233+
// Issue M1: chain to Psfb::process_design_requirements() then override
234+
// turns ratios and magnetizing inductance with desired* values, so
235+
// callers building DR directly see the user-provided values.
236+
DesignRequirements process_design_requirements() override;
237+
233238
const double& get_desired_magnetizing_inductance() const { return desiredMagnetizingInductance; }
234239
void set_desired_magnetizing_inductance(const double& value) { desiredMagnetizingInductance = value; }
235240
const std::vector<double>& get_desired_turns_ratios() const { return desiredTurnsRatios; }

src/converter_models/PhaseShiftedHalfBridge.cpp

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,17 +1015,6 @@ std::vector<ConverterWaveforms> Pshb::simulate_and_extract_topology_waveforms(
10151015
Inputs AdvancedPshb::process() {
10161016
auto designRequirements = process_design_requirements();
10171017

1018-
designRequirements.get_mutable_turns_ratios().clear();
1019-
for (auto n : desiredTurnsRatios) {
1020-
DimensionWithTolerance nTol;
1021-
nTol.set_nominal(n);
1022-
designRequirements.get_mutable_turns_ratios().push_back(nTol);
1023-
}
1024-
1025-
DimensionWithTolerance LmTol;
1026-
LmTol.set_minimum(desiredMagnetizingInductance);
1027-
designRequirements.set_magnetizing_inductance(LmTol);
1028-
10291018
if (desiredSeriesInductance.has_value())
10301019
set_computed_series_inductance(desiredSeriesInductance.value());
10311020
if (desiredOutputInductance.has_value())
@@ -1039,6 +1028,25 @@ Inputs AdvancedPshb::process() {
10391028
return inputs;
10401029
}
10411030

1031+
DesignRequirements AdvancedPshb::process_design_requirements() {
1032+
// Issue M1: chain to parent PDR then override turns ratios and
1033+
// magnetizing inductance with user-provided desired* values.
1034+
auto designRequirements = Pshb::process_design_requirements();
1035+
1036+
designRequirements.get_mutable_turns_ratios().clear();
1037+
for (auto n : desiredTurnsRatios) {
1038+
DimensionWithTolerance nTol;
1039+
nTol.set_nominal(n);
1040+
designRequirements.get_mutable_turns_ratios().push_back(nTol);
1041+
}
1042+
1043+
DimensionWithTolerance LmTol;
1044+
LmTol.set_minimum(desiredMagnetizingInductance);
1045+
designRequirements.set_magnetizing_inductance(LmTol);
1046+
1047+
return designRequirements;
1048+
}
1049+
10421050

10431051
// =========================================================================
10441052
// Extra components inputs (output inductor Lo and series/ZVS inductor Lr)

src/converter_models/PhaseShiftedHalfBridge.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,11 @@ class AdvancedPshb : public Pshb {
306306

307307
Inputs process();
308308

309+
// Issue M1: chain to Pshb::process_design_requirements() then override
310+
// turns ratios and magnetizing inductance with desired* values, so
311+
// callers building DR directly see the user-provided values.
312+
DesignRequirements process_design_requirements() override;
313+
309314
const double& get_desired_magnetizing_inductance() const { return desiredMagnetizingInductance; }
310315
void set_desired_magnetizing_inductance(const double& value) { desiredMagnetizingInductance = value; }
311316
const std::vector<double>& get_desired_turns_ratios() const { return desiredTurnsRatios; }

0 commit comments

Comments
 (0)