{"id":155,"date":"2021-03-23T10:30:15","date_gmt":"2021-03-23T10:30:15","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=155"},"modified":"2025-05-07T11:04:22","modified_gmt":"2025-05-07T11:04:22","slug":"cascaded-voltage-control","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control","title":{"rendered":"Cascaded voltage control"},"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\/cascaded-voltage-control\/#General-principles-of-cascaded-control\" >General principles of cascaded control<\/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\/cascaded-voltage-control\/#Example-of-DC-bus-cascaded-voltage-control\" >Example of DC bus cascaded voltage control<\/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\/cascaded-voltage-control\/#System-level-modeling\" >System-level modeling<\/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\/cascaded-voltage-control\/#Digital-implementation-and-tuning-of-cascaded-controller\" >Digital implementation and tuning of cascaded controller<\/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\/cascaded-voltage-control\/#Academic-references\" >Academic references<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control\/#B-Box-B-Board-implementation\" >B-Box \/ B-Board implementation<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control\/#ACG-SDK-implementation-using-Simulink\" >ACG SDK implementation using Simulink<\/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\/cascaded-voltage-control\/#CC-code\" >C\/C++ code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control\/#Implementation-example\" >Implementation example<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control\/#Results\" >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\/cascaded-voltage-control\/#To-go-further\" >To go further<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>This technical note presents a possible implementation for the DC voltage control of a power converter. First, the note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided. A possible control implementation on the&nbsp;<a href=\"https:\/\/imperix.com\/products\/control\/bbox\">B-Box RCP<\/a>&nbsp;or&nbsp;<a href=\"https:\/\/imperix.com\/products\/control\/bboard\">B-Board PRO<\/a>&nbsp;is introduced for both&nbsp;<a href=\"https:\/\/imperix.com\/software\/cpp-sdk\">C\/C++<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/imperix.com\/software\/acg-sdk\">ACG<\/a>&nbsp;implementations. Finally, simulation and experimental results are compared and discussed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Generalprinciples\"><span class=\"ez-toc-section\" id=\"General-principles-of-cascaded-control\"><\/span>General principles of cascaded control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Cascaded control is a well-known control strategy, which is often applied to second-order systems (or even of higher-order) that are characterized by the following criteria:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All state variables can be measured.<\/li>\n\n\n\n<li>The system can be \u201cdecomposed\u201d into first-order systems, whose dynamics (i.e. time constants) are intrinsically rather different. It is generally agreed that an inner loop must be at least 3-4 times faster than its directly \u201csurrounding\u201d loop. In practice, this may possibly be guaranteed by design (component dimensioning).<\/li>\n\n\n\n<li>Obviously, the inner loop(s) must have a direct impact on the outer loop(s).<\/li>\n\n\n\n<li>Disturbances impacting the \u201cfast\u201d loop(s) are less severe than those impacting the slower loop(s). This way, cascaded control can achieve its main goal, which is to reject the smaller inner perturbations before they propagate to the rest of the&nbsp;system.<\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"846\" height=\"201\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles-1-1.png\" alt=\"Typical cascaded control loop\" class=\"wp-image-159\" style=\"width:633px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles-1-1.png 846w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles-1-1-300x71.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles-1-1-768x182.png 768w\" sizes=\"auto, (max-width: 846px) 100vw, 846px\" \/><figcaption class=\"wp-element-caption\">Typical cascaded control loop<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-DCbusvoltagecontrolexample\"><span class=\"ez-toc-section\" id=\"Example-of-DC-bus-cascaded-voltage-control\"><\/span>Example of DC bus cascaded voltage control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In this note, it is proposed to study the DC bus voltage control of a <a href=\"https:\/\/imperix.com\/doc\/implementation\/step-up-boost-converter\">Step-up boost converter<\/a>, whose prerequisite is the <a href=\"https:\/\/imperix.com\/doc\/implementation\/basic-pi-control\">implementation of a PI controller<\/a>.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"794\" height=\"386\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Schema1_6col.png\" alt=\"Schematic of buck-boost converter\" class=\"wp-image-84\" style=\"width:419px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Schema1_6col.png 794w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Schema1_6col-300x146.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Schema1_6col-768x373.png 768w\" sizes=\"auto, (max-width: 794px) 100vw, 794px\" \/><figcaption class=\"wp-element-caption\">Boost converter schematic<\/figcaption><\/figure>\n<\/div>\n\n\n<p>This example features two state variables, namely the inductor current and the capacitor voltage. From a behavioral standpoint:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The inductor current can be controlled by the voltage&nbsp;\\(V_L \\).<\/li>\n\n\n\n<li>The capacitor voltage can be controlled by the current&nbsp;\\(I_c \\).<\/li>\n<\/ul>\n\n\n\n<p>General Kirchhoff circuit laws allow us to determine the&nbsp;following equations:<\/p>\n\n\n\n<p>$$ \\begin{align}<br>&amp;R_b I_b + L_b \\frac{d I_b}{dt} = V_L = V_b &#8211; V_c \\\\<br>&amp;C_1 \\frac{d V_{dc}}{dt} = I_c = I_{load} &#8211; I_{dc} \\qquad \\text{with} \\qquad I_{dc} = \\frac{V_b I_b}{V_{dc}} \\end{align}$$<\/p>\n\n\n\n<p>In the Laplace domain, this translates into:<\/p>\n\n\n\n<p>$$ \\begin{align}<br>&amp;I_b =\\frac{1}{R_b + s L_b} \\cdot V_L \\\\<br>&amp;V_{dc} =\\frac{1}{s C_1} \\cdot I_c<br>\\end{align}$$<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-System-levelmodeling\"><span class=\"ez-toc-section\" id=\"System-level-modeling\"><\/span>System-level modeling<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>An intuitive way to represent the behavior of this circuit is to separate the system into two distinct subsystems, as shown below. This representation also complies with the established system&nbsp;equations.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"278\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling-1024x278.png\" alt=\"Model of a boost converter with cascaded voltage control\" class=\"wp-image-160\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling-1024x278.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling-300x82.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling-768x209.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling-1536x417.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling.png 1700w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Model of a boost converter with cascaded voltage control<\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Plants\">Plant model<\/h4>\n\n\n\n<p>The inductor and the capacitor are modeled as:<\/p>\n\n\n\n<p>$$\\begin{array}{ll}<br>P_1(s) = \\cfrac{K_1}{1+s T_1} \\quad &amp;\\text{with} \\quad K_1 = 1\/R_b \\quad\\text{and}\\quad T_1 = L_b\/R_b \\\\[.5em]<br>P_2(s) = \\cfrac{1}{s T_2} \\quad &amp;\\text{with} \\quad T_2 = C_1<br>\\end{array}$$<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Measurements\">Measurements<\/h4>\n\n\n\n<p>The measurements of the currents&nbsp;\\(I_b\\) and&nbsp;\\(I_{dc}\\), and the voltages&nbsp;\\(V_b\\) and&nbsp;\\(V_{dc}\\) are generally modeled using a low-pass filter approximation, or they are neglected. The sampling corresponds to a zero-order hold (ZOH) which introduces a lag, which is the sampling delay.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Control\">Cascaded control<\/h4>\n\n\n\n<p>The control algorithm consists of two digital PI controllers and some basic mathematic operations. The whole algorithm requires a certain amount of computation time, which is represented as a delay.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Modulation\">Modulation<\/h4>\n\n\n\n<p>The Pulse-Width Modulation (PWM) is also generally modeled as a simple delay.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Digitalimplementationandtuning\"><span class=\"ez-toc-section\" id=\"Digital-implementation-and-tuning-of-cascaded-controller\"><\/span>Digital implementation and tuning of cascaded controller<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Once the different control loops have been properly identified, each state variable can be controlled separately. In this example, both control loops are proposed to be implemented using PI controllers.<\/p>\n\n\n\n<p>The design of the current control loop is detailed in&nbsp;<a href=\"https:\/\/imperix.com\/doc\/implementation\/basic-pi-control\">Basic PI control implementation (TN105)<\/a>.<\/p>\n\n\n\n<p>For the design of the voltage control loop, different methods are used in the literature. Those methods are well detailed and explained in [1] and [2]. In this article, the Symmetrical Optimum (SO) will be used. The controller parameters are defined as:<\/p>\n\n\n\n<p>$$\\begin{array}{l}<br>T_{n2} = a^2 T_{d,eq} \\\\<br>T_{i2} = a^3 K_{d,eq} T_{d,eq}^2\/T_2<br>\\end{array}<br>\\qquad\\text{and}\\qquad<br>\\begin{array}{l}<br>K_{p2} = T_{n2} \/T_{i2} \\\\<br>K_{i2} = 1 \/ T_{i2}<br>\\end{array}$$<\/p>\n\n\n\n<p>With&nbsp;\\(T_{d,eq}\\)&nbsp;the equivalent delay of the closed-loop current controller transfer function, defined as [2, 3]:<\/p>\n\n\n\n<p>$$T_{d,eq} = 2 T_{d1} $$<\/p>\n\n\n\n<p>The parameter&nbsp;\\(T_d\\)&nbsp;represents the sum of all the small delays in the system, such as the sampling delay or the modulation delay mentioned above. The product note&nbsp;<a href=\"https:\/\/imperix.com\/doc\/help\/discrete-control-delay\">PN142<\/a>&nbsp;explains how to determine the total delay of the system.<\/p>\n\n\n\n<p>The parameter&nbsp;\\(a\\)&nbsp;is used to change the pole placement of the control function [2]. Low values give a small phase margin and high oscillations while increasing the value of&nbsp;\\(a\\)&nbsp;may lead to better damping, but a slower response. For the example provided in this technical note, this parameter is chosen as 4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Academicreferences\"><span class=\"ez-toc-section\" id=\"Academic-references\"><\/span>Academic references<span class=\"ez-toc-section-end\"><\/span><\/h3>\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<br>[3] R.S. Geetha, Ravishankar Deekshit and G. Lal; \u201cControllers For A VSC-HVDC Link Connected To A Weak AC System\u201d; IOSR-JEEE; 2015<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-B-Box\/B-Boardimplementation\"><span class=\"ez-toc-section\" id=\"B-Box-B-Board-implementation\"><\/span>B-Box \/ B-Board implementation<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"ACG-SDK-implementation-using-Simulink\"><\/span>ACG SDK implementation using Simulink<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>ACG SDK simplifies programming imperix controllers through automatic code generation. Control logic is implemented using standard Simulink blocks, and the ACG block set offers pre-built blocks for configuring the imperix controller&#8217;s I\/O. The figure below illustrates this control implementation.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"305\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_control_Simulink-1024x305.png\" alt=\"\" class=\"wp-image-32362\" style=\"width:787px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_control_Simulink-1024x305.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_control_Simulink-300x89.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_control_Simulink-768x229.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_control_Simulink-1536x458.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_control_Simulink.png 1563w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Control implementation using ACG SDK in Simulink<\/figcaption><\/figure>\n\n\n\n<p>ACG SDK also enables offline simulation using Simulink\/PLECS. By running the model in simulation mode, the control logic can be validated against a user-defined plant model. Furthermore, ACG SDK&#8217;s power library includes models of imperix power hardware, such as the <a href=\"https:\/\/imperix.com\/products\/power\/half-bridge-module\/\">PEB 8038 half-bridge module<\/a> used in this example, built using the Simscape Electrical Toolbox from MathWorks. The figure below illustrates the implementation of the plant model.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"913\" height=\"399\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_plant_Simulink.png\" alt=\"\" class=\"wp-image-32363\" style=\"width:564px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_plant_Simulink.png 913w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_plant_Simulink-300x131.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN108_plant_Simulink-768x336.png 768w\" sizes=\"auto, (max-width: 913px) 100vw, 913px\" \/><figcaption class=\"wp-element-caption\">Plant modeled using imperix power library and Simscape Electrical<\/figcaption><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\">Software resources<\/h4>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-598352a9-d01c-4b25-843a-638e6546a282\" href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/02\/TN108_cascaded_voltage_control.zip\">TN108_cascaded_voltage_control<\/a><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/02\/TN108_cascaded_voltage_control.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-598352a9-d01c-4b25-843a-638e6546a282\">Download<\/a><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-C\/C++code\"><span class=\"ez-toc-section\" id=\"CC-code\"><\/span>C\/C++ code<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>The imperix IDE provides numerous pre-written and pre-optimized functions. Controllers such as P, PI, PID and PR are already available and can be found in the&nbsp;<code>controllers.h\/.cpp<\/code>&nbsp;files.<\/p>\n\n\n\n<p>As for all controllers, PI controllers are based on:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>A pseudo-object&nbsp;<code>PIDcontroller<\/code>, which contains pre-computed parameters as well as state variables.<\/li>\n\n\n\n<li>A configuration function, meant to be called during&nbsp;<code>UserInit()<\/code>, named&nbsp;<code>ConfigPIDController()<\/code>.<\/li>\n\n\n\n<li>A run-time function, meant to be called during the user-level ISR, such as&nbsp;<code>UserInterrupt()<\/code>, named&nbsp;<code>RunPIController()<\/code>.<\/li>\n<\/ul>\n\n\n\n<p>The necessary parameters are documented within the controllers.h header file. They are namely:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Kp<\/code>&nbsp;and&nbsp;<code>Ki<\/code>, proportional and integral gains, respectively.<\/li>\n\n\n\n<li><code>Td<\/code>&nbsp;the derivative time-constant, which must be set to zero for a PI.<\/li>\n\n\n\n<li><code>limup<\/code>&nbsp;and&nbsp;<code>limlow<\/code>, the upper and lower saturation thresholds of the output.<\/li>\n\n\n\n<li><code>Ts<\/code>, corresponding to the sampling (interrupt) period.<\/li>\n\n\n\n<li><code>N<\/code>, the filtering factor of the derivative term, which is not used for a PI.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"253\" height=\"483\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Imperix-Cpp-IDE.png\" alt=\"Imperix CPP IDE\" class=\"wp-image-101\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Imperix-Cpp-IDE.png 253w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Imperix-Cpp-IDE-157x300.png 157w\" sizes=\"auto, (max-width: 253px) 100vw, 253px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Implementation-example\"><\/span><strong>Implementation example<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<style>.kt-accordion-id155_51633a-eb .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:8px;}.kt-accordion-id155_51633a-eb .kt-accordion-panel-inner{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kt-accordion-id155_51633a-eb > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-right:var(--global-kb-spacing-xs, 1rem);padding-bottom:var(--global-kb-spacing-xxs, 0.5rem);padding-left:var(--global-kb-spacing-xs, 1rem);}@media all and (max-width: 767px){.kt-accordion-id155_51633a-eb .kt-accordion-inner-wrap{display:block;}.kt-accordion-id155_51633a-eb .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:8px;}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id155_51633a-eb kt-accordion-has-2-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-basic kt-accodion-icon-side-right\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-1 kt-pane155_12f0b1-43\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Initialization<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">\"..\/API\/controllers.h\"<\/span><\/span>\nPIDController mycontroller_Ib;\nPIDController mycontroller_Udc;\n \n<span class=\"hljs-keyword\">float<\/span> Kp_Ib = <span class=\"hljs-number\">18.75<\/span>;\n<span class=\"hljs-keyword\">float<\/span> Ki_Ib = <span class=\"hljs-number\">165<\/span>;\n<span class=\"hljs-keyword\">float<\/span> limup_Ib = <span class=\"hljs-number\">500<\/span>;\n<span class=\"hljs-keyword\">float<\/span> limlow_Ib = <span class=\"hljs-number\">-500<\/span>;\n \n<span class=\"hljs-keyword\">float<\/span> Kp_Udc = <span class=\"hljs-number\">0.195<\/span>;\n<span class=\"hljs-keyword\">float<\/span> Ki_Udc = <span class=\"hljs-number\">73.125<\/span>;\n<span class=\"hljs-keyword\">float<\/span> limup_Udc = <span class=\"hljs-number\">15<\/span>;\n<span class=\"hljs-keyword\">float<\/span> limlow_Udc = <span class=\"hljs-number\">-15<\/span>;\n \n<span class=\"hljs-function\">tUserSafe <span class=\"hljs-title\">UserInit<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">void<\/span>)<\/span>\n<\/span>{\n    <span class=\"hljs-comment\">\/\/... some code<\/span>\n    ConfigPIDController(&amp;mycontroller_Ib, Kp_Ib, Ki_Ib, <span class=\"hljs-number\">0<\/span>, limup_Ib, limlow_Ib, SAMPLING_PERIOD, <span class=\"hljs-number\">0<\/span>);\n    ConfigPIDController(&amp;mycontroller_Udc, Kp_Udc, Ki_Udc, <span class=\"hljs-number\">0<\/span>, limup_Udc, limlow_Udc, SAMPLING_PERIOD, <span class=\"hljs-number\">0<\/span>);\n    <span class=\"hljs-comment\">\/\/... some code<\/span>\n    <span class=\"hljs-keyword\">return<\/span> SAFE;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-2 kt-pane155_0b3a89-42\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">Interrupt <\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\">  <span class=\"hljs-function\">tUserSafe <span class=\"hljs-title\">UserInterrupt<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">void<\/span>)<\/span>\n<\/span>{\n    <span class=\"hljs-comment\">\/\/... some code<\/span>\n    Ib_ref = RunPIController(&amp;mycontroller_Udc, Udc_ref - Udc);\n    UL_ref = RunPIController(&amp;mycontroller_Ib, Ib_ref - Ib);\n    <span class=\"hljs-comment\">\/\/... some code<\/span>\n    <span class=\"hljs-keyword\">return<\/span> SAFE;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre><\/div><\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN108:Cascadedvoltagecontrol-Results\"><span class=\"ez-toc-section\" id=\"Results\"><\/span>Results<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The cascaded voltage control has been tested with the boost converter example shown in&nbsp;<a href=\"https:\/\/imperix.com\/doc\/implementation\/basic-pi-control\">PI-based DC current control (TN105)<\/a>.<\/p>\n\n\n\n<p>A step was performed on the DC bus voltage reference, in both simulation and experimental modes. The following graphs show a comparison between both results. An excellent agreement can be observed.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results-1.png\" alt=\"Experimental results of cascaded voltage control of a boost converter\" class=\"wp-image-161\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results-1.png 900w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results-1-300x100.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results-1-768x256.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><figcaption class=\"wp-element-caption\">Experimental results of cascaded voltage control of a boost converter<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><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<p>Beyond the example of a boost converter, the robust control architecture presented in this article can be used in many different DC-link-based converter topologies. This also applies to 3-phase converters such as the <a href=\"https:\/\/imperix.com\/doc\/implementation\/active-front-end\">active front end (TN166)<\/a> and more complex cascaded topologies including <a href=\"https:\/\/imperix.com\/doc\/implementation\/cascaded-h-bridge-converter-control\">cascaded H-bridges (TN165)<\/a> used in <a href=\"https:\/\/imperix.com\/doc\/example\/solid-state-transformer\">solid-state transformers (AN015)<\/a> and medium-voltage <a href=\"https:\/\/imperix.com\/doc\/example\/static-synchronous-compensator-statcom\">STATCOMs (AN013)<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided.<\/p>\n","protected":false},"author":5,"featured_media":3070,"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":[105,103],"provided-results":[108,107],"related-products":[50,31,32,92,166,51,112,111],"guidedreadings":[120],"tutorials":[122,132,128],"user-manuals":[],"coauthors":[65],"class_list":["post-155","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-implementation","software-environments-c-plus-plus","software-environments-matlab","provided-results-experimental","provided-results-simulation","related-products-acg-sdk","related-products-b-board-pro","related-products-b-box-rcp","related-products-b-box-micro","related-products-b-box-rcp-3-0","related-products-cpp-sdk","related-products-peb","related-products-pm","guidedreadings-static-synchronous-compensator-statcom","tutorials-active-front-end-afe","tutorials-back-to-back-three-phase-converter-with-grid-tied-lcl-filter","tutorials-single-phase-totem-pole-pfc-rectifier"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Cascaded voltage control - imperix<\/title>\n<meta name=\"description\" content=\"This note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided.\" \/>\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\/cascaded-voltage-control\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Cascaded voltage control - imperix\" \/>\n<meta property=\"og:description\" content=\"This note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-23T10:30:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-07T11:04:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN108_2.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=\"Gabriel Fernandez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gabriel Fernandez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control\"},\"author\":{\"name\":\"Gabriel Fernandez\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/dc258894f60ab86294a82af41ca66ffb\"},\"headline\":\"Cascaded voltage control\",\"datePublished\":\"2021-03-23T10:30:15+00:00\",\"dateModified\":\"2025-05-07T11:04:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control\"},\"wordCount\":1316,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN108_2.png\",\"articleSection\":[\"Technical notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control\",\"name\":\"Cascaded voltage control - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN108_2.png\",\"datePublished\":\"2021-03-23T10:30:15+00:00\",\"dateModified\":\"2025-05-07T11:04:22+00:00\",\"description\":\"This note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN108_2.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN108_2.png\",\"width\":450,\"height\":300,\"caption\":\"Typical cascaded control loop\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/cascaded-voltage-control#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\":\"Cascaded voltage control\"}]},{\"@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\\\/dc258894f60ab86294a82af41ca66ffb\",\"name\":\"Gabriel Fernandez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d2b25d4d02287fe1b624e66c91dfa87225c122136dad0791f1d43f15cfadf47?s=96&d=mm&r=g0995503f958232ca94ba9632d761de15\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d2b25d4d02287fe1b624e66c91dfa87225c122136dad0791f1d43f15cfadf47?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d2b25d4d02287fe1b624e66c91dfa87225c122136dad0791f1d43f15cfadf47?s=96&d=mm&r=g\",\"caption\":\"Gabriel Fernandez\"},\"description\":\"Gabriel is an experienced power electronics engineer and has a solid track record with imperix products. On the knowledge base, he is the author of several notes on grid-connected converters and their applications.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/gabriel-fernandez-0942b6140\\\/\",\"nico@chrx.ch\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/fernandez\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Cascaded voltage control - imperix","description":"This note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided.","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\/cascaded-voltage-control","og_locale":"en_US","og_type":"article","og_title":"Cascaded voltage control - imperix","og_description":"This note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided.","og_url":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control","og_site_name":"imperix","article_published_time":"2021-03-23T10:30:15+00:00","article_modified_time":"2025-05-07T11:04:22+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN108_2.png","type":"image\/png"}],"author":"Gabriel Fernandez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Gabriel Fernandez","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control"},"author":{"name":"Gabriel Fernandez","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/dc258894f60ab86294a82af41ca66ffb"},"headline":"Cascaded voltage control","datePublished":"2021-03-23T10:30:15+00:00","dateModified":"2025-05-07T11:04:22+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control"},"wordCount":1316,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN108_2.png","articleSection":["Technical notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control","url":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control","name":"Cascaded voltage control - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN108_2.png","datePublished":"2021-03-23T10:30:15+00:00","dateModified":"2025-05-07T11:04:22+00:00","description":"This note introduces the general operating principles of cascaded control and then details a possible design methodology. Then, an example of cascaded voltage control for a boost converter is provided.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN108_2.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN108_2.png","width":450,"height":300,"caption":"Typical cascaded control loop"},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/implementation\/cascaded-voltage-control#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":"Cascaded voltage control"}]},{"@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\/dc258894f60ab86294a82af41ca66ffb","name":"Gabriel Fernandez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6d2b25d4d02287fe1b624e66c91dfa87225c122136dad0791f1d43f15cfadf47?s=96&d=mm&r=g0995503f958232ca94ba9632d761de15","url":"https:\/\/secure.gravatar.com\/avatar\/6d2b25d4d02287fe1b624e66c91dfa87225c122136dad0791f1d43f15cfadf47?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6d2b25d4d02287fe1b624e66c91dfa87225c122136dad0791f1d43f15cfadf47?s=96&d=mm&r=g","caption":"Gabriel Fernandez"},"description":"Gabriel is an experienced power electronics engineer and has a solid track record with imperix products. On the knowledge base, he is the author of several notes on grid-connected converters and their applications.","sameAs":["https:\/\/www.linkedin.com\/in\/gabriel-fernandez-0942b6140\/","nico@chrx.ch"],"url":"https:\/\/imperix.com\/doc\/author\/fernandez"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/155","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=155"}],"version-history":[{"count":35,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/155\/revisions"}],"predecessor-version":[{"id":32776,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/155\/revisions\/32776"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/3070"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=155"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=155"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=155"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=155"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=155"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=155"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=155"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}