<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0254-0770</journal-id>
<journal-title><![CDATA[Revista Técnica de la Facultad de Ingeniería Universidad del Zulia]]></journal-title>
<abbrev-journal-title><![CDATA[Rev. Téc. Ing. Univ. Zulia]]></abbrev-journal-title>
<issn>0254-0770</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería, Universidad del Zulia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0254-07702011000100010</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[On real-time velocity control of DC motors by using computer-aided control system design]]></article-title>
<article-title xml:lang="es"><![CDATA[Sobre control de velocidad en tiempo real de motores de CD usando diseño de sistemas de control asistido por computadora]]></article-title>
</title-group>
<aff id="A">
<institution><![CDATA[,  ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>04</month>
<year>2011</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>04</month>
<year>2011</year>
</pub-date>
<volume>34</volume>
<numero>1</numero>
<fpage>067</fpage>
<lpage>085</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_arttext&amp;pid=S0254-07702011000100010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_abstract&amp;pid=S0254-07702011000100010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_pdf&amp;pid=S0254-07702011000100010&amp;lng=en&amp;nrm=iso"></self-uri></article-meta>
</front><body><![CDATA[   <multicol gutter="39" cols="2">     <p align="center"><font color="#1f1a17" face="Verdana"><b>On real-time velocity  control of DC motors by using computer-aided control system design&nbsp;</b> </font> </p>     <p align="center"><font color="#1f1a17" face="Verdana" size="2"><b>Sobre control  de velocidad en tiempo real de motores de CD usando diseño de sistemas de  control asistido por computadora&nbsp;</b> </font></p>     <p align="center"><font color="#1f1a17" size="2" face="Verdana">Marlen  Meza-Sánchez<sup>1</sup>, Javier Moreno-Valenzuela<sup>2&nbsp;</sup> </font></p>     <p align="center"><font color="#1f1a17" face="Verdana" size="2"><sup>1</sup>CICESE,  Carretera Tijuana-Ensenada No. 3918, Zona Playitas, Ensenada, B.C., 22860,  Mexico. <a href="mailto:marmeza@cicese.mx">marmeza@cicese.mx</a></font></p>     <p align="center"><font color="#1f1a17" face="Verdana" size="2">&nbsp;    <br> </font><font color="#1f1a17" face="Bookman" size="2"> <font color="#1f1a17" face="Verdana"><sup>2</sup></font><font color="#1f1a17" size="2" face="Verdana">Instituto  Politécnico Nacional-CITEDI, Ave. del Parque 1310, Mesa de Otay,    <br> Tijuana, B.C., 22510, Mexico. Fax: +52 664 623 1388. <a href="mailto:moreno@citedi.mx">moreno@citedi.mx</a> &nbsp; </font></font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Abstract&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">In this paper,  the advantages of a computer-aided control system design tool, specifically  Matlab, are addressed to achieve real-time velocity control of direct current  (DC) motors. To this aim, an experimental set-up is proposed, which avoids the  use of a data acquisition board by employing the parallel port and two  microcontrollers to establish the data feedback between the computer and the DC  motor. Attention to the concepts of fast computing and real-time computing is  also paid. Experiments confirmed the advantage of using a computer-aided control  system design tool as well as the differences in the performance of a control  algorithm implemented using fast computing and real-time computing.&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Key words:&nbsp;</b>DC  motor, velocity control, Matlab, fast computing, real-time computing.&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Resumen&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">En este  artículo, las ventajas de una herramienta de diseño de sistemas de control  asistido por computadora, específicamente Matlab, es discutida con el fin de  lograr control de velocidad en tiempo real de un motor de corriente directa  (CD). Para lograr este fin, se propone una plataforma experimental la cual evita  de uso de una tarjeta de adquisición de datos al emplear el puerto paralelo y  dos microcontroladores para establecer la retroalimentación de datos entre la  computadora y el motor de CD. Se presta especial atención a los conceptos de  computación rápida y computación en tiempo real. Los experimentos confirmaron  las ventajas de usar una herramienta para el diseño de sistemas de control así  como las diferencias entre las prestaciones de un algoritmo de control  implementado usando computación rápida y computación en tiempo real.&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Palabras  clave:&nbsp;</b>motor de CD, control de velocidad, Matlab, computación rápida,  computación en tiempo real.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Recibido el 13  de Abril de 2010&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">En forma  revisada el 17 de Enero de 2011&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Introduction&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">A control  designer must fulfill the following steps in order to design a suitable control  system for a plant [1]: 1) design a controller, 2) analyze and modify it if the  specifications are not satisfied, 3) choose hardware and software and implement  the controller, 4) test and validate the control system, and 5) tune the  controller on line, if necessary. To accomplish these steps, the use of  interactive multi-windowed computer-aids in instruction (interactive modules) is  particularly significant because it provides practical insight into control  system fundamentals. In essence, an interactive module in real-time control  systems is a collection of graphical windows whose components are active,  dynamic and clickable. By using a high-speed real-time computing platform it is  possible to implement many of the control algorithms reported in papers that  only consider theoretical aspects of modeling and control. Moreover,  developments in automated code generation allow users to create real-time code  from graphical, control system simulation software (e.g., Matlab/Simulink).  These tools enable researchers to focus on control system design, implementation,  and evaluation rather than on time-consuming, low-level programming. In addition,  a variety of educational/research plants are now commercially available from  different vendors that capture the multidisciplinary nature of the field (e.g.,  robot manipulator, inverted pendulum, magnetic levitation, water tank, pH  control rig, helicopter, ball and beam, direct current (DC) motor). However,  despite the recent interest in incorporating technological advancements into  control systems laboratory courses, a control laboratory experience is not  commonplace [2].&nbsp; </font></p> </multicol> <multicol gutter="39" cols="2">     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Frequently,  many computer science and electrical engineering students have the misconception  about real-time computing is equivalent to fast computing. The objective of fast  computing is to minimize the average response of a given set of tasks. However,  the objective of real-time computing is to meet the individual timing  requirement of each task. Rather than being fast, the most important property of  a real-time system should be predictability; that is, its fundamental and timing  behavior should be as deterministic as necessary to satisfy the system  specifications. Fast computing is helpful in meeting stringent timing  specifications, but fast computing does not guarantee predictability [3].  Therefore, if a controller is implemented believing that fast computing can  guarantee the achievement of the control objective then the result can be  completely different to the one expected.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">In this paper,  the problem of real time velocity control of DC motors is revisited. However,  novel ingredients are incorporated with a didactic point of view. In first  instance, state-of-the-art PC technologies are combined to develop a system-specific  interactive real-time control system, which are useful for enhancing both  research and education. Specifically, this paper describes the velocity control  of a DC motor by using a computer-aided control system design tool consisting in  PC / WindowsXP / Matlab. Let us notice that Matlab incorporates the Simulink and  Real-Time Workshop toolboxes, which permit to the control system engineers and  students to analyze, design, and visualize the performance of controllers via  real-time. Through a user-friendly graphical interface, users can modify the  controller and signal parameters on-the-fly contrary to typical implementations  where modifications are code-based [4, 5]. Besides, one major feature of the  Matlab environment is the ability to access a number of toolboxes (e.g.,  optimization, system identification, signal processing, etc.). The proposed set-up  does not require a data acquisition board. Instead, data feedback is  accomplished via parallel port and microcontrollers, which is important from the  didactic point of view, since computer science and electrical engineering  students can practice number of microcontroller routines and exploit the  capability of the parallel port to be used as a data acquisition system.&nbsp; </font> </p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">In addition,  the problem of the misconception about fast computing and real-time computing is  also revisited. Let us notice that Simulink is enabled with the so-called normal  mode of computing, which is based in a time vector that is not connected to a  hardware clock, then the calculations are done as fast as the computer can,  which is interpreted as a fast computing mode that depends on the physical  characteristics of the PC. In addition, Simulink is also equipped with the  external mode of computing, which is available via Real-Time Workshop toolbox,  which allows the real-time execution of the constructed code [6]. In other words,  a way in that the misconception about fast computing and real-time computing can  be understood under the light of velocity control experiments in a DC motor is  provided, addressing fundamental issues that are of concern to all control  system designers.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>PI velocity  control of DC motors&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">A classical  linear description of a direct current (DC) motor considering the voltage as the  input is given by [7-9],&nbsp; </font></p> </multicol> <multicol gutter="39" cols="2">     <p align="justify"><img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.64.jpg"><font color="#1f1a17" face="Verdana" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(1)&nbsp; </font></p>     
<p align="justify"><font color="#1f1a17" size="2" face="Verdana">where <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.65.gif"> denotes the motor shaft velocity,<img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.66.gif">  is the motor shaft inertia,<img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.67.gif"> is the viscous  friction coefficient,<img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.68.gif"> is the so-called motor  constant, and n is the voltage control input.&nbsp; </font></p>     
<p align="justify"><font color="#1f1a17" size="2" face="Verdana">The velocity  control problem consists in designed a voltage control input n so that the  velocity error <img src="file:///C:/Scielo/serial/rtfiuz/v34n1/source/rfacingUZ/HTML/Tecnica-9/Equation/_VP_EQN_5.GIF" alt="_VP_EQN_5.GIF" height="12" width="80">,  where <img src="file:///C:/Scielo/serial/rtfiuz/v34n1/source/rfacingUZ/HTML/Tecnica-9/Equation/_VP_EQN_6.GIF" alt="_VP_EQN_6.GIF" height="12" width="13">  is a constant that specifies the desired velocity and <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.69.gif"> is the motor shaft velocity, achieves the  limit&nbsp; </font></p>     
<p align="justify"><img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.70.jpg"><font color="#1f1a17" face="Verdana" size="2">&nbsp;&nbsp;&nbsp;&nbsp;(2)&nbsp; </font></p>     
<p align="justify"><font color="#1f1a17" face="Verdana" size="2">A proportional-integral  velocity controller is defined by [5, 6]&nbsp; </font></p>     <p align="justify"><img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.71.jpg"><font color="#1f1a17" face="Verdana" size="2">&nbsp;&nbsp;&nbsp;&nbsp;(3)&nbsp; </font></p>     
<p align="justify"><font color="#1f1a17" face="Verdana" size="2">where <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.72.gif"> and <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.73.gif">are  constants that denote the integral and proportional gains of the controller,  respectively. In <a href="#f1">Figure 1</a>, a block diagram of a DC motor model (1) in closed-loop  with the classical PI velocity controller (3) is shown. By using the Routh-Hurwitz  criterion [7, 8], it is possible to show that the velocity error <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.74.gif"> satisfies the limit (2) by using <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.75.gif">and <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.76.gif">.&nbsp; </font></p>     
]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>An  experimental set-up&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Existing work  in this area have reported designs of real-time control systems, as in [2, 10,  11]; nevertheless, the need for the use of data acquisition (DAQ) boards for  feedback between the controller and the system to be controlled arises. A  variety of PC-based DAQ boards are available from vendors as National  instruments [12], Quanser [13], Advantech [14], Data Translation [15], among  others. And it does not end here, in order to provide programming environments  to support the implementation of measurement and control algorithms, several  vendors also provide support for DAQ boards solutions. Despite the advantages of  this model, many PC-based DAQ boards tend to be expensive. Our experimental set-up  considers data acquisition via parallel port. Contrary to DAQ solutions, the use  of PC ports to implement data feedback is inexpensive and enables the use of  microcontrollers for signal manipulation. Furthermore, total cost of the  proposed scheme is at least half the price of a DAQ-based solution; i.e., a  couple of hundreds compared to $500 for a cheap DAQ board. Let us remark that  the use of DAQ boards for feedback is independent of real-time execution and  clock-based software/hardware is necessary. Moreover, DAQ-based implementations  can perform non-real-time applications [16].&nbsp; </font></p>     <p align="center"><a name="f1"></a></p>     <p align="center"> <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.77.jpg" width="341" height="157"></p>     
<p align="justify"><font color="#1f1a17" face="Verdana" size="2">The  experimental set-up, shown in <a href="#f2">Figure&nbsp;2</a>, has the following main components: An  armature-controlled DC motor, a 14207S008 LOCG Pittman DC servo motor [17], two  Basic Stamp 2 (BS2) microcontrollers from Parallax [18], an H-bridge HB25 Motor  Controller from Parallax [19], and a dual positive-edge triggered D flip-flop  [20].&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">The BS2  microcontrollers are used to interpret and apply the controller output to the DC  motor. One microcontroller allows receiving data from the parallel port  corresponding to the controller’s output and generating the corresponding pulse  for the H-Bridge. The H-Bridge is in charge of regulating voltage supplied for  the DC motor. The D Flip-flop receives the signals for the motor encoder and  determines the shaft direction and it is connected to the second microcontroller.  This microcontroller is in charge also of reading the encoder output of the DC  motor and determines the speed of the DC motor. DAQ boards function in typical  designs is emulated by the combination of parallel port and BS2 microcontrollers  in the proposed set-up; the parallel port allows communication and BS2  microcontrollers acquire/generate and process signals in order to enforce  appropriate feedback.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Let us observe  that each microcontroller is dedicated to one only task; either to receive data  and convert to PWM or to read encoder signal and measure the number of counts.  This characteristic avoids the need to program a scheduler or kernel in order to  guaranteed hardware real-time execution as in typical microcontrollers set-ups  [21, 22]. Each BS2 microcontroller performs its task in the necessary rate in  order to fulfill real-time execution requirements of the software. BS2  microcontrollers use clock-based functions in order to guarantee timing and HB25  controller operates with frequency of 0.01[s] which is the minimum supported;  i.e., lower sampling-time is supported by BS2 microcontrollers but it is  necessary to replace the HB25 controller.&nbsp; </font></p>     <p align="center"><a name="f2"></a></p> </multicol>     <p align="center"><font face="Verdana" size="2">&nbsp;</font><img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.78.jpg" width="580" height="536"></p> <multicol gutter="39" cols="2">     
<p align="justify"><font color="#1f1a17" face="Verdana" size="2">By using the  proposed hardware, the main idea is that the PI velocity controller (3) should  be programmed in a PC equipped with Windows XP/Matlab/Simulink/Real-Time  Workshop, as illustrated in <a href="#f2">Figure 2</a>. Thus, a proper Simulink stateflow, able to  get communicated with the parallel port, should be designed.&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Simulink  executing modes&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Simulink can  execute the stateflow model in two modes, which are mostly used: normal and  external. The calculations in normal mode are based in a time vector that is not  connected to a hardware clock, then the calculations are done as fast as the  computer can. On the other hand, the external mode concerns applications in  real-time and, depending on the specified sampling time, interruptions are  generated so that the calculations of the program model can be done in the  specified time.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">The parallel  port data feedback should be incorporated in the Simulink stateflow model in  different ways for each execution model. <a href="#f3">Figure 3</a> shows the Simulink stateflow  of the implementation of the PI velocity controller with fast computing (normal  mode) while <a href="#f4">Figure 4</a> describes the stateflow of the PI velocity controller with  real-time computing (external mode). In both stateflows, Validate data and Scale  blocks remarks the Simulink blocks corresponding to the necessary process in  order to adequate received/send data through parallel port. In the case of  normal mode, the Matlab Function blocks correspond to m-file functions which  allow parallel port communication; for external mode, rec_motor and motor_send  correspond to C functions embedded into S-Function Builder blocks. Let us notice  that S-functions allow incorporating used-defined blocks in the Simulink  stateflow model and can be converted along with the stateflow model in real-time  application blocks, contrary to Matlab’s built-in application functions, which  can only be used in the normal execution mode [6]. In the proposed design, S-function  Builder block for external mode allows including C programming language for  parallel port communication; by double-clicking in it and providing the header  and C files that will be used in each block, the embedded function can be  generated. Furthermore, Matlab Function blocks for normal mode only need to  specify the corresponding m-file function. The described Matlab functions for  normal mode, C functions for external mode and Basic Stamp 2 programs are  provided in Appendix A.&nbsp; </font></p> </multicol> <multicol gutter="39" cols="2">     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Results&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">For convenience,  we have decided to measure the motor shaft velocity in units of [pulses/10ms].  Then, 1 [pulses/10ms] = 100 [pulses/s] = 1.26 [rad/s], since the encoder has a  resolution of 500 [pulses/rev]. In the experiments the PI velocity controller  (3) was implemented with gains <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.79.gif"> and <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.80.gif">Gains values were selected accordingly to  observed experimental behavior for smooth system response. The desired velocity  was&nbsp;<img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.81.jpg"> </font></p>     
<p align="center"><a name="f3"></a></p> </multicol>     <p align="center"><font face="Verdana" size="2"> <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.82.jpg" width="680" height="264"></font></p>     
<p align="center"><a name="f4"></a></p>     <p align="center"><font face="Verdana" size="2"> &nbsp;<img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.83.jpg" width="680" height="251"> </font></p> <multicol gutter="39" cols="2">     
<p align="justify"><font color="#1f1a17" size="2" face="Verdana">The first set  of experiments consisted in implementing the normal mode Simulink stateflow in  <a href="#f3">Figure 3</a>. Three runs of the model were done using the sampling times t<sub>s</sub>  = 0.01, 0.03, and 0.05 [s]. Secondly, we implemented the PI velocity controller  in external mode Simulink stateflow in <a href="#f4">Figure 4</a> using the same sampling times.  The results are presented in <a href="#f5">Figure 5</a> and <a href="#f6">6</a>. In  <a href="#f5">Figure 5</a>, it is easy to observe  that some “jumps” in the time response are presented in the implementation of  the normal mode, which are non typical in linear systems. On the other hand, in  despite of the different sampling times, the different implementations in the  external mode presented a behavior of the time response consistent with linear  system theory, i.e., exponential convergence of the actual <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.84.gif"> velocity to the desired one, <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.85.gif">, see <a href="#f6">Figure 6</a>.&nbsp; </font></p>     
]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Discussions&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">The fast  computing implementation of the PI velocity controller (3) through the normal  mode Simulink stateflow shown in <a href="#f3">Figure 3</a> showed unsatisfactory results. The  reason of the ``jumps&quot; in the time responses illustrated in <a href="#f3">Figure 3</a> when  implementing the normal mode is that the calculations are done without using any  physical clock and no especial priority to control process is given when the  computer is executing the model.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">With the  external mode Simulink stateflow shown in <a href="#f4">Figure 4</a>, we were able to implement  the PI velocity controller (3) using real-time computing. The experiments  presented excellent repeatability, contrary to the case of the fast computing  implementation. The reason is that the constructed stateflow model is compiled  and converted into an executable file to be run in real-time by the operating  system kernel.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">In the normal  mode setting (fast computing), the Matlab functions for the parallel port cannot  be used in real-time execution due interaction with Windows’s Scheduler which  operates accordingly to hierarchical execution policies [23]. Moreover, the fast  computing implementation increases the duration of the experiment when  increasing sampling-time in the model. For example, the following approximated  results were obtained by timing a 5[sec] normal mode execution for the PI  velocity controller using a Windows XP Pro SP2 Intel Pentium IV 3.00 GHz with  512Mb of RAM: a) sampling-time of 0.05[s] gives a 77.5[s] of duration, b)  sampling-time of 0.03[s] results in 155.1[s], and finally, c) sampling-time of  0.01[s] gives a measured 467.3[s] of duration. On the other hand, external mode  (real-time execution) the duration of execution is guaranteed regardless  sampling-time provided PC characteristics can handle the operation weight;  otherwise, model will not be loaded and executed by Simulink in this mode.&nbsp; </font></p> </multicol>     <p align="center"><a name="f5"></a></p>     <p align="center"><font face="Verdana" size="2"> <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.86.jpg" width="337" height="328"></font></p>     
<p align="center"><a name="f6"></a></p>     <p align="center"><font face="Verdana" size="2"> &nbsp; </font> <img border="0" src="/img/fbpe/rtfiuz/v34n1/art10.87.jpg" width="337" height="321"></p> <multicol gutter="39" cols="2">     
<p align="justify"><font color="#1f1a17" face="Verdana" size="2">Thus, we have  shown that implementing a control algorithm with a fast computing focus can lead  to a result not necessarily useful in practical applications. Furthermore, the  importance of guaranteeing the timing requirement of each task was confirmed.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Summary&nbsp;</b> </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">In this paper,  a control scheme in real-time without using a data acquisition board has been  proposed. The proposed scheme is based on using the PC parallel port and two  microcontrollers to achieve data feedback and compared to common  microcontrollers developments provides several advantages: a) no need to learn  languages for low-level programming, b) no clock-based schedulers experience or  knowledge for design is necessary, c) any control algorithm can be implemented  providing correct use of toolboxes, d) no need to download data to  microcontrollers when changing control algorithm, and e) friendly block-based  interface for complex control algorithms design. By implementing a PI velocity  regulator in a DC motor, comparison between fast and real-time computing have  been carried out. The results showed that real-time computing is crucial in the  implementation of control algorithms, while the fast computing can be used for  simple monitoring of data. Due simplicity and control algorithm independence, we  expect that the proposed experimental set-up can be useful in control systems  education and research.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b> Acknowledgements&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">This work was  partially supported by SNI-CONACyT, and SIP-IPN.&nbsp; </font></p>     <p align="justify">&nbsp;</p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>Appendix A.  Experimental platform source code&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>pport fcn.c:  Function developed in C     <br> for sending and receiving data through parallel port in external mode.&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">#include  “conio.h”&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">double  read_motor ()&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">{&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">unsigned int  in_val;&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">outp(0x37a, inp(0x37a)  | 0x01);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">in_val = ((inp(0x379)&#094;0x80)  &gt; 4);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">outp(0x37a, inp(0x37a)  &amp; 0xFE);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">in_val = in_val  | ((inp(0x379)&#094;0x80)&gt;4) &lt; 4 ;&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">return (double)  in_val;&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">double  send_motor(double dato)&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">{&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">if (dato &lt; 0)&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">{dato = 0;}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">if (dato &gt;  255)&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">{dato = 255;}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">outp(0x378,(unsigned  int) dato);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">return dato;&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>pport_fcn.h:  Header file for pport_fcn.c&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">double  send_motor(double dato);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">double  read_motor ();&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>PBasic  program for the Basic Stamp microcontroller which allows sending data to  parallel port. It determines speed and direction of the CD motor.&nbsp;</b> </font> </p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">’ {$STAMP BS2}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">’ {$PBASIC  2.5}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">’ {$PORT COM4}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">cha PIN 14&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">dirlect VAR  Word&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">cycles VAR  Word&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">DIRL =  %11111111&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">DIRH =  %10000000&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Main:&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">COUNT cha,10,  cycles&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">IF (cycles &gt;  127) THEN cycles = 127&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">IF (dirlect =  1) THEN DIR = 128 ELSE dir = 0&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">IF (cycles = 0)  THEN dir = 0&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">OUTL = cycles +  dir&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">GOTO Main END&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>PBasic  program for the Basic Stamp microcontroller for receiving data through the  parallel port. It provides the length of the pulse to be generated by the HB25  microcontroller.&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">’ {$STAMP BS2}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">’ {$PBASIC  2.5}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">’ {$PORT COM4}&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">HB25 PIN 15&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">pulsos VAR Byte&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Main1:&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">PULSOUT  HB25,750&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">GOTO Main&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">END&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Main:&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">pulsos = INL&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">PULSOUT HB25,  pulsos * 2 + 500&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">PAUSE 8&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">GOTO Main&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>read_par.m:  Matlab function for receiving data through parallel port     <br> in the normal mode execution.&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">function y =  read_par(t)&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">DIO = digitalio(’parallel’,’LPT1’);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Status=addline(DIO,1:4,1,’in’);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">Control.Strobe=addline(DIO,0,2,’out’);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"> putvalue(Control.Strobe,1)&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">tmp1 =  xor(getvalue(Status),[0 0 0 1]);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">tmp1 = [tmp1(1)  tmp1(2) tmp1(3) tmp1(4) 0 0 0 0];&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"> putvalue(Control.Strobe,0);&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">tmp2 =  xor(getvalue(Status),[0 0 0 1]);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">tmp2 = [0 0 0 0  tmp2(1) tmp2(2) tmp2(3) tmp2(4)];&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">binary = tmp2 +  tmp1;&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">y = binvec2dec(binary);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>write_par.m:  Matlab function for sending data through parallel port     <br> in the normal mode execution.&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">function  write_par(x)&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">parport=digitalio(’parallel’,’LPT1’);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">out_lines=addline(parport,0:7,0,’Out’);&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">if x &lt; 0&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">x = 0&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">end if x &gt; 255&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">x = 255&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">end&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2"> putvalue(out_lines,x);&nbsp; </font></p>     <p align="justify">&nbsp;</p>      <p align="justify"><font color="#1f1a17" face="Verdana" size="2"><b>References&nbsp;</b> </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">1.&nbsp;Sanchez, J.,  Dormido S. and Esquembre F., “The learning of control concepts using interactive  tools”, Computer Applications in Engineering Education, Vol. 13 (2005) 84-98.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">2.&nbsp;Dixon W.E.,  Dawson D.M., Costic B.T., and de Queiroz M.S., “A Matlab-based control system  laboratory experience for undergraduate students: toward standardization and  shared resources”, IEEE Trans. on Education, Vol. 45 (2002) 218-226.&nbsp; </font> </p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">3.&nbsp;Stankovic  J.A., “Misconceptions about real-time computing: A Serious Problem for Next-Generation  Systems”, Journal Computer, Vol. 21 (1988) 10-19.&nbsp; </font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font color="#1f1a17" face="Verdana" size="2">4.&nbsp;Y. Tipsuwan  and M. Chow, “Fuzzy logic microcontroller implementation for DC motor speed  control”, Proc. of 25th annual conference of the IEEE Industrial Electronics  Society IECON’99, Vol. 3 (1999) 1271-1276.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">5.&nbsp;Tang J.,  “PID controller using the TMS320C31 DSK with online parameter adjustment for  real-time DC motor speed and position control”, Proc. of the IEEE International  Symposium on Industrial Electronics, Vol. 2 (2001) 786-791.&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">6.&nbsp;The  MathWorks, Inc., “Real-Time Workshop© User’s Guide”, available at:  <a href="http://www.mathworks.com/help/pdf_doc/rtw/rtw_ug.pdf">http://www.mathworks.com/help/pdf_doc/rtw/rtw_ug.pdf</a>&nbsp; accessed November, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378521&pid=S0254-0770201100010001000006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font> </p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">7.&nbsp;Kuo B.C.:  “Automatic Control Systems”, 4th Ed., Prentice Hall, Englewood Cliffs, 1982.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378523&pid=S0254-0770201100010001000007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">8.&nbsp;Dorf R.D.  and Bishop R.H.: “Modern Control Systems”, 8th Ed., Addison-Wesley, Menlo Park,  1998.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">9.&nbsp;Spong M.W.  and Vidyasagar M.: “Robot Dynamics and Control”, John Wiley, New York, 1989.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">10.&nbsp;Monroy C.,  Kelly R., Arteaga M. and Bugarin E., “Remote Visual Servoing of a Robot  Manipulator via Internet2”, Journal of Intelligent and Robotic Systems, Vol. 49  (2007) 171-187.&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">11. Yao Z.,  Costescu N.P., Nagarkatti S.P., and Dawson D.M., “Real-Time Linux Target: A  MATLAB-Based Graphical Control Environment”, Proc. of the 2000 IEEE  International Symposium on Computer- Aided Control System Design, (2000)  173-178.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378528&pid=S0254-0770201100010001000011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">12.&nbsp;National  Instruments Corporation, Official Website. <a href="http://www.ni.com">http://www.ni.com</a> / accessed November,  2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378530&pid=S0254-0770201100010001000012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p> </multicol> <multicol gutter="39" cols="2">     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">13.&nbsp;Quanser  Inc., Official Website. <a href="http://www.quanser.com">http://www.quanser.com</a> / accessed November, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378532&pid=S0254-0770201100010001000013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">14.&nbsp;Advantech  Corporation, Official Website. <a href="http://www.advantech.com/">http://www.advantech.com/</a> accessed November,  2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378534&pid=S0254-0770201100010001000014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">15.&nbsp;Data  Translation, Inc., Official Website. <a href="http://www.datx.com/">http://www.datx.com/</a>&nbsp; accessed November,  2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378536&pid=S0254-0770201100010001000015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">16.&nbsp;Kim B.K.,  “Control engineering education with experiments on real-time control system  implementation”, Proc. of the 17<sup>th</sup> world congress of the  International Federation of Automatic Control, Vol. 17, Part 1 (2008)  9105-9110.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378538&pid=S0254-0770201100010001000016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">17.&nbsp;ClickAutomation,  “PITTMAN LOCG 14000 series”, available at:  <a href="http://www.clickautomation.com/products/index.php?func=show&pid=361&cid=144">http://www.clickautomation.com/products/index.php?func=show&amp;pid=361&amp;cid=144</a>&nbsp; accessed November, 2010.&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">18.&nbsp;Parallax,  Inc., “Basic Stamp 2 Module”, available at:  <a href="http://www.parallax.com/detail.asp?product_id=BS2-IC">http://www.parallax.com/detail.asp?product_id=BS2-IC</a>&nbsp; accessed November, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378541&pid=S0254-0770201100010001000018&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">19.&nbsp;Parallax,  Inc., “HB25 Motor Controller”, available at:  <a href="http://www.parallax.com/dl/docs/prod/motors/HB-25MotorController-V1.2.pdf">http://www.parallax.com/dl/docs/prod/motors/HB-25MotorController-V1.2.pdf</a>&nbsp; accessed November, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378543&pid=S0254-0770201100010001000019&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">20.&nbsp;University  of Colorado at Boulder. “DM74LS74A- dual positive-edge-triggered D flip-flops  with preset, clear and complementary outputs”, available at:  <a href="http://ece-www.colorado.edu/mcclurel/dm74ls74a.pdf">http://ece-www.colorado.edu/mcclurel/dm74ls74a.pdf</a>&nbsp; accessed April, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378545&pid=S0254-0770201100010001000020&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">21.&nbsp;Lara-Rojo  F., Sánchez E.N. and Zaldívar-Navarro D., “Minimal fuzzy microcontroller  implementation for didactic applications”, Journal of Applied Research and  Technology, Vol. 1, No. 2 (2003) 137-147.&nbsp; </font></p>     <p align="justify"><font color="#1f1a17" face="Verdana" size="2">22.&nbsp;Marau R.,  Leite P., Velasco M., Martí P., Almeida L., Pedreiras P. and Fuertes J. M.,  “Performing flexible control on low-cost microcontrollers using a minimal  real-time kernel”, IEEE Trans. on Industrial Informatics, Vol. 4, No. 2 (2008)  125-133.&nbsp; </font></p>     ]]></body>
<body><![CDATA[<!-- ref --><p align="justify"><font color="#1f1a17" face="Verdana" size="2">23.&nbsp;Christensen  P., “The truth about Windows real-time architectures”, Website, 2007. Available  at: <a href="http://www.ardence.com/assets/9b4bbe2c6b644403bdff09f60c415e16.pdf">http://www.ardence.com/assets/9b4bbe2c6b644403bdff09f60c415e16.pdf</a>&nbsp; accessed  November, 2010.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2378549&pid=S0254-0770201100010001000023&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref -->&nbsp; </font></p> </multicol>       ]]></body>
<back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sanchez]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[Dormido]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Esquembre]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[The learning of control concepts using interactive tools Computer]]></article-title>
<source><![CDATA[Applications in Engineering Education]]></source>
<year>2005</year>
<volume>13</volume>
<page-range>84-98</page-range></nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dixon]]></surname>
<given-names><![CDATA[W.E.]]></given-names>
</name>
<name>
<surname><![CDATA[Dawson]]></surname>
<given-names><![CDATA[D.M.]]></given-names>
</name>
<name>
<surname><![CDATA[Costic]]></surname>
<given-names><![CDATA[B.T.]]></given-names>
</name>
<name>
<surname><![CDATA[deQueiroz]]></surname>
<given-names><![CDATA[M.S]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Matlab-based control system laboratory experience for undergraduate students: toward standardization and shared resources]]></article-title>
<source><![CDATA[IEEE Trans. on Education]]></source>
<year>2002</year>
<volume>45</volume>
<page-range>218-226</page-range></nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Stankovic]]></surname>
<given-names><![CDATA[J.A]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Misconceptions about real-time computing: A Serious Problem for Next-Generation Systems]]></article-title>
<source><![CDATA[Journal Computer]]></source>
<year>1988</year>
<volume>21</volume>
<page-range>10-19</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<given-names><![CDATA[Tipsuwan Y]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[M]]></article-title>
<source><![CDATA[Chow. Fuzzy logic microcontroller implementation for DC motor speed control. Proc. of 25th annual conference of the IEEE Industrial Electronics Society IECON’99]]></source>
<year>1999</year>
<volume>3</volume>
<page-range>1271-1276</page-range></nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Tang]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[PID controller using the TMS320C31 DSK with online parameter adjustment for real-time DC motor speed and position control]]></article-title>
<source><![CDATA[Proc. of the IEEE International Symposium on Industrial Electronics]]></source>
<year>2001</year>
<volume>2</volume>
<page-range>786-791</page-range></nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<collab>The MathWorks, Inc</collab>
<source><![CDATA[Real-Time Workshop© User’s Guide]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kuo]]></surname>
<given-names><![CDATA[B.C]]></given-names>
</name>
</person-group>
<source><![CDATA[Automatic Control Systems]]></source>
<year>1982</year>
<edition>4th</edition>
<publisher-loc><![CDATA[Englewood Cliffs ]]></publisher-loc>
<publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dorf]]></surname>
<given-names><![CDATA[R.D.]]></given-names>
</name>
<name>
<surname><![CDATA[Bishop]]></surname>
<given-names><![CDATA[R.H]]></given-names>
</name>
</person-group>
<source><![CDATA[Modern Control Systems]]></source>
<year>1998</year>
<edition>8th</edition>
<publisher-loc><![CDATA[Menlo Park ]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Spong]]></surname>
<given-names><![CDATA[M.W.]]></given-names>
</name>
<name>
<surname><![CDATA[Vidyasagar]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
</person-group>
<source><![CDATA[Robot Dynamics and Control]]></source>
<year>1989</year>
<publisher-name><![CDATA[John Wiley, New York]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Monroy]]></surname>
<given-names><![CDATA[C.]]></given-names>
</name>
<name>
<surname><![CDATA[Kelly]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Arteaga]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Bugarin]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Remote Visual Servoing of a Robot Manipulator via Internet2]]></article-title>
<source><![CDATA[Journal of Intelligent and Robotic Systems]]></source>
<year>(200</year>
<month>7</month>
<volume>49</volume>
<numero>(2007</numero>
<issue>(2007</issue>
<page-range>171-187</page-range></nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Yao]]></surname>
<given-names><![CDATA[Z]]></given-names>
</name>
<name>
<surname><![CDATA[Costescu]]></surname>
<given-names><![CDATA[N.P]]></given-names>
</name>
<name>
<surname><![CDATA[Nagarkatti]]></surname>
<given-names><![CDATA[S.P]]></given-names>
</name>
<name>
<surname><![CDATA[Dawson]]></surname>
<given-names><![CDATA[D.M]]></given-names>
</name>
</person-group>
<source><![CDATA[Real-Time Linux Target: A MATLAB-Based Graphical Control Environment]]></source>
<year></year>
<conf-name><![CDATA[ Proc. of the 2000 IEEE International Symposium on Computer- Aided Control System Design]]></conf-name>
<conf-date>2000</conf-date>
<conf-loc> </conf-loc>
<page-range>173-178</page-range></nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="">
<collab>National Instruments Corporation</collab>
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="">
<collab>Quanser Inc</collab>
<source><![CDATA[Official Website]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="">
<collab>Advantech Corporation</collab>
<source><![CDATA[Official Website]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="">
<collab>Data Translation</collab>
<source><![CDATA[Official Website]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kim]]></surname>
<given-names><![CDATA[B.K]]></given-names>
</name>
</person-group>
<source><![CDATA[Control engineering education with experiments on real-time control system implementation]]></source>
<year>2008</year>
<volume>17</volume>
<conf-name><![CDATA[17 world congress of the International Federation of Automatic Control]]></conf-name>
<conf-loc> </conf-loc>
<page-range>9105-9110</page-range></nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="">
<collab>ClickAutomation</collab>
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B18">
<label>18</label><nlm-citation citation-type="">
<collab>Parallax</collab>
<source><![CDATA[Basic Stamp 2 Module]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B19">
<label>19</label><nlm-citation citation-type="">
<collab>Parallax</collab>
<source><![CDATA[HB25 Motor Controller]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B20">
<label>20</label><nlm-citation citation-type="">
<collab>University of Colorado</collab>
<source><![CDATA[DM74LS74A- dual positive-edge-triggered D flip-flops with preset, clear and complementary outputs]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B21">
<label>21</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Lara-Rojo]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
<name>
<surname><![CDATA[Sánchez]]></surname>
<given-names><![CDATA[E.N.]]></given-names>
</name>
<name>
<surname><![CDATA[Zaldívar-Navarro]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Minimal fuzzy microcontroller implementation for didactic applications]]></article-title>
<source><![CDATA[Journal of Applied Research and Technology]]></source>
<year>2003</year>
<volume>1</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>137-147</page-range></nlm-citation>
</ref>
<ref id="B22">
<label>22</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Marau]]></surname>
<given-names><![CDATA[R.]]></given-names>
</name>
<name>
<surname><![CDATA[Leite]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Velasco]]></surname>
<given-names><![CDATA[M.]]></given-names>
</name>
<name>
<surname><![CDATA[Martí]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Almeida]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
<name>
<surname><![CDATA[Pedreiras]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Fuertes]]></surname>
<given-names><![CDATA[J.M]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Performing flexible control on low-cost microcontrollers using a minimal real-time kernel]]></article-title>
<source><![CDATA[IEEE Trans. on Industrial Informatics]]></source>
<year>2008</year>
<volume>4</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>125-133</page-range></nlm-citation>
</ref>
<ref id="B23">
<label>23</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Christensen]]></surname>
<given-names><![CDATA[P]]></given-names>
</name>
</person-group>
<source><![CDATA[The truth about Windows real-time architectures, Website, 2007.]]></source>
<year></year>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
