{"id":1477,"date":"2021-04-02T11:27:26","date_gmt":"2021-04-02T11:27:26","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=1477"},"modified":"2025-12-17T14:40:57","modified_gmt":"2025-12-17T14:40:57","slug":"i-f-startup-method","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method","title":{"rendered":"I-f startup method for sensorless PMSM 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\/i-f-startup-method\/#Software-resources\" >Software resources<\/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\/i-f-startup-method\/#Context\" >Context<\/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\/i-f-startup-method\/#Motor-startup-strategies\" >Motor startup strategies<\/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\/i-f-startup-method\/#I-f-PMSM-startup-method\" >I-f PMSM startup method<\/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\/i-f-startup-method\/#I-f-startup-method-implementation-on-a-B-Box-controller\" >I-f startup method implementation on a B-Box controller<\/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\/i-f-startup-method\/#Experimental-results-of-the-I-f-startup-method\" >Experimental results of the I-f startup method<\/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\/i-f-startup-method\/#Academic-References\" >Academic References<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>This technical note presents an I-f startup method for an electric motor drive when controlled in a sensorless fashion using a back-EMF estimator.  It specifically addresses Permanent Magnet Synchronous Machines (PMSM).<\/p>\n\n\n\n<p>First, the note introduces the I-f startup method. Then, a possible transition technique to the sensorless Field-Oriented Control (FOC) motor control is presented.<\/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 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<\/a>.<\/p>\n\n\n\n<h2 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><\/h2>\n\n\n\n<div class=\"wp-block-file\"><a href=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/04\/TN137_If_Startup_Sensorless_PMSM.zip\">TN137_If_Startup_Sensorless_PMSM<\/a><a href=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/04\/TN137_If_Startup_Sensorless_PMSM.zip\" class=\"wp-block-file__button wp-element-button\" download>Download<\/a><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-context\"><span class=\"ez-toc-section\" id=\"Context\"><\/span>Context<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The SMO-based sensorless control technique presented in <a href=\"https:\/\/imperix.com\/doc\/implementation\/back-emf-sliding-mode-observer\">TN136<\/a>, like any technique based on back-EMF estimation, has a major drawback: the amplitude of the back-EMF is proportional to the speed of the motor, which makes it difficult to estimate the back-EMF accurately at low speed. In particular, at standstill there is no back-EMF at all, making it challenging to start the motor in the first place.<\/p>\n\n\n\n<p>This technical note presents a possible implementation of a startup strategy for a PMSM sensorless Field-Oriented Control, using open-loop I-f control.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-motor-startup-strategies\"><span class=\"ez-toc-section\" id=\"Motor-startup-strategies\"><\/span>Motor startup strategies<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Several methods can be used to start up a PMSM-based electric drive without initial position information. This section briefly introduces 3 of these methods and justifies the choice of the I-f startup method for the present implementation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-high-frequency-component-injection\">High-frequency component injection<\/h3>\n\n\n\n<p>A first technique is to use a <em>high-frequency component injection<\/em> method, as described in [1]. This is a sensorless technique that produces an accurate speed estimation on the whole speed range of the machine. However, it relies on the anisotropy of the rotor which makes it unsuitable for the isotropic PMSM used in the <a href=\"https:\/\/imperix.com\/doc\/implementation\/back-emf-sliding-mode-observer\">TN136<\/a>.<\/p>\n\n\n\n<p>In reality, a PMSM is never truly isotropic. At the junction between two magnets, the magnetic flux tends to pass directly from one magnet to the other, rather than passing through the stator windings [2]. Therefore, the flux near the junction does not contribute to the torque generation. As a result, the rotor is always anisotropic, even if the magnets are surface mounted.<\/p>\n\n\n\n<p>Theoretically, this would allow using the <em>high-frequency component injection<\/em> method with an SPMSM. However, it is not trivial in practice to exploit this small anisotropy.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-v-f-motor-control\">V\/f motor control<\/h3>\n\n\n\n<p>Unlike the <em>high-frequency component injection<\/em> method, the <em>V\/f control<\/em> [3] is not dependent on the anisotropy of the machine. What&#8217;s more, it is also much simpler to implement.<\/p>\n\n\n\n<p>Unfortunately, the V\/f control is a scalar method, which doesn&#8217;t rely on a Rotating Reference Frame, unlike FOC. Therefore, the transition from V\/f startup to FOC operation requires special consideration, in order to align the stator flux in the RRF and ensure a smooth transition, which defeats the simplicity of the V\/f control.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-i-f-startup\">I-f startup<\/h3>\n\n\n\n<p>The aforementioned problem of the stator flux orientation is addressed by the <em>I-f starting method<\/em> [4][5][6]. The I-f method draws its inspiration from the V\/f startup: both methods receive a speed reference ramp as an input and generate a voltage reference for the drive converter. Since there is no speed feedback at this point, the startup is in open-loop. However, assuming for now that these methods are stable, the actual speed of the machine will follow the acceleration from the reference even if there is a tracking error in open-loop.<\/p>\n\n\n\n<p>The main difference between the two methods is that the I-f startup method uses the current controller from a Field-Oriented Control to accelerate the machine at constant torque. This way, the transition to the sensorless FOC is easier than with the V\/f control since both the I-f startup and the FOC use the same current controller (see figure below): the I-f method &#8220;understands&#8221; the concept of dq axes. What&#8217;s more, the I-f startup method is better suited under load because it has a torque regulation, unlike V\/f control.<\/p>\n\n\n\n<p>Since this technical note is covering the startup phase of a sensorless FOC of an isotropic PMSM, the I-f method is the best option of the 3 methods introduced above.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"774\" height=\"306\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-46.png\" alt=\"Block diagram of an SMO-based sensorless FOC with I-f startup for a PMSM\" class=\"wp-image-1861\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; block-diagram.png (Block diagram of an SMO-based sensorless FOC with I-f startup for a PMSM)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-46.png 774w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-46-300x119.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-46-768x304.png 768w\" sizes=\"auto, (max-width: 774px) 100vw, 774px\" \/><figcaption class=\"wp-element-caption\">Block diagram of an SMO-based sensorless FOC with I-f startup for a PMSM<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-i-f-pmsm-startup-method\"><span class=\"ez-toc-section\" id=\"I-f-PMSM-startup-method\"><\/span>I-f PMSM startup method<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>This section describes the working principles of an I-f startup method. The procedure is divided into two phases:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Phase I: the machine is accelerated in an open-loop manner<\/li>\n\n\n\n<li>Phase II: when particular conditions are met, the control switches smoothly to sensorless FOC<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-phase-i-acceleration\">Phase I: acceleration<\/h3>\n\n\n\n<p>In a first phase, the goal of the I-f startup method is to accelerate the PMSM until the speed estimation from the SMO is &#8220;accurate enough&#8221;. For this technical note, &#8220;accurate enough&#8221; means that the speed control with the sensorless FOC is at least stable. As a rule of thumb, the minimum operating speed should be in the 10-20% range of the nominal speed, according to [4], [5], [6] and as validated experimentally. The acceleration of the motor is then set by the difference between the electro-mechanical torque \\(T_{em}\\) and the load torque \\(T_L\\), as explained in <a href=\"https:\/\/imperix.com\/doc\/implementation\/motor-speed-control\">TN114<\/a>:<\/p>\n\n\n\n<p>$$(1) \\qquad \\frac{d \\omega _m}{dt} = \\frac{T_{em} &#8211; T_L}{J_m} = \\frac{\\cfrac{3}{2} p \\Psi_{PM}I_{qs} &#8211; T_L}{J_m}$$<\/p>\n\n\n\n<p>According to (1), the PMSM could be accelerated by simply applying a constant electro-mechanical torque. However, the FOC requires the position of the rotor which is not accurate at low speed. Instead, the I-f method uses a virtual reference rotating frame [4]. The position of the virtual frame is defined by integrating the frequency ramp and the ramp acts as a speed reference, even if no speed controller is involved.<\/p>\n\n\n\n<p>$$(2) \\qquad \\left\\{ \\begin{array}{rl} \\omega _m^* &amp;= \\cfrac{d\\omega _m^*}{dt} \\times t \\\\ \\displaystyle \\theta _e^* &amp;= \\int_{t_0}^{t} \\omega _e^* \\space dt = p \\int_{t_0}^{t} \\omega _m^* \\space dt \\end{array}\\right.$$<\/p>\n\n\n\n<p>\\(\\omega_m^*\\) is the reference mechanical speed, \\(p\\) the number of pole pairs, \\(\\omega_e^*\\) the reference electrical speed, and \\(\\theta_e^*\\) the reference electrical angle of the rotor.<\/p>\n\n\n\n<p>Since there is no feedback of the rotor position, the virtual and real frames may be misaligned. The alignment error is \\(\\theta _{err}=\\theta_e-\\theta_e^*\\) and its variation depends on the speed difference between both frames:<\/p>\n\n\n\n<p>$$(3) \\qquad \\frac{d\\theta _{err}}{dt} = \\omega _e &#8211; \\omega _e^*$$<\/p>\n\n\n\n<p>During this acceleration phase, the current controller of the FOC aligns the current space vector on the q-axis of the virtual rotating frame. However, due to the angle error, the current in the real rotating frame may have a non-zero component on the d-axis. What&#8217;s more, two values of \\(\\theta_{err}\\) lead to the same \\(I_{qs}\\) component, depending on if the virtual rotating frame is leading or lagging, compared to the real rotating frame (see below). Both cases lead to different behaviors, as developed in the following two sections.<\/p>\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\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"221\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_2_doublecolumn.png\" alt=\"Vector diagram during I-f startup method\" class=\"wp-image-1864\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_2_doublecolumn.png 530w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_2_doublecolumn-300x125.png 300w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><figcaption class=\"wp-element-caption\">Same torque generation with the virtual rotating frame<br>leading the real rotating frame (left) or lagging (right)<\/figcaption><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-leading-virtual-rrf\">Leading virtual RRF<\/h4>\n\n\n\n<p>Let us consider first the case when the virtual RRF is leading the real RRF. Intuitively, the system cannot be stable because the real current \\(I_{qs}\\) is smaller than the reference \\(I_{qs}^*\\), due to the angle error \\(\\theta _{err}\\). Therefore, the real torque applied to the rotor is too low to accelerate the real RRF as fast as the virtual RRF. As a result, the virtual rotating frame will be leading even more and the real current on the q-axis will become even smaller as illustrated below. When the virtual frame is leading by more than \\(\\pi\/2\\), the machine will stall.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"178\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_3_doublecolumn-1.png\" alt=\"Vector diagram for leading reference frame\" class=\"wp-image-1866\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_3_doublecolumn-1.png 530w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_3_doublecolumn-1-300x101.png 300w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><figcaption class=\"wp-element-caption\">When the virtual rotating frame from (left) accelerates to (right)<br>the real torque is reduced instead of being increased.<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lagging-virtual-rrf\">Lagging virtual RRF<\/h3>\n\n\n\n<p>Let us consider now the case when the virtual RRF is lagging behind the real RRF. If&nbsp;\\(I_{qs}^* = \\text{cst}\\) is large enough, the high torque will accelerate the machine faster than the variation of the speed reference. In this case, \\(\\omega _e &gt; \\omega _e^*\\) and according to (3) the error angle increases. Since \\(I_{qs}^*\\) is lagging behind&nbsp;\\(I_s\\),&nbsp;\\(I_{qs} &lt; I_{qs}^*\\) and the machine decelerates. When \\(\\theta _{err} &gt; \\pi \/ 2\\), the effective torque becomes negative, even if the reference torque is positive. As a result, the rotor decelerates abruptly and the virtual rotating frame catches up with the real rotating frame. Once again, the large torque re-accelerates the machine, and the virtual frame is always lagging behind. In the end, the real torque is oscillating around the reference torque but the control is stable. This phenomenon is called the <em>self-stabilization mechanism&nbsp;<\/em>in [6].<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"222\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_4_doublecolumn-1.png\" alt=\"Vector diagram for lagging reference frame\" class=\"wp-image-1868\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_4_doublecolumn-1.png 530w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_4_doublecolumn-1-300x126.png 300w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><figcaption class=\"wp-element-caption\">When in (left) the real torque becomes<br>negative the rotor decelerates in a stable situation (right).<\/figcaption><\/figure>\n<\/div>\n\n\n<p>In summary, the I-f control is stable if &#8211; for a given reference acceleration &#8211; the torque reference is high enough to ensure that the virtual rotating frame is always lagging behind the real rotating frame.<\/p>\n\n\n\n<p>Mathematically speaking, the equation (1) can be modified to express the stability condition:<\/p>\n\n\n\n<p>$$(4) \\qquad \\frac{d \\omega _m^*}{dt} &lt; \\cfrac{\\cfrac{3}{2} p \\Psi_{PM}I_{qs}^* &#8211; T_{L,max}}{J_m}$$<\/p>\n\n\n\n<p>where&nbsp;\\(T_{L,max}\\) is the maximal load torque expected at startup. According to this condition, the current reference should be set as high as possible to ensure the stability of the startup. Therefore, the current reference could be chosen as the nominal current of the PMSM because this is the largest possible current that will not damage the machine in steady-state. However, be aware that a large step in the current reference results in a large inrush current.<\/p>\n\n\n\n<div class=\"wp-block-simple-alerts-for-gutenberg-alert-boxes sab-alert sab-alert-info\" role=\"alert\"><strong>Main take-away:<\/strong> a sensorless PMSM can be started in open-loop by a field-oriented torque control. Since the position is unknown, the RRF is oriented with a virtual position. The stability of the open-loop structure is ensured by applying a large torque reference.<\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-phase-ii-transition-to-sensorless-foc\">Phase II: transition to sensorless FOC<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-challenges\">Challenges<\/h4>\n\n\n\n<p>In a second phase, the I-f control should hand over the reins to the sensorless FOC. However, as mentioned previously, there is a misalignment of the stator current vector due to the angle error between the real and virtual rotating frames.<\/p>\n\n\n\n<p>The figure below illustrates the problem: on the left, the current vector is aligned on the q*-axis by the current controller but, in the real RRF, the current has a non-zero d-axis component. If in this situation, the control is switched to the sensorless FOC, the latter will abruptly align the current vector on the real q-axis current (see illustration on the right). What&#8217;s more, the amplitude of the current reference \\(I_{qs}^*\\) will also be suddenly changed by the speed controller. Mechanically speaking, these two changes translate into a jolt due to the sudden torque variation. Depending on the amplitude of this jolt, the control bandwidth of the speed controller may not be large enough to ensure the stability of the system.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"530\" height=\"224\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_5_doublecolumn-1.png\" alt=\"Vector diagram comparison between I-f startup and FOC\" class=\"wp-image-1871\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_5_doublecolumn-1.png 530w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/vector_diag_5_doublecolumn-1-300x127.png 300w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><figcaption class=\"wp-element-caption\">(left) rotational frame and current reference from the I-f method<br>(right) rotational frame and current reference from the sensorless FOC<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Even if the speed controller is able to ensure the stability of the system, a jolt on the rotor may be undesirable for some applications. For example, when an escalator driven by a PMSM is started, it should not make a jolt. Therefore, there is a need for a smooth transition between the I-f startup phase and the sensorless FOC.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-constant-speed-transition\">Constant speed transition<\/h4>\n\n\n\n<p>A transition technique at constant speed is proposed in [4]. The principle is the following: during a stable I-f startup, the virtual RRF is lagging behind the real one. Therefore, the real RRF should be slowly decelerated until the virtual q*-axis is aligned with the real q-axis. This way, the stator current vector is already aligned on the q-axis when switching to the FOC.<\/p>\n\n\n\n<p>Here is how the virtual RRF can be aligned on the real one [4]:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>The speed reference is maintained at a constant value. It should be &#8220;high enough&#8221; to ensure the proper operation of the sensorless FOC.<\/li>\n\n\n\n<li>According to equation (1), the real RRF can be slowed down by decreasing \\(I_{qs}^*\\). As a result, the angle error \\(\\theta_{err}\\) will also decrease.<\/li>\n\n\n\n<li>If \\(\\theta_{err} &lt; \\epsilon_{\\theta}\\), where \\(\\epsilon _{\\theta}\\) is the desired tolerance, the control is handed over to the sensorless FOC. At that moment, the current reference \\(I_{qs}^*\\) is almost aligned on the q-axis of the real rotating frame, as in the case of the sensorless FOC. Therefore, it is reasonable to expect that \\(I_{qs}^*\\) is close to the value desired by the speed controller.<\/li>\n<\/ol>\n\n\n\n<p>The simulation results below illustrate the gradual alignment of the virtual RRF with the real one when the current reference \\(I_{qs}^*\\) is gradually reduced.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"412\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-47.png\" alt=\"Simulation results of the reference alignement with I-f startup method\" class=\"wp-image-1873\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-47.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-47-300x155.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-47-768x396.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"h-additional-comments\"><strong>Additional comments<\/strong><\/h4>\n\n\n\n<p>This section addresses a few additional implementation details that were set up to obtain the experimental results presented at the end of this page.<\/p>\n\n\n\n<p>The first one relates to the estimation of the angle error \\(\\theta _{err}\\). Since the real rotor angle is not available in practice, the only available value is its estimation:<\/p>\n\n\n\n<p>$$(5) \\qquad \\hat \\theta _{err} = \\hat \\theta _e &#8211; \\theta _e^* = (\\theta _e + \\Delta \\hat \\theta) &#8211; \\theta _e^* = \\theta _{err} + \\Delta \\hat \\theta$$<\/p>\n\n\n\n<p>which is affected by&nbsp;\\(\\Delta \\hat \\theta\\), the estimation error of the rotor position observer. Due to this estimation error, the stability criterion \\(\\theta _{err} &gt; 0\\) is not ensured at the moment of the transition (i.e. when \\(\\hat\\theta_{err} = \\epsilon_{\\theta}\\)). Therefore, mathematically, the tolerance \\(\\epsilon _{\\theta}\\) should be larger than \\(\\Delta \\hat \\theta\\). In practice, \\(\\epsilon _{\\theta}\\) should be large enough to ensure that the startup is stable at the moment of transition to sensorless control.<\/p>\n\n\n\n<p>Another consequence is that the transition condition \\(\\hat\\theta_{err} &lt; \\epsilon_{\\theta}\\) may be hard to reach for a large estimation error \\(\\Delta \\hat \\theta\\). In this case, the decreasing current reference \\(I_{qs}^*\\) may become negative before \\(\\hat\\theta_{err} &lt; \\epsilon_{\\theta}\\) is met. This can be the case under light load conditions, where low stator currents lead to a high estimation error \\(\\Delta \\hat \\theta\\). The light load also means that a negative \\(I_{qs}^*\\) would cause the machine to accelerate in the opposite direction. To avoid that behavior, an additional transition condition can be added: if \\(I_{qs}^*\\) is smaller than a threshold \\(\\epsilon _I\\), the control switches to the sensorless FOC.<\/p>\n\n\n\n<p>Finally, it is important that the integral term of the speed controller is initialized in a suitable way. If the integral term is zero at the moment of transition, the current reference will drop abruptly. If the transition occurs at \\(t_1\\), a reasonable initial value is the torque produced by \\(I_{qs}^*(t_1)\\). In [4], the authors propose a theoretical way to estimate \\(I_{qs}^*(t_1)\\). Alternatively, the initial value can be derived from \\(I_{qs}^*(t_1-T_s)\\), the current reference that was computed by the I-f method just before the transition. The initial value of the integral term is therefore \\(\\frac{3}{2}p \\Psi_{pm}I_{qs}^*(t_1-T_s)\\).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-summary-of-the-i-f-startup-method\">Summary of the I-f startup method<\/h3>\n\n\n\n<p>The whole I-f startup method can be summarized in the following steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Set the references to \\(I_{qs}^* = \\text{cst}\\) and\u00a0\\(\\omega _m^* = \\frac{d\\omega _m^*}{dt} \\times t\\). Make sure to fulfill the stability condition (4).<\/li>\n\n\n\n<li>Once \\(\\omega_m^* \\geq \\omega_{m,min}\\), keep the speed reference constant. Let us call this moment\u00a0\\(t_0\\).<\/li>\n\n\n\n<li>Reduce the current reference:\u00a0\\(I_{qs}^*(t) = I_{qs}^*(t_0) &#8211; \\frac{d I_{qs}^*}{dt} (t &#8211; t_0)\\)<\/li>\n\n\n\n<li>Switch to the sensorless FOC if\u00a0\\(\\hat \\theta_{err} &lt; \\epsilon_{\\theta}\\) or \\(I_{qs}^* &lt; \\epsilon _{I}\\).<\/li>\n\n\n\n<li>At that stage, experimental tests showed that it was necessary to keep the speed reference constant for 1-2 seconds before starting to track the desired speed (see experimental section).<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-48.png\" alt=\"Overall simulation results of the I-f startup method\" class=\"wp-image-1874\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; Simulation_results_speed.png (Simulation results of I-f startup)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-48.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-48-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-48-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-i-f-startup-method-implementation-on-a-b-box-controller\"><span class=\"ez-toc-section\" id=\"I-f-startup-method-implementation-on-a-B-Box-controller\"><\/span>I-f startup method implementation on a B-Box controller<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The file provided in the Download section contains a complete implementation of a SMO-based sensorless speed control of a PMSM with I-f startup. The implementation uses the <a href=\"https:\/\/imperix.com\/software\/acg-sdk\/\">ACG SDK<\/a> on Simulink.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-virtual-reference-frame\">Virtual reference frame<\/h3>\n\n\n\n<p>The position of the virtual frame is obtained simply by integrating the speed reference, as shown below:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"555\" height=\"285\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-51.png\" alt=\"Generation of a virtual reference frame during I-f startup\" class=\"wp-image-1877\" style=\"width:470px\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; image2021-2-23_16-11-17.png (Virtual reference frame angle)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-51.png 555w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-51-300x154.png 300w\" sizes=\"auto, (max-width: 555px) 100vw, 555px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-selection-of-the-sensorless-method\">Selection of the sensorless method<\/h3>\n\n\n\n<p>The figure below shows how the control selects the speed\/position from either the I-f or the SMO-based methods. The &#8220;sensorless_ready&#8221; signal is given by the operation state machine, once the minimal speed has been reached.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"750\" height=\"512\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-52.png\" alt=\"Switch between I-f startup method and regular FOC control\" class=\"wp-image-1878\" style=\"width:634px\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; image2021-2-23_16-12-52.png (Switch to sensorless method Simulink model)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-52.png 750w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-52-300x205.png 300w\" sizes=\"auto, (max-width: 750px) 100vw, 750px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-torque-reference\">Torque reference<\/h3>\n\n\n\n<p>The torque reference comes either directly from the I-f control or from the speed controller. The integrator in the speed controller is initialized by taking the last value of the q-axis current reference from the I-f control.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"946\" height=\"366\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-53.png\" alt=\"Generation of the stator current reference with I-f startup method\" class=\"wp-image-1879\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; image2021-2-23_16-16-21.png (Sensorless speed control Simulink model)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-53.png 946w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-53-300x116.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-53-768x297.png 768w\" sizes=\"auto, (max-width: 946px) 100vw, 946px\" \/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tuning-of-the-speed-controller\">Tuning of the speed controller<\/h3>\n\n\n\n<p>The tuning of the cascaded control for the same PMSM is already detailed in the technical notes <a href=\"https:\/\/imperix.com\/doc\/implementation\/field-oriented-control-of-permanent-magnet-synchronous-machine\">TN111<\/a> for the inner-loop and <a href=\"https:\/\/imperix.com\/doc\/implementation\/motor-speed-control\">TN114<\/a> for the outer-loop. See the&nbsp;<em>Experimental results<\/em>&nbsp;section for the machine parameters.<\/p>\n\n\n\n<p>For this particular implementation of a sensorless FOC, the estimated speed fed to the speed controller is always lagging behind the real speed due to multiple low-pass filters. There is a 2<sup>nd<\/sup> order LPF with a 60 Hz cut-off frequency after the SMO and a 1<sup>st<\/sup> order LPF with a 10 Hz cut-off frequency just before the speed controller (see above). The purpose of this last LPF is to filter the speed estimation noise. As a result, the dynamic of the speed controller must be adapted to take the estimation delay into account.<\/p>\n\n\n\n<p>The effect of the low-pass filters is taken into account by the <em>sensing <\/em>delay because even if the speed is estimated it is inferred from current measurements.<\/p>\n\n\n\n<p>$$(6) \\qquad \\left\\{ \\begin{array} \\displaystyle T_{sens} = \\cfrac{2}{2 \\pi \\times 60 \\,\\text{Hz}} + \\cfrac{1}{2\\pi \\times 10\\,\\text{Hz}} = 21.2 \\,\\text{ms} \\\\[5pt] \\displaystyle T_{ctrl} = N \\times T_s = \\cfrac{100}{20 \\, \\text{kHz}} = 5 \\,\\text{ms}\\\\[5pt] \\displaystyle T_{PWM} = \\cfrac{T_{sw}}{2} = \\cfrac{1}{2 \\times 20 \\, \\text{kHz}} = 25 \\,\\text{\u00b5s} \\end{array}\\right.$$<\/p>\n\n\n\n<p>The total delay of the outer-loop is then the sum of the small time constants:<\/p>\n\n\n\n<p>$$(7) \\qquad T_{tot} = T_{sens} + T_{ctrl} + T_{PWM} = 26.225 \\,\\text{ms}$$<\/p>\n\n\n\n<p>The measurement delay is predominant in the dynamic of the speed control and cannot be neglected. Using the <em>symmetrical optimum<\/em> criterion and taking the measurement delay into account the parameters of the PIs are computed as:<\/p>\n\n\n\n<p>$$(8) \\qquad \\left\\{ \\begin{array}{rl} \\displaystyle T_n &amp;= 4 \\space T_{tot} = 104.9 \\,\\text{ms}\\\\[5pt] \\displaystyle T_i &amp;= 8 \\space \\cfrac{T_{tot}^2}{T_2} = 18.97 \\,(\\text{N}\\,\\text{m})^{-1} \\\\[5pt] \\displaystyle K_p &amp;= T_n \\space \/ \\space T_i = 0.006 \\, \\text{N}\\,\\text{m}\\,\\text{s}\\\\[5pt] \\displaystyle K_i &amp;= 1 \\space \/ \\space T_i = 0.053 \\,\\text{N}\\,\\text{m} \\end{array}\\right.$$<\/p>\n\n\n\n<p>The table below summarizes the difference in tuning between the sensored and sensorless speed control.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th><\/th><th>Sensored speed control<\/th><th>Sensorless speed control<\/th><\/tr><tr><td>Total delay&nbsp;\\(T_{tot}\\)<\/td><td>5.025 ms<\/td><td>26.225 ms<\/td><\/tr><tr><td>Proportional gain&nbsp;\\(K_p\\)<\/td><td>0.029 Nm s<\/td><td>0.006 Nm s<\/td><\/tr><tr><td>Integral gain&nbsp;\\(K_i\\)<\/td><td>1.43 Nm<\/td><td>0.053 Nm<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Finite state machine<\/strong><\/p>\n\n\n\n<p>The figure below shows the finite state machine that handles the I-f startup and the transition to the sensorless FOC. Notice the presence of a &#8220;stabilization&#8221; state after the constant speed compensation: when the control switches to the sensorless FOC, the jump to the new rotating reference frame and to the speed controller introduces a transient oscillation of the speed. If the speed reference is changed during that transient, the control may crash, depending on the variation rate of the reference and the load conditions. A simple solution is to keep the speed reference constant for &#8211; say &#8211; 1 second to let the speed controller stabilize the machine.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"458\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-54-1024x458.png\" alt=\"Finite state machine diagram handling I-f startup and transition to sensorless FOC\" class=\"wp-image-1880\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; image2021-2-23_16-18-49.png (I-f startup operation finite state machine)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-54-1024x458.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-54-300x134.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-54-768x344.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-54-1536x687.png 1536w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-54.png 1564w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-experimental-results-of-the-i-f-startup-method\"><span class=\"ez-toc-section\" id=\"Experimental-results-of-the-I-f-startup-method\"><\/span>Experimental results of the I-f startup method<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The experimental setup consists of a PMSM supplied by a voltage source inverter controlled by a <a href=\"https:\/\/imperix.com\/products\/control\/bbox\/\">B-Box prototyping controller<\/a>. The FOC control is implemented using the <a href=\"https:\/\/imperix.com\/software\/acg-sdk\/\">graphical programming of ACG SDK<\/a> library for Simulink. The power converter is built from 4x <a href=\"https:\/\/imperix.com\/products\/power\/peb\/\">PEB 8032 phase-leg modules<\/a> (3 phases and 1 braking chopper leg). Another PMSM connected to 3 power resistors is used as a brake to generate a load torque.<\/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 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-49.png\" alt=\"Programmable motor drive inverter setup\" class=\"wp-image-1875\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-49.png 380w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-49-300x291.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><figcaption class=\"wp-element-caption\">Power converter and controller<\/figcaption><\/figure>\n<\/div><\/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=\"164\" src=\"https:\/\/cdn.imperix.com\/doc\/wp-content\/uploads\/2021\/03\/testbench_photo_machines.png\" alt=\"Motor bench and brake\" class=\"wp-image-7654\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; testbench_photo_machines.png (Permanent magnet motor and brake)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/testbench_photo_machines.png 380w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/testbench_photo_machines-300x129.png 300w\" sizes=\"auto, (max-width: 380px) 100vw, 380px\" \/><figcaption class=\"wp-element-caption\">Motor and brake<\/figcaption><\/figure>\n<\/div><\/div>\n<\/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<h3 class=\"wp-block-heading\" id=\"h-machine-parameters\">Machine parameters<\/h3>\n\n\n\n<p>The sensorless control was validated on a Permanent Magnets Synchronous Machine (PMSM) with the following parameters:<\/p>\n\n\n\n<p><strong>Model: Control techniques 095U2B300BACAA100190<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular\"><table><tbody><tr><td><strong>Parameter<\/strong><\/td><td><strong>Value<\/strong><\/td><td><strong>Unit<\/strong><\/td><\/tr><tr><td>Rated power<\/td><td>1.23<\/td><td>kW<\/td><\/tr><tr><td>Pole pairs<\/td><td>3<\/td><td>&#8211;<\/td><\/tr><tr><td>Rated phase voltage<\/td><td>460<\/td><td>V<\/td><\/tr><tr><td>Rated phase current<\/td><td>2.7<\/td><td>A<\/td><\/tr><tr><td>Rated mechanical speed<\/td><td>314<\/td><td>rad\/s<\/td><\/tr><tr><td>Rated torque<\/td><td>3.9<\/td><td>Nm<\/td><\/tr><tr><td>Stator resistance<\/td><td>3.4<\/td><td>Ohm<\/td><\/tr><tr><td>Stator inductance (d and q axis)<\/td><td>12.15<\/td><td>mH<\/td><\/tr><tr><td>Permanent magnet flux<\/td><td>0.25<\/td><td>Wb<\/td><\/tr><tr><td>Moment of inertia (PMSM only)<\/td><td>2.9<\/td><td>kg cm<sup>2<\/sup><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-test-conditions\">Test conditions<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Load torque: identical PMSM with 500 \u03a9 resistive load on each phase<\/li>\n\n\n\n<li>DC link voltage: 600 V<\/li>\n\n\n\n<li>Inverter: 4x PEB8032 (one leg for braking chopper)<\/li>\n\n\n\n<li>Interrupt and sampling frequency: 20 kHz<\/li>\n\n\n\n<li>Sampling phase: 0.5<\/li>\n\n\n\n<li>PWM outputs: carrier-based<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-results-of-i-f-startup-method\">Results of I-f startup method<\/h3>\n\n\n\n<p>The speed reference was set to 3000 rpm with a constant speed transition at 500 rpm and a maximum rate of 1000 rpm\/s. The oscillations of the measured speed around the reference at startup illustrate the self-stabilizing effect of the I-f method. When the PMSM has reached 500 rpm, the estimated speed is accurate, even if it was completely off at \\(t = 0 \\,\\text{s}\\). The transition to the sensorless FOC occurs at \\(t = 3.1 \\,\\text{s}\\). At that stage, the FSM keeps the speed reference constant during 1s to let the control compensate the jump to the FOC.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-55.png\" alt=\"I-f startup method with constant speed transition\" class=\"wp-image-1881\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-55.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-55-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-55-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n\n\n<p>The next figure illustrates how the reduction of the current reference on the q-axis decreases the angle error between the virtual and real rotating frames. The exit conditions of the constant speed transition depend on the tolerances set for \\(I_{qs}^*\\) and \\(\\theta _e\\): in this case&nbsp;\\(\\epsilon _I = 0.1 \\,\\text{A}\\) and&nbsp; \\(\\epsilon _{\\theta} = 0.1 \\,\\text{rad}\\). As expected under load, the condition \\(\\theta_e &lt; \\epsilon_{\\theta}\\) is met first.<\/p>\n\n\n\n<p>Note that the tests were carried out with \\(I_{qs}^*\\) equal to only 80% of the nominal current at startup to limit the in-rush current.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-56.png\" alt=\"Current tracking on q-axis during I-f startup\" class=\"wp-image-1882\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; cst-speed-transition-angle-error.png (Current tracking and angle error)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-56.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-56-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-56-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\n\n\n<p>During the I-f startup, the current controller follows the d and q axes references inside the virtual rotating frame. Before alignement of the virtual rotating frame, the angle error was almost 90\u00b0 as seen below (i.e. d and q axis almost inverted). In our tests, an encoder was used to compute the real dq currents.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"300\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-57.png\" alt=\"Current tracking during I-f startup\" class=\"wp-image-1883\" title=\"Technical notes &gt; TN137: I-f startup for sensorless PMSM control &gt; currents-transition.png (Current tracking on dq axes)\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-57.png 800w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-57-300x113.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/image-57-768x288.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/figure>\n<\/div>\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] A. Consoli, G. Scarcella and A. Testa, &#8220;Industry application of zero-speed sensorless control techniques for PM synchronous motors,&#8221; in IEEE Transactions on Industry Applications, vol. 37, no. 2, pp. 513-521, March-April 2001, doi: 10.1109\/28.913716.<\/p>\n\n\n\n<p>[2] D. Hanselman, &#8220;Brushless Permanent Magnet Motor Design&#8221;, 2nd edition, Magna Physics Publishing, USA, 2006, ISBN: 1-881855-15-5<\/p>\n\n\n\n<p>[3] C. Aijun and J. Xinhai, &#8220;A stable V\/F control method for permanent magnet synchronous motor drives,&#8221; 2017 IEEE Transportation Electrification Conference and Expo, Asia-Pacific (ITEC Asia-Pacific), Harbin, 2017, pp. 1-5, doi: 10.1109\/ITEC-AP.2017.8080913.<\/p>\n\n\n\n<p>[4] Z. Wang, K. Lu and F. Blaabjerg, &#8220;A Simple Startup Strategy Based on Current Regulation for Back-EMF-Based Sensorless Control of PMSM,&#8221; in <em>IEEE Transactions on Power Electronics<\/em>, vol. 27, no. 8, pp. 3817-3825, Aug. 2012, doi: 10.1109\/TPEL.2012.2186464.<\/p>\n\n\n\n<p>[5] J. Xing, Z. Qin, C. Lin and X. Jiang, &#8220;Research on Startup Process for Sensorless Control of PMSMs Based on I-F Method Combined With an Adaptive Compensator,&#8221; in <em>IEEE Access<\/em>, vol. 8, pp. 70812-70821, 2020, doi: 10.1109\/ACCESS.2020.2987343.<\/p>\n\n\n\n<p>[6] L. Wang, Y. Zhang, L. Zhao and G. Chen, &#8220;An Improved 3-Step Startup Method Based on Sensorless Vector Control of PMSM,&#8221; 2019 IEEE PES Asia-Pacific Power and Energy Engineering Conference (APPEEC), Macao, Macao, 2019, pp. 1-5, doi: 10.1109\/APPEEC45492.2019.8994460.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This note covers the I-f startup method for speed sensorless motor control and its implementation on a programmable power converter prototype.<\/p>\n","protected":false},"author":8,"featured_media":3068,"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,107],"related-products":[50,32,166,114,111],"guidedreadings":[119],"tutorials":[],"user-manuals":[],"coauthors":[62],"class_list":["post-1477","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-implementation","tag-motor-drives","software-environments-matlab","provided-results-experimental","provided-results-simulation","related-products-acg-sdk","related-products-b-box-rcp","related-products-b-box-rcp-3-0","related-products-motor","related-products-pm","guidedreadings-wind-turbine-generator-control-using-a-sensorless-algorithm"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>I-f startup method for sensorless PMSM control - imperix<\/title>\n<meta name=\"description\" content=\"This note covers the I-f startup method for speed sensorless motor control and its implementation on a programmable power converter prototype.\" \/>\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\/i-f-startup-method\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"I-f startup method for sensorless PMSM control - imperix\" \/>\n<meta property=\"og:description\" content=\"This note covers the I-f startup method for speed sensorless motor control and its implementation on a programmable power converter prototype.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-02T11:27:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-17T14:40:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN137_2.png\" \/>\n\t<meta property=\"og:image:width\" content=\"450\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"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=\"20 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method\"},\"author\":{\"name\":\"Simon Strobl\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/112ed48191405cbe3befbc660d112803\"},\"headline\":\"I-f startup method for sensorless PMSM control\",\"datePublished\":\"2021-04-02T11:27:26+00:00\",\"dateModified\":\"2025-12-17T14:40:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method\"},\"wordCount\":3968,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN137_2.png\",\"keywords\":[\"Motor drives\"],\"articleSection\":[\"Technical notes\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method\",\"name\":\"I-f startup method for sensorless PMSM control - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN137_2.png\",\"datePublished\":\"2021-04-02T11:27:26+00:00\",\"dateModified\":\"2025-12-17T14:40:57+00:00\",\"description\":\"This note covers the I-f startup method for speed sensorless motor control and its implementation on a programmable power converter prototype.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN137_2.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/04\\\/3_2_ratio_TN137_2.png\",\"width\":450,\"height\":300,\"caption\":\"Block diagram of an SMO-based sensorless FOC with I-f startup for a PMSM\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/implementation\\\/i-f-startup-method#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\":\"I-f startup method for sensorless PMSM 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\\\/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":"I-f startup method for sensorless PMSM control - imperix","description":"This note covers the I-f startup method for speed sensorless motor control and its implementation on a programmable power converter prototype.","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\/i-f-startup-method","og_locale":"en_US","og_type":"article","og_title":"I-f startup method for sensorless PMSM control - imperix","og_description":"This note covers the I-f startup method for speed sensorless motor control and its implementation on a programmable power converter prototype.","og_url":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method","og_site_name":"imperix","article_published_time":"2021-04-02T11:27:26+00:00","article_modified_time":"2025-12-17T14:40:57+00:00","og_image":[{"width":450,"height":300,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN137_2.png","type":"image\/png"}],"author":"Simon Strobl","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Simon Strobl","Est. reading time":"20 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method"},"author":{"name":"Simon Strobl","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/112ed48191405cbe3befbc660d112803"},"headline":"I-f startup method for sensorless PMSM control","datePublished":"2021-04-02T11:27:26+00:00","dateModified":"2025-12-17T14:40:57+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method"},"wordCount":3968,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN137_2.png","keywords":["Motor drives"],"articleSection":["Technical notes"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method","url":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method","name":"I-f startup method for sensorless PMSM control - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN137_2.png","datePublished":"2021-04-02T11:27:26+00:00","dateModified":"2025-12-17T14:40:57+00:00","description":"This note covers the I-f startup method for speed sensorless motor control and its implementation on a programmable power converter prototype.","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN137_2.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/04\/3_2_ratio_TN137_2.png","width":450,"height":300,"caption":"Block diagram of an SMO-based sensorless FOC with I-f startup for a PMSM"},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/implementation\/i-f-startup-method#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":"I-f startup method for sensorless PMSM 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\/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\/1477","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=1477"}],"version-history":[{"count":34,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1477\/revisions"}],"predecessor-version":[{"id":39130,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/1477\/revisions\/39130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/3068"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=1477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=1477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=1477"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=1477"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=1477"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=1477"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=1477"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=1477"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=1477"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=1477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}