hermess.devices.inverter_inner
Inverter inner-control strategies (the cascaded voltage/current loops).
The inner controller is the converter’s fast actuator: it regulates the capacitor
voltage to the reference Vcd from the outer voltage loop and produces the
switching voltage Vsw that drives the filter. It is a single strategy axis,
swapped as a whole unit (cascaded PI + virtual impedance) rather than block-by-
block.
It owns the four PI integrator states (xi_d/xi_q voltage loop,
gamma_d/gamma_q current loop) and the controller / virtual-impedance gains.
It reads the filter capacitance/inductance (host.Cf / host.Lf) via the
host for the cross-coupling decoupling terms.
Attributes
Classes
Abstract base class for inverter inner-control strategies. |
|
Cascaded voltage + current PI control with virtual impedance. |
Module Contents
- class hermess.devices.inverter_inner.InnerControl[source]
Bases:
abc.ABCAbstract base class for inverter inner-control strategies.
fgcall()consumes the converter-frame internal quantities (from the host’s Park transforms), the converter frequencyomega_cand the voltage referenceVcd, writes its PI integrator state equations intodae.f, and returns the switching voltage(Vswd, Vswq)in the network frame (consumed by the filter strategy).- abstract fgcall(host, dae: hermess.system.Dae, internals, omega_c, delta_c)[source]
Run the inner control.
internalsis a dict of the converter-frame quantities {“Vfd”,”Vfq”,”itd”,”itq”,”ifd”,”ifq”}; the voltage command is read viahost.voltage_command(dae). Publishes the switching voltage onhost.Vswd/host.Vswq(read by the filter viahost.switching_voltage(dae)) and the current references onhost.ifd_ref/host.ifq_ref(viahost.current_ref(dae)); writes the integrator state equations intodae.f.- Parameters:
dae (hermess.system.Dae)
- requires() Set[str][source]
Plant capability tags this controller needs from the filter (checked at construction, warning on mismatch). Empty by default.
- Return type:
Set[str]
- abstract finit_sequential(host, dae: hermess.system.Dae, filt, omega_c) Dict[str, numpy.ndarray][source]
Steady-state init of the control loop.
filtis the filter strategy’s init dict (op-point + Vsw);omega_cis the synchronizing frequency from the angle source. Returns the integrator states plus the frame angledelta_cand the voltage commandVcd– handed by the host to the angle (the delta_c slot) and the voltage controller (which unpacks Vcd).- Parameters:
dae (hermess.system.Dae)
- Return type:
Dict[str, numpy.ndarray]
- class hermess.devices.inverter_inner.Cascaded[source]
Bases:
InnerControlCascaded voltage + current PI control with virtual impedance.
Voltage loop (xi): regulates the capacitor voltage to
Vcd(minus the virtual-impedance drop), producing the filter-current reference. Current loop (gamma): regulates the filter current, producing the switching voltage. With the cross-coupling decoupling and feed-forward terms.- fgcall(host, dae: hermess.system.Dae, internals, omega_c, delta_c)[source]
Run the inner control.
internalsis a dict of the converter-frame quantities {“Vfd”,”Vfq”,”itd”,”itq”,”ifd”,”ifq”}; the voltage command is read viahost.voltage_command(dae). Publishes the switching voltage onhost.Vswd/host.Vswq(read by the filter viahost.switching_voltage(dae)) and the current references onhost.ifd_ref/host.ifq_ref(viahost.current_ref(dae)); writes the integrator state equations intodae.f.- Parameters:
dae (hermess.system.Dae)
- requires() Set[str][source]
Plant capability tags this controller needs from the filter (checked at construction, warning on mismatch). Empty by default.
- Return type:
Set[str]
- finit_sequential(host, dae: hermess.system.Dae, filt, omega_c) Dict[str, numpy.ndarray][source]
Steady-state of the cascaded control ladder. Solves the 6 conditions (the four PI integrators steady + the two switching-voltage matches) for the frame angle
delta_c, the voltage commandVcdand the four integrators.Pc_tilde/Qc_tildeare not solved here: they are the frame-invariant powers, computed by the host from the filter op-point.- Parameters:
dae (hermess.system.Dae)
- Return type:
Dict[str, numpy.ndarray]
- hermess.devices.inverter_inner.INNER_REGISTRY: Dict[str, type]