Ingeniería Electrónica Asignatura: Sistemas de Control ... · compensadores aplicando diversas...
Transcript of Ingeniería Electrónica Asignatura: Sistemas de Control ... · compensadores aplicando diversas...
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
1
GUÍA DE TRABAJOS PRÁCTICOS y ACTIVIDADES 2018
Departamento: Ingeniería Electrónica
Asignatura: Sistemas de Control Aplicado
Profesor Adjunto: Ing. Walter J. D. Cova
JTP: Ing. Jorge G. Conci
Auxiliares: –
Hs. Totales Anuales: 96 Hs. Teoría Semanales: 3 Hs. Práctica Semanales: 3
Régimen: Semestral (1° Sem.)
T. P. Nº 1 Aplicaciones de Modelado y Simulación
Modo de práctica/
Cantidad de horas:
Resolución de problemas de Ingeniería
6 Horas
Objetivos: Afianzar al alumno en la práctica de la simulación matemática de
sistemas de control. Exponer técnicas de simulación en tiempo
continuo. Aplicar métodos empíricos para ajuste de controladores PID.
Aplicar técnicas empíricas para obtener la función de transferencia de
sistemas lineales aplicando métodos prácticos. Diseñar y simular
compensadores aplicando diversas técnicas.
Unidad: Unidad N° 1
Contenido: Sistemas lineales. Controladores PID. Identificación. Control en
cascada. Adelanto de señal.
T. P. Nº 2 Técnicas de control de plantas inestables
Modo de práctica/
Cantidad de horas:
Resolución de problemas de Ingeniería
6 Horas
Objetivos: Introducir al alumno al modelado de sistemas no lineales. Aplicación
de la técnica de asignación de polos para el cálculo de compensadores
para plantas inestables.
Unidad: Unidad N° 1
Contenido: Aplicación de la técnica de asignación de polos para control de plantas
inestables.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
2
T. P. Nº 3 Aplicaciones de Control Digital
Modo de práctica/
Cantidad de horas:
Resolución de problemas de Ingeniería
6 Horas
Objetivos: Modelizar matemáticamente un sistema complejo. Introducir al
alumno a los conceptos asociados al control digital.
Unidad: Unidad N° 2
Contenido: Modelado de sistemas en tiempo continuo y tiempo discreto.
T. P. Nº 4 Aplicaciones de Control Digital
Modo de práctica/
Cantidad de horas:
Resolución de problemas de Ingeniería
6 Horas
Objetivos: Diseñar compensadores digitales para la planta estudiada, utilizando
los métodos simplificado y completo. Simular el sistema completo.
Establecer la influencia de la frecuencia de muestreo en la performance
de los compensadores digitales.
Unidad: Unidad N° 4
Contenido: Diseño e implementación de compensadores en tiempo discreto.
T. P. Nº 5 Aplicaciones de Control Digital.
Modo de práctica/
Cantidad de horas:
Proyecto y Diseño.
6 Horas
Objetivos: Diseñar compensadores discretos aplicando el método directo de
diseño. Analizar la respuesta de los sistemas ante perturbaciones.
Diseñar un compensador que mejore la respuesta del sistema en ese
aspecto, aplicando técnicas simples.
Unidad: Unidad N° 4
Contenido: Diseño e implementación de compensadores en tiempo discreto.
T. P. Nº 6 Control No Lineal
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
3
Modo de práctica: Resolución de problemas de Ingeniería. 3 Horas
Proyecto y Diseño. 3 Horas
Objetivos: Analizar el efecto conocido como wind-up en compensadores con
integradores. Aplicar técnicas que minimizan el problema. Sintetizar
controladores discretos en código de máquina.
Unidad: Unidad N° 5
Contenido: Implementación de técnicas anti-windup en controladores de tiempo
continuo y de tiempo discreto.
T. P. Nº 7 Implementación de un lazo de Control Analógico
Modo de práctica/
Cantidad de horas:
Proyecto y Diseño.
6 Horas
Objetivos: Aplicar en una situación de laboratorio los conocimientos teóricos y
prácticos adquiridos con el desarrollo de la materia. El alumno deberá
identificar los parámetros que caracterizan una planta de segundo
orden subamortiguada, simularla, diseñar un compensador PID e
implementarlo.
Unidad: Unidad N° 1
Contenido: Identificación de sistemas de 2do orden. Modelado. Diseño,
simulación e implementación de controladores PID de tiempo
continuo. Estudio del efecto P, I y D en compensadores analógicos.
T. P. Nº 8 Implementación de un lazo de Control Digital
Modo de práctica/
Cantidad de horas:
Proyecto y Diseño.
6 Horas
Objetivos: Aplicar en una situación de laboratorio los conocimientos teóricos y
prácticos adquiridos con el desarrollo de la materia. El alumno deberá
implementar un sistema de control basado en un microcontrolador.
Unidad: Unidad N° 5 y 6.
Contenido: Diseño e implementación de compensadores en tiempo discreto.
Aspectos prácticos de adquisición y procesamiento de señales.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
4
GUÍA DE EJERCICIOS PRÁCTICOS 2018
Departamento: Ingeniería Electrónica
Asignatura: Sistemas de Control Aplicado
Profesor: Ing. Walter J. D. Cova
JTP: Ing. Jorge G. Conci
Autor de la presente Guía: Mg. Ing. Juan P. Pedroni (ex Jefe de T. Prácticos)
Auxiliares: –
Hs. Totales Anuales: 96 Hs. Teoría Semanales: 3 Hs. Práctica Semanales: 3
Régimen: Semestral (1° Sem.)
Aclaración
La presente Guía contiene un conjunto de enunciados e indicaciones útiles
para la resolución de los Problemas de Ingeniería y de apoyo para las
actividades de Proyecto y Diseño a desarrollar en los Trabajos Prácticos de la
asignatura. Los datos numéricos que se consignan poseen solamente
carácter indicativo y sus valores definitivos serán comunicados a los alumnos
durante las clases.
Trabajo Práctico Nº 1:
Tema 1. Modelado.
Ejercicio 1
1.1 Empleando Simulink, modelar la planta de tercer orden P(s)=1/(s+1)3 con un compensador PID
teórico:
0
1 ( )( ) ( ) ( )
t
d
i
de tu t K e t e d T
T dt
1.2 Usar compensador puramente proporcional y verificar el límite de estabilidad que puede obtenerse
por aplicación del diagrama de Nyquist de la planta (Klim)
P=tf(1,[1 3 3 1])
nyquist(P)
Incluya en su informe el lugar de Nyquist esquemático de la planta. Verifique en Simulink la condición
de oscilación calculada.
1.3 Verificar el límite de estabilidad calculado usando las técnicas del lugar de raíces y Bode.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
5
1.4 Hallar el ajuste de ganancia proporcional que conduce a polos dominantes con factor de
amortiguamiento 0.707. Incluya en su informe el andar del lugar de raíces y los valores leídos en el
mismo.
1.5 Emplear ahora un compensador PI y con ganancia proporcional 1.25K analizar el
comportamiento de la respuesta al escalón en la variable de referencia para valores de 0.5,5iT .
a. Completar la tabla de sobrepasamiento porcentual y tiempo de respuesta al 5%
b. Explicar mediante el lugar de raíces la inestabilidad que se observa para bajos valores de iT .
c. Graficar tiempo de establecimiento vs iT y sobrepasamiento Máximo vs iT . Determinar el
valor óptimo de iT .
1.6 Completar el controlador PID con 1.25K ; 2.5iT s ; y variar dT desde 0 hasta obtener una
respuesta transitoria aceptable.
d. Tabular:
e. Graficar tiempo de establecimiento vs dT y sobrepasamiento máximo vs dT . Determinar el
valor óptimo de dT .
1.7 Sustituir el derivador teórico por un derivador restringido / ( 1)d dT s T s y comentar la influencia
del valor del parámetro 0 sobre la respuesta al escalón del sistema a lazo cerrado y sobre la
variable manipulada.
1.8 Para el compensador del punto 1.6, explicar los efectos de la acción proporcional, derivativa e
integral del compensador, para un escalón unitario de entrada y una perturbación en forma de
escalón unitario de amplitud 0.1 Graficar. Comparar con el compensador con derivador restringido
del punto 1.7.
Ti (seg) Sobrep. (%) tr.5% (seg)
... ... ...
... ... ...
Td (seg) Sobrep. (%) tr.5% (seg)
... ... ...
... ... ...
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
6
Ejercicio 2
1.9 Dado un sistema cuya función de transferencia está dada por:
1 2 3
1 2 3
100( )
( 10 )( )( )P s
s s s
Donde 1 son los dos primeros dígitos de su DNI,
2 los siguientes tres y 3 los tres dígitos finales
(consultar con el profesor si 1n , 3n o 6n son cero) se pide:
1 2 3
1 2 3 4 5 6 7 8. .DNI n n n n n n n n
a. Dibujar el diagrama de Bode de la planta.
b. Definir:
i. Ancho de Banda
ii. Margen de Ganancia
iii. Margen de Fase
c. Determinar el ancho de banda de la planta, el margen de ganancia y el margen de fase.
d. Validar el margen de ganancia aplicando el criterio de Routh-Hurwitz.
e. Simular el límite de estabilidad del sistema a lazo cerrado, utilizando un compensador
puramente proporcional.
f. Ajustar la ganancia del sistema para que, a lazo cerrado, el mismo presente una respuesta al
escalón con sobrepasamiento de aproximadamente 4%. Simular.
Tema 2. Métodos prácticos de compensación.
2.1 Una planta posee la respuesta al escalón de amplitud 2 dada por la Fig. 1. Calcular los parámetros
del controlador PI por las reglas de Chien, Hrones y Reswick (Apuntes pág. 20) midiendo , ,e a rK T T
según el método de la Fig.1.22 de los Apuntes. Emplear las reglas para respuesta oscilatoria al
escalón de comando.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
7
Fig. 1: Respuesta al escalón de amplitud 2.
2.2 Siempre en base a la resp al escalón de la Fig. 1, identificar la constante de tiempo equivalente eT
del sistema y la ganancia eK . (Apuntes pág 22 a 26). Dimensionar un controlador PI para que el
sistema a lazo cerrado presente un amortiguamiento relativo de 0.707 ante una entrada escalón.
Diseñar usando el método del punto 1.5.2.1 de apunte. Verificar usando lugar de raíces.
2.3 Si la función de transferencia de la planta considerada es:
1.5 0.5( )
(2 1)(3 1) (10 1)(20 1)P s
s s s s
Simular el comportamiento del sistema a lazo cerrado con los parámetros del controlador PI calculados
en los puntos 2.1 y 2.2. Comparar resultados. Discutir.
Tema 3. Control en cascada.
Ejercicio 1
3.1 Dada la planta en cascada 1 2( ) ( ) ( )P s P s P s identificar gráficamente las ganancias y constantes
de tiempo equivalentes de las plantas parciales, sobre las respuestas al escalón de las Fig. 2 y Fig. 3.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
8
Fig. 2: Respuesta al escalón unitario de P1(s)
Fig. 3: Respuesta al escalón de amplitud 2 de P2(s)
3.2 Conociendo analíticamente 1( )P s y 2 ( )P s , verificar las funciones de transferencia calculadas en el
punto anterior a partir de las superficies de control.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
9
3.3 Calcular el control en cascada, de acuerdo al siguiente esquema pero conociendo analíticamente
1( )P s y 2 ( )P s :
1 2 1 2
1.5 0.5( ) ; ( ) ; ( ) ( ) ( )
(2 1)(3 1) (10 1)(20 1)P s P s P s P s P s
s s s s
_
_
d
C2 (PI) P1 (rápida) C1 (P) P2 (lenta)
y1(t) y2(t)
Fig. 4: Esquema de control en cascada
(De la perturbación por el momento decimos tan sólo que es medible). El controlador del lazo interno
debe ser proporcional con amortiguamiento óptimo. El lazo externo debe contener un controlador PI
para asegurar buena precisión.
Simular y comentar. Comparar con resultados anteriores.
3.4 En el punto precedente hemos calculado los controladores 1 1( )C s K y 2 2 2( ) / (1 1/ )C s K T s .
Como hemos realizado cálculos aproximativos, podemos mejorar más la respuesta transitoria de la
variable controlada 2 ( )y t ajustando manualmente el valor de 2K . Comprobarlo.
Ejercicio 2
3.5 Se considera el proceso de regeneración catalítica que aparece en la Fig. 5. En este proceso, como
su nombre lo indica, se regenera el catalizador de un reactor químico. El catalizador se utiliza en un
reactor donde se deshidrogena un hidrocarburo; Después de un cierto período, el carbón se deposita
sobre el catalizador y lo contamina, por lo que el mismo debe ser regenerado quemando el carbón
depositado soplando aire caliente sobre el catalizador.
Durante el proceso de regeneración del catalizador se debe controlar la temperatura de capa de
catalizador, CT : Con una temperatura excesiva se puede destruir el catalizador, mientras que con
una muy baja el carbón no se quema en su totalidad. Si se supone que al calentador entra una
perturbación tal como un cambio en la temperatura del aire que entra, la temperatura con que sale el
aire del calentador, HT , se ve perturbada.
Una estrategia de control consiste en aplicar un sistema de control en cascada, controlando la
temperatura con que sale el aire del calentador HT y la temperatura de la capa de catalizador, CT .
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
10
Fig. 5: Sistema para regenerar un catalizador
Fig. 6: Diagrama de bloques del sistema regenerador
3.6 Diseñar un sistema de control de lazo simple, utlizando un controlador PI.
3.7 Diseñar un sistema de control en cascada, utilizando un controlador PI para el lazo de control de
temperatura HT y otro controlador PI para el lazo de control de temperatura CT .
3.8 Simular ambos diseños y ajustar manualmente los valores de los controladores para funcionamiento
óptimo tanto para la respuesta al escalón de entrada como para el rechazo a las perturbaciones.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
11
3.9 Comparar el funcionamiento de ambos diseños ante entradas escalón unitario y perturbaciones.
Constantes del sistema:
tv=0.2
t1=3
t2=1
t4=4
t5=1
Kv=3
K1=1
K2=1
K3=0.8
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
12
Tema 4. Compensación de perturbación por adelanto de señal.
Ejercicio 1
4.1 Volviendo a la planta ( )P s original, considerar el problema de compensar la perturbación ( )D s que
incide sobre 2 ( )P s . Ver diagrama en bloques de la Fig. 4. Considerando un control convencional
de un solo lazo de realimentación como el calculado en 2.2, simular el comportamiento de la
variable controlada y2(t) ante un escalón de perturbación ( ) ( )d t u t . Si bien el rechazo de
perturbación es total (ya que el controlador es PI), el transitorio resulta excesivamente prolongado.
4.2 Aplicando el concepto de adelanto de señal, medir la perturbación y adicionarla a través de una
dinámica conveniente a la entrada de 1( )P s . Ver Apuntes pag. 57 y ss. El bloque de adelanto de
perturbación debiera tener la función de transferencia negativa inversa de 1( )P s .
1
1( )
( )DG s
P s
4.3 Como ( )DG s no puede ser realizada, se usa una aproximación de 1( )P s por constante de tiempo
equivalente y se diseña una aproximación ( )DaG s con un compensador de adelanto-atraso de fase.
Comparar resultados con el caso anterior, empleando una realimentación exclusivamente estática y
realimentación dinámica.
Ejercicio 2
4.4 La Fig. 7 muestra el diagrama de bloques del sistema de control de una antena de campo de
colectores solares. La señal ( )N s denota las perturbaciones de las ráfagas de viento que actúan
sobre la antena. La función de transferencia de trayectoria directa ( )DG s se utiliza para eliminar el
efecto de ( )N s sobre la salida ( )Y s .
Se pide:
a. Calcular la función de transferencia ( ) / ( )Y s N s .
b. Determinar la expresión de ( )DG s de forma tal de eliminar el efecto de la perturbación.
c. Simular el sistema.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
13
Fig. 7: Sistema de Control de Posición de Antena
Trabajo Práctico Nº 2:
Tema 1. Problema y modelo asociado.
Un cuerpo ferromagnético debe quedar suspendido en el espacio bajo un electroimán en condiciones de
equilibrio.
El peso del cuerpo es equilibrado por una fuerza magnética. Su posición es
medida mediante un sensor óptico. El sistema posee características
marcadamente no lineales:
Para una corriente de excitación constante, el campo magnético
generado es fuertemente inhomogéneo. Como consecuencia la
fuerza magnética sobre el cuerpo suspendido depende de la
distancia al electroimán. La fuerza crece al aproximarse el cuerpo al
electroimán ya que el entrehierro se reduce.
Manteniendo constante la distancia, la fuerza magnética es
aproximadamente proporcional al cuadrado de la corriente,
manifestándose efectos de saturación para altos valores de
inducción.
En las condiciones asociadas con el punto de trabajo 0 0,X I se cumple:
0 0
m 0 0
ecuación de equilibrio eléctrico
f ( , ) ecuación de equilibrio mecánico
E I R
X I mg
(1)
Supuesta una perturbación alrededor del punto de trabajo, se tiene:
I
P=mg X
Cuerpo ferromagnético
E
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
14
0
0
0
;
;
;
E E e e E
I I i i i
X X x x x
Las ecuaciones de equilibrio (1) se transforman en:
2
0 0 2f ( , ) f ( , ) fm m m
dE RI N
dt
d xX I X I mg m
dt
(2)
En las (2), debemos calcular la variación del flujo magnético y de la fuerza magnética fm alrededor
del punto de equilibrio. Por lo que concierne al flujo nos valemos de las expresiones:
0 0 0 0, ,X I X I
CE
d di dxN N N
dt i dt x dt
d di dxN L K
dt dt dt
(3)
Donde la variación de flujo concatenado se formula en función de la inductancia L por la variación de
corriente i , y del coeficiente de fuerza contraelectromotriz CEK por la velocidad de desplazamiento del
cuerpo suspendido. Reemplazando en la primera de las (2) obtenemos:
0 0( )
y simplificando,
CE
CE
di dxE e R I i L K
dt dt
di dxe Ri L K
dt dt
(4)
Incluyéndose en R la resistencia interna de la fuente de tensión empleada.
Pasando ahora a la variación de la fuerza magnética,
0 0 0 0, ,
f ff m m
m
X I X I
x ix i
(5)
Por lo que la segunda de las (2) se reduce a:
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
15
2
2
2
22
2
1 f 1 fm m
ba
d xx i
dt m x m i
d xa x bi
dt
(6)
En síntesis, nuestras ecuaciones dinámicas quedan reducidas al sistema:
2
2
20
CE
dx diK Ri L e
dt dt
d xa x bi
dt
(7)
Se pide:
1.1. Deducir las funciones de transferencia ( ) ( )
e ( ) ( )
X s I s
E s E s.
1.2. Definir el diagrama de simulación en bloques de Simulink y verificar la inestabilidad de la planta
a lazo abierto para los siguientes valores de los parámetros
2 2
2
1
1Hy
1Vs
1s
1m/s A
CE
R
L
K
a
b
1.3. Trazar el diagrama del lugar de raíces considerando E(s) como variable de comando y X(s) como
variable de salida, con controlador proporcional. Extraer conclusiones. Compararlas con las que
se deducen del diagrama de Nyquist de la planta.
Tema 2. Cálculo del controlador que estabiliza el sistema.
2.1. Empleando el método de la asignación de polos y el manejo de expresiones simbólicas de Matlab
calcular el controlador K(s) que estabiliza la operación del sistema. Consignar en el informe de qué
manera operan los comandos y funciones: syms, simplify, subs.
Realizar las operaciones intermedias empleando las funciones conv(.,.) y deconv(.,.). Incluir en
el informe la descripción de su manera de operar.
2.2. El controlador obtenido en el punto precedente (controlador de adelanto-atraso de fase) estabiliza
al sistema de lazo cerrado para un rango limitado de valores de ganancia. Determinar ese rango
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
16
aplicando lugar de raíces. Verificar con el diagrama de Nyquist del sistema a lazo abierto. Comprobar
el comportamiento temporal en Simulink.
Tema 3. Controlador para error nulo.
3.1. Defina el método que Ud. emplearía para calcular un controlador que incluya un factor PI
destinado a eliminar el error del sistema en estado de régimen. Compruebe la viabilidad de su
propuesta mediante Simulink, lugar de raíces y diagrama de Nyquist.
Trabajo Práctico Nº 3:
Tema 1. Enunciado y modelización.
El actuador lineal que se presenta en la Fig. 8 está constituido por un motor de corriente continua
acoplado a un reductor y posteriormente a un tornillo de precisión, sirve para regular la apertura y
cierre de la ventana de intercambio con el exterior, perteneciente a la planta piloto experimental de un
invernadero de ambiente controlado que se presenta en la Fig. 9. El problema consiste en diseñar el
controlador digital del actuador, para lo cual es necesario formular su modelo matemático.
MOTOR ENCODER REDUCTOR TORNILLO+TUERCA
I E accionamiento
comando posición
Fig. 8: Actuador Lineal
Características de los Componentes del Sistema
El encoder está montado directamente sobre el eje del motor y posee una resolución de 512 pulsos por
revolución. La relación de reducción es de 4 :1. El paso del tornillo es de 4 mm. La carrera es de
20mm .
Los parámetros eléctricos y mecánicos del motor se resumen en la siguiente tabla:
Tabla I: Constantes del Motor
Parámetro Valor Parámetro Valor
Resistencia 0.7 Momento de inercia 5 22.6 10 /x Nms rad
Inductancia 220 H Fricción viscosa 69.5 10 /x Nms rad
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
17
Constante del motor 42 /mVs rad Cupla elástica 0.02 /Nm rad
En estos últimos parámetros, se encuentran incluidos los valores propios del rotor del motor como
asimismo los valores reflejados correspondientes a la carga mecánica.
Fig. 9: Planta piloto de un invernadero
Se pide:
1.1. Determinar la función de transferencia entre la tensión aplicada E(s) y el ángulo rotado (s) por el
eje del motor.
1.2. Determinar la función de transferencia entre la tensión aplicada E(s) y el desplazamiento D(s) del
actuador lineal.
1.3. Determinar a cuántos milímetros de avance equivale 1 pulso de encoder.
1.4. El diseño mecánico impone al tornillo una carrera máxima de 20 mm. Determinar la precisión de
posicionamiento (expresada en milímetros) que se obtiene operando con controladores de 8,12 y
16 bits?
1.5. Explicar el principio de funcionamiento del encoder.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
18
1.6. Modelar el sistema con Simulink. (Modelo lineal, encoder, microcontrolador). Suponer que el
tornillo de salida sea perfecto (sin juego, ni rozamientos). Para modelar el microcontrolador y el
encoder utilizar la plantilla provista por la cátedra.
1.7. ¿Por qué es necesario un circuito contador para calcular el ángulo rotado? ¿Cómo influye el
período de muestreo adoptado para el sistema? Este problema aplicativo será continuado en sucesivos trabajos
prácticos.
Trabajo Práctico Nº 4:
Tema 1. Diseño del controlador digital.
Dado el sistema modelado en el trabajo práctico anterior, se pide:
1.1 Determinar la respuesta en frecuencia de la planta y seleccionar una frecuencia de muestreo
adecuada para aplicar el método de diseño simplificado en el plano s.
1.2 Determinar los parámetros del controlador continuo necesarios para lograr una respuesta
sobreamortiguada (=1) con error de régimen nulo.
1.3 Trazar el lugar de raíces del sistema compensado y hallar la posición de los polos de lazo cerrado.
1.4 Determinar si la respuesta temporal puede mejorarse variando algún parámetro del controlador.
1.5 Calcular el controlador discreto aplicando las transformaciones correspondientes.
1.6 Simular el sistema discreto, implementando el controlador en un bloque de transformada z y en
código de máquina.
1.7 Si por un error constructivo, la frecuencia de muestreo fuera 5 veces menor que la seleccionada,
¿cómo influiría en el funcionamiento del sistema?
Tema 2: Comparación de Métodos de Diseño
Suponiendo que, para abaratar el diseño, se decide emplear una frecuencia de muestreo de 100 Hz (que
puede ser generada a partir de la línea de alimentación), se pide:
2.1 Determinar la influencia del dispositivo de muestreo y retención en la respuesta del sistema con
controlador continuo diseñado en el punto 1.2. Simular.
2.2 Rediseñar para la frecuencia de muestreo 100 Hz el controlador digital calculado anteriormente por
el método simplificado. Simular.
2.3 Calcular por el método completo en el plano s el controlador discreto para 100 Hz. Simular.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
19
2.4 Comparar las respuestas al escalón obtenidas en los puntos precedentes. Comentar.
Nota: Incluir en las simulaciones el microcontrolador, los cuantificadores y convertidores digitales,
como asimismo el efecto producido por el número de bits con que opera el microcontrolador donde se
implementa la ley de control. Analizar las curvas de respuesta de ángulo, desplazamiento lineal y
corriente del motor en respuesta a una entrada de referencia de 10mm. Comentar.
Trabajo Práctico Nº 5:
Aplicaciones de Control Digital.
Tema 1. Diseño en el plano z.
Para el motor cargado del T.P. N° 4, trabajando a la frecuencia de muestreo de 100 Hz, se procede a
diseñar el controlador en el plano z empleando el método de compensación.
1.1. Verificar por simulación que la respuesta temporal al escalón unitario del siguiente modelo tiene un
tiempo de establecimiento cercano a 5% 0.087st seg , sin sobrepasamiento.
2
0.1936( )
1.12 0.3136
0.01
w
s
M zz z
t
1.2. Diseñar por el método directo en el dominio de z el controlador correspondiente al modelo del punto
anterior. Analizar la respuesta temporal de la variable controlada (ángulo girado) y de la variable manipulada
(salida del controlador). Comentar las particularidades observadas. Evaluar la energía de actuación
correspondiente al intervalo [0,2.5]seg .
1.3. A continuación se considerará el cero dominante de la planta en el plano z y asimismo el retardo
originado por el polo en 0z en el modelo de referencia. Verificar por simulación el tiempo de respuesta al
5% para el modelo:
2
0.12187 ( 0.8126)( )
1.06 0.2809
0.01
w
s
zM z
z z z
t
1.4. Calcular por el método directo en el dominio de z el controlador correspondiente al modelo
precedente. Analizar la respuesta temporal de la variable controlada (ángulo girado) y de la variable
manipulada (salida del controlador). Evaluar la energía de actuación correspondiente al intervalo [0,2.5]seg .
Comparar con los valores obtenidos en 1.2.Comentar.
1.5. Cuál es el concepto subyacente a la formulación de los modelos 1.1. y 1.3.? Explicar.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
20
Tema 2. Diseño con Dos Grados de Libertad
Siempre con referencia al motor cargado del T.P. N°4, y trabajando a la frecuencia de muestreo de 100
Hz, se procede a diseñar un controlador y prefiltro para realizar rechazo de perturbación y adecuar la
respuesta al escalón de comando a un modelo especificado. 2.1. La perturbación se manifiesta como una cupla originada por el viento al soplar contra la ventana. Incluir el
efecto perturbador en el modelo Simulink del motor cargado.
2.2. Simular el sistema a lazo cerrado suponiendo que el controlador digital implementado es el
Proporcional Integrador simple diseñado para frecuencia de muestreo 100 Hz:
00.73 0.92( )
1 1
0.01 segs
z C z rK z
z z
t
2.3. Mediante sucesivas simulaciones, ajustar los valores de ganancia C y posición del cero 0r del
controlador hasta obtener una respuesta ante la perturbación con un pico no mayor a 8rad y un tiempo de
rechazo de no más de 0.14seg para la variable controlada , como respuesta a un escalón unitario de cupla
perturbadora. Formar una tabla de valores de C y 0r hasta encontrar el mejor ajuste.
2.4. Dejamos fijos los valores del compensador registrar la respuesta a un escalón unitario en la variable de
referencia. Indicar los valores de sobrepasamiento porcentual y tiempo de respuesta obtenidos.
2.5. El compensador ajustado en 2.3 determina un sistema a lazo cerrado cuyo rechazo a las perturbaciones
resulta satisfactorio, pero que dista mucho de serlo para la respuesta al comando. Por lo tanto se procede a
diseñar un prefiltro ( )wG z para que la respuesta al comando corresponda al siguiente modelo:
2
0.12187 ( 0.8126)( )
1.06 0.2809
0.01
w
s
zM z
z z z
t seg
En la Fig. 10 se presenta el diagrama de bloques del sistema con el prefiltro. Es sencillo determinar
que:
( )wG z ( )K z ( )HG G z W
1W Y
–
Fig. 10: Modelo del Sistema con Prefiltro
( ) ( )( )
( ) ( )( ) 1 ( ) ( )
Hw w
H
K z G G zY zM z G z
W z K z G G z
Calcular la función de transferencia del prefiltro ( )wG z . Comparar la respuesta al escalón.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
21
Trabajo Práctico Nº 6:
Control con Actuador Saturable.
Sistema a controlar
En un proceso químico se tiene un tanque de reacción en el que se combinan dos componentes líquidos
A y B para formar un producto C también líquido. Si bien los fluidos A y B llegan calientes al tanque,
como la reacción es endotérmica, resulta necesario suministrar calor adicional para mantener la
temperatura del tanque en el valor correspondiente al máximo rendimiento de producto C. Esa energía
térmica adicional es proporcionada por un serpentín de vapor que rodea al tanque de reacción y cuyo
caudal es regulado por una válvula lineal, comandada por un controlador dotado de un sensor para
medir la temperatura en el interior del tanque de reacción. En la Fig. 11 se muestra el diagrama
esquemático de la planta.
Tanque
A
B
C
CONTROLADOR
Caldera
Fig. 11: Diagrama Esquemático de la Planta
El sistema es operado alrededor de un valor nominal de temperatura 0 =75°C, estableciéndose para el
punto de funcionamiento una apertura de la válvula de vapor AV =50%, tomándose por convención que
una apertura relativa AR =10 corresponderá a la válvula totalmente abierta (100%), mientras que AR = –
10 corresponderá a la válvula totalmente cerrada.
La función de transferencia correspondiente a la variación de la temperatura en el tanque alrededor del
valor nominal provocada por una variación de la apertura relativa de la válvula posee la siguiente
expresión:
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
22
10 C/1apert.( )
con 20 seg; 150 seg( ) 1
mT sGG
mR
Ks K e
T TA s Ts
El tiempo muerto puede considerarse asociado al retardo de transporte del flujo de vapor, mientras que
el comportamiento del tanque es caracterizado como un sistema de primer orden.
1.1. Diseñar un controlador PI continuo para la planta en cuestión y simularlo teniendo en cuenta el
efecto de saturación de la apertura de la válvula, que se produce cuando ésta llega a los extremos de su
rango de operación. Observar las diferencias entre el funcionamiento lineal (para comandos en el
rango de 2°C de variación de temperatura) y el funcionamiento no lineal (para grandes señales) donde
se manifiesta el efecto de saturación. Comentar los resultados de las simulaciones.
1.2. Calcular el controlador discreto correspondiente al punto precedente, para una frecuencia de
muestreo de 50 Hz. Verificar el comportamiento para pequeñas y grandes señales de comando.
1.3. Emplear técnicas de anti-reset windup tanto en el caso continuo, como en el discreto, diseñando
los controladores y llevando a cabo las simulaciones correspondientes. Comentar los resultados.
1.4. Codificar el controlador discreto con antiwindup y simular el funcionamiento del sistema.
Notas.
El controlador continuo diseñado por medio de diagrama de Nyquist, y con ganancia ajustada por
simulación para 12% de sobrepasamiento es:
1
( ) 0.45 1150
K ss
Al Discretizar ( )K s para período de muestreo 1/ 50st seg se obtiene:
0.9999( ) 0.45003
1
1/ 50s
zK z
z
t seg
Atención: ( )K s debe ser llevado a la forma de ceros y polos antes de aplicar la conversión c2d()para
determinar la forma discreta.
Para la aplicación de anti-reset windup a la versión continua, recordar los esquemas del Capítulo 1,
punto 1.7.2. El valor de la constante de tiempo de seguimiento Tt lo estimamos en 25 seg. ¿Porqué?
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
23
Para la versión discreta recordamos el pseudocódigo desarrollado en el Capítulo 4, apartado 4.3.:
En este caso es 1/ 50 , 150 , 25 , 0i t dh seg T seg T seg T . Observar la realización del integrador:
1 ( / ). ( / ).( )k k P i k tI I K h T e h T u v
En la página siguiente se incluyen todos los diagramas de simulación.
%Cálculo de coeficientes del controlador
bi=Kp*h/Ti %ganancia de integración
ad=Td/(Td+N*h) %ganancia derivativa
bd=Kp*N*Td/(Td+N*h) %ganancia derivativa
ao=h/Tt %ganancia de seguimiento (tracking)
%Cambio de parámetros sin sacudidas
I=I+Kpviejo*(bviejo*r-y)-Kp*(b*r-y) %invariancia de P+I
%Algoritmo de control
r=adin(ch1) %ingresar variable de referencia desde ch1
y=adin(ch2) %ingresar variable del proceso desde ch2
P=Kp*(b*r-y) %acción Proporcional
D=ad*D-bd*(y-yviejo) %acción Derivativa
v=P+I+D %salida temporal para acción antiwindup
u=sat(v,umin,umax) %simula saturación del actuador
daout(u,ch3) %sacar variable de control u por ch3
I=I+bi*(r-y)+ao*(u-v) %actualiza Integrador con antiwindup
yviejo=y %actualiza variable de proceso vieja
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
24
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
25
La Fig. 12 se muestra la temperatura en el tanque de reacción (variable controlada) en las diferentes
realizaciones.
Fig. 12: Respuesta del Sistema para Distintos Controladores
Trabajo Práctico Nº 7:
Enunciado del Trabajo
En la Fig. 19 se muestra el diagrama de bloques de la planta que será objeto de estudio en este
práctico.
2
2 22
n
n n
k
s s
Fig. 13: Diagrama de Bloques de la Planta
En la Fig. 14 se muestra el circuito eléctrico que sintetiza dicha planta.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
26
Fig. 14: Síntesis de la Planta
Se pide: 1. Simular la planta utilizando un software de diseño de circuitos tipo Spice.
2. Construir la planta.
3. Obtener la Respuesta al Escalón y Respuesta en Frecuencia:
a. A partir del modelo
b. A partir de la planta, utilizando una señal cuadrada periódica de 1v@100Hz de frecuencia
fundamental.
4. Determinar los parámetros característicos de la planta:
a. Tiempo de Establecimiento
b. Sobrepasamiento Máximo
c. Error en Estado Estable
d. Ganancia
e. Ancho de Banda
f. Márgenes de Estabilidad
5. Determinar la Función de Transferencia de la Planta
a. A partir del estudio del circuito
b. A partir de los datos relevados en el punto 4.
6. Modelar la Función de Transferencia en Simulink y Matlab. Verificar los parámetros obtenidos en el
punto 4.
7. Diseñar un controlador PID analógico para mejorar la respuesta transitoria y eliminar el error en
estado estable.
8. Simular la respuesta al escalón de la planta con el controlador (lazo cerrado).
9. Sintetizar el controlador.
10. Determinar la respuesta al escalón de la planta con el controlador (lazo cerrado).
11. Comparar los resultados obtenidos en las simulaciones con las mediciones de laboratorio.
12. Realizar un informe completo sobre el trabajo realizado.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
27
Síntesis del Compensador Analógico
Parte Proporcional
La parte proporcional del compensador se sintetizará con el circuito que se muestra en la Fig. 15
Fig. 15: Síntesis de P
Donde:
2
1
( )1
( )
out P
in P
V s R
V s R (0.8)
Parte Integral
La parte integral del compensador se sintetizará con el circuito que se muestra en la Fig. 16, donde:
( ) 1
( )
out
in i i
V s
V s R C s (0.9)
Fig. 16: Síntesis de I
Parte Derivativa
La parte derivativa del compensador se sintetizará utilizando el circuito que se muestra en la Fig.
17:
Fig. 17: Síntesis de D (Restringido)
Dónde:
2
1
1
( ) 1
1 1( ) 1
out D D
in D D
D D D
V s R T ss s
V s R T ss s
R C T
(0.10)
No es un derivador puro, sino un derivador restringido.
La implementación completa se muestra en la siguiente figura:
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
28
5
6
7
84
U2:B
LF353
R10
1kR11
1k
R121k
R13
1k
+12V
-12V
C(S)
E(s)
3
2
1
84
U3:A
LF353
R14
1k
R15
1k
-12V
+12V
E(S)
5
6
7
84
U3:B
LF353
R16
330
R17
33k
-12V
+12V
E(S)
C3
.1uF
DERIVADOR RESTRINGIDO
3
2
1
84
U4:A
LF353
R18
12k
-12V
+12V
E(S)
C4
.1uF
INTEGRADOR
5
6
7
84
U4:B
LF353
R19
1k
R20
1k
-12V
+12V
R21
1k
R22
1k
R(S)
3
2
1
84
U5:A
LF353
R23
100
+12V
-12V
U(s)
R241000k
PROPORCIONAL
COMPARADOR
INVERSOR
SUMADOR
Fig. 18: Implementación del Controlador PID
Trabajo Práctico Nº 8:
Enunciado del Trabajo
Este trabajo consiste en la implementación de una ley de control PID discreta en un
microcontrolador. En la Fig. 19 se muestra el diagrama del sistema que será objeto de estudio en
este práctico.
Fig. 19: Diagrama de Bloques del Sistema de Control Digital
Procedimiento
Seleccionar el microcontrolador en el que se implementará la ley de control.
Seleccionar un motor DC, de entre 9v y 24v de tensión de alimentación. A este motor se le deberá
asociar un encoder digital1 y una carga, preferentemente inercial y con posibilidad de variarla.
Implementar la estructura física del sistema.
1 Si el motor elegido no cuenta con un encoder asociado, la cátedra proveerá un encoder incremental de 24 ppr. El
mismo deberá ser devuelto al finalizar el cursado de la materia.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
29
Seleccionar e implementar un driver de potencia para hacer girar el motor en ambos sentidos. El
driver deberá ser capaz de variar la velocidad de giro del motor, preferiblemente soportando PWM.
Verificación del Sistema a Lazo Abierto
Una vez seleccionado e implementado el hardware se procederá a implementar el código necesario
en el microcontrolador para que el sistema opere en lazo abierto.
El sistema a lazo abierto tomará la lectura del potenciómetro y generará una señal de PWM
proporcional a dicha lectura. El punto medio del recorrido del potenciómetro equivaldrá a 0%
PWM, el mínimo a -100% y el máximo a 100%. En la figura se muestra la relación entre tensión de
referencia y % de PWM de salida para un potenciómetro de barrido en el intervalo [0,5v] . Por lo
tanto, el valor de referencia no solo afectará la salida PWM sino también la de Dirección.
Fig. 20: Relación entre Tensión de Entrada y % PWM
En el microcontrolador se implementarán las rutinas necesarias para llevar la cuenta de los pulsos
del encoder. El alumno debe verificar en este punto que, al girar el motor en sentido positivo la
cuenta se incremente, mientras que al girar el mismo en sentido negativo la misma se decremente.
Para evitar la pérdida de pulsos es ideal asociar los canales del encoder con interrupciones por
hardware en el microcontrolador.
Implementación del Sistema a Lazo Cerrado
La implementación del software de control a lazo cerrado se realiza aplicando el diagrama de
transición de estados de la Fig. 21.
En el proceso de inicialización del microcontrolador se deberá implementar una interrupción por
timer a la frecuencia de trabajo de la ley de control.
Una vez inicializado el microcontrolador, el mismo comienza a ejecutar la rutina Void Main(). Esta
rutina es un loop que se ejecuta continuamente. Esta rutina no incluye instrucciones referidas al
control.
En cada interrupción del timer se ejecuta la rutina Void Control(). Las leyes de control se
implementarán aquí. Se recomienda comenzar implementando un controlador Proporcional, para
luego implementar el PID completo. La referencia será tomada desde el potenciómetro externo.
Cada 100 interrupciones de timer se actualizará en el display la siguiente información:
Posición de Referencia.
Posición Actual del Rotor.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
30
Void Main()
Void Decoder()
Void Display()
Void Control()
Timer InterruptPinA Interrupt
PinB Interrupt
Timer Interrupt
x100
Fig. 21: Diagrama de Transición de Estados de Rutina de Control
La decodificación de la posición del rotor se realizará en la rutina Void Decoder(). La misma será
llamada con cada cambio de estado de los pines asociados a las líneas A y B del encoder
incremental. En el Anexo 2 se presenta un algortimo de decodificación de posición a partir de
encoders incrementales.
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
31
Anexo 1
Implementación de Ley de Control PID en un Microcontrolador
La implementación de la ley de control PID se presenta en los apuntes teóricos bajo el título
“Discretización de la ley de control PID. Enfoque aplicativo.”
La ley de control PID analógica:
0
1 ( )( ) ( ) ( )
t
p d
i
de tu t K e t e d T
T dt
(0.11)
Se digitaliza de la siguiente manera:
Acción Proporcional:
( ) ( )k p kP t K e t (0.12)
Acción Integral:
1( ) ( ) ( )p
k k k
i
K hI t I t e t
T (0.13)
Acción Derivativa:
1 1( ) ( ) ( ) ( )p dd
k k k k
d d
K T NTD t D t y t y t
T Nh T Nh
(0.14)
Ejemplo de Código en Matlab function u = PIDz(r,y) % Ver pag. 133 del apunte. % Definiciones
persistent yk_1 persistent Dk_1 persistent Ik1
if isempty(yk_1) yk_1=0; end if isempty(Dk_1) Dk_1=0; end if isempty(Ik1) Ik1=0; end
h=1/50; Ti=150; Tt=25; Td=10;
N=10; % 8<=N<=20 Kp=0.45;
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
32
% Cálculo de coeficientes del controlador bi=Kp*h/Ti; % Ec. 4.52 ad=Td/(Td+N*h); % Ec. 4.53 bd=Kp*N*Td/(Td+N*h); % Ec. 4.53 ao=h/Tt; b=1; % Ec. 4.51
% Algoritmo de Control P=Kp*(b*r-y); % Ec. 4.51 D=ad*Dk_1-bd*(y-yk_1); % Ec. 4.53 I=Ik1; v=P+D+I;
u=v; if v>10 u=10; else if v<-10 u=-10; end end
%Actualizo las variables para la próxima pasada yk_1=y; Dk_1=D; Ik1=I+bi*(r-y)+ao*(u-v); % Ec. 4.58
Ejemplo de Código en C
void Control() { // Setpoint: Posición de Referencia // Input: Posición del rotor, actualizada en la rutina Void Decoder() // Output: Acción de control.
static double Dk_1=0; static double Ik1=0; static double Inputk_1; double e; Setpoint=(double)map(analogRead(PinReferencia),0,1023,posmin,posmax); e=Setpoint-Input; //Señal de error P=Kp*e; //Ec. 4.51 I=Ik1; // Ec. 4.52 D=(Td*Dk_1-Kp*Td*N*(Input-Inputk_1))/(Td+N*T); // Ec. 4.53 Output=(P+I+D); // Ajuste de la magnitud de la salida if(Output<-255) { Output=-255; } if(Output>255) { Output=255; } // Actualización de la acción de control Motor.setSpeed((int)abs(Output)); if(Setpoint-Input>sigma) Motor.run(FORWARD);
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
33
if(Setpoint-Input<sigma) Motor.run(BACKWARD); if(abs(Setpoint-Input)<sigma) Motor.run(RELEASE);
// Actualización de las variables que serán utilizadas en la próxima interrupción Ik1=I+Kp*T*e/Ti; // Ec. 4.52 Dk_1=D; Inputk_1=Input; }
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
34
Anexo 2:
Decodificación de Encoder2
Los encoders incrementales admiten 4 estados posibles. Las transiciones entre los estados dependen
del sentido de giro. En la Fig. 22 se presenta el diagrama de transición de estados.
{0,0}
{1,0}
{1,1}
{0,1}
Pos
PosPos
Pos
NegNeg
Neg Neg
Fig. 22 Diagrama de Transición de Estados de un Encoder Incremental
Es posible tabular las transiciones de los estados relacionando el estado anterior con el estado actual y de
esa forma determinar si la transición ha sido positiva o negativa, tal como se muestra en la
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0Transicion
Tabla 2 :
En la Fig. 23 se presenta el pseudocódigo para realizar la decodificación del encoder con este
método.
Como primera medida se inicializan las variables Estados, Cuenta y Transiciones. Si bien se
define a Estados como una variable numérica, la información de interés se encuentra en cada uno
de los bits que lo forman, de la siguiente manera:
0 0 0 0 old oldEstados PinA PinB PinA PinB
En la variable Cuenta se almacena el valor del encoder.
El vector Transiciones contiene los valores de cambio de los estados del encoder. Los valores
pueden ser:
1 Rotación Positiva
1 Rotación Negativa
0 Transición Inválida
Transición
0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0Transicion
2 Fuente: http://www.circuitsathome.com/mcu/reading-rotary-encoder-on-arduino
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
35
Tabla 2: Transiciones y Estados Permitidos
Estado Anterior Estado Actual Valor de
Cambio Línea
A
Línea
B
Línea
A
Línea
B
0 0 0 0 X
0 0 0 1 1
0 0 1 0 -1
0 0 1 1 X
0 1 0 0 -1
0 1 0 1 X
0 1 1 0 X
0 1 1 1 1
1 0 0 0 1
1 0 0 1 X
1 0 1 0 X
1 0 1 1 -1
1 1 0 0 X
1 1 0 1 -1
1 1 1 0 1
1 1 1 1 X
Donde X representa un cambio de estados no permitido. Estados=0x00
Cuenta=0
Transiciones=
[0 1 -1 0 -1 0 0 1 1 0 0 -1 0 -1 1 0]
Estados<<2
Estados(1)=pinA
Estados(2)=pinB
Desplazar dos lugares el
estado anterior
Inicializar Vector con Estados.
Inicializar Vector con Transiciones
Guardar en los últimos dos lugares
los estados actuales del encoder
Cuenta=
Cuenta+Transiciones(Estados)
Usar el valor de Estados como índice de
Transiciones. Cuenta suma una unidad, resta una
unidad o suma 0 para estados no válidos.
Fig. 23: Código para Decodificar
Inicialmente el valor de Estados es 0x00. (Puede ser 0x01, 0x02 o 0x03). Se realiza una operación
de shift register para correr Estados dos valores hacia la izquierda, con lo que los valores en los bits
PinA y PinB pasan a oldPinA y
oldPinB . Seguidamente se leen los valores actuales de PinA y
FACULTAD REGIONAL LA RIOJA
V2018 – TPyA
36
PinBy se los agrega a Estados. A continuación se utiliza Estados como índice del vector
Transiciones. El valor indicado (1, 1,0) se suma algebraicamente a Cuenta.
Se reinicia el ciclo pasando los valores de PinA y PinB a oldPinA y
oldPinB .
Ejemplo de Código en Matlab
El siguiente código implementa la función de lectura del encoder. function cuenta = decoder(a,b) %% FUNCIÓN PARA DECODIFICAR LA CUENTA DE UN ENCODER. % referencia: http://www.circuitsathome.com/mcu/reading-rotary-encoder-on-
arduino % Autor: Juan P. Pedroni % Fecha: 22/05/2013
% Definiciones persistent Estados persistent posicion
if isempty(Estados) Estados=[0 0 0 0 0 0 0 0]; end
if isempty(posicion) posicion=0; end Transiciones=[0 1 -1 0 -1 0 0 1 1 0 0 -1 0 -1 1 0];
% Código Estados=[Estados(3:end) 0,0]; %% Shift Register de 2 posiciones Estados(7)=a; %% Lectura PinA Estados(8)=b; %% Lectura PinB %% Máscara para que los valores de Estado se sitúen entre 0 y 15 Estados=Estados.*[0 0 0 0 1 1 1 1]; posicion=posicion+Transiciones(bi2de(Estados,'left-msb')+1); %+1 porque
los índices en Matlab empiezan en 1, no en 0.
cuenta=posicion; %% Se actualiza el valor de la cuenta.