{"id":20523,"date":"2024-01-24T14:10:29","date_gmt":"2024-01-24T14:10:29","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=20523"},"modified":"2026-03-10T10:39:12","modified_gmt":"2026-03-10T10:39:12","slug":"active-front-end","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/implementation\/active-front-end","title":{"rendered":"Active Front End (AFE)"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#What-is-an-Active-Front-End\" >What is an Active Front End?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#DC-bus-pre-charging-of-the-Active-Front-End\" >DC bus pre-charging of the Active Front End<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#Particular-considerations-when-using-the-TPI8032\" >Particular considerations when using the TPI8032<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#Control-of-the-Active-Front-End\" >Control of the Active Front End<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#Grid-synchronization\" >Grid synchronization<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#DC-bus-voltage-control\" >DC bus voltage control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#Grid-current-control\" >Grid current control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#PWM-activation\" >PWM activation<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#Control-implementation-with-ACG-SDK\" >Control implementation with ACG SDK<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#Experimental-results\" >Experimental results<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#To-go-further\" >To go further<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#%E2%80%A6-with-the-Active-Front-End\" >&#8230; with the Active Front End<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#%E2%80%A6-with-the-TPI-8032\" >&#8230; with the TPI 8032<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\/#Academic-reference\" >Academic reference<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>This technical note introduces the working principle of an Active Front End (AFE) and presents an implementation example built with the&nbsp;<a href=\"https:\/\/imperix.com\/products\/power\/programmable-inverter\/\">TPI 8032<\/a> programmable inverter. The provided control model implements a DC voltage controller, cascaded with a d-axis grid current controller, as well as a unity power factor controller (q-axis current).<\/p>\n\n\n\n<p>This page also serves as a basic example showing the principle of grid-connected operations using the <a href=\"https:\/\/imperix.com\/products\/power\/programmable-inverter\/\">TPI 8032<\/a>.&nbsp;It is recommended to read this page first before connecting the TPI to the AC grid.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-what-is-an-active-front-end\"><span class=\"ez-toc-section\" id=\"What-is-an-Active-Front-End\"><\/span>What is an Active Front End?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The Active Front End (AFE) is a family of controllable rectifiers that serve as AC to DC converters. Compared with the traditional diode rectifiers, the Active Front End allows for bidirectional power flow (i.e., regenerative power injection to the grid) and also actively shapes the current waveform to achieve low total harmonic distortion (THD) and high power factor. In practice, the Active Front End is usually used together with an LCL filter for further harmonic attenuation.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"547\" height=\"198\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/afe_topology.png\" alt=\"Topology of the Active Front End\" class=\"wp-image-24848\" style=\"width:547px;height:198px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/afe_topology.png 547w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/afe_topology-300x109.png 300w\" sizes=\"auto, (max-width: 547px) 100vw, 547px\" \/><figcaption class=\"wp-element-caption\">Typical topology of an Active Front End<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Given its bidirectional nature, the Active Front End is widely used in modern power systems as an interface between the AC grid and other converters, in applications such as <a href=\"https:\/\/imperix.com\/doc\/help\/variable-speed-drive\" type=\"link\" id=\"https:\/\/imperix.com\/doc\/help\/variable-speed-drive\">variable-speed drives<\/a> or <a href=\"https:\/\/imperix.com\/doc\/example\/fast-electric-vehicle-charger\" type=\"link\" id=\"https:\/\/imperix.com\/doc\/example\/fast-electric-vehicle-charger\">fast electric vehicle chargers<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"303\" height=\"74\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Fast-battery-charger.png\" alt=\"\" class=\"wp-image-25106\" style=\"width:303px;height:74px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Fast-battery-charger.png 303w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Fast-battery-charger-300x73.png 300w\" sizes=\"auto, (max-width: 303px) 100vw, 303px\" \/><figcaption class=\"wp-element-caption\">(a) Electric Vehicle (EV) fast charger<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"79\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Varspeed-drive.png\" alt=\"\" class=\"wp-image-25107\" style=\"width:411px;height:79px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Varspeed-drive.png 411w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Varspeed-drive-300x58.png 300w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><figcaption class=\"wp-element-caption\">(b) Variable speed drive<\/figcaption><\/figure>\n<\/div>\n\n\n<p>While this page considers a three-phase implementation of Active Front Ends, single-phase equivalents are also implementable, such as the <a href=\"https:\/\/imperix.com\/doc\/implementation\/single-phase-totem-pole-pfc-rectifier\">totem-pole PFC rectifier<\/a>. It is often part of single-phase <a href=\"https:\/\/imperix.com\/doc\/example\/on-board-charger-for-electric-vehicles\" type=\"link\" id=\"https:\/\/imperix.com\/doc\/example\/on-board-charger-for-electric-vehicles\">onboard battery chargers<\/a> in EVs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-dc-bus-pre-charging-of-the-active-front-end\"><span class=\"ez-toc-section\" id=\"DC-bus-pre-charging-of-the-Active-Front-End\"><\/span>DC bus pre-charging of the Active Front End<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As discussed in <a href=\"https:\/\/imperix.com\/doc\/implementation\/dc-bus-pre-charging-techniques\">DC bus pre-charging techniques<\/a>, the grid-connected operation of power converters requires its DC bus voltage to be higher than the rectified AC voltage at all times (\\(V_{dc} \\ge V_{LL, peak}\\)) to avoid uncontrolled currents to flow from the grid to the converter through its anti-parallel diodes. In particular, when first connecting an Active Front End to the grid, a proper DC bus precharge mechanism is required to avoid potentially destructive inrush currents.<\/p>\n\n\n\n<p>When using imperix <a href=\"https:\/\/imperix.com\/products\/power\/half-bridge-module\/\">power modules<\/a> to implement an Active Front End, the <a href=\"https:\/\/imperix.com\/products\/control\/accessories\/#grid-panel\">Grid Connection Panel<\/a> can be used as a current-limiting circuit during precharge. The precharge and bypass relays have to be actuated from the user code of the B-Box controller using, e.g., a state-machine logic as provided in <a href=\"https:\/\/imperix.com\/doc\/implementation\/dc-bus-pre-charging-techniques\">DC bus pre-charging techniques<\/a>.<\/p>\n\n\n\n<p>Alternatively, when using the <a href=\"https:\/\/imperix.com\/products\/power\/programmable-inverter\/\">TPI8032<\/a> to implement an Active Front End, a precharge and protection circuit is already built-in, and the <a href=\"https:\/\/imperix.com\/doc\/software\/tpi-rly-relays\">RLY block<\/a> automatically handles the safe connection to the grid with an FPGA-based protection module. The protection module also protects the device by opening all the relays when the DC voltage drops below the rectified AC voltage, or when the system enters the <code>fault<\/code> state. More information can be found on the device <a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/TPI8032_Datasheet.pdf\">datasheet<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"322\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Precharge-circuit.png\" alt=\"TPI 8032 precharge circuit schematic\" class=\"wp-image-22467\" style=\"width:460px;height:190px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Precharge-circuit.png 780w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Precharge-circuit-300x124.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Precharge-circuit-768x317.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><figcaption class=\"wp-element-caption\">Schematic of the precharge circuit present on the Grid Connection Panel and embedded in the TPI8032.<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Particular-considerations-when-using-the-TPI8032\"><\/span>Particular considerations when using the TPI8032<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>This section introduces considerations specifically related to the TPI 8032. It is strongly recommended to read them first before connecting the TPI8032 to the AC grid.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-warning\" role=\"alert\">The protection module responsible for opening the relays in case of too low DC voltage may not react fast enough if the grid voltage is suddenly increased. In particular, the following two scenarios can cause damage to the device:<br>&#8211; If the relays are closed with zero AC voltage, and then AC voltage is applied.<br>&#8211; If increasing the grid voltage when the relays are closed. This may happen when the grid is supplied by a variable autotransformer or a grid emulator.<br>To avoid this issue, it is recommended that AC voltage be applied before closing the relays and that the relays be opened before the grid voltage applied to the AC terminals is increased.<\/div>\n\n\n\n<p>Given the specific filter configuration of the TPI8032 &#8211; with the neutral point of the filter capacitors connected to the DC bus midpoint &#8211; the DC bus naturally charges to a higher voltage than the typical rectified voltage \\(V_{LL, peak}=\\sqrt{3}V_{phase, peak}\\) (560Vdc with 400Vac grid). With that topology, the DC bus can charge up to \\(2V_{phase, peak}\\) (650Vdc with 400Vac grid), through the current path illustrated below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"493\" height=\"223\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/schematic-6_TPIv2.png\" alt=\"DC charging path on TPI\" class=\"wp-image-25547\" style=\"width:493px;height:223px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/schematic-6_TPIv2.png 493w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/schematic-6_TPIv2-300x136.png 300w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><figcaption class=\"wp-element-caption\">DC bus charging current path with TPI8032 filter configuration (simplified schematic)<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The working principle of the <a href=\"https:\/\/imperix.com\/doc\/software\/tpi-rly-relays\">RLY driver<\/a> is as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Upon connection request in the user code (input of the RLY driver set to 1), the precharge relay is closed, and the DC bus charges through the precharge resistors.<\/li>\n\n\n\n<li>When the DC voltage reaches \\(V_{dc, min}=0.9\\sqrt{3}V_{phase, peak}\\), the bypass relay is automatically closed.<\/li>\n<\/ul>\n\n\n\n<p>During the precharge procedure, the DC voltage therefore evolves as in the graph below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"719\" height=\"414\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Vdc_cockpit_annotated.png\" alt=\"DC bus voltage during AC precharge process\" class=\"wp-image-25660\" style=\"width:631px;height:363px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Vdc_cockpit_annotated.png 719w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/Vdc_cockpit_annotated-300x173.png 300w\" sizes=\"auto, (max-width: 719px) 100vw, 719px\" \/><figcaption class=\"wp-element-caption\">DC bus voltage during the precharge process from the AC side<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-control-of-the-active-front-end\"><span class=\"ez-toc-section\" id=\"Control-of-the-Active-Front-End\"><\/span>Control of the Active Front End<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The control of an Active Front End consists, most of the time, of the control of the DC bus voltage to a given reference and the power factor to unity. This page focuses only on the DC voltage control, which can typically be achieved with a cascaded structure, with a grid current controller in the grid-synchronous reference frame as the inner loop and a DC voltage controller as the outer loop. In addition, some other functionalities are needed, such as synchronization with the AC grid and appropriate activation of the PWM output. Each of these elements is detailed hereafter and illustrated in the diagram below.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"848\" height=\"332\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_ctrl_diagram.png\" alt=\"Active Front End control diagram\" class=\"wp-image-25431\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_ctrl_diagram.png 848w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_ctrl_diagram-300x117.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_ctrl_diagram-768x301.png 768w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\" \/><figcaption class=\"wp-element-caption\">Control diagram of the Active Front End example<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-grid-synchronization\"><span class=\"ez-toc-section\" id=\"Grid-synchronization\"><\/span>Grid synchronization<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>An accurate synchronization system is required to track the grid&#8217;s phase and frequency. This note uses an <a href=\"https:\/\/imperix.com\/doc\/implementation\/synchronous-reference-frame-pll\">SRF PLL<\/a> as an example, which is a simple and widely used solution for synchronization with the three-phase grid. Another possible technique is introduced in <a href=\"https:\/\/imperix.com\/doc\/implementation\/sogi-pll\">SOGI PLL<\/a>, which has better dynamic performance and can work with a single-phase grid. More information about grid synchronization methods is provided in <a href=\"https:\/\/imperix.com\/doc\/implementation\/grid-synchronization-methods#single-phase-synchronization\" type=\"link\" id=\"https:\/\/imperix.com\/doc\/implementation\/grid-synchronization-methods#single-phase-synchronization\">TN107<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-dc-bus-voltage-control\"><span class=\"ez-toc-section\" id=\"DC-bus-voltage-control\"><\/span>DC bus voltage control<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The design and tuning of the DC voltage controller are similar to those introduced in <a href=\"https:\/\/imperix.com\/doc\/implementation\/cascaded-h-bridge-converter-control\">Cascaded H-bridge converter control<\/a>. The controller controls the DC bus voltage by changing the d-axis current \\(I_{g,d}\\). The current reference \\(I_{g,d}^{*}\\) has to be multiplied by \\(-1\\) because the positive direction of the grid current is, by convention, from the converter to the grid. To avoid over-current, a saturation block is added after the PI controller output. When the output saturates, the integrator is clamped to avoid windup.<\/p>\n\n\n\n<p>The control parameters \\(K_{p,V}\\) and \\(K_{i,V}\\) are tuned based on the bandwidth \\( f_{BW} \\) and phase margin \\(\\phi_{PM}\\) of the system:<\/p>\n\n\n\n<p class=\"has-text-align-center\">$$ K_{p,V} = 2\\pi f_{BW}\\cdot\\frac{2}{3}\\cdot \\frac{V_{dc,eq}}{V_{g,d}} \\cdot C_{dc,eq}\\cdot \\sqrt{\\frac{\\text{tan}^2(\\phi_{PM})}{1+\\text{tan}^2(\\phi_{PM})}} $$<\/p>\n\n\n\n<p class=\"has-text-align-center\">$$ K_{i,V} = K_{p,V}\\cdot\\frac{2\\pi f_{BW}}{\\text{tan}(\\phi_{PM})} $$<\/p>\n\n\n\n<p>By choosing the bandwidth as&nbsp;\\( f_{BW} = 50 \\, \\text{Hz} \\)&nbsp;and the phase margin as&nbsp;\\( \\phi_{PM} = 70\u00b0 \\), a good compromise between tracking dynamics and damping is obtained in simulation and experimentally.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-grid-current-control\"><span class=\"ez-toc-section\" id=\"Grid-current-control\"><\/span>Grid current control<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The grid currents are controlled by two PI controllers in the grid-synchronous (dq) reference frame using the same technique introduced in <a href=\"https:\/\/imperix.com\/doc\/implementation\/grid-following-inverter\">Grid-Following Inverter (GFLI)<\/a>. While the current reference \\(I_{g,d}^{*}\\) is provided by the DC bus voltage controller, the q-axis current reference \\(I_{g,q}^{*}\\) is controlled separately by a tunable parameter for possible power factor correction uses.<\/p>\n\n\n\n<p>The control parameters \\(K_{p,I}\\) and \\(K_{i,I}\\) are tuned using the Magnitude Optimum (MO), with the plant parameters \\(L_g\\) and \\(R_g\\) available in the <a href=\"https:\/\/imperix.com\/wp-content\/uploads\/document\/TPI8032_Datasheet.pdf\">TPI 8032 datasheet<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"has-text-align-center\">$$\\begin{aligned} K_{p,I} =\\frac{L_g}{2T_d} \\\\ \\\\ K_{i,I} =\\frac{R_g}{2T_d}\\end{aligned}$$<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-table is-style-regular\"><table class=\"has-fixed-layout\"><tbody><tr><td>Lg<\/td><td>950 \u00b5H<\/td><\/tr><tr><td>Rg<\/td><td>54 m\u03a9<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Plant parameters<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>The parameter\u00a0\\(T_d\\)\u00a0represents the sum of all the small delays in the system, such as the computation and modulation delays. The product note\u00a0<a href=\"https:\/\/imperix.com\/doc\/help\/discrete-control-delay\">Time delay determination for closed-loop control<\/a>\u00a0explains how to determine the total delay of the system. Please also note that if <a href=\"https:\/\/imperix.com\/doc\/help\/synchronous-averaging\">synchronous averaging<\/a> is enabled, which is the case by default in <a href=\"https:\/\/imperix.com\/doc\/software\/tpi-adc-helper-block\">TPI ADC<\/a> blocks, an additional delay of \\(0.5T_s\\) has to be considered.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-pwm-activation\"><span class=\"ez-toc-section\" id=\"PWM-activation\"><\/span>PWM activation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The provided model implements a simple logic that allows activation of the PWM outputs when:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>the PLL is synchronized with the grid,<\/li>\n\n\n\n<li>the relays are closed and ready to operate, and<\/li>\n\n\n\n<li>the tunable parameter <code>activate<\/code> is set to &#8216;1&#8217; by the user.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-tpi-8032-implementation\"><span class=\"ez-toc-section\" id=\"Control-implementation-with-ACG-SDK\"><\/span>Control implementation with ACG SDK<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The described control algorithm of the Active Front End was implemented in Simulink and is available for download below.<\/p>\n\n\n\n<div class=\"wp-block-file aligncenter\"><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/TN166_Active_Front_End_Simulink.zip\" class=\"wp-block-file__button wp-element-button\" download>Download <strong>TN166_Active_Front_End_Simulink.zip<\/strong><\/a><\/div>\n\n\n\n<p>The minimum requirements are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Imperix ACG SDK 2024.2 or newer, available <a href=\"https:\/\/imperix.com\/downloads\/\">here<\/a><\/li>\n\n\n\n<li>MATLAB Simulink R2016a or newer<\/li>\n\n\n\n<li>For simulation only: Simscape Electrical<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"2307\" height=\"1220\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/active_front_end_model2.png\" alt=\"Active Front End simulink model\" class=\"wp-image-24844\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/active_front_end_model2.png 2307w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/active_front_end_model2-300x159.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/active_front_end_model2-1024x542.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/active_front_end_model2-768x406.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/active_front_end_model2-1536x812.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/02\/active_front_end_model2-2048x1083.png 2048w\" sizes=\"auto, (max-width: 2307px) 100vw, 2307px\" \/><figcaption class=\"wp-element-caption\">Active Front End control implementation in Simulink<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-experimental-results\"><span class=\"ez-toc-section\" id=\"Experimental-results\"><\/span>Experimental results<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-success\" role=\"alert\">General\u00a0<strong>safety-related recommendations<\/strong>\u00a0for operating power converters in a laboratory environment are given in\u00a0<a href=\"https:\/\/imperix.com\/doc\/implementation\/safety-and-protection-in-the-lab\">TN181<\/a>.<\/div>\n\n\n\n<p>The example model was tested on an experimental testbench using a TPI 8032. A DC relay in series with a resistive load is connected on the DC side to perform changes on the DC load current. The wiring scheme and the experiment setup are shown below.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"116\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_wiring.png\" alt=\"Active Front End experimental wiring scheme\" class=\"wp-image-25428\" style=\"width:417px;height:116px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_wiring.png 417w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_wiring-300x83.png 300w\" sizes=\"auto, (max-width: 417px) 100vw, 417px\" \/><figcaption class=\"wp-element-caption\">Active Front End experimental wiring scheme<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1900\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_setup-scaled.jpg\" alt=\"Active Front End experimental setup\" class=\"wp-image-25239\" style=\"width:572px;height:424px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_setup-scaled.jpg 2560w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_setup-300x223.jpg 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_setup-1024x760.jpg 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_setup-768x570.jpg 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_setup-1536x1140.jpg 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_setup-2048x1520.jpg 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><figcaption class=\"wp-element-caption\">Active Front End experimental setup<\/figcaption><\/figure>\n<\/div>\n\n\n<p>The operating conditions are:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Control frequency [kHz]<\/td><td>50<\/td><\/tr><tr><td>RMS grid voltage (phase to neutral) [V]<\/td><td>230<\/td><\/tr><tr><td>DC bus voltage range [V]<\/td><td>650 &#8211; 800<\/td><\/tr><tr><td>Grid frequency [Hz]<\/td><td>50<\/td><\/tr><tr><td>DC load resistance [\u03a9]<\/td><td>3 x 106<\/td><\/tr><\/tbody><\/table><figcaption class=\"wp-element-caption\">Experiment conditions<\/figcaption><\/figure>\n\n\n\n<p>The following figures show the experimental results when a 50V step is performed on the DC bus voltage reference (left) and when a 318\u03a9 load is connected to the DC bus (right). The left graph shows a 10% to 90% rise time of 9ms. In theory, for a one-stage low-pass RC network, for a bandwidth of 50Hz, the 10% to 90% rise time should be:<\/p>\n\n\n\n<p>$$ t_r = \\frac{0.35}{f_{BW}} = 7 \\, \\text{ms}$$<\/p>\n\n\n\n<p>This approximately matches the experimental result. Overall, the voltage controller achieves a settling time of 50ms with less than 10% overshoot. Considering the 1.5mF capacitance on the DC bus, this performance is good.<\/p>\n\n\n\n<p>The graph on the right shows around 4V voltage drop and 40ms recovery time when 2.2A DC load current is applied. To further improve the resistance against load changes, the DC load current can be fed forward to the controller, as introduced in [2].<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Vdc3.png\" alt=\"Active Front End exp dc voltage\" class=\"wp-image-25834\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Vdc3.png 780w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Vdc3-300x115.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Vdc3-768x295.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/figure>\n\n\n\n<p>The grid current waveforms show the reference is rapidly tracked by the current controllers during the experiment.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igabc3.png\" alt=\"Active Front End exp abc-frame current\" class=\"wp-image-25835\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igabc3.png 780w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igabc3-300x115.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igabc3-768x295.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igdq3.png\" alt=\"Active Front End exp dq-frame current\" class=\"wp-image-25837\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igdq3.png 780w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igdq3-300x115.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/afe_exp_Igdq3-768x295.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-to-go-further\"><span class=\"ez-toc-section\" id=\"To-go-further\"><\/span>To go further<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-with-the-active-front-end\"><span class=\"ez-toc-section\" id=\"%E2%80%A6-with-the-Active-Front-End\"><\/span>&#8230; with the Active Front End<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The following application examples show how the Active Front End can be used in more complex applications.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/imperix.com\/doc\/example\/back-to-back-three-phase-converter\">Back-to-back three-phase converter<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/example\/fast-electric-vehicle-charger\">Fast electric vehicle charger<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/example\/onboard-battery-charger-for-electric-vehicles\">Onboard battery charger for electric vehicles<\/a><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-with-the-tpi-8032\"><span class=\"ez-toc-section\" id=\"%E2%80%A6-with-the-TPI-8032\"><\/span>&#8230; with the TPI 8032<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The TPI 8032 can be easily programmed to fit any purpose. More examples of TPI in microgrid applications are available in the knowledge base, such as:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/imperix.com\/doc\/implementation\/grid-following-inverter\">Grid-Following Inverter<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/imperix.com\/doc\/implementation\/grid-forming-inverter\">Grid-Forming Inverter<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-academic-reference\"><span class=\"ez-toc-section\" id=\"Academic-reference\"><\/span>Academic reference<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>[1] Karl J. \u00c5str\u00f6m and Tore H\u00e4gglund; \u201cAdvanced PID Control\u201d; 1995<br>[2] Chandra Bajracharya; \u201cControl of VSC-HVDC for wind power\u201d; NTNU; 2008<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This technical note introduces the working principle of an Active Front End (AFE) and presents an implementation example built with the&nbsp;TPI 8032 programmable inverter. The&#8230;<\/p>\n","protected":false},"author":10,"featured_media":25594,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[4],"tags":[],"software-environments":[103],"provided-results":[108],"related-products":[50,166,110],"guidedreadings":[],"tutorials":[122,152],"user-manuals":[],"coauthors":[72],"class_list":["post-20523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-implementation","software-environments-matlab","provided-results-experimental","related-products-acg-sdk","related-products-b-box-rcp-3-0","related-products-tpi","tutorials-active-front-end-afe","tutorials-active-power-filter"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Active Front End (AFE) - imperix power electronics<\/title>\n<meta name=\"description\" content=\"This technical note introduces the working principle of the Active Front End and presents an implementation built with the TPI 8032.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Active Front End (AFE) - imperix power electronics\" \/>\n<meta property=\"og:description\" content=\"This technical note introduces the working principle of the Active Front End and presents an implementation built with the TPI 8032.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-24T14:10:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-10T10:39:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/3_2_ratio_TN166.png\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Shu Wang\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Shu Wang\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end\"},\"author\":{\"name\":\"Shu Wang\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/e57025902e777170f33a7afa4a74afb7\"},\"headline\":\"Active Front End (AFE)\",\"datePublished\":\"2024-01-24T14:10:29+00:00\",\"dateModified\":\"2026-03-10T10:39:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end\"},\"wordCount\":1863,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/3_2_ratio_TN166.png\",\"articleSection\":[\"Technical notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end\",\"name\":\"Active Front End (AFE) - imperix power electronics\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/3_2_ratio_TN166.png\",\"datePublished\":\"2024-01-24T14:10:29+00:00\",\"dateModified\":\"2026-03-10T10:39:12+00:00\",\"description\":\"This technical note introduces the working principle of the Active Front End and presents an implementation built with the TPI 8032.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/3_2_ratio_TN166.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/3_2_ratio_TN166.png\",\"width\":450,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/active-front-end#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Technical notes\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/implementation\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Active Front End (AFE)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/e57025902e777170f33a7afa4a74afb7\",\"name\":\"Shu Wang\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c5195ad4fcc5844061b0229a4e67ac2916756927bc646fb6f6ff3dfb1bba140?s=96&d=mm&r=g4b86f01b045719d1dd14babc666c16ba\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c5195ad4fcc5844061b0229a4e67ac2916756927bc646fb6f6ff3dfb1bba140?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c5195ad4fcc5844061b0229a4e67ac2916756927bc646fb6f6ff3dfb1bba140?s=96&d=mm&r=g\",\"caption\":\"Shu Wang\"},\"description\":\"Shu is an experienced development engineer at imperix. He authored or co-authored numerous articles on the knowledge base, notably on FPGA-based control implementation and high-level synthesis tools and techniques.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/shu-wang-6581221b9\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/wang\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Active Front End (AFE) - imperix power electronics","description":"This technical note introduces the working principle of the Active Front End and presents an implementation built with the TPI 8032.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/implementation\/active-front-end","og_locale":"en_US","og_type":"article","og_title":"Active Front End (AFE) - imperix power electronics","og_description":"This technical note introduces the working principle of the Active Front End and presents an implementation built with the TPI 8032.","og_url":"https:\/\/imperix.com\/doc\/implementation\/active-front-end","og_site_name":"imperix","article_published_time":"2024-01-24T14:10:29+00:00","article_modified_time":"2026-03-10T10:39:12+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/3_2_ratio_TN166.png","type":"image\/png"}],"author":"Shu Wang","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Shu Wang","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end"},"author":{"name":"Shu Wang","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/e57025902e777170f33a7afa4a74afb7"},"headline":"Active Front End (AFE)","datePublished":"2024-01-24T14:10:29+00:00","dateModified":"2026-03-10T10:39:12+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end"},"wordCount":1863,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/3_2_ratio_TN166.png","articleSection":["Technical notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/implementation\/active-front-end#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end","url":"https:\/\/imperix.com\/doc\/implementation\/active-front-end","name":"Active Front End (AFE) - imperix power electronics","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/3_2_ratio_TN166.png","datePublished":"2024-01-24T14:10:29+00:00","dateModified":"2026-03-10T10:39:12+00:00","description":"This technical note introduces the working principle of the Active Front End and presents an implementation built with the TPI 8032.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/implementation\/active-front-end"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/3_2_ratio_TN166.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/01\/3_2_ratio_TN166.png","width":450,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/implementation\/active-front-end#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Technical notes","item":"https:\/\/imperix.com\/doc\/category\/implementation"},{"@type":"ListItem","position":3,"name":"Active Front End (AFE)"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/e57025902e777170f33a7afa4a74afb7","name":"Shu Wang","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/8c5195ad4fcc5844061b0229a4e67ac2916756927bc646fb6f6ff3dfb1bba140?s=96&d=mm&r=g4b86f01b045719d1dd14babc666c16ba","url":"https:\/\/secure.gravatar.com\/avatar\/8c5195ad4fcc5844061b0229a4e67ac2916756927bc646fb6f6ff3dfb1bba140?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c5195ad4fcc5844061b0229a4e67ac2916756927bc646fb6f6ff3dfb1bba140?s=96&d=mm&r=g","caption":"Shu Wang"},"description":"Shu is an experienced development engineer at imperix. He authored or co-authored numerous articles on the knowledge base, notably on FPGA-based control implementation and high-level synthesis tools and techniques.","sameAs":["https:\/\/www.linkedin.com\/in\/shu-wang-6581221b9\/"],"url":"https:\/\/imperix.com\/doc\/author\/wang"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/20523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=20523"}],"version-history":[{"count":180,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/20523\/revisions"}],"predecessor-version":[{"id":43597,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/20523\/revisions\/43597"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/25594"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=20523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=20523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=20523"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=20523"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=20523"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=20523"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=20523"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=20523"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=20523"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=20523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}