1. Introduction
Photovoltaic (PV) generation crossed the terawatt installed-capacity threshold in 2022 [
1] and has since kept growing [
2]. By the end of 2024, global cumulative PV capacity had reached 2247 GW, nearly doubling the 2022 level and more than tripling the capacity installed before 2020 [
3]. This deployment scale shifts the design burden onto the power-electronics interface that conditions intermittent dc generation into grid-compliant ac [
4,
5]. Two complications dominate the design of that interface at the residential scale: matching the maximum-power point of each panel under partial shading, and absorbing the second-by-second power swings that follow irradiance changes without overstressing the storage that smooths them.
Microinverters are gaining interest in photovoltaic applications because they track maximum power at the panel level rather than across an entire string [
6,
7]. This modularity mitigates partial-shading mismatch losses and simplifies monitoring [
8]. Although per-watt costs can be higher than those of string inverters, applications such as building-integrated photovoltaics or installations requiring module-level monitoring benefit from this architecture [
8]. Microinverters are divided into isolated and non-isolated variants [
7,
9]. Isolated designs add a transformer for galvanic separation between the dc and ac sides, which increases weight and footprint but suppresses leakage currents and safeguards personnel [
9]. Non-isolated topologies remain compact but require careful control to manage common-mode currents and leakage paths [
10,
11,
12].
Batteries offer high energy density, reaching up to
in advanced chemistries [
13], but their power density remains modest, limiting how quickly they can absorb or release energy. This mismatch becomes evident during rapid load changes or generation spikes. Recent work has focused on optimising battery charge–discharge cycles to limit degradation [
14], but batteries alone struggle with fast transients. Ultracapacitors (UCs) complement batteries with high power density and a very long cycle life, although they store far less energy per kilogramme [
15,
16]. The pairing of the two devices exploits their complementary characteristics [
17].
The combination of batteries and UCs into a hybrid energy storage system (HESS) has led to multiple topology proposals [
15,
18,
19,
20]. The active parallel configuration, used here, controls each storage element through its own converter, avoiding direct coupling between battery and UC. If one device fails, the other can continue to operate [
21]. Practical implementations report improvements in power quality and grid stability, with supervisory strategies coordinating the two elements to extend battery life and optimise energy flows [
22].
Control techniques for dc-dc converters in PV systems often rely on small-signal linearisation around an operating point, a limitation usually met by scheduling the gains against that point [
23], whereas exact feedback linearisation (EFL), introduced for switched-mode dc-dc converters in [
24], extends the valid region by accounting for the full nonlinear dynamics, with reported gains in disturbance rejection and transient response over proportional-integral (PI) loops across three-level [
25], sliding-mode-augmented [
26], and cascaded multi-module [
27] designs. On the inverter side, model predictive control (MPC) resolves current tracking, harmonic limits, and switching effort within a single optimisation framework [
28,
29]; its variants differ mainly in how they reduce sensing [
30,
31], damp inductor–capacitor–inductor (LCL) resonances [
32], or adapt to parameter drift [
33], but they are studied on grid-tied inverters in isolation from PV and storage.
Despite this individual progress, exact feedback linearisation has been demonstrated mostly on individual power converters, from boost and three-level stages [
25,
26] to cascaded multi-module transformers [
27], and predictive control has been studied on grid-tied inverters [
30,
31,
32,
33]. Reports that combine both control families on a parallel battery–UC HESS sharing a single dc-link, and that validate the assembly experimentally under severe irradiance steps, remain scarce. The closest experimental HESS implementations rely on small-signal control, whether supervisory PI or current-mode [
18,
22], an approach that loses its design properties once
,
, and the dc-link power drift away from the nominal operating point.
This work addresses that gap with a complete microinverter prototype combining PV input, a battery–UC HESS in active parallel arrangement, and a grid-tied H-bridge. Exact feedback linearisation regulates the inner current loops of the three dc-dc stages, while a finite-set model predictive controller drives the inverter; both controllers are co-implemented on a single Texas Instruments TMS320F2837xD at the sampling frequency 20 kHz. Validation employed irradiance steps from 1000 to , 1000 to , and 100 to , conditions under which classical small-signal designs lose their nominal performance. The scope is deliberately the control problem: deriving the combined loops, co-implementing them in real time, and validating them on hardware. Maximum-power-point tracking and grid-code output shaping build on the current loops shown here but lie outside this scope. The specific contributions are:
Exact feedback linearisation derived for the battery, UC, and PV-boost dc-dc converters, with an explicit admissible set for the virtual input beyond which the modulator saturates and the cancellation is lost (
Section 3). A controlled comparison against a single-point linearisation baseline on the PV boost inner loop shows analytically, and then in simulation, that the exact law cancels the operating-point dependence a single-point design leaves as a residual: the linearised loop keeps its design overshoot and settling time as the dc-link voltage departs from the nominal point, and the input-voltage disturbance it cancels and the dc-link sensitivity it removes are quantified, whereas the single-point design retains both (
Section 4.5).
A grid-connected microinverter prototype that integrates PV generation, a battery–UC HESS in active parallel arrangement, and an H-bridge inverter on a shared dc-link, on which the control above is validated experimentally under three irradiance step profiles (
Section 5).
An experimental quantification, on the assembled prototype, of the grid-current spectrum that modulator-free predictive control produces: the dominant switching component sits at 2.25 kHz, approximately one ninth of the sampling rate, and the spread around it accounts for all but one of the 25 orders that exceed their individual IEEE 1547 limits at the higher injection level. This measures on hardware a limitation the literature reports in general terms [
29]. The remaining violation, at the second harmonic, is traced to the residual dc-link ripple that the storage allocation leaves on the bus rather than to the modulation, which ties the dc-side storage split to ac-side compliance (
Section 5).
A validation of the simulation model against the prototype in which the controller gains, the current limits, the duty clamps and the storage-split filter length are read from the firmware source, and the panel curve, the injected power and the irradiance ramp are measured, with no parameter fitted to the data. The model reproduces the
ripple of the dc-link and its split into the UC branch to within 4.8%, and the peak and minimum dc-link voltages during an irradiance step to within 0.7% (
Section 5.1).
Table 1 positions this work within representative HESS and EFL implementations. The exact linearisation of the converters’ current loops has been established for individual stages, in which the set of virtual inputs that the modulator can actually generate is rarely specified. Regarding hybrid storage, further progress has been made in [
34], which discusses a battery–supercapacitor pair adapted to the Brunovsky form, where a disturbance observer absorbs the parameter uncertainty that
Section 4.6 instead quantifies, and in [
35], which discusses a battery-SMES pair; in both cases, the storage system is coupled to a load rather than a photovoltaic source, so neither meets the input voltage excursion that motivates the exact cancellation in this work. The prototype is derived from previous work by this group on the same converter under classical control [
36,
37]. What this article contributes is the internal loop law: an exact linearisation in the three dc-dc stages with the admissible set (
6) expressed mathematically, along with the predictive loop of the inverter in a Texas Instruments TMS320F2837xD at 20 kHz, quantified in comparison with the single-point design it replaces (
Section 4.5) and leading to a closed-form description of how the cancellation degrades under the influence of inductance and sensor error (
Section 4.6).
The rest of the paper is organised as follows.
Section 2 describes the system topology and its sensing;
Section 3 models each subsystem and derives the EFL inner loops;
Section 4 details the control strategy, from the storage current loops and the finite-set predictive inverter loop to their tuning, and contrasts the proposed control with the single-point baseline (
Section 4.5);
Section 5 reports the experimental validation; and
Section 6 summarises the findings and outlines the remaining limitations.
5. Experimental Results
The irradiance transitions tested in this work, including steps from
to
, from
to
, and from
to
, replicate conditions reported in real-world scenarios such as pavement photovoltaics under vehicle shadows, where power drops can exceed 60% of the rated power for intervals of 0.05 to 0.2 s [
43]. Such extreme transients challenge the HESS and control architecture more severely than gradual cloud-induced variations, making them suitable benchmarks for demonstrating the robustness of the proposed control strategy under worst-case operating conditions.
The dc-link capacitance is µ in total, distributed as 400 V film capacitors across the stages that share the bus: µ at the output of each bidirectional converter and µ at the input of the H-bridge. The PV boost has no output capacitor. Its role is local high-frequency decoupling at the shared dc-link, rather than bulk energy storage. Low-frequency energy buffering and dc-link voltage regulation are provided by the actively controlled battery–UC HESS; under the tested conditions, this arrangement maintained at 130 V.
The main parameters used for this experiment are shown in
Table 6. The complete real-time control system, including the dc-dc stages (converters A, B, and C) and the dc-ac stage (converter D), was implemented and executed in a single DSP at a sampling frequency of 20 kHz.
Under these conditions, the behaviour of the state variables is evaluated, including the UC current (), PV current (), battery current (), ac current (), dc-link voltage (), UC voltage (), PV voltage (), and ac voltage ().
Figure 10a,b show that during the initial 75 ms the PV system operates at an irradiance of
, with
V and
3.85 A, that is, 112 W delivered by the EA PSI 9000 running the EN 50530 profile at
; these three quantities are read from the source front panel rather than from the oscilloscope traces. The surplus power above the grid injection target would drive
upward; converter A responds by commanding a negative
, transferring excess energy to the battery. Consequently,
is held at 130 V while the battery charges.
After 75 ms, the irradiance decreases from
to
, with
V. For this transient, the direction of
reverses due to the dc-link power deficit; therefore, the controller commands power delivery from the battery to the dc-link to restore
to its 130 V reference. As designed in
Section 4.2, the UC responds with a transient current peak of 2.8 A in its switching-period average, rising from a pre-step level of
A; the instantaneous peak measured is
A, once the
A peak-to-peak switching ripple is included to absorb the fast disturbance components while maintaining
at 24 V, whereas the battery handles the slower power rebalancing. As a result,
remains regulated despite the large decrease in PV generation.
Figure 10c,d illustrates the system response to an irradiance change from
to
. The general behaviour is similar to that shown in
Figure 10a,b; however, after 75 ms, the irradiance change is smaller, which implies that the current delivered by the battery to the dc-link is smaller to restore the power balance. With the higher PV power available, both the battery current magnitude and the UC peak current are lower than in the 95% drop scenario.
Figure 10e,f shows the system initially operating with an irradiance of
, with
12.4 V and
0.58 A. At this irradiance the duty cycle saturates at the
0.80 enforced by the firmware, the stage enters discontinuous conduction, and the operating point settles where the converter characteristic meets the panel I–V curve, delivering 7 W (
Figure 11). It is not set by the voltage reference. For
ms, the reduced PV generation prompts the battery control system to inject current into the dc-link, maintaining
at its reference. For
ms, as PV generation returns to rated irradiance (
),
transitions from positive to negative, indicating power absorption by the battery. This change is smoothly managed by the UC control, which absorbs the high-frequency components of the power change.
The single-phase grid connection introduces a second-harmonic ripple at twice the grid frequency in the dc-side signals;
Figure 10e,f shows a time window long enough to observe this component.
Figure 12a shows the dc-ac stage of the microinverter. The ac current
is in phase with the grid voltage
, and the switched inverter voltage
has amplitude 130 V and is updated at the sampling frequency 20 kHz. Both
and
retain their amplitudes during the irradiance transients, indicating that the dc-side transients do not reach the ac amplitudes. The coupling that does remain is spectral: the residual
ripple of the bus reappears as a second harmonic of the injected current, and
Section 5.2 quantifies it.
In
Figure 12b, the injected current follows a reference step from 0.5 A to 1 A at 60 ms, reaching the new level while staying in phase with
. The harmonic content of that current is examined in
Section 5.2, where the spectrum turns out to be the limiting factor rather than the tracking.
5.1. Model Validation
The simulation model is validated against the experimental prototype under the irradiance rise from
to
of
Figure 10e,f. Three quantities are taken from that test: the UC current, the dc-link voltage, and the photovoltaic current. The grid voltage and current come from a separate steady-state ac capture at the same injection reference and enter only the firmware-based check at the end of this section.
The PI controller gains are specified in
Table 4, together with their current limits and duty clamps. Windup is handled by limiting the integral accumulator state, which is preserved between sampling instants and would otherwise continue to grow while the modulator remains saturated. The limit is
in the current loops of converters A and B and
in both loops of converter C. This mechanism is particularly relevant in the photovoltaic stage because, at
, the duty cycle approaches
, so the voltage-loop accumulator would otherwise continue integrating an error that the saturated converter cannot correct. With this limit in place, the operating point stabilises where the saturated converter characteristic intersects the panel’s I–V curve (
Figure 11), which is the behaviour described below.
The high- and low-frequency split between the battery and UC current references is performed by a moving-average filter of 32 samples applied to the battery current reference
, whose
dB corner falls at 277 Hz; the low-frequency output feeds the battery loop and the high-frequency complement is routed to the UC, as in (
21). The dc-link capacitance is 9.6 µF of film capacitors. The filter length is taken from the firmware, not fitted to the data: 32 samples is the value the prototype’s split filter uses, so the measured division of the
ripple between the two branches, the corresponding row of
Table 7, is an independent test on the same footing as the dc-link, photovoltaic and ac-side rows. The simulated panel has an open-circuit voltage of 32.5 V and a short-circuit current of 5.5 A, and a 8.4 ms irradiance ramp reproduces the emulator’s rise. The simulation is resampled onto the oscilloscope’s
µ
grid before any quantity is read (see the
Table 7 caption).
Every figure quoted below comes from
Table 7 and validates the model against the measurements. In steady state at
, the
component of
agrees to 3.3%, that of
to 4.8%, and the phase error between the two is only 5.4°, which shows that the split of the pulsating power between the two storage elements is reproduced in magnitude as well as in phase. The agreement is reinforced by the mean dc-link voltage, 130.35 V simulated against 130.28 V measured, and by the photovoltaic current, matched to within 9.9% at rated irradiance and 5.2% at low irradiance. Finally, the duty cycle the firmware would command at rated irradiance, 0.788, agrees with the 0.776 that the measured terminal voltage implies, which confirms the fidelity of the model in steady state.
The low-irradiance terminal voltage also agrees, 11.7 V simulated against 12.4 V measured (6%), so the steady operating points are reproduced at both irradiance levels. The model departs from the prototype only in the transient, where the dc-link deviation is overestimated by 27% and the UC peak current by 69%, and in the switching ripple of
, overestimated by 63%. All three are overestimates of transient magnitudes, whereas each steady-state entry in
Table 7 agrees with an accuracy of 9.9%. The measurement bandwidth does not explain them, since the simulation is decimated to the oscilloscope’s 8 µs grid before any quantities are evaluated, so both undergo the same sampling. Nor does the uncertainty in the component values explain them, which would spread the errors in both directions rather than in just one. The remaining explanation is the damping absent from the model, namely the parasitic series resistance of the UC branch and the finite switching transitions that the averaged model idealises.
The outer voltage loop of the photovoltaic stage regulates the panel terminal voltage to its fixed reference 29 V, and its output is the current reference the exactly linearised inner loop tracks. At rated irradiance the measured terminal voltage is 29.1 V against the 29 V setpoint, so the loop holds its reference. At
it instead sits at 12.4 V, on the panel’s current-source branch: at that irradiance the stage runs in discontinuous conduction with its duty against the firmware clamp, so the operating point is set by where the saturated converter characteristic meets the panel I–V curve (
Figure 11), not by the reference. No maximum-power-point tracking is attempted: with the fixed reference the prototype extracts 87% of the available power at rated irradiance and 74% at
, which bound what a maximum-power-point algorithm on top of the exactly linearised inner loop would recover, while the inner loop tracks correctly throughout.
The check that follows uses no dc-link quantity, so it is independent of the storage-ripple agreement established above. Taken from the code, the predictive controller normalises the measured grid voltage by the design constant
of (
24) and scales it by 0.5. With that scalar and the measured peak 97.09 V, the reference amplitude is fixed at 0.441 A without touching any measured current or dc-link quantity, and contrasted against the measured fundamental of
, 0.431 A: a difference of 2.3%. That agreement settles the injection scalar actually running (a value of
would give
A and disagree), the normalisation constant, and the predictive controller’s tracking error, which the remaining 2.3% measures. The same capture gives a
phase between
and
, a power factor of 0.999, an injected power of 20.9 W against 21.0 W measured, and a pulsating-power balance of
(battery and UC
phasors referred to the bus) against the
the inverter draws.
The switching model was built in PSIM Professional 2026 and the firmware compiled in Code Composer Studio 12.3.0 for the Texas Instruments TMS320F2837xD.
5.2. Harmonic Analysis
The harmonic spectrum of the injected grid current
was measured at two injection levels, one low and one high. Writing
for the rms value of its fundamental, these are
0.29 A and
0.45 A, or 18% and 28% of the rated current
1.63 A rms.
Figure 13 plots the higher of the two, which is the worst case. Both spectra come from a coherent transform over an integer number of grid cycles, so no window function or leakage correction is needed. Repeated captures reproduce the total rated distortion (TRD) to within
percentage points.
Figure 13a refers each harmonic to the rated current, the base that IEEE 1547 uses, with the limit of each order drawn behind it in grey. Interharmonic content is grouped into the nearest integer order as an equivalent rms value, following IEC 61000-4-7 and the treatment of [
29]; without this step more than half of the distortion would escape the count. At the operating point plotted, 25 orders exceed their individual limits. The even orders, whose limit IEEE 1547 sets at a quarter of the
odd-order value, begin to fail from the 22nd; from the thirty-third upward every order fails, even and odd alike: the 44th and 46th reach
of rated current against a
limit, twelve times over, and that band is where the switching energy of the predictive control lands.
One violation, however, sits at the other end of the spectrum, and it is not a property of the modulation. The second harmonic reaches 2.49% of rated current against a limit. Its origin is the dc-link: the ripple of , which the hybrid storage does not fully absorb, modulates the output of the H-bridge, whose terminal voltage is the bus voltage multiplied by the switching state, and reappears as an even harmonic in the injected current. It grows with the injected current, from at the lower operating point, where it complies, to 2.49% at the higher one, where it does not. The residual ripple that the storage allocation leaves on the bus therefore has a cost on the grid side.
Figure 13b explains why, and it does so in frequency rather than harmonic order, because the distortion of a finite-set controller is not concentrated on discrete harmonics. Lacking a modulator, the controller holds a switching state for as long as it remains optimal, so its switching frequency is neither fixed nor equal to the sampling rate, and the harmonic energy spreads over a broad band rather than clustering around a carrier [
29,
46]. The spectrum is therefore shown raw, without smoothing: the spread is the result. The dominant switching component sits at
2.25 kHz, close to
9, an integer fraction of the sampling frequency [
46]. This is not the average switching frequency, which counts device transitions and gives 5.2 kHz here [
49], more than twice
. The band around
maps onto harmonic orders 40 to 50, where IEEE 1547 tightens its individual limits to
of rated current.
Two distortion figures summarise the spectrum, defined in (
28), and answer different questions:
where
is the rms value of the
h-th harmonic and
that of the whole current. The total demand distortion (TDD) counts integer harmonics only; the TRD of IEEE 1547-2018 counts interharmonics and noise as well. The measured values are 3.5% and 4.6% for the former, and 3.8% and 5.6% for the latter, against a
limit that the total rated distortion exceeds at the higher injection.
Both kinds of limit, the individual and the aggregate, must be read together: a converter can sit below the aggregate limit and still breach the standard by exceeding its individual limits, all the more at high order, where they are stricter. The 25 orders that fail contribute only in quadrature, which fits inside the envelope. The standard is written that way on purpose, to stop energy being deposited at any single frequency however small the total, and that is exactly what a modulator-free predictive controller does: little distortion, spread across the band where the limits are tightest. This prototype therefore fails the individual limits at both operating points, 25 orders at the higher and 24 from order 18 upward at the lower, and the aggregate only at the higher. At the lower point, where the aggregate is met with a rated distortion of 3.8%, the non-compliance is one of shape, not size.
Distortion grows with injected current rather than staying flat, because the switching frequency is unbounded by construction and the output stage is a single 70 mH inductor, with no LCL section to attenuate what lands at 2.25 kHz. The remedies are known and none was implemented: delay compensation, a modulated scheme that restores a fixed switching frequency [
50], and an LCL stage each attenuate the ripple, whereas a switching-effort penalty [
51] lowers the frequency by weighting device transitions against tracking error in the cost function.
Finally,
Figure 14 shows the experimental prototype with each of its components indicated.
6. Conclusions
A PV microinverter prototype with a battery–UC HESS in active parallel arrangement was implemented and tested under three severe irradiance step profiles (
,
, and
). The master–slave control based on exact feedback linearisation regulated the dc-link voltage at its 130 V setpoint across the transients, its peak-to-peak deviation below 16% during the most severe step, the
profile of
Figure 10, with the UC supplying transient current peaks of 2.8 A to protect the battery from millisecond-scale disturbances under the prototype’s constant-parameter model. The simulation comparison against a single-point linearisation baseline (
Section 4.5) confirmed that EFL holds its nominal overshoot and settling time (
,
) as the dc-link voltage departs from the design point and cancels the input-voltage disturbance that a single-point design can only reject through its integrator—properties that conventional small-signal methods lose outside their linearisation neighbourhood. All three converter types ran simultaneously on a single Texas Instruments TMS320F2837xD at 20 kHz, so combined EFL and FS-MPC is computationally feasible on this class of microinverter platform.
With no modulator or LCL stage, the prototype does not meet the IEEE 1547 individual harmonic limits (
Section 5.2); this is a property of the output stage, not of the control demonstrated here. As built, the unit serves primarily as a platform for validating the proposed control strategy, whereas achieving the power quality required for grid connection would require additional output-stage conditioning through filtering, modulation, or a combination of both. The AC output remained stable during the reference step from 0.5 A to 1 A. The switching model was validated against the prototype based on the firmware gains and the measured boundary conditions, without adjusting any parameters to the data (
Section 5.1): It reproduces the ripple of the dc-link and its distribution to the UC with an accuracy of 4.8%, the maximum and minimum bus voltages with an accuracy of 0.7%, and the amplitude of the injected current, based solely on the grid voltage, with an accuracy of 2.3%. The agreement is not uniform, as the model overestimates the transient deviation of the dc-link by 27%, the maximum current of the UC by 69%, and its switching ripple by 63%, so it serves as a reliable guide for steady-state operating points and the extremes of the dc-link, and a conservative guide for transient peaks. These results are valid for the single-phase topology. Furthermore, they hold only under continuous conduction, since at one-tenth of the irradiance the boost stage crosses into discontinuous conduction (
Section 5.1), and the cancellation that (
17) provides is a continuous-conduction property.
Several aspects remain open. Multi-objective FS-MPC that bounds the average switching frequency and delay-compensated variants would help meet the individual IEEE 1547 limits the modulator-free controller misses, and a three-phase extension would remove the second-harmonic contribution to them; hardware-in-the-loop testing is a natural next step. The exactly linearised PV loop is built to track a maximum-power-point-tracking reference, which the fixed-reference prototype does not yet supply: it extracts 87% and 74% of the available power at rated and one-tenth irradiance, which such an algorithm would raise. A tertiary supervisory controller could set the grid-injection reference from the available PV power and the battery state of charge, closing the energy-management loop the external reference leaves open. On-line estimation of the inductances and battery state of charge would carry EFL beyond its constant-parameter assumption. End-to-end efficiency and power factor beyond the single point measured (0.999) are a priority for the follow-on campaign.