<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Module 9: Position Observer (Part 1/2) in Model-Based Design Toolbox (MBDT)</title>
    <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747801#M1763</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much for the interesting posting, it is very inspiring!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The link you shared in the reply to wu chao does not seem to work - it just directs to the Software Center and no download starts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please reshare?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot,&lt;/P&gt;&lt;P&gt;Radek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 02 Mar 2019 17:04:40 GMT</pubDate>
    <dc:creator>radek_nachev</dc:creator>
    <dc:date>2019-03-02T17:04:40Z</dc:date>
    <item>
      <title>Module 9: Position Observer (Part 1/2)</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747798#M1760</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #c6c6c6; border-width: 1px; border-color: #ffffff;" width="100%"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61581i226E746946F61C98/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 30px;"&gt;&lt;STRONG&gt;INTRODUCTION&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;As we have&amp;nbsp;discussed in the previous modules of the&amp;nbsp;&lt;A _jive_internal="true" data-containerid="11546" data-containertype="14" data-content-finding="Community" data-objectid="464336" data-objecttype="1" href="https://community.nxp.com/thread/464336" rel="noopener noreferrer" style="color: #333333; background-color: transparent; border: 0px; font-weight: inherit; padding: 1px 0px 1px calc(12px + 0.35ex);" target="_blank"&gt;3-Phase PMSM Control Workshop with NXP's Model-Based Design Toolbox&lt;/A&gt;,&amp;nbsp; to control&amp;nbsp;a PMSM optimally, the position or the speed of the&amp;nbsp;rotor must be known. In general the rotor position/speed is&amp;nbsp;measured using a position transducer like hall sensors or dedicated sensors like encoders/resolvers. By knowing the&amp;nbsp;r&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;otor position&amp;nbsp;and&amp;nbsp;by maintaining a correct angle between the stator and rotor&amp;nbsp;magnetic fluxes, the PMSM can be controlled in such a way that it provides full torque at zero&amp;nbsp;speed.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Nonetheless, the presence of such position sensors in PMSM control systems is usually undesirable due to:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="color: #51626f; background-color: #ffffff; border: 0px; padding: 0px 0px 0px 30px; text-align: justify;"&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;increases the&amp;nbsp;cost and the complexity of the overall control system (drive, motor, sensors, maintenance)&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;increased number of connections between&amp;nbsp;the motor and the drive system&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;electromagnetic interference due to the presence&amp;nbsp;of connecting leads&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;limited measuring accuracy due to environmental factors&amp;nbsp;such as temperature, humidity and vibrations&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;To&amp;nbsp;address&amp;nbsp;these problems highlighted above, researchers&amp;nbsp;proposed the sensor-less control of PMSM. The basic idea behind this concept is to get rid of the position sensors&amp;nbsp;by trying&amp;nbsp;to determine the actual rotor position indirectly by measuring other variables such as motor's voltages&amp;nbsp;and currents. The term sensor-less control means that there is no position/speed sensors used but&amp;nbsp;there are sensors which measure the currents.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 30px;"&gt;&lt;STRONG&gt;SENSOR-LESS METHODS&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;In the technical literature there are a lot of sensor-less control strategies each of them having its own advantages, disadvantages and limitations but if we try to classify these methods we will end up with two major classes:&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;OL style="color: #51626f; background-color: #ffffff; border: 0px; padding: 0px 0px 0px 30px; text-align: justify;"&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&lt;EM&gt;PMSM model based methods:&amp;nbsp;&lt;/EM&gt;&lt;/SPAN&gt;as the name implies these methods are&amp;nbsp;based on the electrical model of PMSM, and&amp;nbsp;are known to achieve good results in medium and high-speed operation. Due to these limitations the model based methods are mainly used in low-end applications&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&lt;EM&gt;Methods based on PMSM magnetic saliency:&amp;nbsp;&lt;/EM&gt;&lt;/SPAN&gt;are using the&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&lt;EM&gt;magnetic saliency (Ld is different&amp;nbsp;than&amp;nbsp;Lq)&lt;/EM&gt;&lt;/SPAN&gt;&amp;nbsp;inherent characteristic of PMSM.&amp;nbsp; Such methods are known to achieve good results in standstill or very low speed region and are mainly used for certain type of PMSM motors designed accordingly&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;BR /&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 22px;"&gt;&lt;STRONG&gt;i. Back-EMF Based Methods&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;This method uses the PMSM inherited relationship between the back-EMF and rotor position. This method is based on the PMSM mathematical model and uses the&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;stator currents and voltages of the PMSM to compute&amp;nbsp;&lt;/SPAN&gt;the back-EMF space vector in order to get the rotor angle.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Because the rotor&amp;nbsp;permanent magnet flux is aligned with the d-axis (one of FOC goals), the back-EMF is always placed on the q-axis. The rotor position can be calculated&amp;nbsp;by projecting the back-EMF vector from the dq-axes on the stationary orthogonal reference frame αβ as shown in Eq. 1 which represent the PMSM mathematical model.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_8.png"&gt;&lt;IMG alt="pastedImage_8.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61582i814418710CC5D3A4/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_8.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_12.png"&gt;&lt;IMG alt="pastedImage_12.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61583i2A753223364009B2/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_12.png" /&gt;&lt;/SPAN&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 2&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;Using Eq. 2 we can simply compute the PMSM rotor position as:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; width: 84.2965%;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_9.png"&gt;&lt;IMG alt="pastedImage_9.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61584iCF3E69818B4BC99C/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_9.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 5px; width: 12.9397%;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 3&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Based on this basic mathematical model there are many other&amp;nbsp;back-EMF based methods which&amp;nbsp;relies on the&amp;nbsp;use of flux Observers or&amp;nbsp;Kalman filters with the whole purpose to improve the estimation procedure and algorithm stability.&amp;nbsp;Such&amp;nbsp;methods can give good results in the medium and high speed&amp;nbsp;operating region&amp;nbsp;while&amp;nbsp;at low speed rand standstill due to lack of back-EMF produces as consequence of small speed the estimation&amp;nbsp;becomes problematic.&amp;nbsp; The main limitation of the&amp;nbsp;back-EMF&amp;nbsp;based methods is that it can not be used for sensor-less control of a PMSM in the zero and low&amp;nbsp;speed region (less that 5% rates speed).&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Since&amp;nbsp;the measured phased&amp;nbsp;currents&amp;nbsp;are used for back-EMF calculation makes these methods prone to noise&amp;nbsp;influence while the overall accuracy is affected by the motor parameters R, L, flux constant that might vary with the temperature.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 22px;"&gt;&lt;STRONG&gt;ii. Stator Flux Linkage Based Methods&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Another way of estimating the PMSM rotor position&amp;nbsp;is to make use of&amp;nbsp;the stator flux linkage vector. The PMSM stator flux linkage vector is calculated using the rotor&amp;nbsp;reference&amp;nbsp;frame dq voltage equations as&amp;nbsp;shown by&amp;nbsp;Eq. 4:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_20.png"&gt;&lt;IMG alt="pastedImage_20.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61585i3E3085B7C7424A91/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_20.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 4&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;The flux equations used above are:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_22.png"&gt;&lt;IMG alt="pastedImage_22.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61586iB91E5ECE0016E171/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_22.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 5&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;For more details about these equations please check:&lt;/SPAN&gt;&amp;nbsp;&lt;A _jive_internal="true" data-containerid="11546" data-containertype="14" data-content-finding="Community" data-objectid="465280" data-objecttype="1" href="https://community.nxp.com/thread/465280" rel="noopener noreferrer" style="color: #3d9ce7; background-color: transparent; border: 0px; font-weight: inherit; padding: 1px 0px 1px calc(12px + 0.35ex);" target="_blank"&gt;Module 2: PMSM and FOC Theory&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Similar with the computations made for&amp;nbsp;the back-EMF method, the Eq. 5 can be&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;projected from the dq-axes on the stationary orthogonal reference frame&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;αβ as shown in Eq. 6&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_30.png"&gt;&lt;IMG alt="pastedImage_30.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61587i8F98A7AE2821A9AB/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_30.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 6&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;As&amp;nbsp;you can&amp;nbsp;see the phase voltages, currents and resistance must be measured and known in order to calculate the stator fluxes and ultimately the rotor position.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;The main&amp;nbsp;issue with this method is cause by the integration processes that might drift over time. Of course we may get rid of this problem by using&amp;nbsp;proper integration methods but still the main limitation as shown for back-EMF remains&amp;nbsp;- the initial rotor position is not detectable with this sensor-less&amp;nbsp;technique.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 22px;"&gt;&lt;STRONG&gt;iii. Inductance Based Methods&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;This class of methods are based on the fact that PMSM stator phase inductances are dependent of rotor position, thus an observer could be built to track the variation of the phase inductance over an electrical period.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_4.png"&gt;&lt;IMG alt="pastedImage_4.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61588i1978514AC31EEB6D/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_4.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;where:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_7.png"&gt;&lt;IMG alt="pastedImage_7.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61589iA8ADD80D67646618/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_7.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 7&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Usually such sensor-less techniques will obtain the rotor position information from on-line calculation of the stator phase inductances which are&amp;nbsp;compared&amp;nbsp;against a look-up table which&amp;nbsp;contains a given inductance for a given rotor position. Such methods relies on the knowledge of&amp;nbsp;stator resistance and PM flux linkage values. In addition a high&amp;nbsp;switching frequency ( &amp;gt;10kHz) is needed for&amp;nbsp;inductance calculations.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;BR /&gt;&lt;SPAN style="color: #333333;"&gt;By itself such method is not suitable to determine the rotor position at zero speed since the phase voltages are closed to zero at standstill and is very susceptible to error caused by certain parameter&amp;nbsp;variations.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 22px;"&gt;&lt;STRONG&gt;iIV. Observers Based Methods&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #333333;"&gt;Such&amp;nbsp;techniques are using various&amp;nbsp;forms of the PMSM mathematical model which are used to create a virtual system&amp;nbsp;that&amp;nbsp;is excited with the same phase voltages as the actual system. The goal is to have this virtual model to produce estimated&amp;nbsp;outputs, which are then compared with the measured outputs of the real motor.&amp;nbsp;The errors&amp;nbsp;between the virtual and the&amp;nbsp;physical quantities&amp;nbsp;are used to correct the outputs of&amp;nbsp;the state observer which is then used to correct the PMSM rotor position.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Nonetheless, since the PMSM model is nonlinear by definition, the design and implementation of a state observer is generally quite&amp;nbsp;complex but the algorithms may often be very robust against parameter variations and&amp;nbsp;measurement noise. The main drawbacks of this approach is highly computational requirements and design complexity. In addition to all these the&amp;nbsp; o&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;bserver based&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;methods can not detect initial rotor position.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 22px;"&gt;&lt;STRONG&gt;iV. Signal Injection Based Methods&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #333333;"&gt;These methods are using a high frequency&amp;nbsp;signal that&amp;nbsp;is superimposed&amp;nbsp;on top of the fundamental phase voltage that controls the PMSM. This high frequency signal&amp;nbsp;induces currents which contain information&amp;nbsp;about the rotor position that can be decoded via specialized&amp;nbsp;signal processing techniques.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Such techniques are especially used for sensor-less control of salient pole or interior magnets PMSM types due their high saliency ratio. However, the&amp;nbsp;same technique&amp;nbsp;can be used with surface mounted PMSM since it is going to exploit the saliency produced by the saturation effect of the stator core&amp;nbsp;due to the rotor permanent magnet flux.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;For the&amp;nbsp;PMSM the magnetic reactance in the d-axis is lower than the one&amp;nbsp;in&amp;nbsp;the q-axis. This is why the magnitude of the current measured in d-axis is higher than the one measured in the&amp;nbsp;q-axis&amp;nbsp;for the same&amp;nbsp;injection voltage&amp;nbsp;signal. The opposite is true for the inductance in the d-axis is lower than the inductance&amp;nbsp;in the q-axis. This effect is caused by the saturation&amp;nbsp;of the magnetic core around d-axis. Based on these observations an accurate observer could be built to harness the effect of magnetic saturation and accurately estimate the speed even at zero speed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 30px;"&gt;&lt;STRONG&gt;SELECTION OF POSITION ESTIMATION&amp;nbsp;METHOD&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 22px; color: #333333;"&gt;(Proof-of-Concept)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Based on the general description of the available methods suitable for sensor-less control methods shown above, it seems that saliency based methods like high frequency signal injection might be the best way to estimate the rotor position due to ability to work even at standstill conditions. However, since they are only&amp;nbsp;well-suited for motors with inductance variations over one electrical period,&amp;nbsp;in case of small motors with surface mounted magnets that&amp;nbsp;have negligible dq saliency, the resulting variations in the measured currents would be too low&amp;nbsp;to produce a proper position estimation. In our particular case, due to commutation noises it will be almost impossible to distinguish the phase current variations due to magnetic saturation.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;That being said, we have practically only type of sensor-less method left. Overall, the back-EMF-based methods&amp;nbsp;are quite popular and suitable for the&amp;nbsp;proposed control&amp;nbsp;system. The&amp;nbsp;limitation to provide accurate position&amp;nbsp;estimation at low speeds&amp;nbsp;is not a problem, since at low-speed operation&amp;nbsp;we can use the open loop voltage control.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;STRONG&gt;Therefore, let us see how can we build a simple back-EMF estimator.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;In order to understand the concept let us start from a simple use case such as a PMSM with surface mounted permanent magnets that is assumed to have no saliency (Ld = Lq) as the one described by Eq. 2. The representation of the mathematical model (basically the CLARKE coordinate transformation&amp;nbsp;from&amp;nbsp;3 phase machine into 2 phase orthogonal) for the phase windings is shown in Fig. 1.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61570i86004996F1BD0D40/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; font-size: 12px; color: #333333;"&gt;Fig. 1: PMSM stator model in αβ&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;stationary orthogonal reference frame&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;These two windings (sine and cosine) are placed at 90 electrical degrees one of each other and from Eq. 2 we can clearly see that the rotor angle&amp;nbsp;θ is in direct relationship with the two back-EMF voltages e&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;α&lt;/SPAN&gt;&amp;nbsp;and e&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;β.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; font-weight: bold; color: #333333;"&gt;&lt;STRONG&gt;So, if we find a way to evaluate these back-EMF voltages, then we can simply apply the Eq. 3 and get the rotor angle. Piece of cake, right ?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; color: #333333;"&gt;Measuring the back-EMF is impossible when using FOC since all phases are commutated&amp;nbsp;at all time, therefore the only viable option is to find a numerical method to extract the back-EMF information from the mathematical model.&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE __default_attr="info" __jive_macro_name="alert" alert="info" class="jive_text_macro jive_macro_alert"&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; color: #808080;"&gt;As a side note, in case of BLDC 6-step commutation method where at any moment in time only 2 out of 3 motor phases are energized, it is possible to measure the back-EMF of the un-connected phase, but that is a topic for another discussion.&lt;/SPAN&gt;&lt;/P&gt;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; color: #333333;"&gt;If we look closely at the winding model and assume there are no AC values but rather only DC quantities, then that looks exactly like a DC motor model which is much more simple to simulate and understand. So, let us see how can we can build a basic back-EMF estimator starting from the DC motor model. First we need to write the Kirchhoff&amp;nbsp;circuit law for one of the windings shown in Fig. 1 (e.g.: for the sine winding along alpha axis) the equation becomes:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;IMG alt="pastedImage_3.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61571i9A26556B17F9ACD3/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq.&amp;nbsp;8&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;The Eq. 8 shows that the voltage applied to any of the motor coils (e.g. u&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;α)&lt;/SPAN&gt;&amp;nbsp;is equal to the sum of the voltages around the loop: voltage drop due to coil resistance and inductance and the back-EMF generated inside the coil due to rotor spinning magnets&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;e&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;α. What is interesting about this equation, is that the rotor position&amp;nbsp;&lt;/SPAN&gt;θ&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&amp;nbsp;is embedded inside the back-EMF voltage term. Finding a way to estimate the back-EMF will&amp;nbsp;allow us to know the&amp;nbsp;rotor position.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;From mathematical point of view, we can estimate the back-EMF term with a simple observer that is based on the applied voltage&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;u&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;α, the measured current i&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;α and the motor winding parameters R &amp;amp; L.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; color: #333333;"&gt;We can build this back-EMF observer starting from the current that flows thru the coil. From Eq. 8 we can derived the estimated current as:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_6.png"&gt;&lt;IMG alt="pastedImage_6.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61572i5E4FFF693E4B3E4C/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_6.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 5px; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 9&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;PRE __default_attr="info" __jive_macro_name="alert" alert="info" class="jive_text_macro jive_macro_alert"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; color: #808080;"&gt;Note that current, resistance and inductance in Eq. 9 are marked with the hat operator since all these are predicted values.&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; color: #333333;"&gt;Now comes the really interesting part: if we can make the predicted current from Eq. 9 to be equal with the measured current from Eq. 8 then we can have a very good guess of what the back-EMF term is. This equality can only happen if the predicted back-EMF is equal with the real back-EMF generated inside the motor windings.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Fortunately&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;, is quite easy to build such an observer in the Simulink environment using the Eg. 9 and the model below:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61573i56C3B381DFF80251/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; font-size: 12px; color: #333333;"&gt;Fig. 2: Simplified back-EMF observer model&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;As can be seen in Fig. 2, the predicted current is computed based on the difference between the command voltage, the predicted back-EMF and some estimated values for the motor winding resistance and inductance values. Then, the predicted current is compared against the motor phase measured current and the difference is fed into a PI controller that has the job to minimize the error between these 2 currents. If the error is kept to zero by this PI controller then it means that the output of the controller is the exact back-EMF that is produced inside the motor coil. The negative gain is added to stabilize the closed loop around the PI controller.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;If we run the simulation and compare the actual back-EMF of a DC motor against the predicted back-EMF we can check how the observer behaves.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_4.png"&gt;&lt;IMG alt="pastedImage_4.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61574i9DA9746BBDF84DA5/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_4.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; font-size: 12px; color: #333333;"&gt;Fig. 3:&amp;nbsp;Simulink model to simulate the motor and back-EMF observer operations&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;As shown in Fig. 4, the motor is supplied with a variable voltage pattern that cause it to speed up and down to certain levels and than back to stall. The motor simplified model is used to check the rotor position, motor current and phase winding back-EMF that are used as references for the back-EMF observer.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_10.png"&gt;&lt;IMG alt="pastedImage_10.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61575i90A5FDB643B6FA6A/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_10.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; font-size: 12px; color: #333333;"&gt;Fig. 4:&amp;nbsp;Simplified motor model outcome waveforms used as references&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;The back-EMF observer output, the predicted back-EMF, is shown in the Fig. 5 and compared with the motor back-EMF obtained from simplified motor model. As can be seen, the observer can predict quite accurately the back-EMF. The accuracy of the back-EMF observer is tightly coupled with the PI controller gains. In theory, the PI controller should be able to deal with R variations due to temperature changes.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;IMG alt="pastedImage_2.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61576iCADE1E4CE35289C5/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_2.png" /&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;IMG alt="pastedImage_3.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61577i8748BFC8E5B88EAE/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; font-size: 12px; color: #333333;"&gt;Fig. 5: Predicted back-EMF (dotted-blue) vs. actual motor back-EMF (solid-yellow) comparison&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;The PI controller within the back-EMF observer can be tuned based on root-locus method as any of PI standard current controller. Starting from Eq. 9, we can depict the process transfer function as a standard 1st order transfer function:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;IMG alt="pastedImage_2.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61579i20379E089697A5E0/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_2.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;where:&amp;nbsp;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_3.png"&gt;&lt;IMG alt="pastedImage_3.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61580iD75AD78542E9B8A6/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_3.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 10&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;The PI controller, assuming the parallel form can be written as:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_4.png"&gt;&lt;IMG alt="pastedImage_4.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61590iD8E5685C2BE1F107/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_4.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;where: Kp and Ki&amp;nbsp;are the proportional and integral controller gains, respectively&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 11&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61591iB0168C9EF411A655/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; font-size: 12px; color: #333333;"&gt;Fig. 6:&amp;nbsp;Generic closed loop system derived from model shown in Fig. 2&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Using the Eq. 10 and Eq. 11 we can write the transfer function of the closed loop system shown in Fig. 6, from the motor measured current to the predicted current as:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_9.png"&gt;&lt;IMG alt="pastedImage_9.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61592i804D1CD6EB2D5DD2/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_9.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 12&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Now, if we identify each coefficient from the closed loop system characteristic polynomial against the standard second order system desired response (Eq. 13) we can compute the actual values of the PI controller gains:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_8.png"&gt;&lt;IMG alt="pastedImage_8.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61593iA84675C1EA18256A/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_8.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="padding: 5px; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 13&lt;/SPAN&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;PRE __default_attr="info" __jive_macro_name="alert" alert="info" class="jive_text_macro jive_macro_alert"&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #808080;"&gt;More information about root-locus tuning method and PI controllers can be found here:&lt;/SPAN&gt;&amp;nbsp;&lt;A _jive_internal="true" data-containerid="11546" data-containertype="14" data-content-finding="Community" data-objectid="455225" data-objecttype="1" href="https://community.nxp.com/thread/455225" rel="noopener noreferrer" style="color: #3d9ce7; background-color: transparent; border: 0px; font-weight: inherit; padding: 1px 0px 1px calc(12px + 0.35ex);" target="_blank"&gt;Motor Control Class: Lecture 11 - Closed Loop Control&lt;/A&gt;&lt;/P&gt;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;The values of the PI controller that predicts the missing back-EMF term from Eq. 8 are:&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="border: 0px;"&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61594iEBD5E92609F9BED2/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;IMG alt="pastedImage_2.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61595i56A646E7870970E5/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_2.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 14&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;This is how you can build a simple observer using the measured current and command voltage to predict the variation of the back-EMF voltage. At this point we only have one of the back-EMF waveform.&amp;nbsp;Now,&amp;nbsp;we need to find the other back-EMF waveform that corresponds to the orthogonal axis and then using the Eq. 3, to evaluate the rotor position.&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;P style="border: 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;SPAN style="border: 0px; font-weight: bold; color: #333333;"&gt;&lt;STRONG&gt;So, if up to this point you found this article interesting, lets dig more into the problem an see how can we build a control system around back-EMF observers.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; text-align: justify;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 30px;"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="color: #000080; border: 0px; font-weight: inherit; font-size: 30px;"&gt;&lt;SPAN style="border: 0px; font-weight: bold; font-size: 30px;"&gt;&lt;STRONG&gt;POSITION OBSERVER&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: bold; font-size: 30px;"&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Most likely this is one of the most complex subjects we are going to tackle in this workshop. The complexity is derived mainly from the mathematical background required to implement such task but also due to the nature of PMSM that requires a good knowledge of the machine operation, magnetic field decoupling and modelling.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Also, in order to address some of the concerns raised by different users within this community, to keep the implementation as generic as possible in order to work with other MCU, we are going to use 16 bit fixed point implementation using only common blocks from AMMCLIB that are available across all the other toolboxes.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Due to the subject complexity this chapter&amp;nbsp;is devided in 3 main topics in order to allow readers to understand the specific aspects&amp;nbsp;without losing the focus on the big picture:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; padding: 0px 0px 0px 30px; text-align: justify;"&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;Theory of operation&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;- how it works and the mathematical background;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;Back-EMF&amp;nbsp;Estimator&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;- implementation of the R-L circuit that predicts the currents and PI back-EMF controller tuning;&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;Position Tracking Observer&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;- why is important to minimize the tracking error and how to tune the PI tracking controller;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 22px;"&gt;&lt;STRONG&gt;1.&amp;nbsp;Theory of operation&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #333333;"&gt;When we discuss about the&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;position observer&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;within a Field Oriented Control system we are referring at 3 major computation blocks that are required to predict the PMSM rotor position as depicted in the Fig. 7&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; font-weight: 400; padding: 5px;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_12.png"&gt;&lt;IMG alt="pastedImage_12.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61596iA99988DE7AEC8A3A/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_12.png" /&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="font-weight: 400; padding: 5px; text-align: center;"&gt;&lt;SPAN style="font-size: 12px;"&gt;Fig. 7: Block diagram of the Position Estimator&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;For modelling, we are going to use a slightly different implementation than the one described in the previous chapter and the reason will become evident in a moment. The back-EMF estimator we are going to use is going to estimate the saliency based back-EMF which is predicted with a PI controller.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;For that we are going to consider a new orthogonal&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;virtual frame γδ - gamma/delta&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;which is a rotating coordinate system synchronous&amp;nbsp;with the rotating magnetic field produced in the PMSM. This&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;virtual γδ - gamma/delta&lt;/SPAN&gt;&amp;nbsp;frame has the same properties as the&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;standard dq - direct/&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;quadrature&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;coordinate system used&amp;nbsp;for the torque and flux decoupling equations in FOC (&lt;/SPAN&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&lt;EM&gt;&lt;SPAN style="color: #333333;"&gt;check&amp;nbsp;&lt;/SPAN&gt;&lt;A _jive_internal="true" data-containerid="11546" data-containertype="14" data-content-finding="Community" data-objectid="465280" data-objecttype="1" href="https://community.nxp.com/thread/465280" rel="noopener noreferrer" style="color: #3d9ce7; background-color: transparent; border: 0px; font-weight: inherit; padding: 1px 0px 1px calc(12px + 0.35ex);" target="_blank"&gt;Module 2: PMSM and FOC Theory&lt;/A&gt;&amp;nbsp;f&lt;SPAN style="color: #333333;"&gt;or more information&lt;/SPAN&gt;&lt;/EM&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #333333;"&gt;) but compared with that one is offset by an error angl&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;e&amp;nbsp;θerr&amp;nbsp;&lt;/SPAN&gt;as shown in Fig. 8 .&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="font-weight: 400; padding: 5px; text-align: center;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_21.png"&gt;&lt;IMG alt="pastedImage_21.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61597i788B1C36089C4967/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_21.png" /&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="font-weight: 400; padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; font-size: 12px; color: #333333;"&gt;Fig. 8:&amp;nbsp;PMSM rotor and stator reference frames&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="border: 0px; font-weight: bold; color: #333333;"&gt;&lt;STRONG&gt;So, why do we need this new frame&amp;nbsp;γδ - gamma/delta ?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Well, now comes one of the most important technical aspects of the theory behind this position observer.&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #333333; border: 0px;"&gt;If you look closely at the frames depicted in Fig. 8, something interesting happens if&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γδ&amp;nbsp;&lt;/SPAN&gt;is perfectly aligned with&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;dq&lt;/SPAN&gt;&amp;nbsp;frame.&amp;nbsp;If the error angle&amp;nbsp;θerr&amp;nbsp;is zero than all the saliency back-EMF, generated by the rotating magnets,&amp;nbsp;is located in the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;δ-delta axis&lt;/SPAN&gt;&amp;nbsp;which is in fact same as the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;q axis&amp;nbsp;&lt;/SPAN&gt;and&lt;SPAN style="border: 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;this&amp;nbsp;means that there is no error between real and estimated position.&amp;nbsp;&lt;STRONG&gt;This is the quintessence of the whole position estimation mechanism.&amp;nbsp;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333; border: 0px;"&gt;On the other hand, if error angle&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;θerr&lt;/SPAN&gt;&amp;nbsp;exists then, the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γ-gamma axis&lt;/SPAN&gt;&amp;nbsp;also see saliency back-EMF, therefore the back-EMF voltage can be our cost-function that needs to be optimized towards zero by help of&amp;nbsp;a simple PI controller.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px;"&gt;Therefore, from now on we are going to use this&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γδ - gamma/delta&amp;nbsp;&lt;/SPAN&gt;frame to perform all the computations related to position observer. Consid&lt;/SPAN&gt;ering the Eq.1, we can rewrite the PMSM model in the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γδ - gamma/delta&amp;nbsp;&lt;/SPAN&gt;as:&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; font-weight: 400; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61598i71B26637E4255134/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;TD style="border: inherit solid inherit; font-weight: 400; padding: 5px;"&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="border: 0px; font-weight: inherit; text-align: right;"&gt;&lt;SPAN style="color: #333333;"&gt;Eq. 15&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;where:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; padding: 0px 0px 0px 30px;"&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;R is the resistance of one stator phase [Ω],&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Ld and Lq are the d-axis and q-axis inductances [H],&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;ωγδ is the estimated electrical angular velocity of the rotor [rad/s],&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;uγ and uδ are the stator voltages [V],&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;iγ and iδ are the stator currents [A],&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;kv*ωγδ&lt;/SPAN&gt;&amp;nbsp;is the saliency-based BEMF magnitude [V],&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;θerr is the phase error between the estimated quasi-synchronous frame γδ and the&amp;nbsp;synchronous rotor flux frame dq [rad],&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;s is the Laplace differential operator.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Please note that in Eq. 15, the voltage in the δ-axis is&amp;nbsp;computed from the Ld&amp;nbsp;inductance instead of Lq. This helps us to avoid the motor parameters measurement errors of the&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #333333;"&gt;R and Ld parameters. This is yet another reason for selecting this&amp;nbsp;implementation of saliency based back-EMF since&amp;nbsp;position estimation accuracy depends only on one parameter until the field weakening region. The only parameter that&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;needs to be known/measured beforehand&amp;nbsp;&lt;/SPAN&gt;is Lq. All other model based approaches methods depends on&amp;nbsp;2 or 3 of the&amp;nbsp;motor parameters (Rs,Ld,Lq)&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE __default_attr="info" __jive_macro_name="alert" alert="info" class="jive_text_macro jive_macro_alert"&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;Information about how to measure various motor parameters can be found&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.nxp.com%2Fdocs%2Fen%2Fapplication-note%2FAN4680.pdf" rel="noopener noreferrer" style="color: #3d9ce7; border: 0px; font-weight: inherit; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;here&lt;/A&gt;&lt;/P&gt; &lt;/PRE&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;So the o&lt;SPAN style="border: 0px;"&gt;utput of the back-EMF&amp;nbsp;estimator are&amp;nbsp;the saliency back-EMF voltages in&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γ&lt;/SPAN&gt;&lt;SPAN style="border: 0px;"&gt;δ&amp;nbsp;&lt;/SPAN&gt;error frame and we already know that we need&amp;nbsp;to optimize the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γ-gamma component to be zero&lt;/SPAN&gt;&amp;nbsp;or better to say the angle error&amp;nbsp;θerr between&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γ&lt;/SPAN&gt;&lt;SPAN style="border: 0px;"&gt;δ&amp;nbsp;&lt;/SPAN&gt;error frame and the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;dq&lt;/SPAN&gt;&amp;nbsp;frame to be zero.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333; border: 0px;"&gt;As shown in Fig. 7, with the help of&amp;nbsp;tangent function we can obtain directly the angle error&amp;nbsp;θerr&amp;nbsp;between&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γ&lt;/SPAN&gt;&lt;SPAN style="border: 0px;"&gt;δ&amp;nbsp;&lt;/SPAN&gt;error&amp;nbsp;frame and the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;dq&lt;/SPAN&gt;&amp;nbsp;frame which can be directly optimized to zero by a third PI controller (&lt;SPAN style="border: 0px;"&gt;&lt;EM&gt;the first two of PI controller are inside the back-EMF estimator&lt;/EM&gt;&lt;/SPAN&gt;). This PI controller is part of what we call a Position Tracking Observer.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333; border: 0px;"&gt;If the angle error&amp;nbsp;θerr&amp;nbsp;between&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;γ&lt;/SPAN&gt;&lt;SPAN style="border: 0px;"&gt;δ&amp;nbsp;&lt;/SPAN&gt;error&amp;nbsp;frame and the&amp;nbsp;&lt;SPAN style="border: 0px;"&gt;dq&lt;/SPAN&gt;&amp;nbsp;frame is zero then we also have the correct position on the output of the Position Tracking Observer and on the output of PI controller there must be the correct speed.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;The overall Simulink model for the Position Observer based on the components we have discussed in this sub-chapter is shown in Fig. 9.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; font-weight: 400; padding: 5px;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_2.png"&gt;&lt;IMG alt="pastedImage_2.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61599i1CC6A23FC6752FD8/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_2.png" /&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="font-weight: 400; padding: 5px; text-align: center;"&gt;&lt;SPAN style="border: 0px; font-weight: inherit; color: #333333; font-size: 12px;"&gt;Fig. 9:&amp;nbsp;Simulink model of the Position Estimator for FOC of PMSM&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="border: 0px; color: #000080; font-weight: bold; font-size: 22px;"&gt;&lt;STRONG&gt;2.&amp;nbsp;back-EMF Estimator&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #333333;"&gt;The back-EMF&amp;nbsp;estimator&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;&lt;EM&gt;(others might call it back-EMF observer but for the sake of avoiding term overlapping with Position Observer, i'll refer to it as estimator)&lt;/EM&gt;&lt;/SPAN&gt;&amp;nbsp;job is to detect the voltages induced by the&amp;nbsp;permanent magnets of a PMSM in&amp;nbsp;this newly introduced&amp;nbsp;quasi-synchronous&amp;nbsp;γδ&amp;nbsp;reference frame. The estimated back-EMF quantities allows the estimation of the&amp;nbsp;rotor speed&amp;nbsp;and position.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;As depicted in Fig. 9 with orange blocks, for readability I broke the back-EMF estimator into 3 Simulink subsystems:&lt;/SPAN&gt;&lt;/P&gt;&lt;UL style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; padding: 0px 0px 0px 30px; text-align: justify;"&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;AlphaBeta2GammaDelta&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;subsystem projects the real current and voltages into the quasi-synchronous frame&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;RL_Circuit_Model&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;subsystem implements the PMSM model that is used to predict the currents in the quasi-synchronous frame&lt;/SPAN&gt;&lt;/LI&gt;&lt;LI style="border: 0px; font-weight: inherit; margin: 0.5ex 0px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN style="border: 0px; font-weight: bold;"&gt;&lt;STRONG&gt;backEMF_Estimator&lt;/STRONG&gt;&lt;/SPAN&gt;&amp;nbsp;implements the PI controllers that computes the back-EMF quatities in the quasi-synchronous frame&amp;nbsp;&lt;/SPAN&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="border: 0px; color: #333399; font-weight: bold;"&gt;&lt;STRONG&gt;2.1 αβ2γδ Transformations&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;The input voltages and currents are supplied in a stationary reference frame αβ. The&amp;nbsp;back-EMF&amp;nbsp;estimator,&amp;nbsp;transforms these quantities into a quasi-synchronous reference frame γδ&amp;nbsp;that follows the real synchronous rotor flux frame dq with an error θerr. These transformations are shown in Fig. 10, and as can be seen this is nothing more that a simple PARK transformation in which the angle used for sine/cosine computations is the one predicted by the Position Observer&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="border: inherit solid inherit; font-weight: 400; padding: 5px;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_1.png"&gt;&lt;IMG alt="pastedImage_1.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61600i7778AE76F94017F2/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_1.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="font-weight: 400; padding: 5px; text-align: center;"&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;Fig. 10: AlphaBeta to GammaDelta coordinate transformation Simulink model&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;SPAN style="color: #333333;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400; text-align: justify;"&gt;&lt;SPAN style="color: #333333;"&gt;Also, please note that all the inputs are converted from floating point single precision to fixed point 16 bit numbers using dedicate AMMCLIB conversion block. In case of the current we also need to scale the values to (-1, 1) interval using a simple divide with the ADC maximum measurable current value. As shown in Fig. 11, even if we changed the numeric representation the currents and voltages continue to have the variation we expect from a FOC. The scaling factor is easy to be deducted is we consider that at 2^15 we get the maximum current of 31.25Amps or maximum voltage of 12Volts.&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV class="" style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;&lt;TABLE class="j-table jiveBorder" style="border: 1px solid #ffffff; font-weight: inherit; margin: 0px 0px 2px;" width="100%"&gt;&lt;TBODY style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="font-weight: 400; padding: 5px; text-align: center;"&gt;&lt;SPAN style="color: #333333;"&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_9.png"&gt;&lt;IMG alt="pastedImage_9.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61601i352A4F08F1F9BCA8/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_9.png" /&gt;&lt;/SPAN&gt;&lt;SPAN class="lia-inline-image-display-wrapper" image-alt="pastedImage_10.png"&gt;&lt;IMG alt="pastedImage_10.png" src="https://community.nxp.com/t5/image/serverpage/image-id/61602i40DB716F97F04683/image-size/large?v=v2&amp;amp;px=999" title="pastedImage_10.png" /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR style="border: inherit solid inherit; font-weight: inherit;"&gt;&lt;TD style="font-weight: 400; padding: 5px; text-align: center;"&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;Fig. 11: Currents and Voltage in&amp;nbsp;&lt;SPAN style="border: 0px; font-weight: inherit;"&gt;γδ quasi-synchronous frame after&amp;nbsp;αβ2γδ transformation, &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="border: 0px; color: #333333; font-weight: inherit; font-size: 12px;"&gt;assuming a trapezoidal speed profile with a slope of 1000rpm/sec&lt;/SPAN&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;PRE __default_attr="info" __jive_macro_name="alert" alert="info" class="jive_text_macro jive_macro_alert"&gt;&lt;P style="color: #51626f; background-color: #ffffff; border: 0px; font-weight: 400;"&gt;For the moment please ignore the noisiness of the measured currents. This is due the simplified model used for PMSM windings&lt;/P&gt; &lt;/PRE&gt;&lt;PRE __default_attr="info" __jive_macro_name="alert" alert="info" class="jive_text_macro jive_macro_alert" modifiedtitle="true"&gt;&lt;P&gt;The part 2/2 of this article can be found here:&amp;nbsp;&lt;A href="https://community.nxp.com/message/1020634" rel="noopener noreferrer" target="_blank"&gt;https://community.nxp.com/message/1020634&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2020 14:04:56 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747798#M1760</guid>
      <dc:creator>Daniel_Popa</dc:creator>
      <dc:date>2020-11-02T14:04:56Z</dc:date>
    </item>
    <item>
      <title>Re: Module 9: Position Observer (Part 1/2)</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747799#M1761</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;in Eq. 5 at Module 9: Position Observer (Part 1/2)，i think ω*φd is missing in&amp;nbsp;φα,either for φβ。am i wrong?&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.5pt; color: #333333; border: none windowtext 1.0pt; padding: 0cm;"&gt;and as for：As shown in Fig. 4, the motor is supplied with a variable voltage pattern that cause it to speed up and down to certain levels and than back to stall.---------------it seems "than &lt;SPAN&gt;back to stall"&lt;/SPAN&gt;is wrong for "then&amp;nbsp;&lt;SPAN&gt;back to stall".&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.5pt; color: #333333; border: none windowtext 1.0pt; padding: 0cm;"&gt;&lt;SPAN&gt;&lt;STRONG style="font-weight: 400; "&gt;and as for：&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.5pt; color: #333333; border: none windowtext 1.0pt; padding: 0cm;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;&amp;nbsp;if up to this point you found this article interesting, lets dig more into the problem an see-------is ' and see'&amp;nbsp; right?&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.5pt; color: #333333; border: none windowtext 1.0pt; padding: 0cm;"&gt;&lt;SPAN&gt;&lt;STRONG&gt;by the way your article is very interesting and helpful! thanks&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Jan 2019 13:43:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747799#M1761</guid>
      <dc:creator>sjh2100</dc:creator>
      <dc:date>2019-01-25T13:43:46Z</dc:date>
    </item>
    <item>
      <title>Re: Module 9: Position Observer (Part 1/2)</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747800#M1762</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/carlwu"&gt;carlwu&lt;/A&gt;‌,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for delay - for some reasons i'm not getting updates to all thread that happens on this community and some of the replies might be overlooked.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;As shown in Fig. 4, the motor is supplied with a variable voltage pattern that cause it to speed up and down to certain levels and than back to stall.---------------it seems "than&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #333333; background-color: #ffffff; border: 0px; font-size: 16.6667px;"&gt;back to stall"&lt;/SPAN&gt;&lt;SPAN style="color: #333333; background-color: #ffffff;"&gt;is wrong for "then&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #333333; background-color: #ffffff; border: 0px; font-size: 16.6667px;"&gt;back to stall".&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="pastedImage_10.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/79513iA75A5034A34F0755/image-size/large?v=v2&amp;amp;px=999" role="button" title="pastedImage_10.png" alt="pastedImage_10.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;The figure shows the Electric Angle, Current and Back-EMF when the motor is accelerated up to 1000rpm in 1sec, then is keeping that speed for another 1sec followed by a 1sec deceleration ramp to 500 rpm, maintaining 500rpm for another second and then decelerated to 0 or stall.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;in Eq. 5 at Module 9: Position Observer (Part 1/2)，i think ω*φd is missing in&amp;nbsp;φα,either for φβ。am i wrong?&lt;/SPAN&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Eq. 5 is written in DQ reference frame hence there should be no&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;α&lt;SPAN&gt;β components.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;In general, i've used this document as reference:&amp;nbsp;&lt;A class="link-titled" href="https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true" title="https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true"&gt;https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true&lt;/A&gt;&amp;nbsp; and other equation that can be found on the web.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Hope this helps!&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;Daniel&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 25 Feb 2019 09:34:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747800#M1762</guid>
      <dc:creator>Daniel_Popa</dc:creator>
      <dc:date>2019-02-25T09:34:01Z</dc:date>
    </item>
    <item>
      <title>Re: Module 9: Position Observer (Part 1/2)</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747801#M1763</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Daniel,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you very much for the interesting posting, it is very inspiring!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The link you shared in the reply to wu chao does not seem to work - it just directs to the Software Center and no download starts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Could you please reshare?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot,&lt;/P&gt;&lt;P&gt;Radek&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 02 Mar 2019 17:04:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747801#M1763</guid>
      <dc:creator>radek_nachev</dc:creator>
      <dc:date>2019-03-02T17:04:40Z</dc:date>
    </item>
    <item>
      <title>Re: Module 9: Position Observer (Part 1/2)</title>
      <link>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747802#M1764</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.nxp.com%2Fwebapp%2Fsps%2Fdownload%2FpreDownload.jsp%3Frender%3Dtrue" rel="nofollow" style="color: #3d9ce7; background-color: #ffffff; border: 0px; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;https://www.nxp.com/webapp/sps/download/preDownload.jsp?render=true&lt;/A&gt;&amp;nbsp;that link is empty.&lt;/P&gt;&lt;P&gt;can you give another link or give the&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;document&lt;SPAN&gt;&amp;nbsp;file name ,so i can find in internet by myself.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;SPAN&gt;thanks.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 03 Aug 2019 02:47:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Model-Based-Design-Toolbox-MBDT/Module-9-Position-Observer-Part-1-2/m-p/747802#M1764</guid>
      <dc:creator>sjh2100</dc:creator>
      <dc:date>2019-08-03T02:47:42Z</dc:date>
    </item>
  </channel>
</rss>

