Serveur d'exploration sur la télématique

Attention, ce site est en cours de développement !
Attention, site généré par des moyens informatiques à partir de corpus bruts.
Les informations ne sont donc pas validées.

Empirical Mode Decomposition and Neural Networks on FPGA for Fault Diagnosis in Induction Motors

Identifieur interne : 000538 ( Pmc/Corpus ); précédent : 000537; suivant : 000539

Empirical Mode Decomposition and Neural Networks on FPGA for Fault Diagnosis in Induction Motors

Auteurs : David Camarena-Martinez ; Martin Valtierra-Rodriguez ; Arturo Garcia-Perez ; Roque Alfredo Osornio-Rios ; Rene De Jesus Romero-Troncoso

Source :

RBID : PMC:3942393

Abstract

Nowadays, many industrial applications require online systems that combine several processing techniques in order to offer solutions to complex problems as the case of detection and classification of multiple faults in induction motors. In this work, a novel digital structure to implement the empirical mode decomposition (EMD) for processing nonstationary and nonlinear signals using the full spline-cubic function is presented; besides, it is combined with an adaptive linear network (ADALINE)-based frequency estimator and a feed forward neural network (FFNN)-based classifier to provide an intelligent methodology for the automatic diagnosis during the startup transient of motor faults such as: one and two broken rotor bars, bearing defects, and unbalance. Moreover, the overall methodology implementation into a field-programmable gate array (FPGA) allows an online and real-time operation, thanks to its parallelism and high-performance capabilities as a system-on-a-chip (SoC) solution. The detection and classification results show the effectiveness of the proposed fused techniques; besides, the high precision and minimum resource usage of the developed digital structures make them a suitable and low-cost solution for this and many other industrial applications.


Url:
DOI: 10.1155/2014/908140
PubMed: 24678281
PubMed Central: 3942393

Links to Exploration step

PMC:3942393

Le document en format XML

<record>
<TEI>
<teiHeader>
<fileDesc>
<titleStmt>
<title xml:lang="en">Empirical Mode Decomposition and Neural Networks on FPGA for Fault Diagnosis in Induction Motors</title>
<author>
<name sortKey="Camarena Martinez, David" sort="Camarena Martinez, David" uniqKey="Camarena Martinez D" first="David" last="Camarena-Martinez">David Camarena-Martinez</name>
<affiliation>
<nlm:aff id="I1">HSPdigital-CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Río, QRO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Valtierra Rodriguez, Martin" sort="Valtierra Rodriguez, Martin" uniqKey="Valtierra Rodriguez M" first="Martin" last="Valtierra-Rodriguez">Martin Valtierra-Rodriguez</name>
<affiliation>
<nlm:aff id="I1">HSPdigital-CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Río, QRO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Garcia Perez, Arturo" sort="Garcia Perez, Arturo" uniqKey="Garcia Perez A" first="Arturo" last="Garcia-Perez">Arturo Garcia-Perez</name>
<affiliation>
<nlm:aff id="I2">HSPdigital-CA Telematica, Procesamiento Digital de Señales, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5 + 1.8, Palo Blanco, 36700 Salamanca, GTO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Osornio Rios, Roque Alfredo" sort="Osornio Rios, Roque Alfredo" uniqKey="Osornio Rios R" first="Roque Alfredo" last="Osornio-Rios">Roque Alfredo Osornio-Rios</name>
<affiliation>
<nlm:aff id="I1">HSPdigital-CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Río, QRO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Romero Troncoso, Rene De Jesus" sort="Romero Troncoso, Rene De Jesus" uniqKey="Romero Troncoso R" first="Rene De Jesus" last="Romero-Troncoso">Rene De Jesus Romero-Troncoso</name>
<affiliation>
<nlm:aff id="I2">HSPdigital-CA Telematica, Procesamiento Digital de Señales, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5 + 1.8, Palo Blanco, 36700 Salamanca, GTO, Mexico</nlm:aff>
</affiliation>
</author>
</titleStmt>
<publicationStmt>
<idno type="wicri:source">PMC</idno>
<idno type="pmid">24678281</idno>
<idno type="pmc">3942393</idno>
<idno type="url">http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3942393</idno>
<idno type="RBID">PMC:3942393</idno>
<idno type="doi">10.1155/2014/908140</idno>
<date when="2014">2014</date>
<idno type="wicri:Area/Pmc/Corpus">000538</idno>
<idno type="wicri:explorRef" wicri:stream="Pmc" wicri:step="Corpus" wicri:corpus="PMC">000538</idno>
</publicationStmt>
<sourceDesc>
<biblStruct>
<analytic>
<title xml:lang="en" level="a" type="main">Empirical Mode Decomposition and Neural Networks on FPGA for Fault Diagnosis in Induction Motors</title>
<author>
<name sortKey="Camarena Martinez, David" sort="Camarena Martinez, David" uniqKey="Camarena Martinez D" first="David" last="Camarena-Martinez">David Camarena-Martinez</name>
<affiliation>
<nlm:aff id="I1">HSPdigital-CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Río, QRO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Valtierra Rodriguez, Martin" sort="Valtierra Rodriguez, Martin" uniqKey="Valtierra Rodriguez M" first="Martin" last="Valtierra-Rodriguez">Martin Valtierra-Rodriguez</name>
<affiliation>
<nlm:aff id="I1">HSPdigital-CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Río, QRO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Garcia Perez, Arturo" sort="Garcia Perez, Arturo" uniqKey="Garcia Perez A" first="Arturo" last="Garcia-Perez">Arturo Garcia-Perez</name>
<affiliation>
<nlm:aff id="I2">HSPdigital-CA Telematica, Procesamiento Digital de Señales, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5 + 1.8, Palo Blanco, 36700 Salamanca, GTO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Osornio Rios, Roque Alfredo" sort="Osornio Rios, Roque Alfredo" uniqKey="Osornio Rios R" first="Roque Alfredo" last="Osornio-Rios">Roque Alfredo Osornio-Rios</name>
<affiliation>
<nlm:aff id="I1">HSPdigital-CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Río, QRO, Mexico</nlm:aff>
</affiliation>
</author>
<author>
<name sortKey="Romero Troncoso, Rene De Jesus" sort="Romero Troncoso, Rene De Jesus" uniqKey="Romero Troncoso R" first="Rene De Jesus" last="Romero-Troncoso">Rene De Jesus Romero-Troncoso</name>
<affiliation>
<nlm:aff id="I2">HSPdigital-CA Telematica, Procesamiento Digital de Señales, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5 + 1.8, Palo Blanco, 36700 Salamanca, GTO, Mexico</nlm:aff>
</affiliation>
</author>
</analytic>
<series>
<title level="j">The Scientific World Journal</title>
<idno type="eISSN">1537-744X</idno>
<imprint>
<date when="2014">2014</date>
</imprint>
</series>
</biblStruct>
</sourceDesc>
</fileDesc>
<profileDesc>
<textClass></textClass>
</profileDesc>
</teiHeader>
<front>
<div type="abstract" xml:lang="en">
<p>Nowadays, many industrial applications require online systems that combine several processing techniques in order to offer solutions to complex problems as the case of detection and classification of multiple faults in induction motors. In this work, a novel digital structure to implement the empirical mode decomposition (EMD) for processing nonstationary and nonlinear signals using the full spline-cubic function is presented; besides, it is combined with an adaptive linear network (ADALINE)-based frequency estimator and a feed forward neural network (FFNN)-based classifier to provide an intelligent methodology for the automatic diagnosis during the startup transient of motor faults such as: one and two broken rotor bars, bearing defects, and unbalance. Moreover, the overall methodology implementation into a field-programmable gate array (FPGA) allows an online and real-time operation, thanks to its parallelism and high-performance capabilities as a system-on-a-chip (SoC) solution. The detection and classification results show the effectiveness of the proposed fused techniques; besides, the high precision and minimum resource usage of the developed digital structures make them a suitable and low-cost solution for this and many other industrial applications. </p>
</div>
</front>
<back>
<div1 type="bibliography">
<listBibl>
<biblStruct>
<analytic>
<author>
<name sortKey="Siddique, A" uniqKey="Siddique A">A Siddique</name>
</author>
<author>
<name sortKey="Yadava, Gs" uniqKey="Yadava G">GS Yadava</name>
</author>
<author>
<name sortKey="Singh, B" uniqKey="Singh B">B Singh</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Benbouzid, Meh" uniqKey="Benbouzid M">MEH Benbouzid</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lei, Y" uniqKey="Lei Y">Y Lei</name>
</author>
<author>
<name sortKey="Lin, J" uniqKey="Lin J">J Lin</name>
</author>
<author>
<name sortKey="He, Z" uniqKey="He Z">Z He</name>
</author>
<author>
<name sortKey="Zuo, M" uniqKey="Zuo M">M Zuo</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Monmasson, E" uniqKey="Monmasson E">E Monmasson</name>
</author>
<author>
<name sortKey="Idkhajine, L" uniqKey="Idkhajine L">L Idkhajine</name>
</author>
<author>
<name sortKey="Cirstea, Mn" uniqKey="Cirstea M">MN Cirstea</name>
</author>
<author>
<name sortKey="Bahri, I" uniqKey="Bahri I">I Bahri</name>
</author>
<author>
<name sortKey="Tisan, A" uniqKey="Tisan A">A Tisan</name>
</author>
<author>
<name sortKey="Naouar, Mw" uniqKey="Naouar M">MW Naouar</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Baptista, D" uniqKey="Baptista D">D Baptista</name>
</author>
<author>
<name sortKey="Abreu, S" uniqKey="Abreu S">S Abreu</name>
</author>
<author>
<name sortKey="Freitas, F" uniqKey="Freitas F">F Freitas</name>
</author>
<author>
<name sortKey="Vasconcelos, R" uniqKey="Vasconcelos R">R Vasconcelos</name>
</author>
<author>
<name sortKey="Morgado Dias, Fa" uniqKey="Morgado Dias F">FA Morgado-Dias</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Su, H" uniqKey="Su H">H Su</name>
</author>
<author>
<name sortKey="Chong, Kt" uniqKey="Chong K">KT Chong</name>
</author>
<author>
<name sortKey="Ravi Kumar, R" uniqKey="Ravi Kumar R">R Ravi Kumar</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Jimenez, Ga" uniqKey="Jimenez G">GA Jiménez</name>
</author>
<author>
<name sortKey="Mu Oz, Ao" uniqKey="Mu Oz A">AO Muñoz</name>
</author>
<author>
<name sortKey="Duarte Mermoud, Ma" uniqKey="Duarte Mermoud M">MA Duarte-Mermoud</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Rosero, J" uniqKey="Rosero J">J Rosero</name>
</author>
<author>
<name sortKey="Garcia, A" uniqKey="Garcia A">A Garcia</name>
</author>
<author>
<name sortKey="Cusido, J" uniqKey="Cusido J">J Cusido</name>
</author>
<author>
<name sortKey="Romeral, L" uniqKey="Romeral L">L Romeral</name>
</author>
<author>
<name sortKey="Ortega, Ja" uniqKey="Ortega J">JA Ortega</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Garcia Perez, A" uniqKey="Garcia Perez A">A Garcia-Perez</name>
</author>
<author>
<name sortKey="Romero Troncoso, Rdj" uniqKey="Romero Troncoso R">RDJ Romero-Troncoso</name>
</author>
<author>
<name sortKey="Cabal Yepez, E" uniqKey="Cabal Yepez E">E Cabal-Yepez</name>
</author>
<author>
<name sortKey="Osornio Rios, Ra" uniqKey="Osornio Rios R">RA Osornio-Rios</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Huang, Ne" uniqKey="Huang N">NE Huang</name>
</author>
<author>
<name sortKey="Shen, Z" uniqKey="Shen Z">Z Shen</name>
</author>
<author>
<name sortKey="Long, Sr" uniqKey="Long S">SR Long</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Feng, H L" uniqKey="Feng H">H-L Feng</name>
</author>
<author>
<name sortKey="Fang, Y M" uniqKey="Fang Y">Y-M Fang</name>
</author>
<author>
<name sortKey="Xiang, X Q" uniqKey="Xiang X">X-Q Xiang</name>
</author>
<author>
<name sortKey="Li, J" uniqKey="Li J">J Li</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Peng, Zk" uniqKey="Peng Z">ZK Peng</name>
</author>
<author>
<name sortKey="Tse, Pw" uniqKey="Tse P">PW Tse</name>
</author>
<author>
<name sortKey="Chu, Fl" uniqKey="Chu F">FL Chu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Xu, D" uniqKey="Xu D">D Xu</name>
</author>
<author>
<name sortKey="Xu, Y" uniqKey="Xu Y">Y Xu</name>
</author>
<author>
<name sortKey="Chen, X" uniqKey="Chen X">X Chen</name>
</author>
<author>
<name sortKey="Zha, W" uniqKey="Zha W">W Zha</name>
</author>
<author>
<name sortKey="Li, X" uniqKey="Li X">X Li</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Du, Q" uniqKey="Du Q">Q Du</name>
</author>
<author>
<name sortKey="Yang, S" uniqKey="Yang S">S Yang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Du, Q" uniqKey="Du Q">Q Du</name>
</author>
<author>
<name sortKey="Yang, S" uniqKey="Yang S">S Yang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Duque, O" uniqKey="Duque O">O Duque</name>
</author>
<author>
<name sortKey="Perez, M" uniqKey="Perez M">M Pérez</name>
</author>
<author>
<name sortKey="Mori Igo, D" uniqKey="Mori Igo D">D Moríñigo</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zhang, J" uniqKey="Zhang J">J Zhang</name>
</author>
<author>
<name sortKey="Zhu, N" uniqKey="Zhu N">N Zhu</name>
</author>
<author>
<name sortKey="Yang, L" uniqKey="Yang L">L Yang</name>
</author>
<author>
<name sortKey="Yao, Q" uniqKey="Yao Q">Q Yao</name>
</author>
<author>
<name sortKey="Lu, Q" uniqKey="Lu Q">Q Lu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Niu, F L" uniqKey="Niu F">F-L Niu</name>
</author>
<author>
<name sortKey="Huang, J" uniqKey="Huang J">J Huang</name>
</author>
<author>
<name sortKey="Yang, J Q" uniqKey="Yang J">J-Q Yang</name>
</author>
<author>
<name sortKey="Chen, L Y" uniqKey="Chen L">L-Y Chen</name>
</author>
<author>
<name sortKey="Jin, H" uniqKey="Jin H">H Jin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chen, Y" uniqKey="Chen Y">Y Chen</name>
</author>
<author>
<name sortKey="Zhang, H" uniqKey="Zhang H">H Zhang</name>
</author>
<author>
<name sortKey="Shen, Y" uniqKey="Shen Y">Y Shen</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Zhang, G" uniqKey="Zhang G">G Zhang</name>
</author>
<author>
<name sortKey="Wei, Y" uniqKey="Wei Y">Y Wei</name>
</author>
<author>
<name sortKey="Cheng, G" uniqKey="Cheng G">G Cheng</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Antonino Daviu, J" uniqKey="Antonino Daviu J">J Antonino-Daviu</name>
</author>
<author>
<name sortKey="Aviyente, S" uniqKey="Aviyente S">S Aviyente</name>
</author>
<author>
<name sortKey="Strangas, Eg" uniqKey="Strangas E">EG Strangas</name>
</author>
<author>
<name sortKey="Riera Guasp, M" uniqKey="Riera Guasp M">M Riera-Guasp</name>
</author>
<author>
<name sortKey="Roger Folch, J" uniqKey="Roger Folch J">J Roger-Folch</name>
</author>
<author>
<name sortKey="Perez, Rb" uniqKey="Perez R">RB Pérez</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Gai, G" uniqKey="Gai G">G Gai</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Patel, Th" uniqKey="Patel T">TH Patel</name>
</author>
<author>
<name sortKey="Darpe, Ak" uniqKey="Darpe A">AK Darpe</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Yang, B" uniqKey="Yang B">B Yang</name>
</author>
<author>
<name sortKey="Suh, Cs" uniqKey="Suh C">CS Suh</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lee, S M" uniqKey="Lee S">S-M Lee</name>
</author>
<author>
<name sortKey="Choi, Y S" uniqKey="Choi Y">Y-S Choi</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Garcia Ramirez, Ag" uniqKey="Garcia Ramirez A">AG Garcia-Ramirez</name>
</author>
<author>
<name sortKey="Osornio Rios, Ra" uniqKey="Osornio Rios R">RA Osornio-Rios</name>
</author>
<author>
<name sortKey="Granados Lieberman, D" uniqKey="Granados Lieberman D">D Granados-Lieberman</name>
</author>
<author>
<name sortKey="Garcia Perez, A" uniqKey="Garcia Perez A">A Garcia-Perez</name>
</author>
<author>
<name sortKey="Romero Troncoso, Rj" uniqKey="Romero Troncoso R">RJ Romero-Troncoso</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Contreras Medina, Lm" uniqKey="Contreras Medina L">LM Contreras-Medina</name>
</author>
<author>
<name sortKey="Romero Troncoso, Rdj" uniqKey="Romero Troncoso R">RDJ Romero-Troncoso</name>
</author>
<author>
<name sortKey="Cabal Yepez, E" uniqKey="Cabal Yepez E">E Cabal-Yepez</name>
</author>
<author>
<name sortKey="Rangel Magdaleno, Jdj" uniqKey="Rangel Magdaleno J">JDJ Rangel-Magdaleno</name>
</author>
<author>
<name sortKey="Millan Almaraz, Jr" uniqKey="Millan Almaraz J">JR Millan-Almaraz</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Wang, L" uniqKey="Wang L">L Wang</name>
</author>
<author>
<name sortKey="Vai, Mi" uniqKey="Vai M">MI Vai</name>
</author>
<author>
<name sortKey="Mak, Pu" uniqKey="Mak P">PU Mak</name>
</author>
<author>
<name sortKey="Ieong, Ci" uniqKey="Ieong C">CI Ieong</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lee, M H" uniqKey="Lee M">M-H Lee</name>
</author>
<author>
<name sortKey="Shyu, K K" uniqKey="Shyu K">K-K Shyu</name>
</author>
<author>
<name sortKey="Lee, P L" uniqKey="Lee P">P-L Lee</name>
</author>
<author>
<name sortKey="Huang, C M" uniqKey="Huang C">C-M Huang</name>
</author>
<author>
<name sortKey="Chiu, Y J" uniqKey="Chiu Y">Y-J Chiu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Hong, Yy" uniqKey="Hong Y">YY Hong</name>
</author>
<author>
<name sortKey="Yan, C" uniqKey="Yan C">C Yan</name>
</author>
<author>
<name sortKey="Bao, Yq" uniqKey="Bao Y">YQ Bao</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Lu, Ly" uniqKey="Lu L">LY Lu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Chen, D" uniqKey="Chen D">D Chen</name>
</author>
<author>
<name sortKey="Wang, Wj" uniqKey="Wang W">WJ Wang</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ghate, Vn" uniqKey="Ghate V">VN Ghate</name>
</author>
<author>
<name sortKey="Dudul, Sv" uniqKey="Dudul S">SV Dudul</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Ertunc, Hm" uniqKey="Ertunc H">HM Ertunc</name>
</author>
<author>
<name sortKey="Ocak, H" uniqKey="Ocak H">H Ocak</name>
</author>
<author>
<name sortKey="Aliustaoglu, C" uniqKey="Aliustaoglu C">C Aliustaoglu</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Arabaci, H" uniqKey="Arabaci H">H Arabaci</name>
</author>
<author>
<name sortKey="Bilgin, O" uniqKey="Bilgin O">O Bilgin</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kim, K" uniqKey="Kim K">K Kim</name>
</author>
<author>
<name sortKey="Parlos, Ag" uniqKey="Parlos A">AG Parlos</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kia, Sh" uniqKey="Kia S">SH Kia</name>
</author>
<author>
<name sortKey="Henao, H" uniqKey="Henao H">H Henao</name>
</author>
<author>
<name sortKey="Capolino, G A" uniqKey="Capolino G">G-A Capolino</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Kia, Sh" uniqKey="Kia S">SH Kia</name>
</author>
<author>
<name sortKey="Henao, H" uniqKey="Henao H">H Henao</name>
</author>
<author>
<name sortKey="Capolino, G A" uniqKey="Capolino G">G-A Capolino</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Valtierra Rodriguez, M" uniqKey="Valtierra Rodriguez M">M Valtierra-Rodriguez</name>
</author>
<author>
<name sortKey="Osornio Rios, Ra" uniqKey="Osornio Rios R">RA Osornio-Rios</name>
</author>
<author>
<name sortKey="Garcia Perez, A" uniqKey="Garcia Perez A">A Garcia-Perez</name>
</author>
<author>
<name sortKey="Romero Troncoso, Rj" uniqKey="Romero Troncoso R">RJ Romero-Troncoso</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Turan, N G" uniqKey="Turan N">N-G Turan</name>
</author>
<author>
<name sortKey="Gumu El, E B" uniqKey="Gumu El E">E-B Gümüşel</name>
</author>
<author>
<name sortKey="Ozgonenel, O" uniqKey="Ozgonenel O">O Ozgonenel</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Cabal Yepez, E" uniqKey="Cabal Yepez E">E Cabal-Yepez</name>
</author>
<author>
<name sortKey="Valtierra Rodriguez, M" uniqKey="Valtierra Rodriguez M">M Valtierra-Rodriguez</name>
</author>
<author>
<name sortKey="Romero Troncoso, Rj" uniqKey="Romero Troncoso R">RJ Romero-Troncoso</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Meher, Pk" uniqKey="Meher P">PK Meher</name>
</author>
<author>
<name sortKey="Valls, J" uniqKey="Valls J">J Valls</name>
</author>
<author>
<name sortKey="Juang, T B" uniqKey="Juang T">T-B Juang</name>
</author>
<author>
<name sortKey="Sridharan, K" uniqKey="Sridharan K">K Sridharan</name>
</author>
<author>
<name sortKey="Maharatna, K" uniqKey="Maharatna K">K Maharatna</name>
</author>
</analytic>
</biblStruct>
<biblStruct>
<analytic>
<author>
<name sortKey="Huang, Ne" uniqKey="Huang N">NE Huang</name>
</author>
<author>
<name sortKey="Wu, M Lc" uniqKey="Wu M">M-LC Wu</name>
</author>
<author>
<name sortKey="Long, Sr" uniqKey="Long S">SR Long</name>
</author>
</analytic>
</biblStruct>
</listBibl>
</div1>
</back>
</TEI>
<pmc article-type="research-article">
<pmc-dir>properties open_access</pmc-dir>
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">ScientificWorldJournal</journal-id>
<journal-id journal-id-type="iso-abbrev">ScientificWorldJournal</journal-id>
<journal-id journal-id-type="publisher-id">TSWJ</journal-id>
<journal-title-group>
<journal-title>The Scientific World Journal</journal-title>
</journal-title-group>
<issn pub-type="epub">1537-744X</issn>
<publisher>
<publisher-name>Hindawi Publishing Corporation</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="pmid">24678281</article-id>
<article-id pub-id-type="pmc">3942393</article-id>
<article-id pub-id-type="doi">10.1155/2014/908140</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Empirical Mode Decomposition and Neural Networks on FPGA for Fault Diagnosis in Induction Motors</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">http://orcid.org/0000-0003-0862-0821</contrib-id>
<name>
<surname>Camarena-Martinez</surname>
<given-names>David</given-names>
</name>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<contrib-id contrib-id-type="orcid">http://orcid.org/0000-0003-3839-1396</contrib-id>
<name>
<surname>Valtierra-Rodriguez</surname>
<given-names>Martin</given-names>
</name>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Garcia-Perez</surname>
<given-names>Arturo</given-names>
</name>
<xref ref-type="aff" rid="I2">
<sup>2</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Osornio-Rios</surname>
<given-names>Roque Alfredo</given-names>
</name>
<xref ref-type="aff" rid="I1">
<sup>1</sup>
</xref>
</contrib>
<contrib contrib-type="author">
<name>
<surname>Romero-Troncoso</surname>
<given-names>Rene de Jesus</given-names>
</name>
<xref ref-type="aff" rid="I2">
<sup>2</sup>
</xref>
<xref ref-type="corresp" rid="cor1">*</xref>
</contrib>
</contrib-group>
<aff id="I1">
<sup>1</sup>
HSPdigital-CA Mecatronica, Facultad de Ingenieria, Universidad Autonoma de Queretaro, Campus San Juan del Rio, Rio Moctezuma 249, 76807 San Juan del Río, QRO, Mexico</aff>
<aff id="I2">
<sup>2</sup>
HSPdigital-CA Telematica, Procesamiento Digital de Señales, DICIS, Universidad de Guanajuato, Carr. Salamanca-Valle km 3.5 + 1.8, Palo Blanco, 36700 Salamanca, GTO, Mexico</aff>
<author-notes>
<corresp id="cor1">*Rene de Jesus Romero-Troncoso:
<email>troncoso@hspdigital.org</email>
</corresp>
<fn fn-type="other">
<p>Academic Editors: W.-L. Tai and T. Yamasaki</p>
</fn>
</author-notes>
<pub-date pub-type="collection">
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>11</day>
<month>2</month>
<year>2014</year>
</pub-date>
<volume>2014</volume>
<elocation-id>908140</elocation-id>
<history>
<date date-type="received">
<day>24</day>
<month>8</month>
<year>2013</year>
</date>
<date date-type="accepted">
<day>17</day>
<month>11</month>
<year>2013</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright © 2014 David Camarena-Martinez et al.</copyright-statement>
<copyright-year>2014</copyright-year>
<license license-type="open-access">
<license-p>This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<abstract>
<p>Nowadays, many industrial applications require online systems that combine several processing techniques in order to offer solutions to complex problems as the case of detection and classification of multiple faults in induction motors. In this work, a novel digital structure to implement the empirical mode decomposition (EMD) for processing nonstationary and nonlinear signals using the full spline-cubic function is presented; besides, it is combined with an adaptive linear network (ADALINE)-based frequency estimator and a feed forward neural network (FFNN)-based classifier to provide an intelligent methodology for the automatic diagnosis during the startup transient of motor faults such as: one and two broken rotor bars, bearing defects, and unbalance. Moreover, the overall methodology implementation into a field-programmable gate array (FPGA) allows an online and real-time operation, thanks to its parallelism and high-performance capabilities as a system-on-a-chip (SoC) solution. The detection and classification results show the effectiveness of the proposed fused techniques; besides, the high precision and minimum resource usage of the developed digital structures make them a suitable and low-cost solution for this and many other industrial applications. </p>
</abstract>
</article-meta>
</front>
<body>
<sec id="sec1">
<title>1. Introduction</title>
<p>Many industrial processes involve the use of induction motors that are required to operate in optimal conditions; then, the diagnosis of induction motors becomes a relevant task because the presence of faults can lead to setbacks and substantial economical losses [
<xref rid="B1" ref-type="bibr">1</xref>
]. The diagnosis of induction motor faults can be treated as a problem of pattern recognition, mainly when there is the possibility of different faults, as it may happen in real industrial applications. The solution to this problem can be divided into three stages, beginning with the processing of the monitored signal; then, performing the extraction of relevant features that indicate the presence of a motor fault from the processed signal; and the identification and classification of the motor condition based on the extracted features. The signal processing task is very challenging since the monitored signals, such as currents, voltages, and vibrations among others, present non-stationary features disturbing the results of the classical processing techniques [
<xref rid="B2" ref-type="bibr">2</xref>
,
<xref rid="B3" ref-type="bibr">3</xref>
]. Moreover, the feature extraction and selection have to be carried out carefully since a large number of feature parameters may increase the computational load and deteriorate the identification capability of a subsequent classifier. Therefore, it is necessary to have a system that can process non-stationary signals, extract the relevant features from these signals, and provide the condition classification without compromising the online operation in order to automatically diagnose faults in induction motors. Regarding the implementation of the aforementioned system, a promising technology for online operation is the field programmable gate arrays (FPGA), thanks to the natural parallelism and high-performance, especially for implementing neural computing algorithms as it has been demonstrated in a number of industrial applications [
<xref rid="B4" ref-type="bibr">4</xref>
,
<xref rid="B5" ref-type="bibr">5</xref>
].</p>
<p>Several techniques have been used for non-stationary signal processing. The short-time Fourier transform (STFT) is used in [
<xref rid="B6" ref-type="bibr">6</xref>
] to obtain a time-frequency spectrum decomposition of the signal, assuming that it is linear and stationary in the analyzed time window, which is not true in transient phenomena. Another technique is the wavelet transform (WT) [
<xref rid="B7" ref-type="bibr">7</xref>
]; however, the mother wavelet has to be selected appropriately and prudently since the contents of its daughter wavelets have to be largely similar to the analyzed signal in order to ensure suitable results. The Wigner-Ville distribution (WVD) has also been used; nevertheless, the weakness of this method is the presence of cross terms, indicated as negative amplitudes for some frequency ranges. Besides, WVD suffers of the aliasing problem [
<xref rid="B8" ref-type="bibr">8</xref>
]. A high-resolution spectral analysis through multiple signal classification (MUSIC) is presented in [
<xref rid="B9" ref-type="bibr">9</xref>
]; yet, the frequencies of interest in the analyzed signal have to be known or at least supposed
<italic>a priori</italic>
, which is not possible for a number of applications. The Hilbert-Huang transform (HHT) is also a time-frequency analysis technique composed of two main parts: the empirical mode decomposition (EMD), and the Hilbert transform (HT) [
<xref rid="B10" ref-type="bibr">10</xref>
]. The EMD is an intuitive, unsupervised, and self-adaptive method that can decompose a non-stationary and nonlinear signal into narrowband oscillatory components called intrinsic mode functions (IMF). These advantages have allowed its effective use in many industrial applications such as noise reduction [
<xref rid="B11" ref-type="bibr">11</xref>
], fault diagnosis in bearings [
<xref rid="B12" ref-type="bibr">12</xref>
<xref rid="B16" ref-type="bibr">16</xref>
], broken rotor bars [
<xref rid="B17" ref-type="bibr">17</xref>
<xref rid="B21" ref-type="bibr">21</xref>
], and rotor eccentricities [
<xref rid="B22" ref-type="bibr">22</xref>
<xref rid="B25" ref-type="bibr">25</xref>
]. Despite the potential applications, most of the related works using EMD require a personal computer (PC) applied to offline signal processing, and this is due to the complexity of the technique as well as to its high computational load. Nevertheless, the spread use of the EMD technique makes it a potential necessity for hardware implementation in order to create online processing systems. Some online processing systems have been presented in [
<xref rid="B26" ref-type="bibr">26</xref>
,
<xref rid="B27" ref-type="bibr">27</xref>
]; yet, they are based on the FFT which limits their application to stationary signals.</p>
<p>Few works have implemented partially or totally the EMD method in hardware. In [
<xref rid="B28" ref-type="bibr">28</xref>
], a combination of software-hardware for EMD implementation is proposed, but this solution prompts high costs in logic elements and low processing speed. Another combination of FPGA and digital signal processor (DSP) is presented in [
<xref rid="B29" ref-type="bibr">29</xref>
], where the whole EMD process is done by the DSP, and the FPGA is only used to control the data flow among the analog to digital converter (ADC), digital to analog converter (DAC), and the system memory. The inconvenience of this implementation is also the speed limitation because its operating frequency is below 1 kHz. A real-time FPGA implementation is presented in [
<xref rid="B30" ref-type="bibr">30</xref>
]; however, this application approximates the spline-cubic interpolation with a linear sawtooth function in order to simplify the computational load of calculating signal envelopes. This is a problem since it does not produce a smooth signal, and as an aftereffect, a leaking of high-frequency components rides into each residue function [
<xref rid="B31" ref-type="bibr">31</xref>
], modifying the results of subsequent IMFs. In this context, a complete FPGA implementation of the EMD that does not present the problem of high-frequency components rides is missing.</p>
<p>Despite the efforts, there is a need for the development of digital structures that combine several processing methodologies to present online solutions for complex problems such as induction motor fault detection, namely, to combine time-frequency decomposition analysis of non-stationary signals, a feature extraction module, and an automatic classifier.</p>
<p>This paper presents a novel digital structure to implement the EMD method in FPGA using the full spline-cubic function and not just a linear approximation, taking into account that the spline-cubic function does not present the problem of high-frequency component rides, making it more suitable for time-frequency processing. This novel structure for the hardware computation of EMD method is combined with an ADALINE-based frequency estimator and an ANN classifier in the same FPGA to provide an intelligent methodology for online multiple fault diagnosis in induction motors. First, the startup transient current signal, which is non-stationary, is processed by the EMD in order to obtain the IMFs; then, the ADALINE carries out the amplitude estimation of these IMF frequency components. Finally, these frequency components are used as input features of an ANN classifier for the automatic diagnosis of motor faults such as one (1BB) and two broken rotor bars (2BB), bearing defects (BD), and unbalance (UNB). Besides, the overall methodology implementation into an FPGA allows an online and real-time operation, thanks to its parallelism and high-performance capabilities as a system-on-a-chip (SoC) solution. Furthermore, the developed EMD digital structure can also be used to solve other problems requiring online and real-time processing capabilities.</p>
</sec>
<sec id="sec2">
<title>2. Theoretical Background</title>
<sec id="sec2.1">
<title>2.1. Fault Detection in Induction Motors</title>
<p>The identification and classification of multiple faults in induction motors are very important since in real life rotating machines can be affected by several faults, where 50% of these faults are bearing related, 10% are rotor faults, and unbalance is within the 12% of other faults [
<xref rid="B2" ref-type="bibr">2</xref>
]. The automatic identification and classification of the induction motor condition may be provided by artificial intelligent techniques such as artificial neural networks (ANN), which have been established as a powerful tool in the condition identification of rotating machinery [
<xref rid="B32" ref-type="bibr">32</xref>
]. The condition identification through ANNs of different faults has also been presented [
<xref rid="B6" ref-type="bibr">6</xref>
,
<xref rid="B33" ref-type="bibr">33</xref>
<xref rid="B35" ref-type="bibr">35</xref>
]. In [
<xref rid="B6" ref-type="bibr">6</xref>
], shorted turns and power supply imbalance faults are analyzed through vibration signals. Faults related to stator winding, inter-turn short, and rotor dynamic eccentricity are classified by the current signal information [
<xref rid="B33" ref-type="bibr">33</xref>
]. Current and vibrations signals are analyzed in order to classify different bearing faults [
<xref rid="B34" ref-type="bibr">34</xref>
]. Other faults such as broken rotor bars and broken end rings are also classified by extracting current signal features [
<xref rid="B35" ref-type="bibr">35</xref>
]. Although ANNs have been successfully applied for condition identification of motor faults, the online implementation remains as a challenge since it requires a processing technique that gives relevant information in order to extract features related to the different faults; moreover, if the number of features is large, the classifier complexity may increase. As a result, a compromise must be established between the number of features that feed the classifier and the overall computational load required for online operation.</p>
<p>In general, motor currents and voltages are non-stationary signals and their temporal properties are influenced by many factors, including electrical power supply, load variations, noise, motor geometry, and fault conditions. When an induction motor is started up from standstill, electromagnetic transients (EMT) take place regardless of the motor condition. The EMT provoke low-frequency oscillations in the IMF signal decomposition, and those are usually contained in the upper IMFs, as can be observed in
<xref ref-type="fig" rid="fig1">Figure 1</xref>
, where the evolution in time of low-frequency components is notoriously higher for a faulty motor.</p>
<p>Motor current signals contain spectral components which vary over time, and the fault signatures are revealed through the distortion of these components. In [
<xref rid="B36" ref-type="bibr">36</xref>
], the wavelet packet analysis was used to process the motor current signals, where the wavelet packet transform decomposes the signal utilizing both its low- and high-frequency components. The broken rotor bar fault signature was extracted in the low frequencies by using the instantaneous amplitude of stator current [
<xref rid="B37" ref-type="bibr">37</xref>
], and the DWT is used as an efficient time-scale algorithm, which gives optimal frequency accuracy at low-frequency bandwidth (1.2 Hz–9.6 Hz) [
<xref rid="B38" ref-type="bibr">38</xref>
].</p>
<p>The fault indicator proposed in this paper to detect mechanical and electric faults in induction motors is based on the observation of the startup motor current that is distorted in the presence of these faults. Consequently, in the presence of such faults, the spectral components in the current increase when compared to a healthy spectrum. Therefore, current spectrum variations provide some clues to notice the presence of mechanical and electrical faults. Relative changes in the low frequencies, as would be seen through the processing of the startup current, appear promising for detecting changes in the induction motor condition when the induction motor startup current is non-stationary.</p>
</sec>
<sec id="sec2.2">
<title>2.2. Empirical Mode Decomposition</title>
<p>EMD is an adaptive and efficient method introduced by Huang et al. [
<xref rid="B10" ref-type="bibr">10</xref>
] to decompose nonlinear and non-stationary signals into intrinsic mode functions (IMF). The process for obtaining the IMF decomposition is known as “sifting,” with the following steps.</p>
<p>
<statement id="step1">
<title>Step 1</title>
<p>Identify all the local maxima and minima of the signal.</p>
</statement>
</p>
<p>
<statement id="step2">
<title>Step 2</title>
<p>Connect all the local maxima by using spline-cubic interpolation to create the upper envelope. Repeat the procedure on the local minima to create the lower envelope.</p>
</statement>
</p>
<p>
<statement id="step3">
<title>Step 3</title>
<p>Designate the mean of the upper and lower envelopes as
<italic>m</italic>
<sub>1</sub>
.</p>
</statement>
</p>
<p>
<statement id="step4">
<title>Step 4</title>
<p>Calculate the difference
<italic>h</italic>
<sub>1</sub>
between the original signal
<italic>x</italic>
(
<italic>t</italic>
) and
<italic>m</italic>
<sub>1</sub>
as the first component:
<disp-formula id="EEq1">
<label>(1)</label>
<mml:math id="M1">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
</statement>
</p>
<p>
<statement id="step5">
<title>Step 5</title>
<p>Verify if
<italic>h</italic>
<sub>1</sub>
satisfies the conditions of the IMF or a criterion to define an IMF; take it as the first IMF of
<italic>x</italic>
(
<italic>t</italic>
). But if
<italic>h</italic>
<sub>1</sub>
is not an IMF, treat it as a proto-IMF and name it as
<italic>h</italic>
<sub>11</sub>
. Take
<italic>h</italic>
<sub>11</sub>
as the original signal and repeat the first four steps until
<italic>h</italic>
<sub>1
<italic>k</italic>
</sub>
satisfies the conditions of IMF, and designate it as
<italic>c</italic>
<sub>1</sub>
.
<disp-formula id="EEq2">
<label>(2)</label>
<mml:math id="M2">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>k</italic>
indicates the number of iterations to produce an IMF. The standard deviation (SD) criterion can be used to determine when the signal
<italic>h</italic>
<sub>1</sub>
is an IMF, which is defined as
<disp-formula id="EEq3">
<label>(3)</label>
<mml:math id="M3">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mtext>SD</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mo stretchy="false"></mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>|</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>|</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mo stretchy="false"></mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
</statement>
</p>
<p>
<statement id="step6">
<title>Step 6</title>
<p>Subtract
<italic>c</italic>
<sub>1</sub>
from the original signal
<italic>x</italic>
(
<italic>t</italic>
) by
<disp-formula id="EEq4">
<label>(4)</label>
<mml:math id="M4">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
</statement>
</p>
<p>
<statement id="step7">
<title>Step 7</title>
<p>Treat
<italic>r</italic>
<sub>1</sub>
as the original signal and apply Steps
<xref ref-type="statement" rid="step1">1</xref>
<xref ref-type="statement" rid="step6">to 6</xref>
for obtaining the other IMFs,
<italic>c</italic>
<sub>2</sub>
,
<italic>c</italic>
<sub>3</sub>
,…,
<italic>c</italic>
<sub>
<italic>n</italic>
</sub>
as follows:
<disp-formula id="EEq5">
<label>(5)</label>
<mml:math id="M5">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
The decomposition process can be stopped when
<italic>r</italic>
<sub>
<italic>n</italic>
</sub>
becomes a monotonic function from which no more IMF can be extracted. However, it is well known that only a determined number of IMFs have physical meaning and it is only necessary to take a certain number of IMFs to extract the relevant information from the original signal. At the end of the process it gives
<disp-formula id="EEq6">
<label>(6)</label>
<mml:math id="M6">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>x</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>c</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where the signal
<italic>x</italic>
(
<italic>t</italic>
) is decomposed into
<italic>n</italic>
intrinsic modes and a residue
<italic>r</italic>
<sub>
<italic>n</italic>
</sub>
.</p>
</statement>
</p>
</sec>
<sec id="sec2.3">
<title>2.3. Adaptive Linear Network</title>
<p>The fault feature extraction is a procedure for obtaining parameters that represent the induction motor condition in order to achieve a future fault classification. Different parameters have been reported for this application; for instance, statistical parameters such as the standard deviation, the local maxima and minima values, and the skewness and the kurtosis coefficients have been extracted from the motor input current [
<xref rid="B33" ref-type="bibr">33</xref>
]. In addition to some statistical parameters, the outer race, inner race, and ball spinning fault frequency components are also extracted from vibration and current signals [
<xref rid="B34" ref-type="bibr">34</xref>
]. The frequency spectra of vibration and current signals have also been computed [
<xref rid="B6" ref-type="bibr">6</xref>
,
<xref rid="B35" ref-type="bibr">35</xref>
], respectively, where the amplitudes of some frequency components are extracted. Nevertheless, in non-stationary signals some of the aforementioned parameters, mainly the frequency components, may change through time producing a wrong classification result. A suitable solution for frequency component estimation of non-stationary signals is the use of an adaptive linear neural network (ADALINE) as has been demonstrated in [
<xref rid="B39" ref-type="bibr">39</xref>
]; besides, its inherent parallel performance makes it also attractive for FPGA implementation.</p>
<p>ADALINE is an adaptive filter used for extracting signals from noisy environments and for model identification as well as for tracking and estimating frequency components [
<xref rid="B39" ref-type="bibr">39</xref>
]. For the last application it is assumed, in concordance with the Fourier series, that a signal is the sum of all frequency components with unknown amplitudes and phase angles. Therefore, the representation of a signal
<italic>y</italic>
is
<disp-formula id="EEq7">
<label>(7)</label>
<mml:math id="M7">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>k</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>t</mml:mi>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>k</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>ϕ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:mi>π</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>f</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>k</mml:mi>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi>t</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>M</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>sin</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi>cos</mml:mi>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mrow>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>A</italic>
<sub>
<italic>m</italic>
</sub>
and
<italic>φ</italic>
<sub>
<italic>m</italic>
</sub>
are the amplitudes and phase angles of
<italic>m</italic>
th frequency component, respectively;
<italic>M</italic>
is the total frequency components,
<italic>θ</italic>
<sub>
<italic>m</italic>
</sub>
= 2
<italic>πf</italic>
<sub>
<italic>m</italic>
</sub>
<italic>k</italic>
Δ
<italic>t</italic>
,
<italic>k</italic>
is the sampling index, Δ
<italic>t</italic>
is the sampling interval,
<italic>a</italic>
<sub>
<italic>m</italic>
</sub>
=
<italic>A</italic>
<sub>
<italic>m</italic>
</sub>
cos⁡
<italic>φ</italic>
<sub>
<italic>m</italic>
</sub>
, and
<italic>b</italic>
<sub>
<italic>m</italic>
</sub>
=
<italic>A</italic>
<sub>
<italic>m</italic>
</sub>
sin
<italic>φ</italic>
<sub>
<italic>m</italic>
</sub>
. Equation (
<xref ref-type="disp-formula" rid="EEq7">7</xref>
) can be rewritten as
<disp-formula id="EEq8">
<label>(8)</label>
<mml:math id="M8">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>y</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="bold">w</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>·</mml:mo>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
with
<disp-formula id="EEq9">
<label>(9)</label>
<mml:math id="M9">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>sin</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mi>cos</mml:mi>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mi>sin</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mi>cos</mml:mi>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>θ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mi>T</mml:mi>
</mml:mrow>
</mml:msup>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>For applications on frequency estimation, ADALINE is arranged as shown in
<xref ref-type="fig" rid="fig2">Figure 2</xref>
. The initial guess of
<bold>w</bold>
is a zero vector; then, its elements are adjusted during each sample through a weight-updating rule to minimize the error or difference between the estimated output
<italic>y</italic>
and the real one
<italic>y</italic>
<sub>
<italic>k</italic>
</sub>
. Simultaneously, the amplitude
<italic>A</italic>
<sub>
<italic>m</italic>
</sub>
and phase angle
<italic>φ</italic>
<sub>
<italic>m</italic>
</sub>
of the
<italic>m</italic>
th frequency component are computed as follows:
<disp-formula id="EEq10">
<label>(10)</label>
<mml:math id="M10">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msqrt>
<mml:msubsup>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>+</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:msqrt>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>φ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mtext>ta</mml:mtext>
<mml:msup>
<mml:mrow>
<mml:mtext>n</mml:mtext>
</mml:mrow>
<mml:mrow>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>a</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>b</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where −
<italic>π</italic>
<italic>φ</italic>
<sub>
<italic>m</italic>
</sub>
<italic>π</italic>
.</p>
<p>The error is equal to zero when all the frequency components of
<italic>y</italic>
<sub>
<italic>k</italic>
</sub>
are modeled by ADALINE.</p>
<p>The weight-updating rule used to minimize the error is the least mean squares (LMS), which reduces the mean squared error (MSE) defined by
<disp-formula id="EEq11">
<label>(11)</label>
<mml:math id="M11">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msubsup>
<mml:mrow>
<mml:mi>E</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:mfrac>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>L</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msubsup>
</mml:mrow>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<italic>L</italic>
is the number of analyzed samples and
<italic>e</italic>
<sub>
<italic>k</italic>
</sub>
is the difference between the ADALINE output
<italic>y</italic>
and the desired output
<italic>y</italic>
<sub>
<italic>k</italic>
</sub>
given in (
<xref ref-type="disp-formula" rid="EEq12">12</xref>
):
<disp-formula id="EEq12">
<label>(12)</label>
<mml:math id="M12">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:mi>y</mml:mi>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>Finally, the modification on the weights is given in (
<xref ref-type="disp-formula" rid="EEq13">13</xref>
), where
<italic>α</italic>
is a constant of proportionality, known as the ADALINE learning rate:
<disp-formula id="EEq13">
<label>(13)</label>
<mml:math id="M13">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mi mathvariant="bold">w</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:mi>α</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>ε</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mi mathvariant="bold">x</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
</sec>
<sec id="sec2.4">
<title>2.4. Artificial Neural Networks</title>
<p>ANNs are computational models that simulate the neurological structure of the human brain and its capability to learn and solve problems through pattern recognition for industrial applications ranging from metal removal prediction [
<xref rid="B40" ref-type="bibr">40</xref>
] up to induction motor diagnosis [
<xref rid="B41" ref-type="bibr">41</xref>
]. There are different ANN architectures such as feed-forward networks (FFNN), recurrent networks, feedback networks, radial basis function networks, and Kohonen self-organizing map networks, among others. The most popular architecture for ANN is the FFNN since it is simple and practical as a classifier and because it has a low computational load. FFNN is characterized by having a layered architecture with single or multiple neurons in each layer [
<xref rid="B41" ref-type="bibr">41</xref>
], as shown in
<xref ref-type="fig" rid="fig3">Figure 3</xref>
. The mathematical model describing each neuron is given in (
<xref ref-type="disp-formula" rid="EEq14">14</xref>
), where
<italic>y</italic>
,
<italic>ω</italic>
<sub>
<italic>i</italic>
</sub>
,
<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
,
<italic>b</italic>
,
<italic>f</italic>
(·), and
<italic>I</italic>
are the output, weights, inputs, bias, activation function, and the total number of inputs, respectively. The FFNN model consists in the sum of products between the inputs and their associated multipliers, commonly called weights, plus a bias. Then, this result is evaluated by a nonlinear function to provide the NN with the ability to model nonlinear relationships. In this architecture, the information flows in one direction only, from the input layer, through the hidden layer, up to the output nodes. To characterize the network weights, pairs of input-output data are presented; then, a training rule for adjusting these weights is used. The training process minimizes the error between the desired and the calculated outputs and it is repeated until the overall error is acceptable:
<disp-formula id="EEq14">
<label>(14)</label>
<mml:math id="M14">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>y</mml:mi>
<mml:mo>=</mml:mo>
<mml:mi>f</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mrow>
<mml:munderover>
<mml:mstyle displaystyle="true">
<mml:mo stretchy="false"></mml:mo>
</mml:mstyle>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mrow>
<mml:mi>I</mml:mi>
</mml:mrow>
</mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>ω</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:mi>b</mml:mi>
</mml:mrow>
</mml:mrow>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
</sec>
</sec>
<sec id="sec3">
<title>3. Proposed Methodology and Its FPGA Implementation</title>
<p>This section presents the overall methodology and its FPGA implementation in order to provide an online diagnosis of an induction motor with different conditions such as one broken rotor bar (1BB), two broken rotor bars (2BB), bearing defect (BD), unbalance (UNB), and healthy (HLT), where the proposed methodology contains three processing stages. First, the EMD algorithm is used to separate the different low-frequency components to estimate the fault indicators; second, ADALINE estimates their magnitudes; and third, an ANN is used to classify the motor faults.</p>
<sec id="sec3.1">
<title>3.1. Overall Methodology</title>
<p>The overall methodology is shown in
<xref ref-type="fig" rid="fig4">Figure 4</xref>
. First, the system uses a current clamp to measure one phase of the stator current and a data-acquisition system (DAS) to condition and quantize the signal. Then, the discrete signal is passed through the FPGA-based processor for automatic diagnosis, where an overall control unit coordinates the following actions: the DAS driver for data acquisition, the EMD processing unit to compute the IMFs, the ADALINE unit for feature extraction, and finally, the FFNN unit that accomplishes the classification. Then, the result of the induction motor condition is displayed to the user.</p>
</sec>
<sec id="sec3.2">
<title>3.2. FPGA-Based Processor</title>
<p>The FPGA-based processor is composed by
<italic>processing EMD</italic>
,
<italic>feature extraction ADALINE and classification FFNN</italic>
as shown in
<xref ref-type="fig" rid="fig5">Figure 5</xref>
, and the signal processing flow up for a real current sample of a healthy induction motor is depicted in
<xref ref-type="fig" rid="fig6">Figure 6</xref>
. First, the input signal is decomposed by the EMD module in order to obtain the first four IMFs. Notice that for this application, the first IMF has irrelevant information since it contains the 60 Hz fundamental frequency component of the supply system, as is shown in
<xref ref-type="fig" rid="fig7">Figure 7(a)</xref>
, and the presence of frequency components related to the motor faults may be undetectable in this bandwidth. Second, third, and fourth IMFs, shown in Figures
<xref ref-type="fig" rid="fig7">7(b)</xref>
,
<xref ref-type="fig" rid="fig7">7(c)</xref>
, and
<xref ref-type="fig" rid="fig7">7(d)</xref>
, respectively, contain within their bandwidths the fault-related frequency components of the motor condition, as summarized in
<xref ref-type="table" rid="tab1">Table 1</xref>
. The signals
<italic>RDD</italic>
and
<italic>EOD</italic>
supervise the incoming data to the EMD unit that computes the IMFs sequentially, and then transfers the result to the ADALINE unit. The frequency-component estimation is done by ADALINE for the second (
<italic>H_IMF</italic>
<sub>
<italic>2</italic>
</sub>
), third (
<italic>H_IMF</italic>
<sub>
<italic>3</italic>
</sub>
), and fourth (
<italic>H_IMF</italic>
<sub>
<italic>4</italic>
</sub>
) IMF, one by one (
<italic>IMF_Sel</italic>
), and the twelve frequency components (four from each IMF) are stored in the
<italic>feature register</italic>
unit. Then, the FFNN unit performs the diagnosis by using these frequency components indicating through five outputs the motor condition as: HLT, 1BB, 2BB, UNB, and BD.</p>
</sec>
<sec id="sec3.3">
<title>3.3. EMD Digital Structure</title>
<p>
<xref ref-type="fig" rid="fig8">Figure 8</xref>
shows the required steps for implementing the EMD method. First, the
<italic>data input</italic>
signal is stored in an internal RAM block as
<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
, where
<italic>i</italic>
is 1,2, 3,…, 1024; then, they are sent to
<italic>Extrema Identification</italic>
module to obtain the extrema of the signal (
<italic>x</italic>
_max⁡
<sub>
<italic>j</italic>
</sub>
,
<italic>x</italic>
_min⁡
<sub>
<italic>k</italic>
</sub>
) and their respective positions (
<italic>p</italic>
max⁡
<sub>
<italic>j</italic>
</sub>
and
<italic>p</italic>
min⁡
<sub>
<italic>k</italic>
</sub>
). The
<italic>spline cubic</italic>
module receives
<italic>x</italic>
_max⁡
<sub>
<italic>j</italic>
</sub>
and
<italic>x</italic>
_min⁡
<sub>
<italic>k</italic>
</sub>
to calculate the upper and lower envelopes (
<italic>S</italic>
<sub>
<italic>u</italic>
</sub>
and
<italic>S</italic>
<sub>
<italic>l</italic>
</sub>
). The
<italic>mean envelope </italic>
module calculates the mean of the envelopes (
<italic>m</italic>
<sub>
<italic>i</italic>
</sub>
). Then, in the
<italic> candidate IMF </italic>
module the difference between the signal
<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
and the signal
<italic>m</italic>
<sub>
<italic>i</italic>
</sub>
is calculated in order to obtain the signal
<italic>h</italic>
<sub>
<italic>i</italic>
</sub>
, which represents a potential IMF. The standard deviation criterion is used to determine if
<italic>h</italic>
<sub>
<italic>i</italic>
</sub>
is a true IMF, and if not the signal
<italic>h</italic>
<sub>
<italic>i</italic>
</sub>
becomes the input signal and the Steps
<xref ref-type="statement" rid="step1">1</xref>
<xref ref-type="statement" rid="step4">4</xref>
are repeated. When
<italic>h</italic>
<sub>
<italic>i</italic>
</sub>
is a true IMF, the signal
<italic>h</italic>
<sub>
<italic>i</italic>
</sub>
is stored and becomes the signal
<italic>c</italic>
<sub>
<italic>i</italic>
</sub>
, then the difference of signals
<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
and
<italic>c</italic>
<sub>
<italic>i</italic>
</sub>
is defined as
<italic>r</italic>
<sub>
<italic>i</italic>
</sub>
. Finally, the number of the IMFs calculated is revised to decide if the process ends; if the process goes on, the signal
<italic>r</italic>
<sub>
<italic>i</italic>
</sub>
becomes the new input signal and the process is repeated.</p>
<sec id="sec3.3.1">
<title>3.3.1. Extrema Identification Module</title>
<p>According to
<xref ref-type="fig" rid="fig9">Figure 9</xref>
, first, input
<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
is sent to a 2-level pipeline register to store
<italic>x</italic>
<sub>
<italic>i</italic>
−1</sub>
in the
<italic>register A</italic>
and
<italic>x</italic>
<sub>
<italic>i</italic>
−2</sub>
in the
<italic>register B</italic>
. The signal
<italic>x</italic>
<sub>
<italic>i</italic>
−1</sub>
is compared with
<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
and
<italic>x</italic>
<sub>
<italic>i</italic>
−2</sub>
by two comparators, whose results pass through an AND gate. If
<italic>x</italic>
<sub>
<italic>i</italic>
+1</sub>
is the greater datum, then it is defined as a maximum, which is placed in
<italic>register M </italic>
as
<italic>x</italic>
max⁡
<sub>
<italic>j</italic>
</sub>
. The output of the
<italic>AND</italic>
gate enables
<italic>register M</italic>
,
<italic>register R</italic>
, and
<italic>register P.</italic>
The signal
<italic>RD</italic>
max⁡ indicates when a new maximum appears. Simultaneously, a
<italic>counter </italic>
increases by one in every new datum, whereas
<italic>register P</italic>
stores the position of the maximum (
<italic>p</italic>
max⁡
<sub>
<italic>j</italic>
</sub>
). The same process is used to calculate the minimum, but in this case the comparators are set to detect when
<italic>x</italic>
<sub>
<italic>i</italic>
−1</sub>
is smaller than
<italic>x</italic>
<sub>
<italic>i</italic>
</sub>
and
<italic>x</italic>
<sub>
<italic>i</italic>
−2</sub>
.</p>
</sec>
<sec id="sec3.3.2">
<title>3.3.2. Spline-Cubic Interpolation Module</title>
<p>The spline-cubic algorithm requires a determined number of data to obtain a smooth interpolation; in this design the size of the selected data set is 1024. After the data set is captured, it is possible to calculate the envelope.
<xref ref-type="fig" rid="fig10"> Figure 10</xref>
describes the module of spline cubic for calculating of the upper envelope. A similar procedure is used to calculate the lower envelope.</p>
<p>According to
<xref ref-type="fig" rid="fig10">Figure 10</xref>
, the inputs
<italic>x</italic>
max⁡
<sub>
<italic>j</italic>
</sub>
and
<italic>p</italic>
max⁡
<sub>
<italic>j</italic>
</sub>
pass through the
<italic>edge conditions</italic>
module, which adheres the edge conditions in the beginning and ending of the data set of maxima. The signal
<italic>RD</italic>
max⁡ indicates the arrival of a new maximum and the signal
<italic> EOD</italic>
the end of the data set. These conditions are used to calculate values on the edges of the signal in the interpolation process. The new data sets (
<italic>x</italic>
max⁡
<sub>
<italic>i</italic>
</sub>
′ and
<italic>p</italic>
max⁡
<sub>
<italic>i</italic>
</sub>
′) with the edge condition are stored and sent to
<italic>tridiagonal matrix</italic>
module with their respective control signals (
<italic>R</italic>
max⁡′ and EOD′).</p>
<p>The algorithm of the spline-cubic interpolation according to (
<xref ref-type="disp-formula" rid="EEq15">15</xref>
) is
<disp-formula id="EEq15">
<label>(15)</label>
<mml:math id="M15">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mi>S</mml:mi>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo></mml:mo>
<mml:mi>x</mml:mi>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
<mml:mo></mml:mo>
<mml:mi>j</mml:mi>
<mml:mo></mml:mo>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:mn mathvariant="normal">0</mml:mn>
<mml:mo>,</mml:mo>
<mml:mo></mml:mo>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mo>}</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<disp-formula id="EEq16">
<label>(16)</label>
<mml:math id="M16">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:msub>
<mml:mrow>
<mml:mi>S</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:malignmark></mml:malignmark>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo></mml:mo>
<mml:mi>x</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">3</mml:mn>
</mml:mrow>
</mml:msup>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:msup>
<mml:mrow>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo></mml:mo>
<mml:mi>x</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msup>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo></mml:mo>
<mml:mi>x</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>To obtain the parameter
<italic>C</italic>
<sub>
<italic>j</italic>
</sub>
, the
<italic>tridiagonal matrix </italic>
module solves a tridiagonal system for
<italic>n</italic>
number of maxima with spline natural condition, which is defined by (
<xref ref-type="disp-formula" rid="EEq17">17</xref>
) and (
<xref ref-type="disp-formula" rid="EEq18">18</xref>
):
<disp-formula id="EEq17">
<label>(17)</label>
<mml:math id="M17">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:malignmark></mml:malignmark>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd></mml:mtd>
<mml:mtd></mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd></mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd></mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd></mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd></mml:mtd>
<mml:mtd></mml:mtd>
<mml:mtd></mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mo></mml:mo>
</mml:mtd>
<mml:mtd></mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
<mml:mtd>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:maligngroup></mml:maligngroup>
<mml:malignmark></mml:malignmark>
<mml:mo></mml:mo>
<mml:mo></mml:mo>
<mml:mo>×</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd></mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>[</mml:mo>
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">3</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">3</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd></mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">3</mml:mn>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>n</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">2</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mn mathvariant="normal">0</mml:mn>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:mrow>
<mml:mo>]</mml:mo>
</mml:mrow>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
where
<disp-formula id="EEq18">
<label>(18)</label>
<mml:math id="M18">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:mi>p</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>λ</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:mi>x</mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
<p>After obtaining the value of the coefficient
<italic>C</italic>
, it is possible to find the values of the coefficients
<italic>A</italic>
,
<italic>B</italic>
, and
<italic>D</italic>
following (
<xref ref-type="disp-formula" rid="EEq19">19</xref>
) and making it possible to calculate the envelope
<disp-formula id="EEq19">
<label>(19)</label>
<mml:math id="M19">
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mi>p</mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>max</mml:mi>
<mml:mo></mml:mo>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi></mml:mi>
</mml:mrow>
</mml:msubsup>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>B</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>A</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo></mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:mn mathvariant="normal">2</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mo>)</mml:mo>
</mml:mrow>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">3</mml:mn>
</mml:mrow>
</mml:mfrac>
<mml:mo>,</mml:mo>
</mml:mtd>
</mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:msub>
<mml:mrow>
<mml:mi>D</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
<mml:mo></mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>C</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
<mml:mo></mml:mo>
<mml:mn mathvariant="normal">1</mml:mn>
</mml:mrow>
</mml:msub>
</mml:mrow>
<mml:mrow>
<mml:mn mathvariant="normal">3</mml:mn>
<mml:msub>
<mml:mrow>
<mml:mi>h</mml:mi>
</mml:mrow>
<mml:mrow>
<mml:mi>j</mml:mi>
</mml:mrow>
</mml:msub>
</mml:mrow>
</mml:mfrac>
<mml:mo>.</mml:mo>
</mml:mtd>
</mml:mtr>
</mml:mtable>
</mml:math>
</disp-formula>
</p>
</sec>
</sec>
<sec id="sec3.4">
<title>3.4. ADALINE Digital Structure</title>
<p>This module performs the frequency estimation for the second (
<italic>IMF</italic>
<sub>
<italic>2</italic>
</sub>
), third (
<italic>IMF</italic>
<sub>
<italic>3</italic>
</sub>
), and fourth IMF (
<italic>IMF</italic>
<sub>
<italic>4</italic>
</sub>
) according to the signal
<italic>C_IMF</italic>
as shown in
<xref ref-type="fig" rid="fig11">Figure 11</xref>
. The
<italic>master Control ADALINE </italic>
module provides the overall synchronization to compute (
<xref ref-type="disp-formula" rid="EEq8">8</xref>
), (
<xref ref-type="disp-formula" rid="EEq10">10</xref>
), (
<xref ref-type="disp-formula" rid="EEq12">12</xref>
), and (
<xref ref-type="disp-formula" rid="EEq13">13</xref>
) for ADALINE (
<italic>Start_ADALINE</italic>
/
<italic>End_ADALINE</italic>
), LMS (
<italic>Start_ADALINE</italic>
/
<italic>End_ADALINE</italic>
), and CORDIC (
<italic>S_C</italic>
/
<italic>E_C</italic>
). First, the ADALINE section performs (
<xref ref-type="disp-formula" rid="EEq8">8</xref>
) as follows: the sine and cosine values for only one period of the twelve frequency components are stored in the lookup tables (LUT)
<italic>LUT sin</italic>
and
<italic>LUT cos</italic>
, respectively; afterwards, they are multiplied and added by the weights stored in the registers
<italic>W</italic>
<sub>
<italic>i</italic>
</sub>
for
<italic>i</italic>
= 0,…, 8 since there are four frequency components and each one of them requires the coefficients
<italic>a</italic>
and
<italic>b</italic>
according to (
<xref ref-type="disp-formula" rid="EEq9">9</xref>
). Second, the LMS section computes (
<xref ref-type="disp-formula" rid="EEq13">13</xref>
) in order to minimize the error between the ADALINE output
<italic>y</italic>
and the desired output
<italic>y</italic>
<sub>
<italic>k</italic>
</sub>
. For this, the error in (
<xref ref-type="disp-formula" rid="EEq12">12</xref>
) is first computed and multiplied by
<italic>α</italic>
; in this methodology,
<italic>α</italic>
= 0.01 is used. Posteriorly, the modified weights are stored in the registers
<italic>X</italic>
<sub>
<italic>i</italic>
</sub>
for
<italic>i</italic>
= 0,…, 8 through the multiplication and summation of
<italic>S</italic>
,
<italic>C</italic>
, and
<italic>W</italic>
<sub>
<italic>i</italic>
</sub>
, which are the sine, cosine, and weights values, respectively. Finally, the coordinate rotation digital computer (
<italic>CORDIC) </italic>
section estimates the amplitude and phase according to (
<xref ref-type="disp-formula" rid="EEq10">10</xref>
) [
<xref rid="B42" ref-type="bibr">42</xref>
]. It is used in vectoring mode, where the weights are taken in pairs,
<italic>W</italic>
<sub>
<italic>k</italic>
</sub>
and
<italic>W</italic>
<sub>
<italic>k</italic>
+1</sub>
. In order to obtain the twelve frequency components (
<italic>H1_IMF</italic>
<sub>
<italic>2</italic>
</sub>
,
<italic>H2_IMF</italic>
<sub>
<italic>2</italic>
</sub>
,
<italic>H3_IMF</italic>
<sub>
<italic>2</italic>
</sub>
,
<italic>H4_IMF</italic>
<sub>
<italic>2</italic>
</sub>
,…,
<italic> H4_IMF</italic>
<sub>
<italic>4</italic>
</sub>
), this overall process is repeated for the three IMFs. The signals
<italic>I</italic>
<sub>
<italic>i</italic>
</sub>
and
<italic>L</italic>
<sub>
<italic>i</italic>
</sub>
for
<italic>i</italic>
= 1,2, and 3 control the multiplexers and the registers load, respectively.</p>
</sec>
<sec id="sec3.5">
<title>3.5. FFNN</title>
<p>This module is first developed and trained in Matlab for being subsequently implemented in the FPGA. Therefore, the FFNN module is firstly trained through the Levenberg-Marquardt algorithm for identifying a HLT condition in the induction motor or the presence of multiple single faults. For this, twenty real sampled signals are carried out under each motor condition. The training and validation sets for each condition are obtained synthetically by randomly producing 100 values, 70 for training and 30 for validation, of each frequency component within the range (
<italic>μ</italic>
+
<italic>σ</italic>
,
<italic>μ</italic>
<italic>σ</italic>
), where
<italic>μ</italic>
is the mean and
<italic>σ</italic>
is the standard deviation of the frequency components magnitude from the twenty real sampled signals, as shown in
<xref ref-type="fig" rid="fig12">Figure 12</xref>
. The testing set is composed by real signals only. The FFNN final architecture has 12 inputs (four frequency components for each IMF), 10 neurons in the hidden layer, and 5 outputs (one per each condition), that function as flags to indicate the induction motor condition. The number of 10 neurons in the hidden layer is selected by trial and error in order to obtain the minimum overall classification error. After the training, validation, and testing, the final weights and biases of each layer neuron are used for FPGA implementation according to the digital structure shown in
<xref ref-type="fig" rid="fig13">Figure 13</xref>
, which computes (
<xref ref-type="disp-formula" rid="EEq14">14</xref>
) for each neuron. There, the
<italic>control unit hidden </italic>
and
<italic> output layers</italic>
provide the overall synchronization signals that regulate the information exchange among the control units for the hidden and output layers through
<italic>StartH</italic>
/
<italic>EndH</italic>
and
<italic>StartO</italic>
/
<italic>EndO</italic>
, respectively; besides, the signals
<italic>I</italic>
<sub>
<italic>i</italic>
</sub>
and
<italic>L</italic>
<sub>
<italic>i</italic>
</sub>
for
<italic>i</italic>
= 1 and 2 control the multiplexers and the registers load. The hidden layer shown in
<xref ref-type="fig" rid="fig13">Figure 13(a)</xref>
has 10 neurons and receives the four frequency components for each IMF. They are weighted by the corresponding values
<italic>W</italic>
<sub>1</sub>
,
<italic>W</italic>
<sub>2</sub>
,…,
<italic>W</italic>
<sub>10</sub>
. Each
<italic>W</italic>
<sub>
<italic>k</italic>
</sub>
register contains 12 different weighted values, one for each input. The weighted values for each frequency component are summed up and added sequentially to a bias value stored in a LUT (
<italic>LUT bias</italic>
). The result of this operation is used for triggering on the respective output
<italic>Y</italic>
<sub>
<italic>i</italic>
</sub>
through a log-sigmoid (LS) transfer function, which is implemented as a LUT (
<italic>LUT log-sig</italic>
). The same process is repeated in the output layer shown in
<xref ref-type="fig" rid="fig13">Figure 13(b)</xref>
, which uses the outputs
<italic>Y</italic>
<sub>1</sub>
,
<italic>Y</italic>
<sub>2</sub>
,…,
<italic>Y</italic>
<sub>10</sub>
from the hidden layer as inputs to its five neurons obtaining the outputs
<italic>Z</italic>
<sub>1</sub>
,
<italic>Z</italic>
<sub>2</sub>
,…,
<italic>Z</italic>
<sub>5</sub>
that define HLT, 1BB, 2BB, UNB, and BD condition through a threshold comparison of 0.5. Thus, the display module shows the induction motor condition according to the activated output neuron.</p>
</sec>
</sec>
<sec id="sec4">
<title>4. Experimentation and Results</title>
<p>This section presents the experimental setup used to test the proposed FPGA-based methodology under real operating conditions as well as the obtained results.</p>
<sec id="sec4.1">
<title>4.1. Experimental Setup</title>
<p>
<xref ref-type="fig" rid="fig14">Figure 14</xref>
shows the experimental setup where 1-hp three-phase induction motor (model WEG00136APE48T) is used to test the proposed FPGA-based methodology. The tested motors have two poles, 28 bars, and receive a power supply of 220 Vac at 60 Hz. The mechanical load is an ordinary alternator. One phase of the stator current is acquired with an i200 Fluke current clamp. The DAS has a sampling frequency of 375 Hz, taking 1024 samples during the startup transient. The information is transferred to the FPGA processor to perform the motor diagnosis through EMD, ADALINE, and FFNN. Finally, the diagnosis result is shown in the display.</p>
</sec>
<sec id="sec4.2">
<title>4.2. Treated Faults</title>
<p>The broken rotor bar condition is artificially produced by drilling an 8 mm diameter hole without harming the rotor shaft.
<xref ref-type="fig" rid="fig15"> Figure 15(a)</xref>
shows a rotor with one broken bar (1BB) and
<xref ref-type="fig" rid="fig15">Figure 15(b)</xref>
depicts a rotor having two broken bars (2BB). The UNB condition appears when the mechanical load is not uniformly distributed in the induction motor with the center of mass displaced from the motor shaft.
<xref ref-type="fig" rid="fig15"> Figure 15(c)</xref>
shows a pulley with an added eccentric mass for generating unbalance in the motor shaft. The bearing defect (BD) is produced by drilling a hole of 1.2 mm diameter on its outer race, as shown in
<xref ref-type="fig" rid="fig15">Figure 15(d)</xref>
.</p>
</sec>
<sec id="sec4.3">
<title>4.3. Results</title>
<p>The FPGA-based system uses 18-bit fixed-point arithmetic, which generates rounding and truncation errors. In order to evaluate the overall performance of the developed FPGA implementation, the fixed-point results are compared against floating-point Matlab simulations for the same acquired data sets.
<xref ref-type="table" rid="tab2"> Table 2</xref>
presents the mean (
<italic>μ</italic>
), the standard deviation (
<italic>σ</italic>
), and the peak (
<italic>P</italic>
) of relative errors when comparing fixed-point (FPGA) and floating-point (Matlab) results for the 20 trials of experimental data under each motor condition, where the worst values are indicated in bold, being 1BB condition.</p>
<p>
<xref ref-type="table" rid="tab3">Table 3</xref>
shows the classification results as well as the effectiveness percentage of the proposed methodology. The testing set composed by 100 real trials, 20 for each induction motor condition, is classified by the proposal as follows: of the 20 actual HLT conditions, the system classifies 20 HLT conditions; therefore, it has an effectiveness of 100%. On the other hand, of the 20 1BB conditions, the system classifies one as HLT, 18 as 1BB, and one as 2BB; therefore, it has an effectiveness of 90%. All correct classifications are located in the diagonal of
<xref ref-type="table" rid="tab3">Table 3</xref>
(highlighted in bold). Particularly,
<xref ref-type="fig" rid="fig16">Figure 16</xref>
shows the results of the EMD hardware implementation for the HLT and 2BB conditions.</p>
<p>
<xref ref-type="table" rid="tab4">Table 4</xref>
summarizes the hardware implementation resources for the proposed methodology. The number of clock cycles taken for the main structures to perform their computation is also presented, where it is important to notice that the number of cycles shown for the EMD is the average of the tests, since the duration of the EMD depends on the signal complexity. The used platform is a proprietary board, based on the Spartan 3E XCS1600 FPGA running at 48 MHz.</p>
<p>Time-computation performance of the EMD implementation can be estimated by the number of clock cycles required to compute a full input data set with
<italic>N</italic>
samples. In this design for calculating an envelope, the spline-cubic algorithm needs that the data set is fully acquired and then calculates the
<italic>N</italic>
points of the envelope. This means that it takes 2
<italic>NT</italic>
<sub>
<italic>m</italic>
</sub>
clock cycles to calculate a candidate IMF, where
<italic>T</italic>
<sub>
<italic>m</italic>
</sub>
is the number of clock cycles required to calculate each sample.
<italic>T</italic>
<sub>
<italic>m</italic>
</sub>
is determined by two consecutive division operations that consume 56 clock cycles, which for this implementation of the EMD, the digital structure can reach a peak of 857 kHz of sampling frequency for a 48 MHz master clock. This design uses a data set of 1024 points that would take 114,688 clock cycles to calculate a candidate IMF, or 2.38 ms at 48 MHz. Huang et al. [
<xref rid="B43" ref-type="bibr">43</xref>
] mention that typically there 3 to 4 interactions are required to have an IMF, so the worst case for calculating four IMFs will require 16 interactions that take 1,835,008 clock cycles, or 38.22 ms at 48 MHz.</p>
</sec>
<sec id="sec4.4">
<title>4.4. Analysis and Discussion</title>
<p>The results show that the hardware implementation of the proposed methodology has 100% effectiveness in detecting the HLT, BD, UNB, and 2BB conditions. For the 1BB condition, the percentage of a correct identification is 90% where two results are mistaken with HLT and 2BB conditions.</p>
<p>The low values for the standard deviation and the peak relative errors of the results presented in
<xref ref-type="table" rid="tab2">Table 2</xref>
show the feasibility of the proposed FPGA implementation, considering a fixed-point arithmetic approach in the digital structure.</p>
<p>The resource usage presented in
<xref ref-type="table" rid="tab4">Table 4</xref>
shows the viability of implementing the EMD, ADALINE, and FFNN structures as well as their fusion in a low-cost SoC solution for induction motor diagnosis. Besides, the FPGA-based proposed methodology takes 1,069,141 clock cycles, equivalent to 22.27 ms at 48 MHz, for estimating the induction motor condition, which outperforms, by one order of magnitude, the Matlab implementation that takes 815.53 ms on a 2.2 GHz Intel Core i7 processor. Another important characteristic is that the proposed EMD digital structure can support sampling rates of up to 857 kHz, implying the potential of further hardware implementations for online applications like biosignal processing, power quality estimation, and acoustic and seismic analysis, whose signals work below this sampling rate.</p>
<p>
<xref ref-type="table" rid="tab5">Table 5</xref>
shows a comparison of the main characteristics between the reported works in the literature and the one proposed here. Regarding the hardware implementation, most works are PC-based, which can compromise the online operation, and only this work and references [
<xref rid="B26" ref-type="bibr">26</xref>
,
<xref rid="B27" ref-type="bibr">27</xref>
] present a FPGA solution; yet, the proposal is able to process stationary and transient signals unlike the aforementioned works; in addition it does not need a previous design since EMD is an adaptive and unsupervised technique. Moreover, it has the option to send the data for PC after processing as done in other reported works and systems. On the other hand, the number of faults that can be detected through the proposed methodology is greater than the other ones that also use the EMD technique.</p>
</sec>
</sec>
<sec id="sec5">
<title>5. Conclusions</title>
<p>This paper presents a new online novel digital structure to implement the EMD method in FPGA using the full spline-cubic function and not just a linear approximation, taking into account that the spline-cubic function does not present the problem of high-frequency component rides, making it more suitable for time-frequency processing. This novel structure for the hardware computation of EMD method is combined with an ADALINE-based frequency estimator and an ANN classifier in the same FPGA to provide an intelligent methodology for online multiple fault diagnosis in induction motors. First, the startup transient current signal, which is non-stationary, is processed by the EMD in order to obtain the IMFs; then, the ADALINE estimates the magnitude of only four frequency components distributed symmetrically in a bandwidth estimated for the second, third, and fourth IMF. Finally, these frequency components are used as input features of an ANN classifier for the automatic diagnosis of motor faults such as: one (1BB) and two broken rotor bars (2BB), bearing defects (BD), and unbalance (UNB). Besides, the overall methodology implementation into an FPGA allows an online and real-time operation, thanks to its parallelism and high-performance capabilities as a system-on-a-chip (SoC) solution, unlike other works where results have to be interpreted offline by the user from the current or vibration signals.</p>
<p>On the other hand, the high precision and minimum resource usage of the proposed and developed digital structures make them attractive for many other applications, highlighting that the novel EMD digital structure uses the full spline-cubic function and not only a linear approximation, avoiding the presence of problems like high-frequency component rides, as cited in literature, making it more suitable for time-frequency processing of non-stationary signals in industrial applications.</p>
</sec>
</body>
<back>
<ack>
<title>Acknowledgments</title>
<p>This work was partially supported by CONACyT scholarship 229795 and SEP PIFI-2012 Universidad de Guanajuato projects.</p>
</ack>
<sec sec-type="conflict">
<title>Conflict of Interests</title>
<p>The authors declare that there is no conflict of interests regarding the publication of this paper.</p>
</sec>
<ref-list>
<ref id="B1">
<label>1</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Siddique</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Yadava</surname>
<given-names>GS</given-names>
</name>
<name>
<surname>Singh</surname>
<given-names>B</given-names>
</name>
</person-group>
<article-title>A review of stator fault monitoring techniques of induction motors</article-title>
<source>
<italic>IEEE Transactions on Energy Conversion</italic>
</source>
<year>2005</year>
<volume>20</volume>
<issue>1</issue>
<fpage>106</fpage>
<lpage>114</lpage>
<pub-id pub-id-type="other">2-s2.0-15044343813</pub-id>
</element-citation>
</ref>
<ref id="B2">
<label>2</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Benbouzid</surname>
<given-names>MEH</given-names>
</name>
</person-group>
<article-title>A review of induction motors signature analysis as a medium for faults detection</article-title>
<source>
<italic>IEEE Transactions on Industrial Electronics</italic>
</source>
<year>2000</year>
<volume>47</volume>
<issue>5</issue>
<fpage>984</fpage>
<lpage>993</lpage>
<pub-id pub-id-type="other">2-s2.0-0034297416</pub-id>
</element-citation>
</ref>
<ref id="B3">
<label>3</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lei</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Lin</surname>
<given-names>J</given-names>
</name>
<name>
<surname>He</surname>
<given-names>Z</given-names>
</name>
<name>
<surname>Zuo</surname>
<given-names>M</given-names>
</name>
</person-group>
<article-title>A review on empirical mode decomposition in fault diagnosis of rotating machinery</article-title>
<source>
<italic>Mechanical Systems and Signal Processing</italic>
</source>
<year>2013</year>
<volume>35</volume>
<issue>1-2</issue>
<fpage>108</fpage>
<lpage>126</lpage>
</element-citation>
</ref>
<ref id="B4">
<label>4</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Monmasson</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Idkhajine</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Cirstea</surname>
<given-names>MN</given-names>
</name>
<name>
<surname>Bahri</surname>
<given-names>I</given-names>
</name>
<name>
<surname>Tisan</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Naouar</surname>
<given-names>MW</given-names>
</name>
</person-group>
<article-title>FPGAs in industrial control applications</article-title>
<source>
<italic>IEEE Transactions on Industrial Informatics</italic>
</source>
<year>2011</year>
<volume>7</volume>
<issue>2</issue>
<fpage>224</fpage>
<lpage>243</lpage>
<pub-id pub-id-type="other">2-s2.0-79955847141</pub-id>
</element-citation>
</ref>
<ref id="B5">
<label>5</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Baptista</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Abreu</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Freitas</surname>
<given-names>F</given-names>
</name>
<name>
<surname>Vasconcelos</surname>
<given-names>R</given-names>
</name>
<name>
<surname>Morgado-Dias</surname>
<given-names>FA</given-names>
</name>
</person-group>
<article-title>A survey of software and hardware use in artificial neural networks</article-title>
<source>
<italic>Neural Computing and Applications</italic>
</source>
<year>2013</year>
<volume>1</volume>
<fpage>1</fpage>
<lpage>9</lpage>
</element-citation>
</ref>
<ref id="B6">
<label>6</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Su</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Chong</surname>
<given-names>KT</given-names>
</name>
<name>
<surname>Ravi Kumar</surname>
<given-names>R</given-names>
</name>
</person-group>
<article-title>Vibration signal analysis for electrical fault detection of induction machine using neural networks</article-title>
<source>
<italic>Neural Computing and Applications</italic>
</source>
<year>2011</year>
<volume>20</volume>
<issue>2</issue>
<fpage>183</fpage>
<lpage>194</lpage>
<pub-id pub-id-type="other">2-s2.0-79951769436</pub-id>
</element-citation>
</ref>
<ref id="B7">
<label>7</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Jiménez</surname>
<given-names>GA</given-names>
</name>
<name>
<surname>Muñoz</surname>
<given-names>AO</given-names>
</name>
<name>
<surname>Duarte-Mermoud</surname>
<given-names>MA</given-names>
</name>
</person-group>
<article-title>Fault detection in induction motors using Hilbert and Wavelet transforms</article-title>
<source>
<italic>Electrical Engineering</italic>
</source>
<year>2007</year>
<volume>89</volume>
<issue>3</issue>
<fpage>205</fpage>
<lpage>220</lpage>
<pub-id pub-id-type="other">2-s2.0-33751540726</pub-id>
</element-citation>
</ref>
<ref id="B8">
<label>8</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Rosero</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Garcia</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Cusido</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Romeral</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Ortega</surname>
<given-names>JA</given-names>
</name>
</person-group>
<article-title>Fault detection by means of Hilbert Huang transform of the stator current in a PMSM with demagnetization</article-title>
<conf-name>Proceedings of the IEEE International Symposium on Intelligent Signal Processing (WISP '07)</conf-name>
<conf-date>October 2007</conf-date>
<conf-loc>Alcala de Henares, Spain</conf-loc>
<fpage>1</fpage>
<lpage>6</lpage>
<pub-id pub-id-type="other">2-s2.0-49249114687</pub-id>
</element-citation>
</ref>
<ref id="B9">
<label>9</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Garcia-Perez</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Romero-Troncoso</surname>
<given-names>RDJ</given-names>
</name>
<name>
<surname>Cabal-Yepez</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Osornio-Rios</surname>
<given-names>RA</given-names>
</name>
</person-group>
<article-title>The application of high-resolution spectral analysis for identifying multiple combined faults in induction motors</article-title>
<source>
<italic>IEEE Transactions on Industrial Electronics</italic>
</source>
<year>2011</year>
<volume>58</volume>
<issue>5</issue>
<fpage>2002</fpage>
<lpage>2010</lpage>
<pub-id pub-id-type="other">2-s2.0-79954497420</pub-id>
</element-citation>
</ref>
<ref id="B10">
<label>10</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>NE</given-names>
</name>
<name>
<surname>Shen</surname>
<given-names>Z</given-names>
</name>
<name>
<surname>Long</surname>
<given-names>SR</given-names>
</name>
<etal></etal>
</person-group>
<article-title>The empirical mode decomposition and the Hubert spectrum for nonlinear and non-stationary time series analysis</article-title>
<source>
<italic>Proceedings of the Royal Society A</italic>
</source>
<year>1998</year>
<volume>454</volume>
<issue>1971</issue>
<fpage>903</fpage>
<lpage>995</lpage>
<pub-id pub-id-type="other">2-s2.0-5444236478</pub-id>
</element-citation>
</ref>
<ref id="B11">
<label>11</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Feng</surname>
<given-names>H-L</given-names>
</name>
<name>
<surname>Fang</surname>
<given-names>Y-M</given-names>
</name>
<name>
<surname>Xiang</surname>
<given-names>X-Q</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>J</given-names>
</name>
</person-group>
<article-title>A data-driven noise reduction method and its application for the enhancement of stress wave signals</article-title>
<source>
<italic>The Scientific World Journal</italic>
</source>
<year>2012</year>
<volume>2012</volume>
<fpage>7 pages</fpage>
<pub-id pub-id-type="publisher-id">353081</pub-id>
</element-citation>
</ref>
<ref id="B12">
<label>12</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Peng</surname>
<given-names>ZK</given-names>
</name>
<name>
<surname>Tse</surname>
<given-names>PW</given-names>
</name>
<name>
<surname>Chu</surname>
<given-names>FL</given-names>
</name>
</person-group>
<article-title>A comparison study of improved Hilbert-Huang transform and wavelet transform: application to fault diagnosis for rolling bearing</article-title>
<source>
<italic>Mechanical Systems and Signal Processing</italic>
</source>
<year>2005</year>
<volume>19</volume>
<issue>5</issue>
<fpage>974</fpage>
<lpage>988</lpage>
<pub-id pub-id-type="other">2-s2.0-18144399334</pub-id>
</element-citation>
</ref>
<ref id="B13">
<label>13</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Xu</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Xu</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>X</given-names>
</name>
<name>
<surname>Zha</surname>
<given-names>W</given-names>
</name>
<name>
<surname>Li</surname>
<given-names>X</given-names>
</name>
</person-group>
<article-title>Life cycle vibration analysis based on EMD of rolling element bearing under ALT by constant stress</article-title>
<conf-name>Proceedings of the 8th International Conference on Reliability, Maintainability and Safety (ICRMS '09)</conf-name>
<conf-date>July 2009</conf-date>
<conf-loc>Chengdu, China</conf-loc>
<fpage>1177</fpage>
<lpage>1182</lpage>
<pub-id pub-id-type="other">2-s2.0-77955971982</pub-id>
</element-citation>
</ref>
<ref id="B14">
<label>14</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Du</surname>
<given-names>Q</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>Improvement of the EMD method and applications in defect diagnosis of ball bearings</article-title>
<source>
<italic>Measurement Science and Technology</italic>
</source>
<year>2006</year>
<volume>17</volume>
<issue>8</issue>
<fpage>2355</fpage>
<lpage>2361</lpage>
<pub-id pub-id-type="other">2-s2.0-33746305867</pub-id>
</element-citation>
</ref>
<ref id="B15">
<label>15</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Du</surname>
<given-names>Q</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>S</given-names>
</name>
</person-group>
<article-title>Application of the EMD method in the vibration analysis of ball bearings</article-title>
<source>
<italic>Mechanical Systems and Signal Processing</italic>
</source>
<year>2007</year>
<volume>21</volume>
<issue>6</issue>
<fpage>2634</fpage>
<lpage>2644</lpage>
<pub-id pub-id-type="other">2-s2.0-34249718434</pub-id>
</element-citation>
</ref>
<ref id="B16">
<label>16</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Duque</surname>
<given-names>O</given-names>
</name>
<name>
<surname>Pérez</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Moríñigo</surname>
<given-names>D</given-names>
</name>
</person-group>
<article-title>Detection of bearing faults in cage induction motors fed by frequency converter using spectral analysis of line current</article-title>
<conf-name>Proceedings of the IEEE International Conference on Electric Machines and Drives (IEMDC '05)</conf-name>
<conf-date>May 2005</conf-date>
<conf-loc>San Antonio, Tex, USA</conf-loc>
<fpage>17</fpage>
<lpage>22</lpage>
<pub-id pub-id-type="other">2-s2.0-33749056602</pub-id>
</element-citation>
</ref>
<ref id="B17">
<label>17</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Zhu</surname>
<given-names>N</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Yao</surname>
<given-names>Q</given-names>
</name>
<name>
<surname>Lu</surname>
<given-names>Q</given-names>
</name>
</person-group>
<article-title>A fault diagnosis approach for broken rotor bars based on EMD and envelope analysis</article-title>
<source>
<italic>Journal of China University of Mining and Technology</italic>
</source>
<year>2007</year>
<volume>17</volume>
<issue>2</issue>
<fpage>205</fpage>
<lpage>209</lpage>
<pub-id pub-id-type="other">2-s2.0-34250727204</pub-id>
</element-citation>
</ref>
<ref id="B18">
<label>18</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Niu</surname>
<given-names>F-L</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Yang</surname>
<given-names>J-Q</given-names>
</name>
<name>
<surname>Chen</surname>
<given-names>L-Y</given-names>
</name>
<name>
<surname>Jin</surname>
<given-names>H</given-names>
</name>
</person-group>
<article-title>Rotor broken-bar fault diagnosis of induction motor based on HHT of the startup electromagnetic torque</article-title>
<source>
<italic>Frontiers of Electrical and Electronic Engineering in China</italic>
</source>
<year>2006</year>
<volume>1</volume>
<issue>2</issue>
<fpage>188</fpage>
<lpage>193</lpage>
<pub-id pub-id-type="other">2-s2.0-33746053848</pub-id>
</element-citation>
</ref>
<ref id="B19">
<label>19</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Zhang</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Shen</surname>
<given-names>Y</given-names>
</name>
</person-group>
<article-title>Method of EMD and ZOOM-FFT to detect the broken bars fault in induction motor</article-title>
<conf-name>Proceedings of the International Conference on Electrical Machines and Systems (ICEMS '10)</conf-name>
<conf-date>October 2010</conf-date>
<conf-loc>Incheon, Republic of Korea</conf-loc>
<fpage>1387</fpage>
<lpage>1391</lpage>
<pub-id pub-id-type="other">2-s2.0-78651364414</pub-id>
</element-citation>
</ref>
<ref id="B20">
<label>20</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Zhang</surname>
<given-names>G</given-names>
</name>
<name>
<surname>Wei</surname>
<given-names>Y</given-names>
</name>
<name>
<surname>Cheng</surname>
<given-names>G</given-names>
</name>
</person-group>
<article-title>Rotor break-bar fault diagnosis of asynchronous motor based on empirical mode decomposition</article-title>
<conf-name>Proceedings of the Asia-Pacific Power and Energy Engineering Conference (APPEEC '12)</conf-name>
<conf-date>March 2012</conf-date>
<conf-loc>Shanghai, China</conf-loc>
<fpage>1</fpage>
<lpage>4</lpage>
</element-citation>
</ref>
<ref id="B21">
<label>21</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Antonino-Daviu</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Aviyente</surname>
<given-names>S</given-names>
</name>
<name>
<surname>Strangas</surname>
<given-names>EG</given-names>
</name>
<name>
<surname>Riera-Guasp</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Roger-Folch</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Pérez</surname>
<given-names>RB</given-names>
</name>
</person-group>
<article-title>An EMD-based invariant feature extraction algorithm for rotor bar condition monitoring</article-title>
<conf-name>Proceedings of the 8th IEEE Symposium on Diagnostics for Electrical Machines, Power Electronics and Drives (SDEMPED '11)</conf-name>
<conf-date>September 2011</conf-date>
<conf-loc>Bologna, Italy</conf-loc>
<fpage>669</fpage>
<lpage>675</lpage>
<pub-id pub-id-type="other">2-s2.0-81255150970</pub-id>
</element-citation>
</ref>
<ref id="B22">
<label>22</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Gai</surname>
<given-names>G</given-names>
</name>
</person-group>
<article-title>The processing of rotor startup signals based on empirical mode decomposition</article-title>
<source>
<italic>Mechanical Systems and Signal Processing</italic>
</source>
<year>2006</year>
<volume>20</volume>
<issue>1</issue>
<fpage>222</fpage>
<lpage>235</lpage>
<pub-id pub-id-type="other">2-s2.0-27644585905</pub-id>
</element-citation>
</ref>
<ref id="B23">
<label>23</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Patel</surname>
<given-names>TH</given-names>
</name>
<name>
<surname>Darpe</surname>
<given-names>AK</given-names>
</name>
</person-group>
<article-title>Coupled bending-torsional vibration analysis of rotor with rub and crack</article-title>
<source>
<italic>Journal of Sound and Vibration</italic>
</source>
<year>2009</year>
<volume>326</volume>
<issue>3–5</issue>
<fpage>740</fpage>
<lpage>752</lpage>
<pub-id pub-id-type="other">2-s2.0-67849132406</pub-id>
</element-citation>
</ref>
<ref id="B24">
<label>24</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Yang</surname>
<given-names>B</given-names>
</name>
<name>
<surname>Suh</surname>
<given-names>CS</given-names>
</name>
</person-group>
<article-title>Non-linear characteristics of a cracked rotor-journal bearing system</article-title>
<source>
<italic>Proceedings of the Institution of Mechanical Engineers K</italic>
</source>
<year>2005</year>
<volume>219</volume>
<issue>1</issue>
<fpage>87</fpage>
<lpage>108</lpage>
<pub-id pub-id-type="other">2-s2.0-18844363406</pub-id>
</element-citation>
</ref>
<ref id="B25">
<label>25</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>S-M</given-names>
</name>
<name>
<surname>Choi</surname>
<given-names>Y-S</given-names>
</name>
</person-group>
<article-title>Fault diagnosis of partial rub and looseness in rotating machinery using Hilbert-Huang transform</article-title>
<source>
<italic>Journal of Mechanical Science and Technology</italic>
</source>
<year>2008</year>
<volume>22</volume>
<issue>11</issue>
<fpage>2151</fpage>
<lpage>2162</lpage>
<pub-id pub-id-type="other">2-s2.0-64949175521</pub-id>
</element-citation>
</ref>
<ref id="B26">
<label>26</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Garcia-Ramirez</surname>
<given-names>AG</given-names>
</name>
<name>
<surname>Osornio-Rios</surname>
<given-names>RA</given-names>
</name>
<name>
<surname>Granados-Lieberman</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Garcia-Perez</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Romero-Troncoso</surname>
<given-names>RJ</given-names>
</name>
</person-group>
<article-title>Smart sensor for online detection of multiple-combined faults in VSD-fed induction motors</article-title>
<source>
<italic>Sensors</italic>
</source>
<year>2012</year>
<volume>12</volume>
<fpage>11989</fpage>
<lpage>12005</lpage>
<pub-id pub-id-type="pmid">23112695</pub-id>
</element-citation>
</ref>
<ref id="B27">
<label>27</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Contreras-Medina</surname>
<given-names>LM</given-names>
</name>
<name>
<surname>Romero-Troncoso</surname>
<given-names>RDJ</given-names>
</name>
<name>
<surname>Cabal-Yepez</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Rangel-Magdaleno</surname>
<given-names>JDJ</given-names>
</name>
<name>
<surname>Millan-Almaraz</surname>
<given-names>JR</given-names>
</name>
</person-group>
<article-title>FPGA-based multiple-channel vibration analyzer for industrial applications in induction motor failure detection</article-title>
<source>
<italic>IEEE Transactions on Instrumentation and Measurement</italic>
</source>
<year>2010</year>
<volume>59</volume>
<issue>1</issue>
<fpage>63</fpage>
<lpage>72</lpage>
<pub-id pub-id-type="other">2-s2.0-72349091515</pub-id>
</element-citation>
</ref>
<ref id="B28">
<label>28</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Wang</surname>
<given-names>L</given-names>
</name>
<name>
<surname>Vai</surname>
<given-names>MI</given-names>
</name>
<name>
<surname>Mak</surname>
<given-names>PU</given-names>
</name>
<name>
<surname>Ieong</surname>
<given-names>CI</given-names>
</name>
</person-group>
<article-title>Hardware-accelerated implementation of EMD</article-title>
<conf-name>Proceedings of the 3rd International Conference on BioMedical Engineering and Informatics (BMEI '10)</conf-name>
<conf-date>October 2010</conf-date>
<conf-loc>Yantai, China</conf-loc>
<fpage>912</fpage>
<lpage>915</lpage>
<pub-id pub-id-type="other">2-s2.0-78650642759</pub-id>
</element-citation>
</ref>
<ref id="B29">
<label>29</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Lee</surname>
<given-names>M-H</given-names>
</name>
<name>
<surname>Shyu</surname>
<given-names>K-K</given-names>
</name>
<name>
<surname>Lee</surname>
<given-names>P-L</given-names>
</name>
<name>
<surname>Huang</surname>
<given-names>C-M</given-names>
</name>
<name>
<surname>Chiu</surname>
<given-names>Y-J</given-names>
</name>
</person-group>
<article-title>Hardware implementation of EMD using DSP and FPGA for online signal processing</article-title>
<source>
<italic>IEEE Transactions on Industrial Electronics</italic>
</source>
<year>2011</year>
<volume>58</volume>
<issue>6</issue>
<fpage>2473</fpage>
<lpage>2481</lpage>
<pub-id pub-id-type="other">2-s2.0-79956283096</pub-id>
</element-citation>
</ref>
<ref id="B30">
<label>30</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Hong</surname>
<given-names>YY</given-names>
</name>
<name>
<surname>Yan</surname>
<given-names>C</given-names>
</name>
<name>
<surname>Bao</surname>
<given-names>YQ</given-names>
</name>
</person-group>
<article-title>FPGA Implementation for real-time empirical mode decomposition</article-title>
<source>
<italic>IEEE Transactions on Instrumentation and Measurement</italic>
</source>
<year>2012</year>
<volume>61</volume>
<issue>12</issue>
<fpage>3175</fpage>
<lpage>3184</lpage>
</element-citation>
</ref>
<ref id="B31">
<label>31</label>
<element-citation publication-type="other">
<person-group person-group-type="author">
<name>
<surname>Lu</surname>
<given-names>LY</given-names>
</name>
</person-group>
<article-title>Fast intrisic mode decomposition and filtering time series data</article-title>
<comment>ORACLE, Redwood Shores, Calif, USA, 2008,
<ext-link ext-link-type="uri" xlink:href="http://arxiv.org/ftp/arxiv/papers/0808/0808.2827.pdf">http://arxiv.org/ftp/arxiv/papers/0808/0808.2827.pdf</ext-link>
</comment>
</element-citation>
</ref>
<ref id="B32">
<label>32</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Chen</surname>
<given-names>D</given-names>
</name>
<name>
<surname>Wang</surname>
<given-names>WJ</given-names>
</name>
</person-group>
<article-title>Classification of wavelet map patterns using multi-layer neural networks for gear fault detection</article-title>
<source>
<italic>Mechanical Systems and Signal Processing</italic>
</source>
<year>2002</year>
<volume>16</volume>
<issue>4</issue>
<fpage>695</fpage>
<lpage>704</lpage>
<pub-id pub-id-type="other">2-s2.0-0036664319</pub-id>
</element-citation>
</ref>
<ref id="B33">
<label>33</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ghate</surname>
<given-names>VN</given-names>
</name>
<name>
<surname>Dudul</surname>
<given-names>SV</given-names>
</name>
</person-group>
<article-title>Optimal MLP neural network classifier for fault detection of three phase induction motor</article-title>
<source>
<italic>Expert Systems with Applications</italic>
</source>
<year>2010</year>
<volume>37</volume>
<issue>4</issue>
<fpage>3468</fpage>
<lpage>3481</lpage>
<pub-id pub-id-type="other">2-s2.0-71349083204</pub-id>
</element-citation>
</ref>
<ref id="B34">
<label>34</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Ertunc</surname>
<given-names>HM</given-names>
</name>
<name>
<surname>Ocak</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Aliustaoglu</surname>
<given-names>C</given-names>
</name>
</person-group>
<article-title>ANN- and ANFIS-based multi-staged decision algorithm for the detection and diagnosis of bearing faults</article-title>
<source>
<italic>Neural Computing and Applications</italic>
</source>
<year>2012</year>
<volume>22</volume>
<issue>1</issue>
<fpage>435</fpage>
<lpage>446</lpage>
<pub-id pub-id-type="other">2-s2.0-84859039756</pub-id>
</element-citation>
</ref>
<ref id="B35">
<label>35</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Arabaci</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Bilgin</surname>
<given-names>O</given-names>
</name>
</person-group>
<article-title>Automatic detection and classification of rotor cage faults in squirrel cage induction motor</article-title>
<source>
<italic>Neural Computing and Applications</italic>
</source>
<year>2010</year>
<volume>19</volume>
<issue>5</issue>
<fpage>713</fpage>
<lpage>723</lpage>
<pub-id pub-id-type="other">2-s2.0-77953912939</pub-id>
</element-citation>
</ref>
<ref id="B36">
<label>36</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kim</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Parlos</surname>
<given-names>AG</given-names>
</name>
</person-group>
<article-title>Induction motor fault diagnosis based on neuropredictors and wavelet signal processing</article-title>
<source>
<italic>IEEE/ASME Transactions on Mechatronics</italic>
</source>
<year>2002</year>
<volume>7</volume>
<issue>2</issue>
<fpage>201</fpage>
<lpage>219</lpage>
<pub-id pub-id-type="other">2-s2.0-0036613161</pub-id>
</element-citation>
</ref>
<ref id="B37">
<label>37</label>
<element-citation publication-type="confproc">
<person-group person-group-type="author">
<name>
<surname>Kia</surname>
<given-names>SH</given-names>
</name>
<name>
<surname>Henao</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Capolino</surname>
<given-names>G-A</given-names>
</name>
</person-group>
<article-title>Diagnosis of broken bar fault in induction machines using discrete wavelet transform without slip estimation</article-title>
<conf-name>Proceedings of the IEEE Industry Applications Conference 42nd Annual Meeting (IAS '07)</conf-name>
<conf-date>September 2007</conf-date>
<conf-loc>New Orleans, Lo, USA</conf-loc>
<fpage>1917</fpage>
<lpage>1922</lpage>
<pub-id pub-id-type="other">2-s2.0-47849129455</pub-id>
</element-citation>
</ref>
<ref id="B38">
<label>38</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Kia</surname>
<given-names>SH</given-names>
</name>
<name>
<surname>Henao</surname>
<given-names>H</given-names>
</name>
<name>
<surname>Capolino</surname>
<given-names>G-A</given-names>
</name>
</person-group>
<article-title>Diagnosis of broken-bar fault in induction machines using discrete wavelet transform without slip estimation</article-title>
<source>
<italic>IEEE Transactions on Industry Applications</italic>
</source>
<year>2009</year>
<volume>45</volume>
<issue>4</issue>
<fpage>1395</fpage>
<lpage>1404</lpage>
<pub-id pub-id-type="other">2-s2.0-68249159452</pub-id>
</element-citation>
</ref>
<ref id="B39">
<label>39</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Valtierra-Rodriguez</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Osornio-Rios</surname>
<given-names>RA</given-names>
</name>
<name>
<surname>Garcia-Perez</surname>
<given-names>A</given-names>
</name>
<name>
<surname>Romero-Troncoso</surname>
<given-names>RJ</given-names>
</name>
</person-group>
<article-title>FPGA-based neural network harmonic estimation for continuous monitoring of the power line in industrial applications</article-title>
<source>
<italic>Electric Power Systems Research</italic>
</source>
<year>2013</year>
<volume>98</volume>
<fpage>51</fpage>
<lpage>57</lpage>
</element-citation>
</ref>
<ref id="B40">
<label>40</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Turan</surname>
<given-names>N-G</given-names>
</name>
<name>
<surname>Gümüşel</surname>
<given-names>E-B</given-names>
</name>
<name>
<surname>Ozgonenel</surname>
<given-names>O</given-names>
</name>
</person-group>
<article-title>Prediction of heavy metal removal by different liner materials from landfill leachate: modeling of experimental results using artificial intelligence technique</article-title>
<source>
<italic>The Scientific World Journal</italic>
</source>
<year>2013</year>
<volume>2013</volume>
<fpage>5 pages</fpage>
<pub-id pub-id-type="publisher-id">240158</pub-id>
</element-citation>
</ref>
<ref id="B41">
<label>41</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Cabal-Yepez</surname>
<given-names>E</given-names>
</name>
<name>
<surname>Valtierra-Rodriguez</surname>
<given-names>M</given-names>
</name>
<name>
<surname>Romero-Troncoso</surname>
<given-names>RJ</given-names>
</name>
<etal></etal>
</person-group>
<article-title>FPGA-based entropy neural processor for online detection of multiple combined faults on induction motors</article-title>
<source>
<italic>Mechanical Systems and Signal Processing</italic>
</source>
<year>2012</year>
<volume>30</volume>
<issue>1</issue>
<fpage>123</fpage>
<lpage>130</lpage>
<pub-id pub-id-type="other">2-s2.0-84860217701</pub-id>
</element-citation>
</ref>
<ref id="B42">
<label>42</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Meher</surname>
<given-names>PK</given-names>
</name>
<name>
<surname>Valls</surname>
<given-names>J</given-names>
</name>
<name>
<surname>Juang</surname>
<given-names>T-B</given-names>
</name>
<name>
<surname>Sridharan</surname>
<given-names>K</given-names>
</name>
<name>
<surname>Maharatna</surname>
<given-names>K</given-names>
</name>
</person-group>
<article-title>50 years of CORDIC: algorithms, architectures, and applications</article-title>
<source>
<italic>IEEE Transactions on Circuits and Systems I</italic>
</source>
<year>2009</year>
<volume>56</volume>
<issue>9</issue>
<fpage>1893</fpage>
<lpage>1907</lpage>
<pub-id pub-id-type="other">2-s2.0-70349244955</pub-id>
</element-citation>
</ref>
<ref id="B43">
<label>43</label>
<element-citation publication-type="journal">
<person-group person-group-type="author">
<name>
<surname>Huang</surname>
<given-names>NE</given-names>
</name>
<name>
<surname>Wu</surname>
<given-names>M-LC</given-names>
</name>
<name>
<surname>Long</surname>
<given-names>SR</given-names>
</name>
<etal></etal>
</person-group>
<article-title>A confidence limit for the empirical mode decomposition and Hilbert spectral analysis</article-title>
<source>
<italic>Proceedings of the Royal Society A</italic>
</source>
<year>2003</year>
<volume>459</volume>
<issue>2037</issue>
<fpage>2317</fpage>
<lpage>2345</lpage>
<pub-id pub-id-type="other">2-s2.0-1542357546</pub-id>
</element-citation>
</ref>
</ref-list>
</back>
<floats-group>
<fig id="fig1" orientation="portrait" position="float">
<label>Figure 1</label>
<caption>
<p>IMF signal decomposition for a current signal of an induction motor: (a) healthy motor and (b) faulty motor with two broken rotor bars.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.001"></graphic>
</fig>
<fig id="fig2" orientation="portrait" position="float">
<label>Figure 2</label>
<caption>
<p>ADALINE block structure for frequency estimation.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.002"></graphic>
</fig>
<fig id="fig3" orientation="portrait" position="float">
<label>Figure 3</label>
<caption>
<p>Architecture of a FFNN.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.003"></graphic>
</fig>
<fig id="fig4" orientation="portrait" position="float">
<label>Figure 4</label>
<caption>
<p>Proposed methodology for fault diagnosis in induction motors.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.004"></graphic>
</fig>
<fig id="fig5" orientation="portrait" position="float">
<label>Figure 5</label>
<caption>
<p>FPGA-based processor.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.005"></graphic>
</fig>
<fig id="fig6" orientation="portrait" position="float">
<label>Figure 6</label>
<caption>
<p>Proposed methodology flow up, showing a healthy induction motor condition diagnosis.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.006"></graphic>
</fig>
<fig id="fig7" orientation="portrait" position="float">
<label>Figure 7</label>
<caption>
<p>Frequency content for each IMF of a HLT induction motor: (a) first IMF, (b) second IMF, (c) third IMF, and (d) fourth IMF.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.007"></graphic>
</fig>
<fig id="fig8" orientation="portrait" position="float">
<label>Figure 8</label>
<caption>
<p>Block diagram of the EMD approach proposed.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.008"></graphic>
</fig>
<fig id="fig9" orientation="portrait" position="float">
<label>Figure 9</label>
<caption>
<p>Block diagram of the extrema identification module.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.009"></graphic>
</fig>
<fig id="fig10" orientation="portrait" position="float">
<label>Figure 10</label>
<caption>
<p>Block diagram of the spline-cubic interpolation module.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.010"></graphic>
</fig>
<fig id="fig11" orientation="portrait" position="float">
<label>Figure 11</label>
<caption>
<p>Block diagram of the ADALINE module.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.011"></graphic>
</fig>
<fig id="fig12" orientation="portrait" position="float">
<label>Figure 12</label>
<caption>
<p>Frequency components estimation through ADALINE for different faults.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.012"></graphic>
</fig>
<fig id="fig13" orientation="portrait" position="float">
<label>Figure 13</label>
<caption>
<p>Block diagram of the FFNN module: (a) hidden layer, and (b) output layer.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.013"></graphic>
</fig>
<fig id="fig14" orientation="portrait" position="float">
<label>Figure 14</label>
<caption>
<p>Experimental setup.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.014"></graphic>
</fig>
<fig id="fig15" orientation="portrait" position="float">
<label>Figure 15</label>
<caption>
<p>Treated faults.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.015"></graphic>
</fig>
<fig id="fig16" orientation="portrait" position="float">
<label>Figure 16</label>
<caption>
<p>Resulting IMFs of the EMD hardware implementation: (a) healthy motor and (b) faulty motor with two broken rotor bars.</p>
</caption>
<graphic xlink:href="TSWJ2014-908140.016"></graphic>
</fig>
<table-wrap id="tab1" orientation="portrait" position="float">
<label>Table 1</label>
<caption>
<p>Selected frequency components for each IMF.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="1" colspan="1">IMF</th>
<th align="center" rowspan="1" colspan="1">Analyzed bandwidth (Hz)</th>
<th align="center" rowspan="1" colspan="1">Selected frequency components (Hz)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">2</td>
<td align="center" rowspan="1" colspan="1">0–40</td>
<td align="center" rowspan="1" colspan="1">10, 20, 30, 40</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">3</td>
<td align="center" rowspan="1" colspan="1">0–20</td>
<td align="center" rowspan="1" colspan="1">5, 10, 15, 20</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1">0–10</td>
<td align="center" rowspan="1" colspan="1">2.5, 5, 7.5, 10</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab2" orientation="portrait" position="float">
<label>Table 2</label>
<caption>
<p>FPGA-based implementation performance (the worst values are highlighted in bold).</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="2" colspan="1">Induction motor condition</th>
<th align="center" colspan="3" rowspan="1">Relative error (%)</th>
</tr>
<tr>
<th align="center" rowspan="1" colspan="1">Mean (
<italic>µ</italic>
)</th>
<th align="center" rowspan="1" colspan="1">Standard deviation (
<italic>σ</italic>
)</th>
<th align="center" rowspan="1" colspan="1">Peak error (
<italic>P</italic>
)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">HLT</td>
<td align="center" rowspan="1" colspan="1">0.4291</td>
<td align="center" rowspan="1" colspan="1">0.0743</td>
<td align="center" rowspan="1" colspan="1">0.5638</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">1BB</td>
<td align="center" rowspan="1" colspan="1">
<bold>0.6146</bold>
</td>
<td align="center" rowspan="1" colspan="1">
<bold>0.0960</bold>
</td>
<td align="center" rowspan="1" colspan="1">
<bold>0.7902</bold>
</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">2BB</td>
<td align="center" rowspan="1" colspan="1">0.1780</td>
<td align="center" rowspan="1" colspan="1">0.0564</td>
<td align="center" rowspan="1" colspan="1">0.3083</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">BD</td>
<td align="center" rowspan="1" colspan="1">0.4025</td>
<td align="center" rowspan="1" colspan="1">0.0803</td>
<td align="center" rowspan="1" colspan="1">0.5706</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">UNB</td>
<td align="center" rowspan="1" colspan="1">0.2091</td>
<td align="center" rowspan="1" colspan="1">0.0768</td>
<td align="center" rowspan="1" colspan="1">0.3518</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab3" orientation="portrait" position="float">
<label>Table 3</label>
<caption>
<p>Effectiveness percentage of the proposed methodology (confusion matrix).</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="1" colspan="1"></th>
<th align="center" rowspan="1" colspan="1">HLT</th>
<th align="center" rowspan="1" colspan="1">1BB</th>
<th align="center" rowspan="1" colspan="1">2BB</th>
<th align="center" rowspan="1" colspan="1">BRN</th>
<th align="center" rowspan="1" colspan="1">UNB</th>
<th align="center" rowspan="1" colspan="1">Effectiveness (%)</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">HLT</td>
<td align="center" rowspan="1" colspan="1">
<bold>20</bold>
</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">100</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">1BB</td>
<td align="center" rowspan="1" colspan="1">1</td>
<td align="center" rowspan="1" colspan="1">
<bold>18</bold>
</td>
<td align="center" rowspan="1" colspan="1">1</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">90</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">2BB</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">
<bold>20</bold>
</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">100</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">BD</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">
<bold>20</bold>
</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">100</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">UNB</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">0</td>
<td align="center" rowspan="1" colspan="1">
<bold>20</bold>
</td>
<td align="center" rowspan="1" colspan="1">100</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab4" orientation="portrait" position="float">
<label>Table 4</label>
<caption>
<p>Resource usage of the FPGA.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="1" colspan="1">Resource utilization</th>
<th align="center" rowspan="1" colspan="1">EMD</th>
<th align="center" rowspan="1" colspan="1">ADALINE</th>
<th align="center" rowspan="1" colspan="1">FFNN</th>
<th align="center" rowspan="1" colspan="1">Total used</th>
<th align="center" rowspan="1" colspan="1">Available</th>
<th align="center" rowspan="1" colspan="1">Percentage</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">Programmable logic</td>
<td align="center" rowspan="1" colspan="1">3,731</td>
<td align="center" rowspan="1" colspan="1">3,198</td>
<td align="center" rowspan="1" colspan="1">1,582</td>
<td align="center" rowspan="1" colspan="1">8,511</td>
<td align="center" rowspan="1" colspan="1">29,504</td>
<td align="center" rowspan="1" colspan="1">28.85</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">LUTS</td>
<td align="center" rowspan="1" colspan="1">11,211</td>
<td align="center" rowspan="1" colspan="1">7,437</td>
<td align="center" rowspan="1" colspan="1">4,795</td>
<td align="center" rowspan="1" colspan="1">23,443</td>
<td align="center" rowspan="1" colspan="1">29,504</td>
<td align="center" rowspan="1" colspan="1">79.45</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">Multipliers</td>
<td align="center" rowspan="1" colspan="1">30</td>
<td align="center" rowspan="1" colspan="1">4</td>
<td align="center" rowspan="1" colspan="1">2</td>
<td align="center" rowspan="1" colspan="1">36</td>
<td align="center" rowspan="1" colspan="1">36</td>
<td align="center" rowspan="1" colspan="1">100</td>
</tr>
<tr>
<td align="left" colspan="7" rowspan="1">
<hr></hr>
</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">Clock cycles</td>
<td align="center" rowspan="1" colspan="1">984,564</td>
<td align="center" rowspan="1" colspan="1">84,340</td>
<td align="center" rowspan="1" colspan="1">237</td>
<td align="center" rowspan="1" colspan="1">Total</td>
<td align="center" colspan="2" rowspan="1">1,069,141</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap id="tab5" orientation="portrait" position="float">
<label>Table 5</label>
<caption>
<p>Main characteristics of previous works and of the proposed work.</p>
</caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" rowspan="2" colspan="1">Work</th>
<th align="center" rowspan="2" colspan="1">Faults</th>
<th align="center" rowspan="2" colspan="1">Methodology based on</th>
<th align="center" colspan="2" rowspan="1">
<italic>A  priori</italic>
design required</th>
<th align="center" colspan="2" rowspan="1">Signals</th>
<th align="center" colspan="2" rowspan="1">Hardware</th>
</tr>
<tr>
<th align="center" rowspan="1" colspan="1">Yes</th>
<th align="center" rowspan="1" colspan="1">No</th>
<th align="center" rowspan="1" colspan="1">S</th>
<th align="center" rowspan="1" colspan="1">T</th>
<th align="center" rowspan="1" colspan="1">PC</th>
<th align="center" rowspan="1" colspan="1">FPGA</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="1" colspan="1">[
<xref rid="B12" ref-type="bibr">12</xref>
<xref rid="B16" ref-type="bibr">16</xref>
]</td>
<td align="center" rowspan="1" colspan="1">Bearings</td>
<td align="center" rowspan="1" colspan="1">EMD</td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1"></td>
</tr>
<tr>
<td align="left" colspan="9" rowspan="1">
<hr></hr>
</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">[
<xref rid="B17" ref-type="bibr">17</xref>
<xref rid="B22" ref-type="bibr">22</xref>
]</td>
<td align="center" rowspan="1" colspan="1">Broken bar</td>
<td align="center" rowspan="1" colspan="1">EMD</td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1"></td>
</tr>
<tr>
<td align="left" colspan="9" rowspan="1">
<hr></hr>
</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">[
<xref rid="B22" ref-type="bibr">22</xref>
<xref rid="B25" ref-type="bibr">25</xref>
]</td>
<td align="center" rowspan="1" colspan="1">Rotor eccentricities</td>
<td align="center" rowspan="1" colspan="1">EMD</td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1"></td>
</tr>
<tr>
<td align="left" colspan="9" rowspan="1">
<hr></hr>
</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">[
<xref rid="B26" ref-type="bibr">26</xref>
]</td>
<td align="center" rowspan="1" colspan="1">Broken bar 
<break></break>
Unbalance 
<break></break>
Misalignment</td>
<td align="center" rowspan="1" colspan="1">FFT</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
</tr>
<tr>
<td align="left" colspan="9" rowspan="1">
<hr></hr>
</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">[
<xref rid="B27" ref-type="bibr">27</xref>
]</td>
<td align="center" rowspan="1" colspan="1">Broken bars 
<break></break>
Unbalance 
<break></break>
Looseness</td>
<td align="center" rowspan="1" colspan="1">FFT</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
</tr>
<tr>
<td align="left" colspan="9" rowspan="1">
<hr></hr>
</td>
</tr>
<tr>
<td align="left" rowspan="1" colspan="1">This work</td>
<td align="center" rowspan="1" colspan="1">Broken bars 
<break></break>
Bearings 
<break></break>
Unbalance</td>
<td align="center" rowspan="1" colspan="1">EMD</td>
<td align="center" rowspan="1" colspan="1"></td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
<td align="center" rowspan="1" colspan="1">X</td>
</tr>
</tbody>
</table>
<table-wrap-foot>
<fn>
<p>S: stationary; T: transient.</p>
</fn>
</table-wrap-foot>
</table-wrap>
</floats-group>
</pmc>
</record>

Pour manipuler ce document sous Unix (Dilib)

EXPLOR_STEP=$WICRI_ROOT/Ticri/CIDE/explor/TelematiV1/Data/Pmc/Corpus
HfdSelect -h $EXPLOR_STEP/biblio.hfd -nk 000538 | SxmlIndent | more

Ou

HfdSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd -nk 000538 | SxmlIndent | more

Pour mettre un lien sur cette page dans le réseau Wicri

{{Explor lien
   |wiki=    Ticri/CIDE
   |area=    TelematiV1
   |flux=    Pmc
   |étape=   Corpus
   |type=    RBID
   |clé=     PMC:3942393
   |texte=   Empirical Mode Decomposition and Neural Networks on FPGA for Fault Diagnosis in Induction Motors
}}

Pour générer des pages wiki

HfdIndexSelect -h $EXPLOR_AREA/Data/Pmc/Corpus/RBID.i   -Sk "pubmed:24678281" \
       | HfdSelect -Kh $EXPLOR_AREA/Data/Pmc/Corpus/biblio.hfd   \
       | NlmPubMed2Wicri -a TelematiV1 

Wicri

This area was generated with Dilib version V0.6.31.
Data generation: Thu Nov 2 16:09:04 2017. Site generation: Sun Mar 10 16:42:28 2024