{"id":1453,"date":"2021-04-02T12:29:33","date_gmt":"2021-04-02T12:29:33","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=1453"},"modified":"2026-02-05T09:00:30","modified_gmt":"2026-02-05T09:00:30","slug":"rotor-field-oriented-control","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control","title":{"rendered":"Rotor Field-Oriented Control (RFOC) of an induction machine"},"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\/rotor-field-oriented-control\/#General-principles-of-Rotor-Field-Oriented-Control\" >General principles of Rotor Field-Oriented 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\/rotor-field-oriented-control\/#Modeling-of-the-induction-machine\" >Modeling of the induction machine<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control\/#Rotor-flux-control\" >Rotor flux control<\/a><\/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\/rotor-field-oriented-control\/#Torque-control\" >Torque control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control\/#Current-controller-for-Rotor-Field-Oriented-Control\" >Current controller for Rotor Field-Oriented Control<\/a><\/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\/rotor-field-oriented-control\/#RRF-orientation-for-Rotor-Field-Oriented-Control\" >RRF orientation for Rotor Field-Oriented Control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control\/#B-Box-B-Board-implementation-of-Rotor-Field-Oriented-Control\" >B-Box \/ B-Board implementation of Rotor Field-Oriented Control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control\/#Experimental-results-of-Rotor-Field-Oriented-Control\" >Experimental results of Rotor Field-Oriented Control<\/a><\/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\/rotor-field-oriented-control\/#Comparison-between-Rotor-Field-Oriented-Control-and-Vf-control\" >Comparison between Rotor Field-Oriented Control and V\/f control<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control\/#Academic-references\" >Academic references<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>This technical note presents a possible implementation of a Rotor Field-Oriented Control (RFOC) of an Induction Machine (IM) with a squirrel cage.<\/p>\n\n\n\n<p>First, the note introduces the general operating principles of the RFOC. Then, it explains how the stator&#8217;s electrical speed and position can be estimated from the mechanical speed of the rotor.<\/p>\n\n\n\n<p>Finally, a practical control implementation is introduced, targeting 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;with&nbsp;the&nbsp;<a href=\"https:\/\/imperix.com\/software\/acg-sdk\/simulink\/\">ACG SDK on Simulink<\/a>. Please note that imperix offers a <a href=\"https:\/\/imperix.com\/products\/electric-motor-drive-bundle\/\">ready-to-use motor drive system<\/a> to develop and test motor control techniques. More details can be found in the <a href=\"https:\/\/imperix.com\/doc\/help\/motor-testbench-quick-start-guide\">Motor Testbench quick start guide (PN181)<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"780\" height=\"383\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/PN181-motor-testbench-no-labels.png\" alt=\"Experimental setup to test a Rotor Field-Oriented Control with imperix products.\" class=\"wp-image-27034\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/PN181-motor-testbench-no-labels.png 780w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/PN181-motor-testbench-no-labels-300x147.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2024\/03\/PN181-motor-testbench-no-labels-768x377.png 768w\" sizes=\"auto, (max-width: 780px) 100vw, 780px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-general-principles-of-rotor-field-oriented-control\"><span class=\"ez-toc-section\" id=\"General-principles-of-Rotor-Field-Oriented-Control\"><\/span>General principles of Rotor Field-Oriented Control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The technical note&nbsp;<a href=\"https:\/\/imperix.com\/doc\/implementation\/field-oriented-control-of-permanent-magnet-synchronous-machine\">TN111<\/a> introduces the principles of a <em>Field-Oriented Control (FOC)<\/em> for a Permanent Magnets Synchronous Machine (PMSM). In the case of an induction machine with a squirrel cage [1], the general idea is the same: the flux and torque are controlled independently in a Reference Rotating Frame (RRF) by &#8211; respectively &#8211; the d and q components of the stator current.<\/p>\n\n\n\n<p>However, there are two key differences between a PMSM and an IM [2]: the rotor of the IM is mechanically not synchronous with the stator flux. Additionally, the IM does not have permanent magnets on the rotor: instead, the rotor is magnetized from the stator. Consequently, the FOC from the PMSM must be adapted to take these key differences into account.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-choice-of-the-orientation\">Choice of the orientation<\/h3>\n\n\n\n<p>As mentioned above, the rotor is not necessarily rotating at the same speed as the stator (mechanically speaking). Therefore, unlike a PMSM (<a href=\"https:\/\/imperix.com\/doc\/implementation\/field-oriented-control-of-permanent-magnet-synchronous-machine\">TN111<\/a>), there are multiple ways to orient the RRF for an IM. Decoupled control of torque and flux quantities can be achieved by orienting the RRF on the stator, rotor, or air-gap fluxes [3]. In this note, <em>Rotor Field-Oriented Control (RFOC)&nbsp;<\/em>is chosen for its simplicity and higher torque dynamics&nbsp;[3].<\/p>\n\n\n\n<p>In an induction machine, the rotor flux frequency is the sum of the mechanical and the slip frequencies [4]. The mechanical frequency is measurable but the slip must be estimated as explained in the <em>RRF orientation<\/em> section.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-system-level-modeling\">System-level modeling of a Rotor Field-Oriented Control<\/h3>\n\n\n\n<p>The independent control of \\(I_{ds}\\) and \\(I_{qs}\\) &nbsp;can consist of two PI regulators with a decoupling network, as any vector control strategy [1]. The FOC algorithm usually generates voltage references that a PWM modulator transforms into gating signals for a voltage source inverter. In this note, the rotor position measurement is derived from an incremental encoder. The figure below shows the complete block diagram of the implementation, with a <a href=\"https:\/\/imperix.com\/doc\/software\/carrier-based-pwm\">carrier-based PWM modulator<\/a> and an encoder\/decoder module. Please note that <a href=\"https:\/\/imperix.com\/doc\/implementation\/space-vector-modulation\">space vector modulation<\/a> could alternatively be used to improve the<a href=\"https:\/\/imperix.com\/doc\/implementation\/svpwm-vs-spwm-modulation-techniques\"> DC bus utilization<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"601\" height=\"309\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-22.png\" alt=\"Rotor Field-Oriented Control (RFOC) block diagram\" class=\"wp-image-1456\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; RFOC_principle.png (Rotor Field-Oriented Control block diagram)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-22.png 601w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-22-300x154.png 300w\" sizes=\"auto, (max-width: 601px) 100vw, 601px\" \/><figcaption class=\"wp-element-caption\">Rotor Field-Oriented Control block diagram<\/figcaption><\/figure>\n<\/div>\n\n\n<p>All the speeds and angles are expressed as electrical quantities.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\\(\\omega _m\\) : the mechanical speed of the rotor (stationary reference frame)<\/li>\n\n\n\n<li>\\(\\omega _r\\) : the speed of the rotor flux (stationary reference frame)<\/li>\n\n\n\n<li>\\(\\omega _s\\) : the speed of the stator flux (stationary reference frame)<\/li>\n\n\n\n<li>\\(\\omega _{slip} = \\omega _r &#8211; \\omega _m\\) : the speed of the rotor flux (rotor reference frame)<\/li>\n<\/ul>\n\n\n\n<p>The corresponding angles are then obtained by integration.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-modeling-of-the-induction-machine\"><span class=\"ez-toc-section\" id=\"Modeling-of-the-induction-machine\"><\/span>Modeling of the induction machine<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Now that the orientation of the RRF is chosen, a model of the machine can be established in this frame.<\/p>\n\n\n\n<p>The equation of the stator circuit is [4]:<\/p>\n\n\n\n<p>$$\\displaystyle (1) \\qquad \\underline{V}_{dqs} = R_s \\underline{I}_{dqs} + \\frac{d \\underline{\\Psi}_{dqs}}{dt} + j \\omega _r \\underline{\\Psi}_{dqs}$$<\/p>\n\n\n\n<p>The equation of the rotor circuit is [4]:<\/p>\n\n\n\n<p>$$\\displaystyle (2) \\qquad 0 = R_r \\underline{I}_{dqr} + \\frac{d \\underline{\\Psi}_{dqr}}{dt} + j (\\omega _r &#8211; \\omega _m)\\underline{\\Psi}_{dqr}$$<\/p>\n\n\n\n<p>The fluxes are then linked to the currents [4] by:<\/p>\n\n\n\n<p>$$\\displaystyle (3) \\qquad \\underline{\\Psi}_{dqs} = L_s \\underline{I}_{dqs} + L_m \\underline{I}_{dqr} \\\\ \\quad \\quad \\quad  \\displaystyle (4) \\qquad \\underline{\\Psi}_{dqr} = L_r \\underline{I}_{dqr} + L_m \\underline{I}_{dqs}$$<\/p>\n\n\n\n<p>Finally, the torque is [4]:<\/p>\n\n\n\n<p>$$\\displaystyle (5) \\qquad T_{em} = \\frac{3}{2} p (\\Psi _{ds} I_{qs} &#8211; \\Psi _{qs} I_{ds})$$<\/p>\n\n\n\n<p>In the literature [4], equations (1) &#8211; (4) are commonly used to establish an equivalent circuit of the machine in steady-state as presented in the figure below. Notice that the iron resistance is often neglected because I_fe is much smaller than the other currents.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"301\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/equivalent_circuit-1.png\" alt=\"Squirrel cage induction machine equivalent circuit\" class=\"wp-image-9026\" style=\"width:400px;height:151px\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; equivalent_circuit.png (Steady-state equivalent circuit of a squirrel cage induction machine)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/equivalent_circuit-1.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/equivalent_circuit-1-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/11\/equivalent_circuit-1-768x289.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">Steady-state equivalent circuit of a squirrel cage induction machine<\/figcaption><\/figure>\n<\/div>\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<figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Symbol<\/th><\/tr><\/thead><tbody><tr><td>Stator resistance<\/td><td>\\(R_s\\)<\/td><\/tr><tr><td>Stator inductance<\/td><td>\\(L_s\\)<\/td><\/tr><tr><td>Stator leakage inductance<\/td><td>\\(L_{\\gamma s}\\)<\/td><\/tr><tr><td>Mutual inductance<\/td><td>\\(L_m\\)<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-table\"><table><thead><tr><th>Parameter<\/th><th>Symbol<\/th><\/tr><\/thead><tbody><tr><td>Rotor resistance <sup>*<\/sup><\/td><td>\\(R_r\\)<\/td><\/tr><tr><td>Rotor inductance<sup>*<\/sup><\/td><td>\\(L_r\\)<\/td><\/tr><tr><td>Rotor leakage inductance<sup>*<\/sup><\/td><td>\\(L_{\\gamma r}\\)<\/td><\/tr><tr><td>Iron resistance<\/td><td>\\(R_{fe}\\)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"has-text-align-right\"><em>*&nbsp;Rotor variables referred to the stator side<\/em><\/p>\n<\/div>\n<\/div>\n\n\n\n<p>From (4), the rotor current can be expressed as:<\/p>\n\n\n\n<p>$$\\displaystyle (6) \\qquad \\underline{I} _{dqr} = \\frac{1}{L_r} (\\underline{\\Psi} _{dqr} &#8211; L_m \\underline{I}_{dqs})$$<\/p>\n\n\n\n<p>In an induction machine with a squirrel cage, the rotor circuit is not accessible. Therefore, the rotor current \\(\\underline{I} _r\\) cannot be measured and must be eliminated from the previous expressions.<\/p>\n\n\n\n<p>By substituting (6) into (3), \\(\\underline{I} _r\\) is removed from the stator flux expression:<\/p>\n\n\n\n<p>$$\\displaystyle (7) \\qquad \\underline{\\Psi} _{dqs} = L_{\\sigma}\\underline{I} _{dqs} + \\frac{L_m}{L_r} \\underline{\\Psi} _{dqr} \\qquad \\text{with} \\space L_{\\sigma} = L_s &#8211; \\frac{L_m^2}{L_r}$$<\/p>\n\n\n\n<p>In a similar way, \\(\\underline{I} _r\\) is removed from the rotor circuit equation (2):<\/p>\n\n\n\n<p>$$\\displaystyle (8) \\qquad \\frac{d \\underline{\\Psi} _{dqr}}{dt} = \\frac{L_m}{T_r} \\underline{I} _{dqs} &#8211; \\left(j (\\omega _r &#8211; \\omega _m) + \\frac{1}{T_r}\\right) \\underline{\\Psi} _{dqr} \\qquad \\text{with} \\space T_r = \\frac{L_r}{R_r}$$<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-rotor-flux-control\"><span class=\"ez-toc-section\" id=\"Rotor-flux-control\"><\/span>Rotor flux control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The next step is to establish how to control the rotor flux. In an induction machine with a squirrel cage, there is no access to the rotor circuit and no permanent magnets. Therefore, the rotor must be magnetized from the stator.<\/p>\n\n\n\n<p>Equation (8) suggests that the rotor flux can be controlled by the stator current. Assuming that the RRF is correctly aligned on the rotor flux, let us split equation (8) into its real and imaginary parts:<\/p>\n\n\n\n<p>$$\\displaystyle (9) \\qquad \\frac{d \\Psi _r}{dt} = \\frac{L_m}{T_r} I_{ds} &#8211; \\frac{1}{T_r} \\Psi _r \\\\ \\displaystyle (10) \\qquad 0 = \\frac{L_m}{T_r} I_{qs} &#8211; (\\omega _r &#8211; \\omega _m) \\Psi _r$$<\/p>\n\n\n\n<p>From (9), the rotor flux is directly proportional to the d-axis stator current in steady-state:<\/p>\n\n\n\n<p>$$\\displaystyle (11) \\qquad \\Psi _r = L_m I_{ds}$$<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-torque-control\"><span class=\"ez-toc-section\" id=\"Torque-control\"><\/span>Torque control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Once the rotor is magnetized, the machine can produce torque. Equation (5) describes the torque as a function of the stator flux and current. Assuming that the RRF is correctly aligned on the rotor flux, equation (7) becomes:<\/p>\n\n\n\n<p>$$(12) \\qquad \\left\\{ \\begin{array}{ll} \\displaystyle \\Psi _{ds} &amp;= L_{\\sigma} I_{ds} + \\frac{L_m}{L_r} \\Psi _r \\\\ \\displaystyle \\Psi _{qs} &amp;= L_{\\sigma} I_{qs} \\end{array}\\right.$$<\/p>\n\n\n\n<p>By injecting (12) into (5), the torque can be expressed as a function of the rotor flux and the q-axis current component.<\/p>\n\n\n\n<p>$$\\displaystyle (13) \\qquad T_{em} = \\frac{3}{2} p \\frac{L_m}{L_r} \\Psi _r I_{qs}$$<\/p>\n\n\n\n<p>If the rotor flux is kept constant, the torque is directly proportional to the q-axis component of the stator current.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Unlike a PMSM, the d-axis component of the current of an IM also contributes to the torque generation.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-current-controller\"><span class=\"ez-toc-section\" id=\"Current-controller-for-Rotor-Field-Oriented-Control\"><\/span>Current controller for Rotor Field-Oriented Control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As explained in the previous section, the rotor flux and the torque are directly proportional to the d and q components of the stator current. Therefore, they can be controlled using a stator current controller.<\/p>\n\n\n\n<p>The stator circuit is described by (1). By injecting (7) into (1), it is possible to replace the stator flux with the rotor flux.<\/p>\n\n\n\n<p>$$\\displaystyle (14) \\qquad \\underline{V}_{dqs} = R_s \\underline{I}_{dqs} + L_{\\sigma} \\frac{d \\underline{I}_{dqs}}{dt} + j \\omega _r L_{\\sigma} \\underline{I}_{dqs} + \\frac{L_m}{L_r} \\frac{d \\underline{\\Psi}_{dqr}}{dt} + j \\omega _r \\frac{L_m}{L_r} \\underline{\\Psi}_{dqr}$$<\/p>\n\n\n\n<p>Assuming that the RRF is correctly aligned on the rotor flux, the real and imaginary parts of (14) are:<\/p>\n\n\n\n<p>$$(15) \\qquad \\left\\{ \\begin{array}{ll} \\displaystyle V_{ds} &amp;= R_s I_{ds} + L_{\\sigma} \\cfrac{d I_{ds}}{dt} &#8211; \\omega _r L_{\\sigma} I_{qs} + \\cfrac{L_m}{L_r} \\cfrac{d \\Psi_{r}}{dt} \\\\ V_{qs} &amp;= R_s I_{qs} + L_{\\sigma} \\cfrac{d I_{qs}}{dt} + \\omega _r L_{\\sigma} I_{ds} + \\omega _r \\cfrac{L_m}{L_r} \\Psi_{r} \\end{array}\\right.$$<\/p>\n\n\n\n<p>The first two terms of the equations in (15) express the link between the voltage and current at the stator.&nbsp;This relation can be reformulated as a transfer function: it is the same on both axes:<\/p>\n\n\n\n<p>$$(16) \\qquad H_d(s) = H_q(s) = \\frac{I_{s}(s)}{V_{s}(s)} = \\frac{1\/R_s}{1 + s \\space L_{\\sigma}\/R_s} = \\frac{K_1}{1 + s \\space T_1}$$<\/p>\n\n\n\n<p>The transfer function in (16) expresses how the current reacts to a change in the voltage input generated by the inverter. Thus, with the help of a PI controller, it is possible to control the currents at the stator. The PI tuning is addressed in the following section.<\/p>\n\n\n\n<p>The third term of the equations in (15) corresponds to the coupling of the axes. <a href=\"https:\/\/imperix.com\/doc\/implementation\/vector-current-control\">TN106<\/a> explains how a decoupling network can be used to allow truly independent control of the d and q axes.<\/p>\n\n\n\n<p>The last term corresponds to the effect of the rotor flux on the stator circuit. As explained previously, it is desirable to keep the rotor flux constant to simplify the torque control. Therefore, since \\(d \\Psi _r\/dt = 0\\), only the q-axis is affected by the rotor flux. The term \\(\\omega_r \\frac{L_m}{L_r} \\Psi_r\\) can be computed by the control and added to the q-axis voltage reference.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">It might be confusing at first to have \\(\\omega_r\\) in (15). After all, the current controller operates on the stator side. Therefore, it should be \\(\\omega_s\\). However, the stator and rotor flux have the same speed in the stationary reference frame, thus, \\(\\omega _r = \\omega _s\\).<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tuning-of-the-controller\"><strong>Tuning of the controller<\/strong><\/h3>\n\n\n\n<p>As covered in [5], the <em>magnitude optimum<\/em> criterion is a suitable way to tune a PI when the transfer function of the plant is of the same form as in (16). The controller parameters are:<\/p>\n\n\n\n<p>$$(17) \\qquad \\left\\{ \\begin{array}{ll} T_n &amp;= T_1\\\\ T_i &amp;= 2 K_1 T_d \\\\ K_p &amp;= T_n \/ T_i \\\\ K_i &amp;= 1  \/ T_i\\end{array}\\right.$$<\/p>\n\n\n\n<p>The parameter \\(T_d\\)&nbsp;represents the sum of all the small delays in the system. The product note <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<h3 class=\"wp-block-heading\" id=\"h-current-references\">Current references<\/h3>\n\n\n\n<p>To use the machine under nominal conditions, the rotor flux should be nominal.<\/p>\n\n\n\n<p>From (11), the rotor flux is set by the d-axis current reference:<\/p>\n\n\n\n<p>$$\\displaystyle (18) \\qquad I_{ds}^* = \\frac{\\Psi _r^*}{L_m} = \\frac{\\Psi _{rn}}{L_m} = I_{dsn}$$<\/p>\n\n\n\n<p>The q-axis current reference is then derived from (13):<\/p>\n\n\n\n<p>$$\\displaystyle (19) \\qquad I_{qs}^* = \\cfrac{T_{em}^*}{\\cfrac{3}{2} p \\cfrac{L_m}{L_r} \\Psi _r}$$<\/p>\n\n\n\n<p>There is however a minor inconvenience at startup: the machine cannot be magnetized instantaneously. Thus, when the flux \\(\\Psi_r\\) is still building up, the current consumption will be large according to (19).<\/p>\n\n\n\n<p>If the current consumption at startup is a concern, the flux can be assumed to be constant and equal to its nominal value. In this case, the machine cannot produce the torque reference because the rotor flux is overestimated. However, it happens only during the startup transient. Therefore, the impact on the control performances is minimal.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The estimation of \\(\\Psi_r\\) is explained later in the <em>RRF orientation<\/em> section.<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-calculation-of-the-nominal-d-axis-current\"><strong>Calculation of the nominal d-axis current<\/strong><\/h4>\n\n\n\n<p>If the nominal rotor flux is unknown in (18), the nominal d-axis current can be calculated from the nominal voltage, the nominal current, and the equivalent circuit of the machine.<\/p>\n\n\n\n<p>From the equivalent circuit:<\/p>\n\n\n\n<p>$$\\displaystyle (20) \\qquad \\underline{V}_{s} = R_s \\underline{I}_s + j \\omega _s (L_s &#8211; L_m) \\underline{I}_s + \\underline{V}_m$$<\/p>\n\n\n\n<p>Taking \\(\\arg( \\underline{V}_s) = 0 \\,\\text{rad}\\) as the reference phase, the real and imaginary parts of \\(\\underline{V}_m\\) are then:<\/p>\n\n\n\n<p>$$(21) \\qquad \\left\\{ \\begin{array}{l} \\displaystyle \\text{Re}\\{\\underline{V}_m\\} = V_s &#8211; R_s I_s \\cos\\phi + \\omega _s (L_s &#8211; L_m) I_s \\sin\\phi \\\\ \\\\ \\displaystyle \\text{Im}\\{ \\underline{V}_m\\} = &#8211; R_s I_s \\sin\\phi &#8211; \\omega _s (L_s &#8211; L_m) I_s \\cos\\phi  \\end{array}\\right.$$<\/p>\n\n\n\n<p>with \\(\\cos \\phi\\)&nbsp;the power factor of the machine.<\/p>\n\n\n\n<p>If the RRF is correctly aligned on the rotor flux, the magnetizing current is equal to the d-axis component of the stator current. Assuming that the iron losses can be neglected:<\/p>\n\n\n\n<p>$$\\displaystyle (22) \\qquad V_m = \\sqrt{\\text{Re}\\{\\space \\underline{V}_m\\}^2 + \\text{Im}\\{\\space \\underline{V}_m\\}^2} = \\omega _s L_m I_m = \\omega _s L_m \\frac{I_{ds}}{\\sqrt{2}}$$<\/p>\n\n\n\n<p>From (22), the d-axis current is then:<\/p>\n\n\n\n<p>$$\\displaystyle (23) \\qquad I_{ds} = \\frac{\\sqrt{2} V_m}{\\omega _s L_m}$$<\/p>\n\n\n\n<p>The nominal d-axis stator current is found by solving equations (21) to (23) using the nominal voltage \\(V_{sn}\\) and current \\(I_{sn}\\) of the IM. The power factor is usually available in the machine datasheet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-dynamic-saturation\">Dynamic saturation<\/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<p>The output of the current controller is a voltage reference to generate with the voltage source inverter (VSI). However, the maximal output voltage of the VSI is limited by the DC bus voltage. In the RRF, this saturation limit corresponds to a circle of radius \\(V_{dc}\/\\sqrt{3}\\). The figure on the right illustrates the situation in one quadrant: as long as the reference voltage is inside the circle, it can be generated by the VSI.<\/p>\n\n\n\n<p>The current controller must take the saturation of the VSI into account with a proper anti-windup strategy. Since there is one PI controller per axis, saturation limits should be defined on a per-axis basis.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"230\" height=\"247\" src=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/04\/Dynamic_saturation.png\" alt=\"\" class=\"wp-image-10033\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; Dynamic_saturation.png (Saturation limits in the rotating reference frame)\"\/><figcaption class=\"wp-element-caption\">Saturation limits in the RRF<\/figcaption><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p>A first option would be to use the same limits for both axes. In the figure above, \\(\\underline{V}_1^*\\)&nbsp;is the extreme case where the full DC bus voltage is used and where both components have the same saturation limits. In this case, the limits are set to&nbsp;\\(\\pm V_{dc}\/\\sqrt{6}\\). While this solution is simple to implement, it does not use the full potential of the DC bus: \\(\\underline{V}_2^*\\) and \\(\\underline{V}_3^*\\) are both valid references even if they are outside the \\(\\pm V_{dc}\/\\sqrt{6}\\) boundaries.<\/p>\n\n\n\n<p>A second option is then to compute the saturation limits dynamically. According to (19), the IM cannot produce a torque if the rotor is not magnetized beforehand. Therefore, the d-axis PI current controller should have priority. With this logic,&nbsp;\\(V_{ds}\\) &nbsp;can use whatever it needs from the DC bus voltage, and \\(V_{qs}\\)&nbsp;takes whatever is left:<\/p>\n\n\n\n<p>$$(24) \\qquad \\left\\{ \\begin{array}{ll}  |V_{ds}| &amp;\\leq \\cfrac{V_{dc}}{\\sqrt{3}} \\\\ \\\\ |V_{qs}| &amp;\\leq \\sqrt{\\cfrac{V_{dc}^2}{3} &#8211; V_{ds}^2} \\end{array}\\right.$$<\/p>\n\n\n\n<p><br>The saturation limits are then expressed as:<\/p>\n\n\n\n<p>$$(25) \\qquad \\left\\{ \\begin{array}{ll} V_{ds,sat} &amp;= \\pm \\cfrac{V_{dc}}{\\sqrt{3}} \\\\ \\\\ V_{qs,sat} &amp;= \\pm \\sqrt{\\cfrac{V_{dc}^2}{3} &#8211; \\min\\left(V_{ds}^2,\\cfrac{V_{dc}^2}{3}\\right)} \\end{array}\\right.$$<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-rrf-orientation\"><span class=\"ez-toc-section\" id=\"RRF-orientation-for-Rotor-Field-Oriented-Control\"><\/span>RRF orientation for Rotor Field-Oriented Control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>In the previous sections, the RRF was assumed to be oriented on the rotor flux. The question is then: how to orient the RRF correctly? To align the RRF on the rotor flux, the position of the flux must be known. In [6] and [7], the authors present a FOC variant called <em>Indirect Field-Oriented Control (IFOC)<\/em>. This method is <em>indirect<\/em> because the rotor flux is estimated from the model of the machine.<\/p>\n\n\n\n<p>Let us assume that the RRF is indeed oriented on the rotor flux. In this case, from (9), the rotor flux can be estimated from the d-axis current:<\/p>\n\n\n\n<p>$$ (26) \\qquad \\Psi _r = \\cfrac{L_m}{s \\space T_r + 1} I_{ds}$$<\/p>\n\n\n\n<p>According to (10), the slip frequency is calculated from the q-axis current:<\/p>\n\n\n\n<p>$$(27) \\qquad \\omega _{slip} = \\omega _r &#8211; \\omega _m = \\frac{L_m}{T_r \\Psi _r} I_{qs}$$<\/p>\n\n\n\n<p>Then, by re-arranging the terms in (27):<\/p>\n\n\n\n<p>$$(28) \\qquad \\omega _r = \\omega _m + \\omega _{slip}$$<\/p>\n\n\n\n<p>The rotor mechanical speed&nbsp;\\(\\omega_m\\) is either measured or estimated. Finally, the position of the RRF is obtained from the stator electrical speed:<\/p>\n\n\n\n<p>$$(29) \\qquad \\theta _r = \\int _0 ^t \\omega _r \\space dt $$<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">Since RFOC aligns the RRF on the rotor flux, the angle\u00a0\\(\\theta _r\\) must be used for the Park transform. Even if \\(\\omega _r = \\omega _s\\), \\(\\theta _r \\neq \\theta _s\\) because there is a phase difference between the stator and rotor fluxes.<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-b-box-b-board-implementation-of-rotor-field-oriented-control\"><span class=\"ez-toc-section\" id=\"B-Box-B-Board-implementation-of-Rotor-Field-Oriented-Control\"><\/span>B-Box \/ B-Board implementation of Rotor Field-Oriented Control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-software-resources\">Software resources<\/h3>\n\n\n\n<p>The code example is ready for use with the Motor Testbench. It includes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>an induction machine with a Rotor Field-Oriented Control, and a speed controller<\/li>\n\n\n\n<li>a permanent magnets synchronous machine to load the IM. The Field-Oriented Control of the PMSM is presented in <a href=\"https:\/\/imperix.com\/doc\/implementation\/field-oriented-control-of-pmsm\">TN111<\/a>.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The machines are modeled using Simscape Electrical. Matlab R2023a (or later) is required to run the models in simulation mode.<\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-file aligncenter\"><a id=\"wp-block-file--media-bac8fbc4-3c44-4f20-ad07-b7f406867671\" href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/TN139_Motor_TB_RFOC_v3.zip\">TN139_Motor_TB_RFOC_v3<\/a><a href=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/TN139_Motor_TB_RFOC_v3.zip\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-bac8fbc4-3c44-4f20-ad07-b7f406867671\">Download<\/a><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-rotor-flux-angle-estimation\">Rotor flux angle estimation<\/h3>\n\n\n\n<p>The indirect method to orient the rotating reference frame uses the equations (26-29) and its implementation is shown below. It computes the rotor flux angle \\(\\theta_r\\) used to transform the stator currents in the <em>dq<\/em> frame.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"904\" height=\"359\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-27.png\" alt=\"Rotor flux angle estimation Simulink model\" class=\"wp-image-1826\" style=\"width:722px;height:286px\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; image2021-2-24_11-16-45.png (Rotor flux angle estimation Simulink model)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-27.png 904w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-27-300x119.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-27-768x305.png 768w\" sizes=\"auto, (max-width: 904px) 100vw, 904px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-stator-current-controller\">Stator current controller<\/h3>\n\n\n\n<p>The stator current control in the rotor RRF is shown below. The decoupling network uses the rotor flux speed \\(\\omega_r\\) estimated by the indirect method above. The d-axis current reference is computed with equation (23) and imposes a nominal rotor flux. The q-axis current reference is derived from the torque reference, using equation (19). Finally, dynamic saturation limits of the d- and q-axis regulators are computed using equation (25).&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"837\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-28-1024x837.png\" alt=\"Stator current controller for rotor field oriented control (RFOC)\" class=\"wp-image-1827\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; image2021-2-24_12-14-1.png (Stator current controller Simulink model)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-28-1024x837.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-28-300x245.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-28-768x628.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-28.png 1069w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-speed-controller\">Speed controller<\/h3>\n\n\n\n<p>The speed controller is the same as in <a href=\"https:\/\/imperix.com\/doc\/implementation\/motor-speed-control\">TN114<\/a> and computes the necessary torque reference for the cascaded torque (i.e. current) controller. In the present implementation, the integral term of the speed controller (outer loop) is kept at reset when the current controller (inner loop) hits its saturation to avoid accumulating large errors.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-experimental-results-of-rotor-field-oriented-control\"><span class=\"ez-toc-section\" id=\"Experimental-results-of-Rotor-Field-Oriented-Control\"><\/span>Experimental results of Rotor Field-Oriented Control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The experimental setup consists of an induction machine and a permanent magnet synchronous machine (PMSM). The PMSM is used to apply a load torque on the IM. Each machine is supplied by a voltage source inverter made of 3x <a href=\"https:\/\/imperix.com\/products\/power\/peb\/\">PEB 8032 phase-leg modules<\/a> . The control code of each machine is implemented on Simulink, using the <a href=\"https:\/\/imperix.com\/software\/acg-sdk\/\">ACG SDK library<\/a>, and both algorithms run on a single <a href=\"https:\/\/imperix.com\/products\/control\/bbox\/\">B-Box RCP controller<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">In this setup, both inverters share the same DC bus. For more information regarding this topology, please refer to <a href=\"https:\/\/imperix.com\/doc\/help\/variable-speed-drive\">PN180: How to build a variable speed drive<\/a>. Furthermore, the <a href=\"https:\/\/imperix.com\/products\/electric-motor-drive-bundle\/\">electric motor drive bundle<\/a> has superseded the equipment used in this section.<\/div>\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 following experimental results are all exported from the datalogger of the <a href=\"https:\/\/imperix.com\/software\/bbcontrol\/\">BB Control software<\/a> (now replaced by <a href=\"https:\/\/imperix.com\/doc\/help\/cockpit-user-guide#h-scope-module\">Cockpit<\/a>) and post-processed using MATLAB.<\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-bottom 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-bottom is-layout-flow wp-block-column-is-layout-flow\"><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-bottom is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"380\" height=\"369\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-26.png\" alt=\"Drive inverter and controller setup\" class=\"wp-image-1467\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-26.png 380w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-26-300x291.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><figcaption class=\"wp-element-caption\">Drive inverters and controller<\/figcaption><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-machine-parameters\">Machine parameters<\/h3>\n\n\n\n<p>The parameters of the induction machine are given in the table below. The PMSM (Control Techniques 115UMC300CACAA) was chosen to operate under the same nominal conditions.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Model: Leroy-Somer 2P LSES 100L 3kW<\/td><\/tr><tr><td><strong>Parameter<\/strong><\/td><td><strong>Symbol<\/strong><\/td><td><strong>Value<\/strong><\/td><td><strong>Unit<\/strong><\/td><\/tr><tr><td>Rated power<\/td><td>\\(P_n\\)<\/td><td>3<\/td><td>kW<\/td><\/tr><tr><td>Pole pairs<\/td><td>\\(p\\)<\/td><td>1<\/td><td>&#8211;<\/td><\/tr><tr><td>Rated phase voltage<\/td><td>\\(V_{sn}\\)<\/td><td>230<\/td><td>V<\/td><\/tr><tr><td>Rated phase current (wye-connected)<\/td><td>\\(I_{sn}\\)<\/td><td>6.1<\/td><td>A<\/td><\/tr><tr><td>Rated mechanical speed<\/td><td>\\(\\Omega_n\\)<\/td><td>2870<\/td><td>rpm<\/td><\/tr><tr><td>Rated torque<\/td><td>\\(T_{em,n}\\)<\/td><td>9.95<\/td><td>Nm<\/td><\/tr><tr><td>Rated power factor<\/td><td>\\(\\cos \\phi\\)<\/td><td>0.88<\/td><td>&#8211;<\/td><\/tr><tr><td>Stator resistance<\/td><td>\\(R_s\\)<\/td><td>1.5<\/td><td>\u03a9<\/td><\/tr><tr><td>Stator inductance<\/td><td>\\(L_s\\)<\/td><td>307<\/td><td>mH<\/td><\/tr><tr><td>Rotor resistance*<\/td><td>\\(R_r\\)<\/td><td>1.4<\/td><td>\u03a9<\/td><\/tr><tr><td>Rotor inductance*<\/td><td>\\(L_r\\)<\/td><td>313<\/td><td>mH<\/td><\/tr><tr><td>Mutual inductance<\/td><td>\\(L_m\\)<\/td><td>295<\/td><td>mH<\/td><\/tr><tr><td>Moment of inertia (IM only)<\/td><td>\\(J_m\\)<\/td><td>0.0036<\/td><td>kg m<sup>2<\/sup><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><em>*&nbsp;The rotor variables are referred to the stator side.<\/em><\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\">The PMSM from this experiment has only a nominal torque of 9.5.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-speed-tracking\">Speed tracking performance of the <strong>Rotor Field-Oriented Control<\/strong><\/h3>\n\n\n\n<p>The tracking performance of the speed controller was validated experimentally by applying a speed reference step from 0 to 2870 rpm. At the same time, the PMSM was applying a load torque proportional to the speed. In the end, the IM was operating at nominal speed and with a 9.5 Nm load in steady-state.<\/p>\n\n\n\n<p>Since the speed controller is tuned using the symmetrical optimum criterion [8], a rate limiter was applied to the speed reference to limit the overshoot. The use of a rate limiter is detailed in&nbsp;<a href=\"https:\/\/imperix.com\/doc\/implementation\/motor-speed-control\">TN114<\/a>. During the experimental validation, the acceleration was limited to 2870 rpm\/s. This way, the IM can reach its nominal speed in ~1s with practically no overshoot.<\/p>\n\n\n\n<p>The experimental results are presented below. Notice that, at the very beginning, the rotor does not move immediately, leading to poor tracking performance. This behavior is due to the absence of magnetization, as detailed in the next section.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-29.png\" alt=\"Speed tracking of rotor field oriented control (RFOC)\" class=\"wp-image-1828\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; speed-torque-tracking.png (Speed tracking and load torque)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-29.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-29-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-29-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Since this is an induction machine, the mechanical speed&nbsp;of the rotor&nbsp;\\(\\omega_m\\) is slower than the rotor flux&nbsp;\\(\\omega_r\\) under load (see below on the left).&nbsp;Let us recall the definition of the relative slip [4]:<\/p>\n\n\n\n<p>$$(30) \\qquad s = \\frac{\\omega _r &#8211; \\omega_m}{\\omega_r}$$<\/p>\n\n\n\n<p>At startup, the slip is equal to 1 because the rotor is at a standstill. However, the machine quickly moves to a stable operating point with a low slip as illustrated below (right). In steady-state, the relative slip is approximately \\(s\\approx 0.023\\).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-30.png\" alt=\"Rotor speed of rotor field oriented control (RFOC)\" class=\"wp-image-1829\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; slip-tracking-performances.png (Rotor mechanical speed and slip)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-30.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-30-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-30-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-disturbance-rejection\">Disturbance rejection<\/h3>\n\n\n\n<p>It was shown previously that the speed controller can track the speed reference. However, it should also be capable of rejecting a disturbance (i.e. a load torque).<\/p>\n\n\n\n<p>To verify the disturbance rejection, the speed of the IM was ramped up to 2870 rpm under no load. Then, a step from 0 to 9.5Nm was applied by the PMSM (see below on the left). It can be observed in the figure below (right) that the current controller managed, simultaneously, to keep the flux constant (through \\(I_{ds}\\)) and adapt the torque (through \\(I_{qs}\\)). This is made possible by the independent control of the d and q axis stator currents. Notice that the speed controller reaches its upper saturation limit which was set to 110% of the nominal torque.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-31.png\" alt=\"Torque and current tracking of rotor field oriented control (RFOC)\" class=\"wp-image-1830\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; torque-current-distrubance-rejection.png (Motor torque and current tracking)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-31.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-31-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-31-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>At the same time, the speed controller must adapt the torque reference to maintain the rotor mechanical speed constant. Since the slip increases with the load (see below on the right), the frequency of the rotor flux must be increased to keep the mechanical speed constant. During the transient, the mechanical speed drops ~5.2% below the reference and it takes&nbsp;~150 ms to recover from the load step.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-32.png\" alt=\"Rotor speed and slip of rotor field oriented control (RFOC)\" class=\"wp-image-1831\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; slip-distrubance-rejection.png (Rotor speed and slip)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-32.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-32-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-32-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-comparison-between-rotor-field-oriented-control-and-v-f-control\"><span class=\"ez-toc-section\" id=\"Comparison-between-Rotor-Field-Oriented-Control-and-Vf-control\"><\/span>Comparison between Rotor Field-Oriented Control and V\/f control<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>As mentioned in the theoretical part of this technical note, the RFOC belongs to the family of vector control methods. However,&nbsp;<a href=\"https:\/\/imperix.com\/doc\/implementation\/vf-control-induction-machine\">V\/f control of an induction machine (TN138)<\/a> presents a simpler scalar control method called V\/f control. What is the point of implementing a (rather complex) RFOC instead of a V\/f algorithm? To answer this question, the same induction machine was used to undergo the same tests in both the V\/f and RFOC technical notes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-speed-tracking-1\">Speed tracking<\/h3>\n\n\n\n<p>In the figure below, the experimental speed tracking performance of the V\/f and RFOC are superimposed for comparison purposes.<\/p>\n\n\n\n<p>The tracking performances of the V\/f and RFOC are indistinguishable in most of the speed ranges. The only significant difference lies in the low-speed region, here the V\/f has a dead zone, whereas the RFOC has no such limitations. Remember that, once the IM is magnetized, the RFOC can operate at any speed without distortions. Therefore, the V\/f control is a compelling option as long as low-speed operation is not required.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-33.png\" alt=\"Speed tracking of rotor field oriented control (RFOC) and V\/f control\" class=\"wp-image-1832\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; tracking-speed-vs-torque.png (Speed tracking and load torque comparison)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-33.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-33-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-33-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<p>Even if the RFOC and the closed-loop V\/f maintain the rotor at the same mechanical speed, the slip is larger with the V\/f. This is due to a slight difference in the magnetization of the machine: with the V\/f, the <em>norm<\/em> of the stator flux is maintained constant and equal to its nominal value. Thus, the norm of the rotor flux should also stay constant. However, when considering this flux in the rotor flux-oriented RRF, only the d-axis component magnetizes the machine. Since the V\/f is only a scalar method, there is no explicit control of the d-axis component of the rotor flux.<\/p>\n\n\n\n<p><span style=\"font-size: inherit; color: var(--global-palette4); font-family: 'Source Sans Pro', var(--global-fallback-font);\">Conversely, the RFOC does have explicit control of this d-axis component. Therefore, the RFOC maintains the d-axis component of the rotor flux to its nominal value instead of the norm of the vector. The slight difference in the rotor flux leads to a different torque-slip characteristic for each method, thus, a different slip under the same load.<\/span><\/p>\n\n\n\n<p>According to the experimental results, under a load of 95.5% of the nominal torque, the slip is ~0.023 with the RFOC and ~0.027 with the closed-loop V\/f. Theoretically, the lower the slip, the better, because the machine operates farther from its breakdown slip [4]. However, this is a concern only if the IM must operate at very high torque, close to its breakdown torque.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-34.png\" alt=\"Rotor speed and slip of rotor field oriented control (RFOC) and V\/f control\" class=\"wp-image-1833\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; tracking-slip-frequency_v2.png (Rotor mechanical speed and slip comparison)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-34.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-34-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-34-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-disturbance-rejection-1\">Disturbance rejection<\/h3>\n\n\n\n<p>In the figure below, the experimental disturbance rejection performance of the V\/f and RFOC are superimposed for comparison purposes.&nbsp;<\/p>\n\n\n\n<p>There is a fundamental difference in the slip estimation (see below on the right) between the two methods: on the one hand, the RFOC estimates the slip from the model of the IM. Thus, the estimation is fairly accurate even during fast transients. On the other hand, the slip estimation from the V\/f method relies on the PI of the speed controller (see the speed tracking section in the <a href=\"https:\/\/imperix.com\/doc\/implementation\/vf-control-induction-machine\">V\/f control of an induction machine (TN138)<\/a>). It means that, if the slip changes abruptly due to a sudden variation of the load, the slip estimation will change slowly through the integral action of the PI controller. Experimentally, the closed-loop V\/f takes ~1750 ms to recover from the disturbance &#8211; nearly 12 times longer than the RFOC (~150 ms). This is a significant performance difference between the two methods.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-35.png\" alt=\"Mechanical speed and slip of rotor field oriented control (RFOC) and V\/f control\" class=\"wp-image-1834\" title=\"Technical notes &gt; TN139: Rotor Field-Oriented Control (RFOC) of an induction machine &gt; rejection-slip.png (Roto mechanical speed and slip disturbance rejection)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-35.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-35-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-35-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-academic-references\"><span class=\"ez-toc-section\" id=\"Academic-references\"><\/span>Academic references<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>[1] B. Robyns, B. Fran\u00e7ois, P. Degobert, J.P. Hautier, &#8220;Vector Control of Induction Machines&#8221;, Springer, 2012.<\/p>\n\n\n\n<p>[2] Nguyen Phung Quang, J\u00f6rg-Andreas Dittrich, &#8220;Vector Control of Three-Phase AC Machines&#8221;, Springer, 2015, ISBN 978-3-662-46914-9<\/p>\n\n\n\n<p>[3] E. Y. Y. Ho and P. C. Sen, &#8220;Decoupling control of induction motor drives,&#8221; in&nbsp;<em>IEEE Transactions on Industrial Electronics<\/em>, vol. 35, no. 2, pp. 253-262, May 1988<\/p>\n\n\n\n<p>[4] Slobodan N. Vukosavic, &#8220;Electrical Machines&#8221;, Springer, 2013.<\/p>\n\n\n\n<p>[5] Karl J. \u00c5str\u00f6m and Tore H\u00e4gglund, \u201cAdvanced PID Control\u201d, 1995.<\/p>\n\n\n\n<p>[6] A. K. Akkarapaka and D. Singh, &#8220;The IFOC based speed control of induction motor fed by a high performance Z-source inverter,&#8221; 2014 International Conference on Renewable Energy Research and Application (ICRERA), Milwaukee, WI, 2014, pp. 539-543.<\/p>\n\n\n\n<p>[7] I. Ferdiansyah, L. P. S. Raharja, D. S. Yanaratri and E. Purwanto, &#8220;Design of PID Controllers for Speed Control of Three Phase Induction Motor Based on Direct-Axis Current (Id) Coordinate Using IFOC,&#8221; 2019 4th International Conference on Information Technology, Information Systems and Electrical Engineering (ICITISEE), Yogyakarta, Indonesia, 2019, pp. 369-372.<\/p>\n\n\n\n<p>[8] Slobodan N. Vukosavi\u0107 ,&#8221;Digital Control of Electrical Drives&#8221;, Springer, 2007, ISBN 978-0-387-25985-7<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This note covers the rotor field-oriented control of an induction machine and its implementation on a user-configurable voltage-source inverter.<\/p>\n","protected":false},"author":8,"featured_media":3063,"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":[18],"software-environments":[103],"provided-results":[108],"related-products":[50,32,166,114,111],"guidedreadings":[],"tutorials":[124],"user-manuals":[],"coauthors":[62],"class_list":["post-1453","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-implementation","tag-motor-drives","software-environments-matlab","provided-results-experimental","related-products-acg-sdk","related-products-b-box-rcp","related-products-b-box-rcp-3-0","related-products-motor","related-products-pm","tutorials-field-oriented-control"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Rotor Field-Oriented Control (RFOC) of an induction machine - imperix<\/title>\n<meta name=\"description\" content=\"This note covers the rotor field-oriented control (RFOC) of an induction machine and its implementation on a user-configurable inverter.\" \/>\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\/rotor-field-oriented-control\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Rotor Field-Oriented Control (RFOC) of an induction machine - imperix\" \/>\n<meta property=\"og:description\" content=\"This note covers the rotor field-oriented control (RFOC) of an induction machine and its implementation on a user-configurable inverter.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-02T12:29:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-05T09:00:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN139.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=\"Simon Strobl\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Simon Strobl\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"23 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control\"},\"author\":{\"name\":\"Simon Strobl\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/112ed48191405cbe3befbc660d112803\"},\"headline\":\"Rotor Field-Oriented Control (RFOC) of an induction machine\",\"datePublished\":\"2021-04-02T12:29:33+00:00\",\"dateModified\":\"2026-02-05T09:00:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control\"},\"wordCount\":4568,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN139.png\",\"keywords\":[\"Motor drives\"],\"articleSection\":[\"Technical notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control\",\"name\":\"Rotor Field-Oriented Control (RFOC) of an induction machine - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN139.png\",\"datePublished\":\"2021-04-02T12:29:33+00:00\",\"dateModified\":\"2026-02-05T09:00:30+00:00\",\"description\":\"This note covers the rotor field-oriented control (RFOC) of an induction machine and its implementation on a user-configurable inverter.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-control#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN139.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN139.png\",\"width\":450,\"height\":300,\"caption\":\"Rotor Field-Oriented Control block diagram\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/rotor-field-oriented-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\":\"Rotor Field-Oriented Control (RFOC) of an induction machine\"}]},{\"@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\\\/112ed48191405cbe3befbc660d112803\",\"name\":\"Simon Strobl\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01a557e9dd9b026995e8879a2e25a855fee79a8760b7edf92dc4bb95b8234ae0?s=96&d=mm&r=g8c569d7d1207aa0c02ea7380aa91b0fe\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01a557e9dd9b026995e8879a2e25a855fee79a8760b7edf92dc4bb95b8234ae0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01a557e9dd9b026995e8879a2e25a855fee79a8760b7edf92dc4bb95b8234ae0?s=96&d=mm&r=g\",\"caption\":\"Simon Strobl\"},\"description\":\"Simon is a power electronics engineer and product director at imperix. On the knowledge base, he authored several articles related to motor drive applications.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/simon-s-9723ab21a\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/strobl\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Rotor Field-Oriented Control (RFOC) of an induction machine - imperix","description":"This note covers the rotor field-oriented control (RFOC) of an induction machine and its implementation on a user-configurable inverter.","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\/rotor-field-oriented-control","og_locale":"en_US","og_type":"article","og_title":"Rotor Field-Oriented Control (RFOC) of an induction machine - imperix","og_description":"This note covers the rotor field-oriented control (RFOC) of an induction machine and its implementation on a user-configurable inverter.","og_url":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control","og_site_name":"imperix","article_published_time":"2021-04-02T12:29:33+00:00","article_modified_time":"2026-02-05T09:00:30+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN139.png","type":"image\/png"}],"author":"Simon Strobl","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon Strobl","Est. reading time":"23 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control"},"author":{"name":"Simon Strobl","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/112ed48191405cbe3befbc660d112803"},"headline":"Rotor Field-Oriented Control (RFOC) of an induction machine","datePublished":"2021-04-02T12:29:33+00:00","dateModified":"2026-02-05T09:00:30+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control"},"wordCount":4568,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN139.png","keywords":["Motor drives"],"articleSection":["Technical notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control","url":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control","name":"Rotor Field-Oriented Control (RFOC) of an induction machine - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN139.png","datePublished":"2021-04-02T12:29:33+00:00","dateModified":"2026-02-05T09:00:30+00:00","description":"This note covers the rotor field-oriented control (RFOC) of an induction machine and its implementation on a user-configurable inverter.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-control#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN139.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN139.png","width":450,"height":300,"caption":"Rotor Field-Oriented Control block diagram"},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/implementation\/rotor-field-oriented-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":"Rotor Field-Oriented Control (RFOC) of an induction machine"}]},{"@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\/112ed48191405cbe3befbc660d112803","name":"Simon Strobl","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/01a557e9dd9b026995e8879a2e25a855fee79a8760b7edf92dc4bb95b8234ae0?s=96&d=mm&r=g8c569d7d1207aa0c02ea7380aa91b0fe","url":"https:\/\/secure.gravatar.com\/avatar\/01a557e9dd9b026995e8879a2e25a855fee79a8760b7edf92dc4bb95b8234ae0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/01a557e9dd9b026995e8879a2e25a855fee79a8760b7edf92dc4bb95b8234ae0?s=96&d=mm&r=g","caption":"Simon Strobl"},"description":"Simon is a power electronics engineer and product director at imperix. On the knowledge base, he authored several articles related to motor drive applications.","sameAs":["https:\/\/www.linkedin.com\/in\/simon-s-9723ab21a"],"url":"https:\/\/imperix.com\/doc\/author\/strobl"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1453","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\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=1453"}],"version-history":[{"count":80,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1453\/revisions"}],"predecessor-version":[{"id":41944,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1453\/revisions\/41944"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/3063"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=1453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=1453"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=1453"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=1453"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=1453"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=1453"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=1453"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=1453"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=1453"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=1453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}