{"id":136,"date":"2021-03-23T09:29:34","date_gmt":"2021-03-23T09:29:34","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=136"},"modified":"2026-01-19T14:46:06","modified_gmt":"2026-01-19T14:46:06","slug":"vector-current-control","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control","title":{"rendered":"Vector current 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\/vector-current-control\/#General-principles-of-vector-current-control\" >General principles of vector current 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\/vector-current-control\/#Inverter-current-control-example\" >Inverter current control example<\/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\/vector-current-control\/#System-level-modeling\" >System-level modeling<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/implementation\/vector-current-control\/#Tuning-and-performance-evaluation\" >Tuning and performance evaluation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/implementation\/vector-current-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\/vector-current-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\/vector-current-control\/#Software-resources\" >Software resources<\/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\/vector-current-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\/vector-current-control\/#Simulink-implementation-of-vector-current-control\" >Simulink implementation of vector current control<\/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\/vector-current-control\/#PLECS-implementation-of-vector-current-control\" >PLECS implementation of vector current control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/imperix.com\/doc\/implementation\/vector-current-control\/#Results-of-vector-current-control\" >Results of vector current control<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n<p>Vector current control (also known as <em>dq current control<\/em>) is a widespread current control technique for three-phase AC currents, which uses a rotating reference frame, synchronized with the grid voltage (<em>dq<\/em>-frame).<\/p>\n\n\n\n<p>First, the note introduces the general operating principles of vector current control and then details a possible design methodology.<\/p>\n\n\n\n<p>Then, an example of vector current control for a two-level inverter 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 <a href=\"https:\/\/imperix.com\/software\/acg-sdk\/\">Simulink\/PLECS<\/a> implementations. Finally, simulation and experimental results are compared and discussed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Generalprinciples\"><span class=\"ez-toc-section\" id=\"General-principles-of-vector-current-control\"><\/span>General principles of vector current control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In DC applications, conventional <a href=\"https:\/\/imperix.com\/doc\/implementation\/basic-pi-control\">PI controllers<\/a> provide excellent performance, notably minimal steady-state error, thanks to the (almost) infinite DC gain provided by the integral control action. However, in AC applications, PI controllers inevitably present a delayed tracking response, because their gains cannot be set high enough to avoid a steady-state error.<\/p>\n\n\n\n<p>A well-known countermeasure to this shortcoming is the implementation of the PI controller(s) within a rotating reference frame (dq), which allows to \u201cre-locate\u201d the (almost) infinite DC gain at the desired frequency. This technique requires the rotating reference frame to be synchronized with the grid voltage, which is often achieved using a phase-locked loop PLL.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The implementation of PLL techniques is notably addressed in:<br>&#8211;\u00a0<a href=\"https:\/\/imperix.com\/doc\/implementation\/synchronous-reference-frame-pll\">DQ-type or SRF PLL (TN103)<\/a>: a standard technique for most applications<br>&#8211;\u00a0<a href=\"https:\/\/imperix.com\/doc\/implementation\/sogi-pll\">SOGI-based PLL (TN104)<\/a>: a more advanced technique for distorted or unbalanced conditions.<\/div>\n\n\n\n<p>In practice, once the reference frame is established, the use of the Clarke and Park transformations allows projecting all stationery quantities (abc) into direct and quadrature quantities (dq). The control of the AC current becomes therefore transformed into a new control scenario, consisting of two DC currents. Both currents can then be controlled using conventional PI controllers, with zero steady-state error.<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"381\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles_8col-1024x381.jpg\" alt=\"General principles of vector current control\" class=\"wp-image-140\" style=\"width:595px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles_8col-1024x381.jpg 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles_8col-300x112.jpg 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles_8col-768x286.jpg 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/General-principles_8col.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">General principle of vector current control implementation<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Invertercurrentcontrolexample\"><span class=\"ez-toc-section\" id=\"Inverter-current-control-example\"><\/span>Inverter current control example<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In this note, it is proposed to study the vector current control of a two-level inverter. This example features two state variables: the grid current on the d-axis&nbsp;\\(I_{g,d}\\)&nbsp;and on the q-axis&nbsp;\\(I_{g,q}\\).<\/p>\n\n\n<div class=\"wp-block-image is-resized\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1280\" height=\"409\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Topology_Cascaded-voltage_control_8col.jpg\" alt=\"Three-phase grid tie inverter schematic\" class=\"wp-image-141\" style=\"width:535px;height:auto\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Topology_Cascaded-voltage_control_8col.jpg 1280w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Topology_Cascaded-voltage_control_8col-300x96.jpg 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Topology_Cascaded-voltage_control_8col-1024x327.jpg 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Topology_Cascaded-voltage_control_8col-768x245.jpg 768w\" sizes=\"auto, (max-width: 1280px) 100vw, 1280px\" \/><figcaption class=\"wp-element-caption\">Schematic of a three-phase grid-tied inverter<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Using general Kirchhoff circuit laws, the fundamental voltages generated by the inverter are expressed as:<\/p>\n\n\n\n<p>$$ \\begin{aligned}[c] E_{a} &amp;= R_g I_{g,a} + L_g \\frac{di_{g,a}}{dt} + V_{g,a} \\\\ E_{b} &amp;= R_g I_{g,b} + L_g \\frac{di_{g,b}}{dt} + V_{g,b} \\\\ E_{c} &amp;= R_g I_{g,c} + L_g \\frac{di_{g,c}}{dt} + V_{g,c} \\end{aligned}$$<\/p>\n\n\n\n<p>In a dq rotating reference frame synchronized with the grid voltages, this is translated into:<\/p>\n\n\n\n<p> $$ \\begin{aligned}[c] E_{d} &amp;= R_g I_{g,d} + L_g \\frac{di_{g,d}}{dt} -\\omega_g L_g I_{g,q} + V_{g,d} \\\\ E_{q} &amp;= R_g I_{g,q} + L_g \\frac{di_{g,q}}{dt} +\\omega_g L_g I_{g,d} + V_{g,q} \\end{aligned} $$<\/p>\n\n\n\n<p>In the Laplace domain, the d- and q-axis currents are expressed as:<\/p>\n\n\n\n<p>$$ \\begin{aligned}[c] I_{g,d} = \\frac{1}{R_g + s L_g} (E_d &#8211; V_{g,d} + \\omega_g L_g I_{g,q}) \\\\ I_{g,q} = \\frac{1}{R_g + s L_g} (E_q &#8211; V_{g,q} &#8211; \\omega_g L_g I_{g,d}) \\\\ \\end{aligned} $$<\/p>\n\n\n\n<p>Note that the mathematical transformation brings coupled terms, that are proportional to the grid angular frequency \\(\\omega_g\\). These terms will be compensated in the next section to achieve decoupled control of both d- and q-axis currents.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-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>A widely-accepted model for the proposed system is shown below. Four distinct parts can be clearly identified.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"278\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling_12col.png\" alt=\"Vector current control of a three-phase power converter\" class=\"wp-image-142\" style=\"width:780px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling_12col.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling_12col-300x104.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/system_level_modeling_12col-768x267.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">Three-phase inverter model for vector current control<\/figcaption><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Plant\">Plant<\/h4>\n\n\n\n<p>The inductor is modeled as:<\/p>\n\n\n\n<p>$$ P_1(s) = \\displaystyle\\frac{K_1}{1+s T_1} \\qquad \\text{with} \\qquad \\begin{cases}K_1 = 1\/R_g \\\\ T_1 = L_g\/R_g \\end{cases} $$<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Measurements\">Measurements<\/h4>\n\n\n\n<p>The measurements of the currents&nbsp;\\(I_{g,abc}\\) are generally modeled using a low-pass filter approximation, or they are neglected. The sampling corresponds to a zero-order hold (ZOH) that introduces a lag corresponding to the sampling delay.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Control\">Control<\/h4>\n\n\n\n<p>The control algorithm consists of two digital PI controllers followed by some basic mathematics operations to compute the duty cycles. The whole algorithm requires a certain amount of computation time, which is modeled as a delay.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Modulation\">Modulation<\/h4>\n\n\n\n<p>The <a href=\"https:\/\/imperix.com\/doc\/software\/cb-pwm-carrier-based-pwm\">Pulse-Width Modulation (PWM)<\/a> is also generally modeled as a simple delay.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Tuningandperformanceevaluation\"><span class=\"ez-toc-section\" id=\"Tuning-and-performance-evaluation\"><\/span>Tuning and performance evaluation<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Different methods are proposed in the literature to determine the parameters of a PI controller. Those methods are well detailed and explained in [1]. In this note, the Magnitude Optimum (MO) will be used.<\/p>\n\n\n\n<p>The goal of the MO is to make the frequency response from reference to the plant output as close to one as possible for low frequencies. It can be shown that the corresponding optimal controller parameters \\(K_p\\) and \\(K_i\\) are:<\/p>\n\n\n\n<p>$$ K_p = \\frac{T_1}{2K_1 T_d}=\\frac{L_g}{2T_d} \\quad \\quad \\quad  K_i = \\frac{1}{2K_1 T_d}=\\frac{R_g}{2T_d}$$<\/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 computation delay or the modulation delay mentioned above. The product note&nbsp;<a href=\"https:\/\/imperix.com\/doc\/help\/discrete-control-delay\">Time delay determination for closed-loop control (PN142)<\/a> explains how to determine the total delay of the system.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-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<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-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\" id=\"h-software-resources\"><span class=\"ez-toc-section\" id=\"Software-resources\"><\/span>Software resources<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\">\n<h4 class=\"wp-block-heading\" id=\"h-simulink-model\"><strong>PLECS  model<\/strong><\/h4>\n\n\n\n<p id=\"h-using-plecs-for-plant-simulation\">using <strong>PLECS <\/strong>for plant simulation<\/p>\n\n\n\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-e841ba4c-195e-4b92-95b3-5fb5a17689fd\" href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/06\/TN106_Vector_Current_control_PLECS.plecs\">TN106_Vector_Current_control_PLECS<\/a><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/06\/TN106_Vector_Current_control_PLECS.plecs\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-e841ba4c-195e-4b92-95b3-5fb5a17689fd\">Download<\/a><\/div>\n\n\n\n<p><em>Minimum requirements:<\/em><br><em>Imperix ACG SDK \u22653.6.1 | PLECS  \u2265 4.5.9 <\/em><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h4 class=\"wp-block-heading\" id=\"h-simulink-model-1\"><strong>Simulink model<\/strong><\/h4>\n\n\n\n<p id=\"h-using-plecs-for-plant-simulation\">using <strong>Simscape <\/strong>for plant simulation<\/p>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN106_Vector_Current_Control_Simscape.zip\">TN106 Simulink 2016a Simscape<\/a><a href=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/03\/TN106_Vector_Current_Control_Simscape.zip\" class=\"wp-block-file__button wp-element-button\" download>Download<\/a><\/div>\n\n\n\n<p><em>Minimum requirements:<\/em><br><em>Imperix ACG SDK \u22653.6.1 | MATLAB Simulink \u2265R2016a | [offline simulation only] Simscape (paid license)<\/em><\/p>\n<\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-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<\/div>\n\n\n\n<div class=\"wp-block-column 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<h4 class=\"wp-block-heading\">Implementation example<\/h4>\n\n\n<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\">\n<span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">\"..\/API\/controllers.h\"<\/span><\/span>\nPIDController mycontroller_d;\nPIDController mycontroller_q;\n \n<span class=\"hljs-keyword\">float<\/span> Kp = <span class=\"hljs-number\">10.0<\/span>;\n<span class=\"hljs-keyword\">float<\/span> Ki = <span class=\"hljs-number\">500.0<\/span>;\n<span class=\"hljs-keyword\">float<\/span> limup = <span class=\"hljs-number\">500<\/span>;\n<span class=\"hljs-keyword\">float<\/span> limlow = <span class=\"hljs-number\">-500<\/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    ConfigPIDController(&amp;mycontroller_d, Kp, Ki, <span class=\"hljs-number\">0<\/span>, limup, limlow, SAMPLING_PERIOD, <span class=\"hljs-number\">0<\/span>);\n    ConfigPIDController(&amp;mycontroller_q, Kp, Ki, <span class=\"hljs-number\">0<\/span>, limup, limlow, SAMPLING_PERIOD, <span class=\"hljs-number\">0<\/span>);\n    <span class=\"hljs-keyword\">return<\/span> SAFE;\n}\n<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    Egd_ref = RunPIController(&amp;mycontroller_d, Igd_ref - Igd) + Vgd - w*L*Igq;\n    Egq_ref = RunPIController(&amp;mycontroller_q, Igq_ref - Igq) + Vgq + w*L*Igd;\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>\n\n\n<h3 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Simulinkimplementation\"><span class=\"ez-toc-section\" id=\"Simulink-implementation-of-vector-current-control\"><\/span>Simulink implementation of vector current control<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The attached file provides a typical current control implementation for a <a href=\"https:\/\/imperix.com\/doc\/example\/three-phase-pv-inverter\">grid-connected inverter<\/a>. Alternatively, a simplified version of this control can be found in the <a href=\"https:\/\/imperix.com\/doc\/implementation\/space-vector-modulation\">space vector modulation (SVM)<\/a> note with a passive RL load.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1481\" height=\"583\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2022\/01\/Simulink_control_model.png\" alt=\"Vector current control implementation in the frame of a three-phase inverter\" class=\"wp-image-10192\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2022\/01\/Simulink_control_model.png 1481w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2022\/01\/Simulink_control_model-300x118.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2022\/01\/Simulink_control_model-1024x403.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2022\/01\/Simulink_control_model-768x302.png 768w\" sizes=\"auto, (max-width: 1481px) 100vw, 1481px\" \/><figcaption class=\"wp-element-caption\">Vector current control implementation in the frame of a three-phase inverter<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-PLECSimplementation\"><span class=\"ez-toc-section\" id=\"PLECS-implementation-of-vector-current-control\"><\/span>PLECS implementation of vector current control<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The included file for PLECS also provides a PI controller block. The default PI block of the PLECS library can be used as well.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"328\" height=\"127\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Plecs_PI.png\" alt=\"Typical implementation of a PI controller in PLECS\" class=\"wp-image-110\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Plecs_PI.png 328w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Plecs_PI-300x116.png 300w\" sizes=\"auto, (max-width: 328px) 100vw, 328px\" \/><figcaption class=\"wp-element-caption\">Typical implementation of a PI controller in PLECS<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"TN106:Vectorcurrentcontrol-Results\"><span class=\"ez-toc-section\" id=\"Results-of-vector-current-control\"><\/span>Results of vector current control<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The vector current control was tested with a <a href=\"https:\/\/imperix.com\/doc\/example\/three-phase-pv-inverter\">grid-connected inverter<\/a>. A current reference step on both the d-axis and the q-axis was performed in simulation and experimental modes. The following graphs show a comparison between both results:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results_vc.png\" alt=\"Vector current control behavior in a three-phase inverter\" class=\"wp-image-144\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results_vc.png 900w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results_vc-300x100.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results_vc-768x256.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><figcaption class=\"wp-element-caption\">Vector current control behavior in a three-phase inverter<\/figcaption><\/figure>\n\n\n\n<p>Small differences can be observed between <a href=\"https:\/\/imperix.com\/doc\/help\/getting-started-acg-sdk-simulink#PN134:GettingstartedwithACGSDKonSimulink-Simulationandcodegeneration\">the simulation and the experimental results<\/a>, which can be explained by the following facts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>In simulation, the variable transformer is not taken into account (modeled). The transformer increases the total inductance between the converter and the grid, which in turn increases the inertia of the system.<\/li>\n\n\n\n<li>The EMC filter used to reduce the common-mode current is also not modeled in the simulation.<\/li>\n<\/ul>\n\n\n\n<p>A ripple can be observed on the real grid currents in&nbsp;<em>dq<\/em>-frame. The frequency of the ripple is 300Hz, or 6 times the output fundamental frequency. This phenomenon can be reproduced in simulation by properly taking into account the effect of the dead-time between the complementary PWM signals. In the imperix <a href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\">CB-PWM<\/a> block, this can be achieved by simply activating the simulation of dead-times. The simulation of dead-times allows a slightly better accuracy but significantly slows down the simulation. The following picture shows a comparison between the new simulation and the experimental results.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results2.png\" alt=\"Experimental results of vector current control, focus on the current ripple\" class=\"wp-image-145\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results2.png 900w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results2-300x100.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/Results2-768x256.png 768w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\" \/><figcaption class=\"wp-element-caption\">Experimental results of vector current control, focus on the current ripple<\/figcaption><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Vector current control is a widespread current control technique for three-phase AC currents, which uses a rotating reference frame, synchronized with the grid voltage (dq-frame)<\/p>\n","protected":false},"author":5,"featured_media":3033,"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":[53],"software-environments":[105,103,104],"provided-results":[108,107],"related-products":[50,31,32,92,166,51,112,111,110],"guidedreadings":[120],"tutorials":[125,123],"user-manuals":[],"coauthors":[65],"class_list":["post-136","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-implementation","tag-current-control","software-environments-c-plus-plus","software-environments-matlab","software-environments-plecs","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","related-products-tpi","guidedreadings-static-synchronous-compensator-statcom","tutorials-grid-following-inverter-gfli","tutorials-neutral-point-clamped-inverter-npc"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Vector current control - imperix<\/title>\n<meta name=\"description\" content=\"This page describes a common vector current control technique for grid connected power inverters, using a grid-oriented reference frame.\" \/>\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\/vector-current-control\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vector current control - imperix\" \/>\n<meta property=\"og:description\" content=\"This page describes a common vector current control technique for grid connected power inverters, using a grid-oriented reference frame.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/implementation\/vector-current-control\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-23T09:29:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-19T14:46:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN106.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=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control\"},\"author\":{\"name\":\"Gabriel Fernandez\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/dc258894f60ab86294a82af41ca66ffb\"},\"headline\":\"Vector current control\",\"datePublished\":\"2021-03-23T09:29:34+00:00\",\"dateModified\":\"2026-01-19T14:46:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control\"},\"wordCount\":1374,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN106.png\",\"keywords\":[\"Current control\"],\"articleSection\":[\"Technical notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control\",\"name\":\"Vector current control - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN106.png\",\"datePublished\":\"2021-03-23T09:29:34+00:00\",\"dateModified\":\"2026-01-19T14:46:06+00:00\",\"description\":\"This page describes a common vector current control technique for grid connected power inverters, using a grid-oriented reference frame.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-control#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN106.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/3_2_ratio_TN106.png\",\"width\":450,\"height\":300,\"caption\":\"Vector current control of a three-phase power converter\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/vector-current-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\":\"Vector current 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":"Vector current control - imperix","description":"This page describes a common vector current control technique for grid connected power inverters, using a grid-oriented reference frame.","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\/vector-current-control","og_locale":"en_US","og_type":"article","og_title":"Vector current control - imperix","og_description":"This page describes a common vector current control technique for grid connected power inverters, using a grid-oriented reference frame.","og_url":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control","og_site_name":"imperix","article_published_time":"2021-03-23T09:29:34+00:00","article_modified_time":"2026-01-19T14:46:06+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN106.png","type":"image\/png"}],"author":"Gabriel Fernandez","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Gabriel Fernandez","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control"},"author":{"name":"Gabriel Fernandez","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/dc258894f60ab86294a82af41ca66ffb"},"headline":"Vector current control","datePublished":"2021-03-23T09:29:34+00:00","dateModified":"2026-01-19T14:46:06+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control"},"wordCount":1374,"commentCount":3,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN106.png","keywords":["Current control"],"articleSection":["Technical notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/implementation\/vector-current-control#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control","url":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control","name":"Vector current control - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN106.png","datePublished":"2021-03-23T09:29:34+00:00","dateModified":"2026-01-19T14:46:06+00:00","description":"This page describes a common vector current control technique for grid connected power inverters, using a grid-oriented reference frame.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/implementation\/vector-current-control"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-control#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN106.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/3_2_ratio_TN106.png","width":450,"height":300,"caption":"Vector current control of a three-phase power converter"},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/implementation\/vector-current-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":"Vector current 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\/136","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=136"}],"version-history":[{"count":51,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/136\/revisions"}],"predecessor-version":[{"id":33683,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/136\/revisions\/33683"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/3033"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=136"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=136"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=136"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=136"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=136"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=136"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=136"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}