User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/proyectos1_2016_i/proyecto_motor_sincrono.meta failed
teaching:ie0117:proyectos1_2016_i:proyecto_motor_sincrono

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:ie0117:proyectos1_2016_i:proyecto_motor_sincrono [2016/05/10 03:10] – [Clase PMSM (Motor Síncrono de Imán Permanente)] plataformas-ie0117teaching:ie0117:proyectos1_2016_i:proyecto_motor_sincrono [2022/09/20 00:08] (current) – external edit 127.0.0.1
Line 26: Line 26:
 programación en plataformas abiertas, al mismo tiempo que ha contribuido como base para programación en plataformas abiertas, al mismo tiempo que ha contribuido como base para
 el desarrollo e implementación de un pensamiento más crítico, que busca siempre alternativas el desarrollo e implementación de un pensamiento más crítico, que busca siempre alternativas
-de mejora.+de mejora. 
  
 ====== Nota Histórica ====== ====== Nota Histórica ======
Line 77: Line 77:
 Donde "p" es el número de pares de polos que tiene la máquina. Donde "p" es el número de pares de polos que tiene la máquina.
  
-{{https://github.com/luismoramora94/pruebagithub/raw/master/motor.jpg}} +{{ https://github.com/luismoramora94/pruebagithub/raw/master/motor.jpg }} 
  
 Ahora, entre los tipos de motores sincrónicos que hay, el más relevante para este proyecto Ahora, entre los tipos de motores sincrónicos que hay, el más relevante para este proyecto
 es el motor síncrono de imán permanente. Este tipo de motor no necesita alimentación en es el motor síncrono de imán permanente. Este tipo de motor no necesita alimentación en
 corriente directa, ya que el campo magnético que se requiere en el rotor lo provee el material corriente directa, ya que el campo magnético que se requiere en el rotor lo provee el material
-magnetizado del que está hecho. La figura muestra el corte transversal de un motor de este+magnetizado del que está hecho. La figura anterior muestra el corte transversal de un motor de este
 tipo. El campo magnético proporcionado por el rotor magnetizado es constante, por lo tanto tipo. El campo magnético proporcionado por el rotor magnetizado es constante, por lo tanto
 el flujo magnético es también constante. Esto último es relevante a la hora de analizar las el flujo magnético es también constante. Esto último es relevante a la hora de analizar las
Line 94: Line 94:
 ecuación : ecuación :
  
-Ea 2πNcΦf+\begin{equation} 
 +E_a \sqrt{2} \pi N_c \Phi f 
 +\end{equation}
  
 Donde "Φ" es el flujo magnético del imán permanente, "f" es la frecuencia de oscilación de Donde "Φ" es el flujo magnético del imán permanente, "f" es la frecuencia de oscilación de
Line 101: Line 103:
 expresión: expresión:
  
-Ea Kf+\begin{equation} 
 +E_a K f 
 +\end{equation}
  
 Se observa que la tensión inducida entonces sería constante para una red eléctrica cuya frecuencia Se observa que la tensión inducida entonces sería constante para una red eléctrica cuya frecuencia
Line 121: Line 125:
 opuesto al giro, que se puede modelar como una cantidad proporcional a la velocidad de giro: opuesto al giro, que se puede modelar como una cantidad proporcional a la velocidad de giro:
  
-τf Kfω +\begin{equation} 
 +\tau_f K_f \omega 
 +\end{equation}
  
  Las ecuaciones (4) y (5), junto con la segunda ley de Newton para cuerpos girando termina  Las ecuaciones (4) y (5), junto con la segunda ley de Newton para cuerpos girando termina
Line 174: Line 180:
 la función del modo de control. La siguiente figura muestra esta dinámica. la función del modo de control. La siguiente figura muestra esta dinámica.
  
-{{https://github.com/luismoramora94/pruebagithub/raw/master/lazocontrol.png}} +{{ https://github.com/luismoramora94/pruebagithub/raw/master/lazocontrol.png }} 
  
 Un algoritmo PID, que por sus siglas significa Proporcional-Integral-Derivativo, es un Un algoritmo PID, que por sus siglas significa Proporcional-Integral-Derivativo, es un
Line 201: Line 207:
 propios del sistema. La clase provee las siguientes funciones: propios del sistema. La clase provee las siguientes funciones:
  
-  * ''%%begin(omega_inicial)''%%: Establece la velocidad inicial del motor (en radianes por segundo). +  * ''%%begin(omega_inicial)%%'': Establece la velocidad inicial del motor (en radianes por segundo). 
-  * ''%%setInput(delta):''%% Establece la entrada del motor, el ángulo δ entre VΦ y Ea. +  * ''%%setInput(delta):%%'' Establece la entrada del motor, el ángulo δ entre VΦ y Ea. 
-  * ''%%timestep(delta_t):''%% Avanza el estado del motor un intervalo de tiempo ∆t, esta función +  * ''%%timestep(delta_t):%%'' Avanza el estado del motor un intervalo de tiempo ∆t, esta función retorna una tupla que contiene la aceleración angular, la velocidad angular y el ángulo del eje, en ese orden, después del ∆t.
-retorna una tupla que contiene la aceleración angular, la velocidad angular y el +
-ángulo del eje, en ese orden, después del ∆t.+
  
 ===== Clase PID ===== ===== Clase PID =====
Line 212: Line 216:
 del esfuerzo del controlador. Provee las siguientes funciones: del esfuerzo del controlador. Provee las siguientes funciones:
  
-  * **begin(input):** Establece el valor inicial de la variable controlada, normalmente esto sería en el punto de operación. +  * ''%%begin(input):%%'' Establece el valor inicial de la variable controlada, normalmente esto sería en el punto de operación. 
-  * **setRef(ref):** Establece el valor deseado de la variable controlada. +  * ''%%setRef(ref):%%'' Establece el valor deseado de la variable controlada. 
-  * **setInput(input):** Establece el valor sensado de la variable controlada. +  * ''%%setInput(input):%%'' Establece el valor sensado de la variable controlada. 
-  * **timestep(delta_t):** Avanza el estado del controlador un ∆t, y retorna el esfuerzo del controlador.+  * ''%%timestep(delta_t):%%'' Avanza el estado del controlador un ∆t, y retorna el esfuerzo del controlador.
  
 ===== Módulos conectados por YARP ===== ===== Módulos conectados por YARP =====
Line 229: Line 233:
 para conectar la salida de velocidad del motor como señal realimentada. para conectar la salida de velocidad del motor como señal realimentada.
  
-{{https://github.com/luismoramora94/pruebagithub/raw/master/plataformas.jpg}} +{{ https://github.com/luismoramora94/pruebagithub/raw/master/plataformas.jpg }} 
  
 ====== Funcionamiento del Software Implementado ====== ====== Funcionamiento del Software Implementado ======
 Primero se debe obtener el código fuente, este se encuentra en un repositorio público en Primero se debe obtener el código fuente, este se encuentra en un repositorio público en
 GitHub. Para clonar el repositorio al directorio actual se requiere tener instalado git. GitHub. Para clonar el repositorio al directorio actual se requiere tener instalado git.
-$ git clone https://github.com/danidim13/pid-motor-yarp.git+ 
 +''%%$ git clone https://github.com/danidim13/pid-motor-yarp.git%%'' 
 El repositorio cuenta con las clases del motor y el PID, además de los scripts para usarlos El repositorio cuenta con las clases del motor y el PID, además de los scripts para usarlos
 con YARP. Para correr estos últimos basta con ejecutarlos desde la línea de comandos. Si es con YARP. Para correr estos últimos basta con ejecutarlos desde la línea de comandos. Si es
Line 240: Line 246:
 cada módulo de YARP se debe correr en una terminal diferente. Por ejemplo, para correr el cada módulo de YARP se debe correr en una terminal diferente. Por ejemplo, para correr el
 controlador: controlador:
-$ chmod u+x yarpPID.py # dar permisos de ejecucion, esto + 
-$ chmod u+x yarpMotor.py # solo seria necesario la primera vez +  * ''%% $ chmod u+x yarpPID.py # dar permisos de ejecucion, esto %%'' 
-$ yarpserver3 --write # este comando y los 2 siguientes +  * ''%% $ chmod u+x yarpMotor.py # solo seria necesario la primera vez %%'' 
-$ ./yarpPID.py # se deben correr cada uno en una +  * ''%% $ yarpserver3 --write # este comando y los 2 siguientes %%'' 
-$ ./yarpMotor.py # terminal diferente+  * ''%% $ ./yarpPID.py # se deben correr cada uno en una %%'' 
 +  * ''%% $ ./yarpMotor.py # terminal diferente %%'' 
 Esto pone a correr el controlador y el modelo del motor. Luego para conectarlos se debe Esto pone a correr el controlador y el modelo del motor. Luego para conectarlos se debe
 ejecutar lo siguiente en otra terminal: ejecutar lo siguiente en otra terminal:
-$ yarp connect /pid/out /mt/in + 
-yarp connect /mt/out/omega /pid/inx+''%% $ yarp connect /pid/out /mt/in %%'' 
 +''%% yarp connect /mt/out/omega /pid/inx %%''
  
 Luego si se desea por ejemplo ver la velocidad del motor y cambiar la velocidad deseada Luego si se desea por ejemplo ver la velocidad del motor y cambiar la velocidad deseada
 en tiempo real: en tiempo real:
  
-$ yarp read /readw # nuevamente estos dos se deben +  * ''%% $ yarp read /readw # nuevamente estos dos se deben %%'' 
-$ yarp write /writew # correr en terminales separadas +  * ''%% $ yarp write /writew # correr en terminales separadas %%'' 
-$ yarp connect /writew /pid/inr +  * ''%% $ yarp connect /writew /pid/inr %%'' 
-$ yarp connect /mt/out/omega /readw+  * ''%% $ yarp connect /mt/out/omega /readw %%'' 
 Como se puede suponer, los módulos se pueden conectar por separado a otros componentes Como se puede suponer, los módulos se pueden conectar por separado a otros componentes
 por medio de YARP, de modo que el usuario podría darle otros usos sin ningún problema. por medio de YARP, de modo que el usuario podría darle otros usos sin ningún problema.
- 
 ====== Referencias ====== ====== Referencias ======
-The Scipy Community. (2015, 18 de octubre). NumPy Reference Manual [Manual de software +  * The Scipy Community. (2015, 18 de octubre). NumPy Reference Manual [Manual de software informático]. 
-informático]. + 
-The Scipy Community. (2016, 20 de febrero). SciPy Reference Manual [Manual de software +  * The Scipy Community. (2016, 20 de febrero). SciPy Reference Manual [Manual de software informático]. 
-informático]. + 
-Chapman, S. (2009). Electric Machinery Fundamentals (3.a ed.). Boston, MA: McGraw-Hill+  * Chapman, S. (2009). Electric Machinery Fundamentals (3.a ed.). Boston, MA: McGraw-Hill.
-Kosow, I. (1993). Máquinas eléctricas y transformadores. Prentice Hall Hispanoamericana. +
-Descargado de https://books.google.co.cr/books?id=5hJzpimPyXQC +
-Neuhauser, C. (2004). Matemáticas para ciencias. Pearson-Prentice Hall. Descargado de +
-https://books.google.co.cr/books?id=APIw178ltvgC +
-O’Dwyer, A. (2006). Handbook of PI and PID Controller Tuning Rules (2.a ed.). Londres, +
-Inglaterra: Imperial College Press. +
-Ogata, K. (2010). Modern Control Engineering (5.a ed.). Nueva Jersey: Prentice Hall. +
-Worthing, B., Walker, B., Flores, G., Hilje, L., Mora, G., Carballo, M., . . . others (1987). The +
-pesticide manual: a world compendium. (n.o 668.65 P476p). British Crop Protection +
-Council, Londres (RU).+
  
 +  * Kosow, I. (1993). Máquinas eléctricas y transformadores. Prentice Hall Hispanoamericana. Descargado de https://books.google.co.cr/books?id=5hJzpimPyXQC
  
 +  * Neuhauser, C. (2004). Matemáticas para ciencias. Pearson-Prentice Hall. Descargado de https://books.google.co.cr/books?id=APIw178ltvgC
  
-''%%pi@raspberrypi:~$ git clone https://github.com/alonsomonterofuentes/dhsl%%''+  * O’Dwyer, A. (2006). Handbook of PI and PID Controller Tuning Rules (2.a ed.). Londres,InglaterraImperial College Press.
  
 +  * Ogata, K. (2010). Modern Control Engineering (5.a ed.). Nueva Jersey: Prentice Hall.
  
  
-{{teaching:ie0117:proyectos1_2016_i:pid_pmsm.tar.gz}}+{{teaching:ie0117:proyectos1_2016_i:pid-motor-yarp.tar.gz|pid-motor-yarp.tar.gz}}
teaching/ie0117/proyectos1_2016_i/proyecto_motor_sincrono.1462849806.txt.gz · Last modified: 2022/09/20 00:08 (external edit)