Skip to content

Commit fbf27d1

Browse files
committed
cleaning
1 parent e1b8a91 commit fbf27d1

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

edg/abstract_parts/AbstractPowerConverters.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,6 +362,7 @@ def __init__(self, input_voltage: RangeLike, output_voltage: RangeLike, frequenc
362362

363363
self.actual_dutycycle = self.Parameter(RangeExpr())
364364
self.actual_inductor_current_ripple = self.Parameter(RangeExpr())
365+
self.actual_inductor_current_peak = self.Parameter(RangeExpr())
365366

366367
def contents(self):
367368
super().contents()
@@ -392,9 +393,11 @@ def generate(self) -> None:
392393
self._buck_inductor_filter, values.inductor_avg_current.upper, values.ripple_scale, values.min_ripple)
393394
))
394395
self.assign(self.actual_inductor_current_ripple, values.ripple_scale / self.inductor.actual_inductance)
396+
self.assign(self.actual_inductor_current_peak,
397+
values.inductor_avg_current + self.actual_inductor_current_ripple / 2)
395398

396399
self.connect(self.switch, self.inductor.a.adapt_to(VoltageSink(
397-
current_draw=values.inductor_avg_current
400+
current_draw=self.output_current * values.effective_dutycycle
398401
)))
399402
self.connect(self.pwr_out, self.inductor.b.adapt_to(VoltageSource(
400403
voltage_out=self.output_voltage,
@@ -553,6 +556,7 @@ def __init__(self, input_voltage: RangeLike, output_voltage: RangeLike, frequenc
553556

554557
self.actual_dutycycle = self.Parameter(RangeExpr())
555558
self.actual_inductor_current_ripple = self.Parameter(RangeExpr())
559+
self.actual_inductor_current_peak = self.Parameter(RangeExpr())
556560

557561
def contents(self):
558562
super().contents()
@@ -584,6 +588,8 @@ def generate(self) -> None:
584588
values.inductor_avg_current.upper, values.ripple_scale, values.min_ripple)
585589
))
586590
self.assign(self.actual_inductor_current_ripple, values.ripple_scale / self.inductor.actual_inductance)
591+
self.assign(self.actual_inductor_current_peak,
592+
values.inductor_avg_current + self.actual_inductor_current_ripple / 2)
587593

588594
self.connect(self.pwr_in, self.inductor.a.adapt_to(VoltageSink(
589595
current_draw=values.inductor_avg_current

edg/parts/BuckBoostConverter_Custom.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,12 @@ def contents(self):
7171
self.connect(self.buck_sw.pwr_logic, self.pwr_logic)
7272
self.connect(self.buck_sw.with_mixin(HalfBridgePwm()).pwm_ctl, self.buck_pwm)
7373
self.connect(self.buck_sw.with_mixin(Resettable()).reset, self.reset)
74-
(self.pwr_in_forced, ), _ = self.chain( # use average draw instead of peak for external draw specs
74+
(self.pwr_in_force, ), _ = self.chain( # use average draw for power input draw
7575
self.pwr_in,
76-
self.Block(ForcedVoltageCurrentDraw(self.pwr_out.link().current_drawn *
77-
self.output_voltage / self.pwr_in.link().voltage /
78-
self.power_path.efficiency)),
76+
self.Block(ForcedVoltageCurrentDraw(self.power_path.switch_in.current_draw)),
7977
self.buck_sw.pwr
8078
)
81-
(self._sw_in_force, ), _ = self.chain( # current draw used to size FETs, size for peak current
79+
(self.sw_in_force, ), _ = self.chain( # current draw used to size FETs, size for peak current
8280
self.buck_sw.out,
8381
self.Block(ForcedVoltageCurrentDraw(self.power_path.actual_inductor_current_peak)),
8482
self.power_path.switch_in
@@ -89,14 +87,14 @@ def contents(self):
8987
self.connect(self.boost_sw.pwr_logic, self.pwr_logic)
9088
self.connect(self.boost_sw.with_mixin(HalfBridgePwm()).pwm_ctl, self.boost_pwm)
9189
self.connect(self.boost_sw.with_mixin(Resettable()).reset, self.reset)
92-
(self.boost_pwr_conn, ), _ = self.chain(
90+
(self.pwr_out_force, ), _ = self.chain( # use average output limits for power out limits
9391
self.boost_sw.pwr,
9492
self.Block(VoltageSinkConnector(self.output_voltage,
9593
Range.all(), # unused, port actually in reverse
9694
self.power_path.switch_out.current_limits)),
9795
self.pwr_out
9896
)
99-
(self._sw_out_force, ), _ = self.chain( # current draw used to size FETs, size for peak current
97+
(self.sw_out_force, ), _ = self.chain( # current draw used to size FETs, size for peak current
10098
self.power_path.switch_out,
10199
self.Block(VoltageSourceConnector(Range.exact(0),
102100
self.power_path.actual_inductor_current_peak)),

edg/parts/BuckConverter_Custom.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,15 @@ def contents(self):
3838

3939
self.sw = self.Block(FetHalfBridge(frequency=self.frequency, fet_rds=self.rds_on))
4040
self.connect(self.sw.gnd, self.gnd)
41-
(self.sw_in_force, ), _ = self.chain( # use average current draw for boundary ports
41+
(self.pwr_in_force, ), _ = self.chain( # use average current draw for boundary ports
4242
self.pwr_in,
4343
self.Block(ForcedVoltageCurrentDraw(self.power_path.switch.link().current_drawn)),
4444
self.sw.pwr)
4545
self.connect(self.sw.pwr_logic, self.pwr_logic)
4646
sw_ctl = self.sw.with_mixin(HalfBridgeIndependent())
4747
self.connect(sw_ctl.low_ctl, self.pwm_low)
4848
self.connect(sw_ctl.high_ctl, self.pwm_high)
49-
(self.sw_force, ), _ = self.chain(
49+
(self.sw_out_force, ), _ = self.chain(
5050
self.sw.out, # current draw used to size FETs, size for peak current
51-
self.Block(ForcedVoltageCurrentDraw(self.power_path.output_current
52-
+ self.power_path.actual_inductor_current_ripple / 2)),
51+
self.Block(ForcedVoltageCurrentDraw(self.power_path.actual_inductor_current_peak)),
5352
self.power_path.switch)

edg/parts/FanConnector.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ def __init__(self):
99
self.gnd = self.Port(Ground(), [Common])
1010
self.pwr = self.Port(VoltageSink(
1111
voltage_limits=12*Volt(tol=0.05),
12-
current_draw=(0, 2.2)*Amp, # section 2.1.2: 2.2A max for up to 2s during startup
12+
current_draw=(0, 2.2)*Amp, # section 2.1.2: 2.2A max up to 1s during startup, steady-state 1.5A
1313
), [Power])
1414
self.sense = self.Port(DigitalSource.low_from_supply(self.gnd)) # tolerant up to 12v
1515

0 commit comments

Comments
 (0)