You are on page 1of 28

INSTITUTO TECNOLGICO DE LZARO

CRDENAS
Departamento de
Ingeniera Elctrica y Electrnica
APLICACIN DE MICROCONTROLADORES
CATEDRATICO:
Dr. Waldemar Prez Bailn
CONTROL DE VELOCIDAD DE UN MOTOR DE CD MEDIANTE
MODULACIN DE ANCHO DE PULSO (PWM)

Cd. Lzaro Crdenas, Mich., enero del 2012
1
INTRODUCCION:
En el trabajo que a continuacin se presenta se describe el diseo e implementacin de un control
de velocidad de un motor de corriente directa de imanes permanentes utilizando un controlador
Proporcional Integral digital. El diseo se basa en un microcontrolador para controlar la
velocidad, mediante un esquema de control por modulacin de ancho de pulso (PWM) de un
convertidor de CD-CD tipo puente completo.
En el trabajo se presenta primeramente un esquema general del control del motor,
posteriormente se van describiendo cada una de las etapas finalizando con la descripcin del
diseo del controlador implementado.
CONTROLADOR DE LA VELOCIAD DEL MOTOR DE CD:
El esquema del control de velocidad del motor de CD, consiste de una PC, un sistema mnimo
basado en un microcontrolador 8XC196KC que opera con un reloj de 16 MHz, un convertidor
digital analgico (D/A), un circuito acondicionador de seal, un circuito PWM, un motor de CD
de imanes permanentes y un encoger integrado al motor. Este esquema se presenta en la figura 1.
La PC nos proporciona la opcin de editar, compilar y cargar el programa en el
microcontrolador, as como de ejecutar comandos de accin sobre el microcontrolador.
Microcontrolador:
El microcontrolador se encarga de realizar la medicin de la velocidad del motor, calcular la
accin de control correspondiente de acuerdo con la seal de referencia que se le especifica
mediante un dato residente en el programa y esta accin de control mandada hacia el convertidor
D/A.
Figura 1.- Diagrama de bloques del control de velocidad de un motor de CD

Para la medicin de la velocidad se utiliza el encoder integrado al motor, encoder de alta
resolucin que cuenta con dos canales (A y B) y un ndice, donde cada canal tiene 500 ranuras
por revolucin y estn defasados uno de otro 90 grados. Para tener una mayor resolucin
utilizamos los pulsos de subida y bajada (transiciones de bajo a alto y viceversa) del canal A.
Esta seal es recibida mediante el canal HSI.0, que es uno de los canales que comprenden las
entradas de alta velocidad (HSI) del microcontrolador, ver figura 2.
2
La velocidad que calculamos, tomando en cuenta la informacin de los trenes de pulsos
provenientes del encoder, tomando los instantes en que son capturados por la entrada de alta
velocidad del microcontrolador. Para una medicin ms exacta de la velocidad se aplican dos
criterios diferentes, uno para velocidades bajas y otro para velocidades altas.
Para velocidades bajas se mide el periodo entre dos pulsos y se determina su frecuencia,
ecuacin (1) y para velocidades altas, se cuentan los pulsos que ocurren durante un periodo de
muestreo que en nuestro caso es de 700 microsegundos. Ecuacin (2).
Figura 2.- Esquema del Microcontrolador.

1
_ _ _ ( )
pulso
w
Tiempo entre dos pulsos seg

(1)

_ _
_ _ ( )
numero de pulsos
w
periodo de muestreo seg

(2)
Convertidor digital/analgico:
La funcin del convertidor analgico/digital (DAC), es convertir el dato de control digital, en
una seal analgica, debido a que el circuito generador de la seal PWM, para su funcionamiento
requiere una seal analgica. En nuestro diseo se utiliz un DAC811, con el cual para un dato
digital 0 obtenemos un valor analgico 0 volts y para 4095 digital obtenemos un valor analgico
de 10 volts. Es decir el rango de salida que podemos obtener del DAC811 en nuestro caso es un
voltaje analgico que est entre 0 y 10 volts. Este voltaje es aplicado a un circuito generador de
la seal PWM.
3
Generador de seal PWM:
Para nuestro caso el circuito generador de la seal PWM utilizado es el SG3524N, que opera
con un rango de la seal de entrada de 0.9 y 3.3 volts. Este dispositivo trabaja en un rango de
frecuencias de 120Hz a 500KHz por lo que los valores prcticos de C deben de estar dentro del
rango de 0.001 y 0.1 F, y los de R deben de estar entre 1.8 y 100 K. y como debe de operar a
una frecuencia fija esta se determina mediante la ecuacin 3.

RC
f
15 . 1
(3)
Donde R esta en K
C esta en F
f esta en KHz
Recordando que el DAC811 proporciona una salida entre 0 y 10 volts, entonces el nivel de
voltaje se debe de ajustar a 0.9 y 3.3 volts, por tal motivo se construye un acondicionador de
seal que esta en serie entre el DAC811 y el circuito generador de la seal PWM.
En la Figura 3 se muestra la manera en como se relacionan el voltaje de salida del DAC con el
rango de voltaje de que debe entrar al circuito PWM. Esto se realiza con la finalidad de que todo
el voltaje de salida del DAC pueda ser utilizado por el circuito PWM y de esta manera obtener la
mxima resolucin para este circuito. En la Figura 4 se muestra el diagrama de bloques del
acondicionador de seal con el circuito PWM. y en la figura 5 se muestra el circuito
implementado para lograr el ajuste de la seal del DAC al PWM.
Figura 3.- Relacin entre el voltaje de salida del DAC y la entrada al PWM.

4
Figura 4.- Diagrama de bloques de la etapa PWM.
Figura 5.- Circuito acondicionador de seal.
A continuacin se muestran los clculos realizados para la eleccin de los componentes del
circuito acondicionador de seal. Ntese que la caracterstica de entrada-salida de la Figura 3
esta dada por:
b mx y +
(4)
donde:
Vcc
R
R
b
o
f
9 . 0
(5)
seleccionando R
f
= 470 y Vcc = 12 V, se tiene:
K
V R
R
cc f
2667 . 6
9 . 0
12 * 470
9 . 0
0
(6)
5
como la pendiente esta dada por:
( )
24 . 0
10
9 . 0 3 . 3
1


R
R
m
f
(7)
por lo tanto:
K
m
R
R
f
9583 . 1
24 . 0
470
1
(8)
Utilizando para las resistencias
0
R
y
1
R potencimetros de 10K, para un mejor ajuste de estos
valores. El valor de Rx se propuso de 1K y para Ry se eligi 480 que es un valor cercano a la
mitad de Rx. Este inversor es para que el voltaje a la entrada del circuito PWM sea positivo.
Amplificador de potencia:
El amplificador de potencia es un convertidor electrnico de potencia de CD a CD, que se utiliza
en modo de conmutacin, para convertir un voltaje de CD no regulado a un voltaje de salida de
CD regulado. La regulacin se consigue por lo general mediante la modulacin del ancho de
pulso a una frecuencia fija, normalmente mucho mayor que la frecuencia de la lnea, donde el
dispositivo de conmutacin es un IGBT de potencia. La Figura 6 muestra el diagrama de bloques
de esta etapa.
Figura 6.- Diagrama de bloques de la etapa del amplificador de potencia
El convertidor empleado para variar el voltaje en terminales de la armadura del motor de C.D. es
un convertidor de CD a CD de puente completo [Mohan, 1989], tambin conocido como puente
tipo H tipo E [Rashid, 1995], cuya topologa se muestra en la Figura 7. Tal como se mencion,
la entrada a este convertidor es una entrada de voltaje de CD no regulada, mientras que la salida
es un voltaje de CD regulado. El voltaje y corriente de salida pueden tomar valores positivos y
negativos lo que permite que se pueda controlar el sentido de giro del motor de CD.
Dependiendo del ciclo de trabajo de la seal PWM, es decir de su modulacin del ancho de
pulso, misma que se puede tener en dos topologas como son:
1.- PWM con conmutacin de voltaje bipolar, donde (T
A+
, T
B-
) y (T
A-
, T
B+
) son vistos como dos
pares de interruptores, donde mientras unos estn en estado de encendidos los otros estn en
6
estado de apagado, garantizando que siempre una pareja est en conduccin y evitando que
la fuente de CD este en cortocircuito.
Figura 7.- Convertidor CD-CD de puente completo.
2.- PWM con conmutacin de voltaje unipolar, en este caso los interruptores de una pierna se
controlan de manera independiente a los de la otra pierna, mediante dos seales de referencia
[Mohan, 1989].
En la prctica, para lograr esto se requiere introducir un intervalo de tiempo pequeo en la seal
de encendido denominado tiempo de retardo o de blanqueo, cuyo objetivo es dejar que el
interruptor que va a terminar de conducir se apague completamente antes de que el que va ha
iniciar la conduccin lo haga, y as evitar cortos circuitos.
El esquema de control implementado en este diseo es el de conmutacin de voltaje bipolar. En
este esquema, la seal de control generada por el circuito PMW es aplicada a una pareja de
interruptores por ejemplo (T
A+
, T
B-
), mientras que para la otra pareja (T
A-
, T
B+
), se le aplica el
negado de la seal PMW, de tal manera como se mencion siempre se tenga en conduccin un
par de interruptores. La Figura 8, muestra las seales aplicadas a los interruptores as como la
salida generada por el rectificador, que es la que se le aplica al motor de CD. Para nuestro caso
para los interruptores se seleccion el IGBT de potencia CM15TF-12H, que algunas de sus
caractersticas son:
- Incluye el diodo antiparalelo.
- Soportan una corriente de colector ( C
I
) de 15 Amp.
- Soportan una corriente pico de colector de ( CM
I
) de 40 Amp.
7
- Voltaje de aislamiento ( isolation
V
) RMS de 2500 volts.
- Retardo de encendido
( )
) (on d
t
de 120 ns.
- Retardo de apagado
( )
) (off d
t
de 200 ns.
- Potencia de disipacin total (P
D
) de 100 watts.
Figura 8.- Esquema de control del PWM con conmutacin de voltaje bipolar
Circuitos de retardo y acoplamiento:
El arreglo que se muestra en la Figura 9, es el esquema que se implemento para incluir el tiempo
de blanqueo o retardo, colocado en serie entre las seales de control y los interruptores, con la
finalidad de evitar un corto circuito en las terminales de la fuente de voltaje de corriente directa,
y debido al optoaislador que estamos utilizando las seales de control, son invertidas. La Figura
10, muestra las formas de onda de las seales de este circuito.
Figura 9.- Circuito de retardo o blanqueo
8
Figura 10.- Diagrama de tiempo del circuito de retardo.
El diseo del circuito de blanqueo estriba en tomar en cuenta los tiempos de encendido y
apagado de los IGBTs, y el tiempo de retardo que introducen los optoaisladores. Para nuestro
caso el tiempo ms critico es el tiempo de encendido y apagado de los optoaisladores, el cual es
1.5s.
Los optoaisladores se introdujeron en nuestro sistema con la finalidad de aislar la parte de
potencia de la parte de control, para evitar daos al equipo de control, que en este caso lo mas
importante para nosotros es el control maestro (PC) y el microcontrolador. En este esquema de
aislamiento lo que se realizo fue separar las tierras de la circuitera de control y la de potencia,
por medio de los optoaisladores, de tal manera que la nica conexin entre la parte de potencia y
de control, la realiza la luz de un led y un detector.
El optoaislador utilizado es el M57957L, el cual es un circuito integrado con las siguientes
caractersticas:
- Tiempos de conmutacin t
on
, t
off
< 1.5seg.
- Voltaje de aislamiento 2500 Vrms.
- Potencia de disipacin interna de 1.2 W
- Corriente mxima en el LED de
mA If 16

- Corriente de salida de 2 A
9
La Figura 11 muestra el arreglo implementado para realizar la labor de aislamiento y
acoplamiento ptico, donde se ilustra solamente el diagrama de conexin del circuito para un
interruptor
Figura 11.- Optoaislador.
Este mismo esquema se realiza para cada uno de los interruptores, estando aisladas las tierras
unos de otros, as como de la tierra de la parte de control. Para nuestro proyecto fue necesario
implementar 5 fuentes de corriente directa repartidas de la siguiente forma:
3 fuentes con sus tierras aisladas para los manejadores de los interruptores (una en
comn para los interruptores de la parte inferior y las otras dos aisladas, una para cada uno
de los interruptores de la parte superior).
1 fuente para alimentar el microcontrolador, el DAC, el PWM y los circuitos para
ajuste de las seales.
1 fuente para la alimentacin del puente

Controlador PI digital:
El control de velocidad se realiz mediante un controlador Proporcional Integral (PI) digital,
mostrado en la Figura 13. Donde su funcin de transferencia es de lazo cerrado es:
( )( ) ) ( ) ( 1 1
) (
) (
) (
1
z G K K z G z
z G K
z
z
p id pd p
p id
ref
+ +

(9)
10
Figura 13.- Diagrama de bloques del control de velocidad PI.
Obsrvese, que este esquema de control incluye un retenedor de orden cero.
donde :
) (z G
p
Es la Funcin de transferencia del motor incluidos el DAC y el PWM
con el ajuste de la seal.
id
K
Es la ganancia integral digital.
pi
K
Es la ganancia proporcional digital.
ref

Es la velocidad de referencia.

Es la velocidad real de salida.


Para estimar las ganancias del controlador, primeramente debemos conocer el modelo del motor
e incluir el DAC, el generador de la seal PWM y el amplificador de potencia. En el trabajo
desarrollado primeramente obtuvimos una funcin de transferencia para un control de velocidad
analgico, el cual esta representado por la Figura 14 y posteriormente lo transformamos a su
equivalente digital que es el esquema que se mostr en la Figura 13.
Figura 14.- Diagrama de bloques para el control de velocidad analgico.
11
Obteniendo este diagrama de bloques a nivel de funcin de transferencia tenemos:
) ( 1
) (
) (
) (
s G
s
K
K
s G
s
K
s
s
p
i
p
p
i
ref

,
_

+ +

(10)
donde:
) (s G
p
Es la Funcin de transferencia del motor incluidos el DAC y el PWM con
el ajuste de la seal.
i
K
Es la ganancia integral analgica.
p
K
Es la ganancia proporcional analgica.
ref

Es la velocidad de referencia.

Es la velocidad real de salida.


Este esquema de control tiene algunas bondades en especial, por ejemplo que no es necesario
ponerle una etapa antiwindup, debido a que la integracin para automticamente cuando la salida
est limitada, adems en el caso en que el control se realizara de manera manual, para realizar la
transicin de manual a automtica no es necesario inicializar el proceso [Tesis Ramrez].
Para la obtencin de la ecuacin del control de velocidad digital, primeramente se obtuvieron el
valor de las constantes para el controlador de manera analgica y posteriormente se transformo a
su equivalente discreto mediante una ecuacin de diferencias hacia atrs, para la entrada a la
planta formada por el DAC, el acondicionador de seal, el circuito generador de la seal PWM,
el amplificador de potencia y el motor de corriente directa a controlar.
La accin de control PI en un controlador analgico es:
1
]
1

dt t e
T
t e K t u
t
i
p
) (
1
) ( ) (
0
(11)
donde e(t) es la diferencia entre la velocidad de referencia y la velocidad real del motor, la cual
es la entrada al controlador,
p
K
y
i
T
son las ganancias proporcional y el tiempo integral
respectivamente.
Por consiguiente para obtener la entrada al sistema en forma digital, podemos discretizar la
ecuacin (11). De tal manera que esto nos queda como:

( )

,
_

1
]
1

+
+ +
+
+
+
+
2
) ( ) ) 1 ((
2
) 2 ( ) (
2
) ( ) 0 (
) (
kT e T k e T e T e T e e
T
T
kT e K kT u
i
p

(12)
Por otro lado la ecuacin de diferencias hacia atrs en la accin de control se expresa como:
) ) 1 (( ) ( ) ( T k u kT u kT u
(13)
12
sustituyendo (12) en (13), tenemos:
[ ]

,
_

+ + ) ) 1 (( ) (
2
) ) 1 (( ) ( ) ( T k e kT e
T
T
T k e kT e K kT u
i
p
(14)
[ ]

,
_

+ ) ( ) ) 1 (( ) (
2
) ) 1 (( ) ( ) ( kT e
T
T
T k e kT e
T
T
T k e kT e K kT u
i i
p
(15)
[ ] ) ( ) ) 1 (( ) (
2
) ( kT e
T
T K
T k e kT e
T
T K
K kT u
i
p
i
p
p
+

,
_


(16)
donde:
i
p
p pd
T
T K
K K
2

(17)
i
p
id
T
T K
K
(18)
y como:
i
p
i
T
K
K
(19)
entonces tenemos que:
T K K
i id

(20)
2
id
p pd
K
K K (21)
As la ecuacin queda como:
[ ] ) ( ) ) 1 (( ) ( ) ( kT e K T k e kT e K kT u
id pd
+
(22)
adems:
) ( ) ( ) ( kT kT kT e
ref

(23)
Por lo tanto esto nos resulta como:
[ ] [ ] ) ( ) ( ) ) 1 (( ) ( ) ) 1 (( ) ( ) ( kT kT K T k w kT T k kT K kT u
ref id ref ref pd
+ +
(24)
Modificando la ecuacin (24) para que pueda hacer frente a cambios subitos en el punto de
ajuste. Haciendo que la parte proporcional del controlador no dependa de la entrada de referencia
sino nicamente de la salida, la ecuacin resulta:
[ ] [ ] ) ( ) ( ) ) 1 (( ) ( ) ( kT kT K T k kT K kT u
ref id pd
+
(25)
y como:
) ) 1 (( ) ( ) ( T k u kT u kT u
(26)
13
finalmente obtenemos:
[ ] [ ] ) ) 1 (( ) ( ) ( ) ) 1 (( ) ( ) ( T k u kT kT K T k kT K kT u
ref id pd
+ +
(27)
La ecuacin (27), es la que se implementar en el microcontrolador para el control de la
velocidad del motor, por lo cual solo lo que nos resta es conocer el valor de las ganancias
proporcional e integral, para esto primeramente debemos conocer el modelo del sistema.
Modelo del sistema:
La obtencin del modelo del sistema lo podemos realizar siguiendo dos metodologas:
Primero tomando en cuenta que el PWM utiliza alta frecuencia de conmutacin, se puede
entonces utilizar una aproximacin lineal del conjunto: DAC, circuito PWM, Amplificador de
Potencia y el motor de cd, que en nuestro caso lo etiquetamos como
) (s G
p
.
La funcin de transferencia para un motor de corriente directa con entrada de voltaje y salida de
velocidad, se aproxima mediante un sistema de segundo orden, sin embargo, debido a que la
constante de tiempo mecnica es mucho mayor a la constante de tiempo elctrica, entonces el
modelo del motor se aproxima a un sistema de primer orden de la forma:

+

s
K
s
A
s U
s
s G
p
1 ) (
) (
) (
(28)
donde:

Es la velocidad angular
U Es el comando de velocidad en forma digital enviado por el micro
A Es la ganancia de corriente directa (valor final al que se aproxima la respuesta al
escaln unitario)

Es la constante de tiempo del conjunto


) (s G
p

Es el valor del polo del conjunto


) (s G
p
As entonces los parmetros a calcular son, la ganancia de corriente directa y la constante de
tiempo del sistema
) (s G
p
. Por lo tanto para la estimacin de estos parmetros es necesario saber
el comportamiento del sistema ante una entrada escaln unitario, que para nuestro caso el
comando ingresado al micro es u = 2047, el cual es un dato digital, con esto calculando la
velocidad en el transitorio tenemos la Figura 15, en la que podemos observar la evolucin de la
velocidad del motor, para diferentes instantes de tiempo, donde se ha seleccionado un periodo de
muestreo de 700

seg. Estos resultados entonces los tenemos que comparar con la velocidad del
sistema dada en forma analtica.
14
Figura 15.- Velocidad del motor ante una entrada escaln
As entonces de manera analtica, aplicando una entrada escaln unitario U(S)=u/s, tenemos:
s
u
s
k
s
+

) ( (29)
cuya respuesta en el tiempo es:
[ ]
t
e
Ku
t


1 ) ( (30)
Por lo tanto para obtener la ganancia de corriente directa, entonces primeramente debemos
obtener el dato de la velocidad en estado estable, de acuerdo a nuestra grafica observamos que es
de 91000. De manera analtica se puede obtener evaluando la expresin para la velocidad en un
tiempo
t
, de lo cual resulta:


Ku
ss
) ( (31)
despejando K de (30)
u
K
ss

(32)
as mismo despejando A y de la ecuacin (28), que representa el sistema de primer orden:
15

K
A (33)

1
(34)
sustituyendo el valor de K en (33), tenemos:
u
A
ss

(35)
de manera que para nuestro caso la ganancia de corriente directa del bloque
) (s G
p
es:
4553 . 44
2047
91000

u
A
ss

(36)
Ahora, para determinar la constante de tiempo del bloque
) (s G
p
, debemos tomar el valor de una
velocidad
p

menor que la velocidad en estado estable, con su respectivo tiempo, en la que


ocurri.
Supongamos que para un tiempo
1
t , tenemos nuestra velocidad
p

, entonces la ecuacin de esta


velocidad est dada por:
[ ]
1
1
t
p
e
Ku


(37)
entonces sacando la relacin entre la velocidad
p

con la velocidad
ss

, obtenemos:
1
1
t
ss
p
e



(38)
despejando

de (38), tenemos:
1
1 ln
t
ss
p

,
_

(39)
sustituyendo (39) en (34), obtenemos la constante de tiempo del bloque
) (s G
p
, como:

,
_


ss
p
t

1 ln
1
(40)
por lo tanto de la grafica de la velocidad para un tiempo 1 . 9
1
t mseg, obtenemos una velocidad
60000
p

, de manera que la constante de tiempo es:


16
4504 . 8
91000
60000
1 ln
10 1 . 9
1 ln
3
1

,
_

,
_

X t
ss
p

mseg (41)
De manera que la funcin de transferencia del bloque
) (s G
p
que da como:
1 10 4504 . 8
4553 . 44
) (
3
+

s X
s G
p
(42)
La segunda metodologa, consiste en calcular la funcin de transferencia del motor de corriente
directa y multiplicarla con la funcin de transferencia del conjunto: DAC, circuito PWM y
Amplificador de Potencia.
Como se mencion anteriormente, el modelo de un motor de corriente directa, se aproxima a un
sistema de primer orden de la forma:
( ) 1
1
) (
) (
) (
+

s K s V
s
s G
m e
m

(43)
donde:
m

Es la constante mecnica del motor


e
K
Es la constante de fuerza electromotriz del motor.
Adems:
2
e
a
m
K
J R

(44)
Que para nuestro caso el motor seleccionado tiene los siguientes parmetros:
a
R
= 13.3473 []
a
L
= 8.1164X10
-3
[H]
e
K
= 41.68X10
-3
[N m/A]
J = 1.811X10
-6
[Kg m
2
/seg
2
]
B = 7.189X10
-6
[N m s]
Con un encoder que tiene 500 ranuras por revolucin.
donde:
a
R
Es la resistencia del devanado de armadura del motor de cd.
17
a
L
Es la inductancia de armadura del motor de cd.
e
K
Es la constante de fuerza electromotriz del motor de cd.
J Es el momento de inercia del motor de cd.
B Es el coeficiente de friccin viscosa del motor de cd.
As entonces para nuestro caso la funcin de transferencia para el motor de cd es:
1 10 9141 . 13
9923 . 23
) (
) (
) (
3
+


s X s V
s
s G
m

(45)
Por otro lado el conjunto DAC, circuito PWM y amplificador de potencia lo podemos visualizar
como una ganancia que relaciona al voltaje de salida con el voltaje de entrada como:
866 . 1
2
1000
*
2047
24

cc
K (46)
esto porque el voltaje de salida es de 24 volts y el dato de entrada es 2047 y adems como para
determinar la velocidad del motor consideramos en nuestro trabajo las transiciones de subida y
bajada y como son 500 ranuras por revolucin, entonces la relacin entre el voltaje de salida y el
dato aplicado le multiplicamos el factor 1000/2.
As la funcin de transferencia del conjunto completo: DAC circuito PWM, amplificador de
potencia y motor etiquetada anteriormente por
) (s G
p
es:
1 10 9141 . 13
) 866 . 1 )( 9923 . 23 (
) (
3
+


s X
s G
p
1 10 9141 . 13
7696 . 44
) (
3
+

s X
s G
p
(47)
Obsrvese que la ecuacin (47) coincide con la ecuacin obtenida mediante la primera
metodologa, ecuacin (42). La diferencia mas significativa se observa que es en la constante de
tiempo mecnica del sistema y se puede deber entre otras cosas a la imprecisin con que se
toman los datos, pero ntese que la ganancia de corriente directa es prcticamente la misma. Por
lo tanto podemos decir que nuestra funcin de transferencia para todo el conjunto
) (s G
p
es
correcta y para nuestro ejercicio la funcin de transferencia que tomamos para el sistema es la
descrita por la ecuacin (47).
No debemos olvidar que el objetivo de determinar la funcin de transferencia del sistema
) (s G
p
,
es poder establecer los valores de las constantes de tiempo del controlador analgico y as
determinar el valor de las constantes del controlador digital y finalmente conocer los parmetros
de la ecuacin que se va a incorporar al microcontrolador.
Recordando la funcin para el controlador de velocidad analgico incluyendo el equivalente del
conjunto
) (s G
p
:
18

,
_

,
_

+ +

,
_

+

1
1
1
) (
) (
) (
s
A
s
K
K
s
A
s
K
s
s
s G
m
i
p
m
i
ref

(48)
de manera que esto queda como:
m
i
m
p
m
i
A
K
A K
s s
A
K
s G

,
_

+
+

1
) (
2
(49)
donde:
7696 . 44 A
3
10 9171 . 13

X
m
seg
comparndola con la funcin de transferencia de un sistema de segundo orden, dada por:
2 2
2
2
) (
) (
n n
n
s s
s R
s Y

+ +

(50)
de manera que:
m
i n
A
K


2
(51)
m
p
n
A K

1
2
(52)
As los valores de la ganancia proporcional e integral para el controlador analgico sern:
A
K
m n
i

2
(53)
A
K
m n
p
1 2


(54)
donde:
n

Es la frecuencia natural no amortiguada del sistema de segundo orden.

Es la Relacin de amortiguamiento del sistema de segundo orden.


n

, son seleccionados utilizando las relaciones que definen el mximo sobre impulso
p
M
y
el tiempo de establecimiento
s
t
(con 2% de tolerancia).
donde el mximo sobre impulso esta dado por:
19
2
1 /
e M
p
(55)
y la tolerancia =
s n
t
e

As para una tolerancia del 2%, tenemos que:
n
s
t

(56)
as:

s
n
t
4

(57)
Adems para un mximo sobre impulso, para un sistema de segundo orden se tiene que el valor
ptimo de

es aproximadamente de 0.7, por lo tanto:


s
n
t
7143 . 5

(58)
Para nuestro caso en particular observamos de la grafica de velocidad que alcanza el valor de
estado estable en aproximadamente 40mseg, por lo tanto seleccionamos un
mseg t
s
20
, as
obtenemos que:
7143 . 285
10 20
7143 . 5
3

X
n
(59)
por lo tanto:

i
K
( ) ( )
3709 . 25
7696 . 44
10 9141 . 13 7143 . 285
3 2

X
(60)
3
3
10 9808 . 101
7696 . 44
1 ) 10 9141 . 13 )( 7143 . 285 )( 7 . 0 ( 2

X
X
K
p
(61)
de manera que las ganancias para el controlador digital, para un periodo de muestreo de 700seg,
son:
3 6
10 7596 . 17 ) 10 700 )( 3709 . 25 (

X X T K K
i id
(62)
3
3
3
10 1010 . 93
2
10 7596 . 17
10 9808 . 101
2

X
X
X
K
K K
id
p pd
(63)
Por lo tanto la ecuacin que se debe ingresar al micro para el control de la velocidad es la
ecuacin de diferencias:
20
[ ]
3 3
( ) 93.1010 10 ( ) (( 1) ) 17.7596 10 ( ) (( 1) ) u kT X kT k T X e kT u k T

+ +
(63)
Programas en lenguaje ensamblador:
;PROGRAMA PARA DETERMINAR LA DINAMICA EN EL ARRANQUE DE UN MOTOR
;DE CORRIENTE DIRECTA
$TITLE("DISPLAY DE CRISTAL LIQUIDO DISPLAY.A96")
$DEBUG
;----------------------------------------------------
;Programa de prueba el DAC811 programando vector de
;interrupciones HSI y software timers
;----------------------------------------------------
PRIN MODULE MAIN
WSR EQU 14H:BYTE ;Hventana0 (r/w)
SP EQU 18H ;Hventana0 (r/w)
IOC0 EQU 15H:BYTE ;Hventana0 (w)
IOC1 EQU 16H:BYTE ;Hventana0 (w)
IOC2 EQU 0BH:BYTE ;Hventana0 (w)
IOC3 EQU 0CH:BYTE ;Hventana0 (r/w)
TIMER1 EQU 0AH ;Hventana0 (r/w)
IOS0 EQU 15H:BYTE ;Hventana0 (r)
IOS1 EQU 16H:BYTE ;Hventana0 (r)
HSO_COMMAND EQU 06H:BYTE ;Hventana0 (w)
HSO_TIME EQU 04H:BYTE ;Hventana0 (r)
HSI_MODE EQU 03H:BYTE ;Hventana0 (w)
HSI_STATUS EQU 06H:BYTE ;Hventana0 (r)
HSI_TIME EQU 04H:BYTE ;Hventana0 (r/w)
P1 EQU 0FH:BYTE ;Hventana0 (r/w)
int2 equ 2004h
int5 equ 200Ah
int_mask equ 08h:byte
int_pend equ 09:byte
RSEG AT 1AH
MEMORIA: DSW 1
COPIA: DSW 1
DATO1: DSW 1 ;Datos al DAC
WSR_IMA: DSW 1

RSEG AT 3AH
PERIODO: DSW 1 ;3EH
PERIODO_L EQU PERIODO:BYTE
PERIODO_H EQU PERIODO+1:BYTE
pulsos: dsl 1
pulsos_l equ pulsos:word
pulsos_h equ pulsos+2:word
MPER: DSW 1
wPER: DSW 1
21
AUX: DSW 1
AUX1: DSW 1
AUX2: DSW 1
aux3: dsw 1
CONTADOR: DSL 1
CONTADOR_L EQU CONTADOR:word
CONTADOR_H EQU CONTADOR+2:word
TIEMPO: DSW 1
MEM: DSB 1
CSEG AT 2080H
LDB WSR,#00H ;Selecciona la Hventana0.
LD SP,#0100H ;Inicializa el puntero de pila.
LDB P1,#00

VACIAR: LD COPIA,HSI_TIME ;Elimina evento
SKIP MEM ;Espera 8 estados.
SKIP MEM
JBS IOS1,7,VACIAR ;Detecta si FIFO esa vacia.
LDB IOC0,#01H ;Habilita entrada HSIO.
LDB HSI_MODE,#03H ;Detecta transicin POSITIVA Y NEGATIVA
ld contador,#0
ldb int_pend,#00 ;limpia interrupciones pendientes
ld aux,#3040h ;Direccion Vector de interrupcion int2
st aux,int2
ld aux,#3140h ;Direccion Vector de interrupcion int5
st aux,int5
ei
ldb int_mask,#24H ;Habilita interrupciones
;Software timer, HSI data available
ld mper,#3200h ;Direccion de inicio para guardar velocidades

cargahso: jbs ios0,7,cargahso
ldb hso_command,#10011001b
add aux,timer1,#700 ;[TIEMPO]
ld aux1,aux
ld hso_time,aux

LD DATO1,#5FFH ;Velocidad del motor
LD MEMORIA,#8000H ;Direccion del dac811
ST DATO1,[MEMORIA] ;Manda dato al DAC
MAS2: cmp mper,#3600h ;Direccion final para guardar velocidades
jne nofin
di ;deshabilita interrupciones
ld mper,#3200h ;Direccion de inicio para guardar velocidades

LD DATO1,#0800H ;Velocidad del motor
LD MEMORIA,#8000H ;Direccion del dac811
ST DATO1,[MEMORIA] ;Manda dato al DAC
22
nofin: br mas2
cseg at 3040h
PUSHA
LD COPIA,HSI_TIME ;Elimina evento
inc contador
ld aux3,contador
Stb CONTADOR_L,p1
POPA
ret
cseg at 3140H
pusha
carga_hso: jbs ios0,7,carga_hso
ldb contador_h,#0
mulu contador_L,#1000
divu contador_L,#700 ;TIEMPO
ldb contador_h,#0
mulu CONTADOR_L,#100 ;no cabe resultado en el registro
;ld aux2,contador
st contador_L,[mper]
inc mper

;st contador_h,[mper]
;inc mper
ld contador,#0
ldb hso_command,#10011001b
add aux,timer1,#700 ;TIEMPO
ld aux1,aux
ld hso_time,aux
popa
ret
ENd
23
;programa para el control PI digital de un motor de corriente directa
;de imanes permanentes PITTMAN GM8724S023
$TITLE("DISPLAY DE CRISTAL LIQUIDO DISPLAY.A96")
$DEBUG
;----------------------------------------------------
;Programa de prueba el DAC811 programando vector de
;interrupciones HSI y software timers
;----------------------------------------------------
PRIN MODULE MAIN
WSR EQU 14H:BYTE ;Hventana0 (r/w)
SP EQU 18H ;Hventana0 (r/w)
IOC0 EQU 15H:BYTE ;Hventana0 (w)
IOC1 EQU 16H:BYTE ;Hventana0 (w)
IOC2 EQU 0BH:BYTE ;Hventana0 (w)
IOC3 EQU 0CH:BYTE ;Hventana0 (r/w)
TIMER1 EQU 0AH ;Hventana0 (r/w)
IOS0 EQU 15H:BYTE ;Hventana0 (r)
IOS1 EQU 16H:BYTE ;Hventana0 (r)
HSO_COMMAND EQU 06H:BYTE ;Hventana0 (w)
HSO_TIME EQU 04H:BYTE ;Hventana0 (r)
HSI_MODE EQU 03H:BYTE ;Hventana0 (w)
HSI_STATUS EQU 06H:BYTE ;Hventana0 (r)
HSI_TIME EQU 04H:BYTE ;Hventana0 (r/w)
P1 EQU 0FH:BYTE ;Hventana0 (r/w)
int2 equ 2004h
int5 equ 200Ah
int_mask equ 08h:byte
int_pend equ 09:byte
RSEG AT 1AH
MEMORIA: DSW 1
COPIA: DSW 1
WSR_IMA: DSW 1
MEM0: DSW 1
MEM1: DSW 1
MEM2: DSW 1

RSEG AT 3AH
PERIODO: DSW 1
PERIODO_L EQU PERIODO:BYTE
PERIODO_H EQU PERIODO+1:BYTE
CONTADOR: DSL 1
CONTADOR_L EQU CONTADOR:word
CONTADOR_H EQU CONTADOR+2:word
WREF: DSL 1 ;referencia de velocid
WREF_L EQU WREF:word
24
WREF_H EQU WREF+2:word
WKT: DSL 1 ;velocidad real
WKT_L EQU WKT:word
WKT_H EQU WKT+2:word
WKT_1: DSL 1 ;velocidad real anterior
WKT_1_L EQU WKT_1:word
WKT_1_H EQU WKT_1+2:word
DATO1: DSL 1 ;Datos al DAC
DATO1_L EQU DATO1:word
DATO1_H EQU DATO1+2:word
EKT: DSL 1 ;error
EKT_L EQU EKT:word
EKT_H EQU EKT+2:word
TEMP: DSL 1 ;almacenamiento temporal
TEMP_L EQU TEMP:word
TEMP_H EQU TEMP+2:word
TEMP1: DSL 1 ;almacenamiento temporal
TEMP1_L EQU TEMP1:word
TEMP1_H EQU TEMP1+2:word
MPER: DSW 1
wPER: DSW 1
AUX: DSW 1
AUX1: DSW 1
AUX2: DSW 1
aux3: dsw 1
TIEMPO: DSW 1
KPD: DSW 1 ;constante proporcional
KID: DSW 1 ;constante integral
UKT: DSW 1 ;accion de control
UKT_1: DSW 1 ;accion de control anterior
reg: dsw 1
MEM: DSB 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;; Programa principal ;;;;;;;;;;
CSEG AT 2080H
LDB WSR,#00H ;Selecciona la Hventana0.
LD SP,#0100H ;Inicializa el puntero de pila.
LDB P1,#00
;condiciones iniciales para el controlador.
LD KPD,#872 ;700
LD KID,#300
LD WREF,#0
LD WKT_L,#2048
LD WKT_H,#0
LD WKT_1_L,#2048
LD WKT_1_H,#0
LD UKT,#0
LD UKT_1,#2048
LD EKT_L,#0
LD EKT_H,#0
LD TEMP_L,#0
LD TEMP_H,#0
LD REG,#2048
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
25

LD DATO1_H,#0
LD DATO1_L,#4000 ;Velocidad deseada del motor
MUL DATO1_L,#10000 ;homogenizar unidades de velocidad
DIVU DATO1,#44433
ADD DATO1_L,#2048
LD WREF_L,DATO1_L
LD TEMP_H,WREF_L ;salvar referencia

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
VACIAR: LD COPIA,HSI_TIME ;Elimina evento
SKIP MEM ;Espera 8 estados.
SKIP MEM
JBS IOS1,7,VACIAR ;Detecta si FIFO esa vacia.
LDB IOC0,#01H ;Habilita entrada HSIO.
LDB HSI_MODE,#03H ;Detecta transicin POSITIVA Y NEGATIVA
ld contador,#0
ldb int_pend,#00 ;limpia interrupciones pendientes
ld aux,#3040h ;Direccion Vector de interrupcion int2
st aux,int2
ld aux,#3140h ;Direccion Vector de interrupcion int5
st aux,int5
ei
ldb int_mask,#24H ;Habilita interrupciones
;Software timer, HSI data available
ld mper,#3200h ;Direccion de inicio para guardar velocidades

cargahso: jbs ios0,7,cargahso
ldb hso_command,#10011001b;programar tiempo del timer
add aux,timer1,#700 ;TIEMPO de 700 microsegundos
ld aux1,aux
ld hso_time,aux
MMMM: NOP
LJMP MMMM
;;;;;;;;;;; Termina programa principal ;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; FFFFFFF FFFFFF FFF FF
; FFFFFFF FF FFFF FF
; FF FF FF FF FF
; FFFFF FF FF FF FF
; FFFFF FF FF FF FF
; FF FF FF FF FF
; FF FF FF FFFF
; FF FFFFFF FF FFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;; Interrupcin de entrada de alta velocidad ;;;;;;;;;;
cseg at 3040h
PUSHA
LD COPIA,HSI_TIME ;Elimina evento
inc contador
Stb CONTADOR_L,p1
POPA
ret
26
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;; Interrupcin de ;;;;;;;;;;
cseg at 3140H
pusha
carga_hso: jbs ios0,7,carga_hso
ldb contador_h,#0
mulu contador_l,#1000 ;pulsos por milisegundos
divu contador,#700 ;TIEMPO
ldb contador_h,#0
mulu CONTADOR_L,#100 ;pulsos por segundos falta x 10
st contador_L,[mper] ;guardar velocidad en memoria
ld contador,#0 ;inicializar contador nueva cuenta
ldb hso_command,#10011001b;programar tiempo del timer
add aux,timer1,#700 ;TIEMPO de 700 microsegundos
ld aux1,aux
ld hso_time,aux
;;;;;;;;;;===================================================;;;;;;;;;;;
;;;;;;;;;;Calculo de la accin de control PI con referencia ;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;========== positiva ==========;;;;;;;;;;;;;;;;;;;;
MAS2: LD WREF_L,TEMP_H ;actualizar velocidad de referencia
LD TEMP_L,WKT_L ;salvar velocidad real
cmp temp_h,#4095
jgt salir1
SUB WREF_L,WKT_L ;RESTAR vel real con vel deseada
LD EKT_L,WREF_L ;y detactar error
ld wper,ekt_l ;guardar error
cmp wper,#0 ;si el error es negativo usar su
jLT negativo ;valor absoluto para disminuir
;el efecto integral
SUB WKT_L,WKT_1_L
MUL WKT_L,KPD
;;;;;;;;;;;;;;;;;;;;;;;;; LD WKT_H,#0
DIV WKT_L,#10000 ;efecto proporcional

MUL EKT_L,KID
DIV EKT_L,#10000 ;efecto integral
ADD EKT_L,UKT_1
sub EKT_L,WKT_L
LD UKT,EKT_L ;nueva accion de control que ser la
LD UKT_1,UKT ;accion de control anterior
LD WKT_1_L,TEMP_L ;velocidad anterior
;;;;;;;;;;///////////////////////////////////////////////////////;;;;;;;;;
MAS3:
CMP ukt,TEMP_H ;PARA NO SOBREPASAR VELOCIDAD (POSITIVA)
JGT BRINCA

;;;;;;;;;;///////////////////////////////////////////////////////;;;;;;;;;;
LD MEMORIA,#8000H ;Direccion del dac811
ST UKT,[MEMORIA] ;Manda accion de control al motor


BRINCA:
27
LD WKT_H,#0
LD WKT_L,[MPER]
LD TEMP1_L,WKT_L ;guardar velocidad actual pulsos/segundo
MUL WKT_L,#10000
DIVU WKT,#44433
ADD WKT_L,#2048
LD TEMP1_H,WKT_L ;guardar velocidad (salida digital)
salir1: BR SALIR
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
negativo:
mul ekt,#-1
ld wper,ekt_l
SUB WKT_L,WKT_1_L
MUL WKT_L,KPD
;LD WKT_H,#0
DIV WKT_L,#10000 ;efecto proporcional

MUL EKT_L,KID
DIV EKT_L,#10000 ;efecto integral
sub UKT_1,EKT_L
sub UKT_1,WKT_L
LD UKT,UKT_1 ;accion de control
cmp temp_h,#2048
jgt sww
ld ukt,#2048

sww: BR MAS3

;;;;;;;;;;===================================================;;;;;;;;;;;
SALIR:
popa
ret
;;;;;;;;;; termina interrupcin ;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
END

28

You might also like