Universidad de Huelva
I.T. Informática de Sistemas
MMOODDEELLOO DDEE MMOOTTOORR
DDCC EENN SSIIMMUULLIINNKK
YY CCOOMMPPAARRAATTIIVVAA
CCOONN MMOOTTOORR RREEAALL
MMEEDDIIAANNTTEE DDSSPPAACCEE
Alumno:
Vicente Herrera García
Profesor:
Dr. Omar Sánchez Pérez
CONTENIDO
Este documento es un estudio sobre el desarrollo en Simulink de un bloque que simule
el comportamiento de un motor real a partir de datos existentes en su hoja de
características. Incluye su desarrollo teórico, la implementación en Simulink y la
comparación con un motor real.
Apartados:
Faulhaber Aplication Notes
En este apartado incluimos unas notas teóricas del fabricante de servomotores
Faulhaber, que han servido de base a este estudio.
Ecuación de la Velocidad
Resumen final con la ecuación de velocidad de un motor en función del torque y el
voltaje, así como de constantes físicas del mismo. Distintas formas de expresar dicha
ecuación.
Análisis dimensional
Análisis de la coherencia entre las unidades de medida, y la forma más adecuada para
trabajar con estas, en la ecuación de velocidad.
Modelo Simulink
Modelo en Simulink de la ecuación de velocidad, que nos servirá para simular el
comportamiento de un motor en Matlab.
Hoja de Características de un motor real
Características físicas del servomotor Faulhaber Micromo 2230-12s dadas por el
fabricante, que será utilizado para compararlo con el modelo en Simulink.
DSpace: Adquisición de datos y simulación de modelos
Una breve explicación del sistema de adquisición de datos empleado para el estudio del
motor, y de cómo se ha realizado el montaje del mismo.
Comparativa modelo-motor real: Velocidad máxima sin cargar
El motor real y el modelo en una comparativa donde se comprueba su velocidad
máxima sin carga al voltaje nominal, y se compara con las especificaciones del
fabricante.
Evaluación del momento de inercia
Estudio del efecto en el comportamiento del modelo de el momento de inercia del motor
(sin carga), y en que manera es necesario para emular completamente al motor real.
Estimación del momento en el motor real.
Comparativa Modelo-Motor real: Sistema en lazo cerrado
Comparativa del modelo y el motor real en un sistema en lazo cerrado con control
mediante PID, cuya variable representativa es la posición, utilizando una señal patrón
compleja.
FAULHABER APLICATION NOTES
REFERENCIA:
http://www.micromo.com/03application_notes.asp
Faulhaber – MicroMo Electronics, Application Notes.
Motor Calculation: Numerical calculation
Lo siguiente es un extracto de las Aplication Notes que pueden encontrarse en la página
web de Faulhaber, un fabricante de motores. Este estudio no solo se centra en los
parámetros utilizados para describir sus motores, sino que se trata de unos cálculos
genéricos, válidos para otros motores del mismo tipo.
Numerical Calculation
For an iron-less core, DC motor of relatively small size, the relationships which govern the
behavior of the motor in various circumstances can be derived from physical laws and
characteristics of the motors themselves.
Kirchoff's voltage rule states that "The sum of the potential increases in a circuit loop must equal
the sum of the potential decreases." When applied to a DC motor connected in series with a DC
power source, Kirchoff's voltage rule can be expressed as "The nominal supply voltage from the
power source must be equal in magnitude to the sum of the voltage drop across the resistance
of the armature windings and the back EMF generated by the motor.":
Vo = (I x R) + Ve
Where:
Vo = power supply voltage in volts
I = current in the circuit in Amps
R = resistance of motor windings in Ohms
Ve = generated back EMF in volts
The back EMF generated by the motor is directly proportional to the angular velocity of the
motor. The proportionality constant is the back EMF constant of the motor.
Ve = W x Ke
Where:
W = angular velocity of the motor
Ke = back EMF constant of the motor
Therefore, by substitution:
Vo = (I x R) + (W x Ke)
The back EMF constant of the motor is usually specified by the motor manufacturer in
volts/RPM or mV/RPM. In order to arrive at a meaningful value for the back EMF, it is necessary
to specify the motor velocity in units compatible with the specified back EMF constant.
The motor constant is a function of the coil design and the strength and direction of the flux lines
in the air gap. Although it can be shown that the three motor constants normally specified (back
EMF constant, torque constant, and velocity constant) are equal if the proper units are used,
calculation is facilitated by the specification of three constants in the commonly accepted units.
The torque produced by the rotor is directly proportional to the current in the armature windings.
The proportionality constant is the torque constant of the motor.
T = I x Kt
Where:
T = torque developed at rotor
Kt = motor torque constant
Substituting this relationship:
V = (T x R)/Kt + (W x Ke)
The torque developed at the rotor is equal to the friction torque of the motor plus the resisting
torque due to external mechanical loading:
T = Tf + T1
Where:
Tf = motor friction torque
T1 = load torque
Assuming that a constant voltage is applied to the motor terminals, the motor velocity will be
directly proportional to sum of the friction torque and the load torque. The constant of
proportionality is the slope of the torque-speed curve, given by:
Speed loss = -Wo / Ts
Where:
Wo = motor friction torque
Ts = load torque
An alternative approach to deriving this value is to solve for velocity, W:
W = Vo/Ke - T1 / (Kt x Ke)
Atención: Existe una errata en la fórmula anterior
Si despejamos W a partir de
V = (T x R)/Kt + (W x Ke)
vemos que la formula que obtenemos es
W = Vo/Ke – (T1 x R) / (Kt x Ke)
y no:
W = Vo/Ke - T1 / (Kt x Ke) **no**
donde por error ha sido omitido el término R.
Es la fórmula correcta la que se presupone se utiliza a continuación para el resto de
cálculos.
Differentiating both sides with respect to T1 yields:
dW/dT1 = -R / (Kt x Ke)
Using dimensional analysis to check units, the result is:
-Ohms/(oz-in/A) x (V/RPM) = -Ohm-A-RPM/V-oz-in = -RPM/oz-in
which is a negative value describing loss of velocity as a function of increased torsional load.
Sample Calculation
Motor 1624T009S is to be operated with 9 volts applied to the motor terminals. The torque load
is 0.2 oz-in. Find the resulting motor speed, motor current, efficiency, and mechanical power
output.
From the motor data sheet, it can be seen that the no-load speed of the motor at 9 volts is
11,700 rpm. If the torque load is not coupled to the motor shaft, the motor would run at this
speed. The motor speed under load is simply the no-load speed less the reduction in speed due
to the load. The proportionality constant for the relationship between motor speed and motor
torque is the slope of the torque vs speed curve, given by the motor no-load speed divided by
the stall torque. In this example, the speed reduction caused by the 0.2 oz-in torque load is:
0.2 oz-in x (11,700 rpm/.634 oz-in) = -3690 rpm
The motor speed under load must then be:
11,700 rpm - 3690 rpm = 8010 rpm
The motor current under load is the sum of the no-load current and the current resulting from
the load. The proportionality constant relating current to torque load is the torque constant (Kt),
in this case, 1.039 oz-in/A. In this case, the load torque is 0.2 oz-in, and the current resulting
from the load must be:
I = 0.2 oz-in x 1 amp/1.039 oz-in = 192 mA
The total motor current must be the sum of this value and the motor no-load current. The data
sheet lists the motor no-load current as 11 mA. Therefore, the total current is:
192 mA + 11 mA = 203 mA
The mechanical power output of the motor is simply the product of the motor speed and the
torque load with a correction factor for units (if required). Therefore, the mechanical power
output of the motor in this application is:
output power = 0.2 oz-in x 8010 rpm x .00074 = 1.18 Watts
The mechanical power input to the motor is the product of the applied voltage and the total
motor current in Amps. In this application:
input power = 9 volts x .203 A = 1.82 Watts
Since efficiency is simply power out divided by power in, the efficiency in this application is:
efficiency = 1.18 Watts / 1.82 Watts = .65 = 65%
ECUACIÓN DE LA VELOCIDAD
Partiendo de la fórmula utilizada anteriormente:
W = Vo/Ke – (T1 x R) / (Kt x Ke)
Vamos a estudiar algunas formas de trabajar con ella de manera más adecuada.
Para empezar, en el término anterior se suponia que todo el torque que estaba generando
el motor es torque aplicado, pero si no despreciamos el torque de rozamiento:
T = T1 + Mr
W = Vo/Ke – (T x R) / (Kt x Ke)
Ya que el torque de rozamiento es un parámetro conocido de las características del
motor.
En ocasiones en lugar de estudiar el torque nos será más útil utilizar la expresión:
T = L · dw/dt
donde L es el momento de inercia del sistema.
Esta es válida para sistemas en los que el momento L sea constante.
Como el torque es una magnitud aditiva, es decir, el torque total generado es igual a la
suma de los torques generados para cada caso en particular, podemos generalizar en la
forma:
W = Vo/Ke – (T x R) / (Kt x Ke)
T = T1 + Tw + Mr
W : velocidad angular del motor
Vo : voltaje aplicado al motor
T1 : torque generado
Tw = L · dw/dt : torque generado en función de J
L : momento de inercia constante
Mr : torque de rozamiento
R : resistencia del motor
Kt : constante de torque del motor
Ke : constante de fuerza contraelectromotriz
De esta manera, cuando nos interese podemos hacer T1=0, y trabajar solo con valores
de L, o viceversa, o utilizar ambos.
Esta fórmula, en la que tenemos W en función de Vo y T, puede ser despejada en
función de las otras variables:
Vo en funcion de W y T
Vo = W · Ke + (T · R) / Kt
T en funcion de Vo y W
T = (Vo · Ke) / R – (W · Ke · Kt) / R
ANÁLISIS DIMENSIONAL
Examinando la hoja de características de un motor Faulhaber, vemos que las constantes
vienen dadas por:
modelo 2230-012S:
Ke = 1’250 mV/rpm
Kt=Km = 12’00 mNm /A
R= 10’8 ohm
Deberíamos, para ser consistente con esas unidades, trabajar en:
W en rpm
T en N·m
Vo en V
O convertir esas variables a dichas unidades en el momento de utilizar la fórmula, o
convertir las unidades de las constantes del motor.
Si tenemos en cuenta que:
ohm = V/A
V= N·m
y consideramos aparte los factores mili de las constantes,
Ke = 1’250·10-3
V/rpm
Km = 12’00·10-3
Nm /A
El análisis dimensional resulta:
[W] = V / ( V/rpm ) + ( N · m · ohm ) / ( (V/rpm) · (Nm/A) )
[W] = rpm + (V · ohm) / ( (V/A) · (Nm/rpm) ) =
= rpm + (V·ohm)/(ohm · V/rpm ) = rpm + rpm
[W] = rpm
Luego dimensionalmente, la fórmula resulta consistente.
Las dimensiones elegidas en la hoja de características de Faulhaber para describir el
momento de inercia del rotor son:
J = 2’70 g·cm²
Las unidades naturales que se obtienen para el momento de inercia según las que hemos
utilizado hasta ahora serían:
si J = T / (dw/dt), entonces
[J] = N·m / (rev/min²)
Estas unidades son poco apropiadas. Si queremos realizar la conversión, tendremos que
hacer lo siguiente:
(N·m) / (rev/min²) = ( (N·m) / (rad/s²) ) / ( 2pi /(60·60) ) =
=( (kg·m·m/s²) / (rad/s²) ) · ( 60² / 2pi) ) = kg· m² · 60² / 2pi =
=g · cm² · (60² / 2pi) · 1000 · 100² =
=g · cm² · 602
· 107
/ 2pi
Es decir, podemos para utilizar directamente el valor del momento de inercia en g·cm²
en la fórmula de la velocidad, debemos antes dividirlo por 602
· 107
/ 2pi
MODELO SIMULINK
Vamos a realizar un modelo en Simulink que contenga la ecuación de velocidad
W = Vo/Ke – (T x R) / (Kt x Ke)
Las constantes del motor, R, Ke Kt y Mr se introducirán como bloques constantes
dentro del bloque modelo del motor.
Para poder estudiar datos adicionales en el modelo, introduciremos también los cálculos
de corriente consumida, potencia mecánica generada y eficiencia que se vieron en la
Aplication Note de Faulhaber.
Modelo 1:
Primera versión, con T=T1+Mr
Modelo 2:
Igual al anterior, con cálculo de datos adicionales
Modelo 3:
Modelo definitivo
T = T1 + L·dw/dt + Mr
Con cálculo de datos adicionales
HOJA DE CARACTERÍSTICAS DE UN
MOTOR REAL
Utilizaremos el siguiente motor para comparar su comportamiento con el del modelo.
Faulhaber DC-Micromotors
2,1 Watt
Precious Metal Commutation
Serie 2230 012 S
2230 T 012 S
1 Nonimal Voltage UN 12 Volt
2 Terminal resistance R 10.8 Ω
3 Output Power P2 max. 3.27 W
4 Efficiency η max. 83 %
5 No-load speed no 9500 rpm
6 No-load current (with shaft d 1,5 mm) Io 0.010 A
7 Stall torque MH 13.20 mNm
8 Friction torque MR 0.12 mNm
9 Speed constant kn 799 rpm/V
10 Back-EMF constant kE 1.250 mV/rpm
11 Torque constant kM ó kt 12.00 mNm/A
12 Current constant kI 0.084 A/mNm
13 Slope of n-M curve ∆n/∆Μ 720 rpm/mNm
14 Rotor inductance L 420 µH
15 Mechanical time constant τ m 20 ms
16 Rotor inertia J 2.70 gcm²
17 Angular acceleration α max. 50 ·103
rad/s²
18 Thermal resistance Rth 1 / Rth 2 4/28 K/W
19 Thermal time constant τ w1 / τ w2 4.5/602 s
20 Operating temperature range:
-motor -30…+85 (optional –55…+125) ºC
-rotor, max. permissible +125 ºC
21 Shaft bearings ball bearings
22 Shaft load max.: (optional)
-with shaft diameter 2.0 mm
-radial at 3000 rpm (3 mm from bearing) 8 N
-axial at 3000 rpm 0.8 N
-axial at standstill 10 N
23 Shaft play:
-radial ∠ 0.015 mm
-axial ∠ 0.2 mm
24 Housing material Steel, zinc galvanized and passivated
25 Weight 50 g
26 Direction of rotation Clockwise, viewed from the front face
RECOMMENDED VALUES
27 Speed up to 8000 rpm
28 Torque up to 2.5 mNm
29 Current up to (thermal limits) 0.450 A
DSPACE: ADQUISICIÓN DE DATOS Y
SIMULACIÓN DE MODELOS
Para el estudio de la respuesta del
motor frente a distintos estímulos
utilizaremos el sistema DSpace.
DSpace nos permite, mediante su
software ControlDesk, realizar una
adquisición de los datos en tiempo
real, y exportar las variables
capturadas al espacio de trabajo
Matlab.
Pero lo más interesante es que
DSpace no es solo un sistema de
adquisición de datos, sino que
mediante sus librerías en Simulink y su compilador RTI podremos utilizar los
propios modelos en Simulink introduciendo bloques que corresponden a entradas
y salidas analógicas y digitales.
Librería DS1102 para Simulink
Todas las entradas y salidas del sistema DSpace existen como bloques que permiten su
programación mediante modelos Simulink.
Montaje del sistema mediante DSpace
A la izquierda, el panel de conexiones de DSpace. Este envía mediante una de sus
salidas analógicas una señal en voltios a la etapa de potencia, arriba a la derecha, que
la amplifica y la alimenta al motor, abajo a la derecha. Éste posee un encoder
incremental, el cual es leído de nuevo por DSpace mediante una de las conexiones
especializadas para ello.
De esta manera, DSpace no solo adquiere los datos del motor, sino que suministra su
señal. Esta no tiene porqué estar prefijada, sino que puede ser un complejo sistema
en lazo cerrado, diseñado mediante Simulink, cuyo valor a la salida hacia el motor
depende en tiempo real del valor leído a la entrada desde el motor.
Esto nos permite, como se verá en la última sección, diseñar un sistema de control de
posición en lazo cerrado mediante PID en Simulink, y utilizar el mismo diseño tanto
para el motor real como para nuestro bloque de motor simulado.
COMPARATIVA MODELO - MOTOR REAL:
VELOCIDAD MÁXIMA SIN CARGA
Utilizaremos el sistema de control y adquisición de datos dSpace para analizar la
respuesta del motor real directamente a partir de un modelo Simulink.
Para ello, emplearemos el siguiente sistema:
El límite para protección del motor, que impide que se le suministren más de 12 voltios,
no juega ningún papel, ya que dicho límite no es sobrepasado.
El bloque proporcional que representa la ganancia de la etapa de potencia es necesario
ya que el motor no es alimentado directamente por el hardware del dSpace, que no
podría suministrar la intensidad de corriente necesaria, sino que es amplificado
mediante un operacional en un montaje cuya ganancia equivale a 2’43. Para evitar que
este valor modifique lo que queremos que el motor reciba en voltios, antes de enviar la
señal al motor la dividimos por dicha ganancia, de forma que cuando el montaje
operacional la multiplique, se obtenga el nivel original de voltaje.
La posición que adquiere el motor, tal como la lee el encoder de posición que trae
incorporado, nos viene dada en revoluciones, es decir, cada unidad representa una
vuelta completa.
En este caso, nuestra prueba será de velocidad, así que convertiremos esta medida a
radianes, y utilizando bloques derivadores, podemos averiguar tanto esta como la
aceleración si así lo deseamos.
El bloque del motor, está formado por:
donde el proporcional a la salida constituye un escalado propio del dSpace para todas
sus salidas, donde un valor numérico de 1 equivale a 10 voltios; y la operación a la
entrada constituye un factor de conversión necesario para adecuar la resolución del
encoder y el tamaño del registro de datos al valor de medida que estamos realizando.
La señal que enviaremos al motor será:
Una rampa de pendiente unidad, que comienza un segundo después de haberse iniciado
la simulación, y llega hasta el nivel de 12 V, donde se mantiene durante 8 segundos.
Con esta señal conseguiremos estudiar la velocidad máxima sin carga del motor, y así
comparar esta con la que nos da el modelo y con la que viene especificada en su hoja de
características.
Respuesta del motor real:
La velocidad máxima sin carga, sometiendo el motor a12 voltios, es de algo menos de
9500 rpm.
Para el modelo del motor, utilizamos el sistema:
Que es similar al anterior, pero cuyos bloques son algo diferentes, ya que:
Se ha añadido externamente el valor del momento de inercia del eje, que hemos
estimado de un valor 5·10-9 Kg·m² (es casi 20 veces mayor que el especificado en la
hoja de características).
El torque aplicado es cero, el motor va sin carga.
Tal como hemos utilizado las constantes del modelo (ver el apartado anterior), la salida
del bloque constituye un valor en rpm, que es adecuado para comparalo con el valor de
velocidad máxima sin carga de la hoja de características.
Para poder comparar los valores de posición y aceleración del modelo con los que se
van observando en el sistema de adquisición de datos, se convierten estos a
revoluciones por segundo, y radianes/s²
Por último, se utiliza un momento de inercia de 5·10-9 Kg·m²
Este último no afecta prácticamente para nada en el resultado de este experimento en
concreto, y su aparición se explica en el siguiente apartado.
La respuesta obtenida del modelo es:
Podemos observar una velocidad máxima sin carga de aproximadamente 9500 rpm.
Consultando la hoja de características, vemos que esta es exactamente la velocidad
especificada:
Velocidad máxima sin carga
para el voltaje nominal Vo=12V
motor real menos de 9500 rpm
modelo de motor 9500 rpm
hoja de características 9500 rpm
EVALUACIÓN DEL MOMENTO DE INERCIA
Hasta ahora hemos estado utilizando una señal que no contenía discontinuidades ni
saltos. Si examinamos la fórmula de la ecuación de la velocidad:
W = Vo/Ke – (T x R) / (Kt x Ke)
Tal cual está escrita parece que en un instante dado, si cambiamos rápidamente el nivel
de voltaje aplicado al motor, como por ejemplo mediante una señal escalón, el cambio
en velocidad efectuado sería a su vez instantáneo.
Esto no sucede así debido al término en T que contiene al momento de inercia, según el
cual:
T = T1 + Tr + J·dw/dt
Donde entra de nuevo en juego la velocidad del sistema. Si J no es cero, esto se
convierte en una ecuación diferencial, y si estamos trabajando sobre posiciones
w = dΘ/dt
entonces todo el sistema es un sistema de orden dos.
ANALOGÍA ENTRE MOMENTO DE INERCIA Y MASA
Para entender esto fácilmente es común utilizar la analogía de la ley de Newton:
F = m · a
Una forma más exacta de esta ecuación es:
F = d(m·v)/dt
pero si m=cte, entonces
F = m · dv/dt = m · a
Lo mismo sucede con el torque y el momento de inercia:
T = d(J ·w)/dt
si J=cte (si no cambia la distribucion de masas en el cuerpo giratorio)
T= J · dw/dt = J · α
Es decir, el momento de inercia tiene en el movimiento giratorio un papel análogo a la
masa en el movimiento lineal, constituye un factor que al aplicar torque al principio se
opone al movimiento, pero cuando el cuerpo se encuentra ya girando, hace que este sea
más difícil de parar.
Para consideraciones de velocidad máxima , donde w=cte , y para una rampa lo
suficientemente lenta, donde casi w=cte en cada instante, resulta que α = 0, y entonces
α · J = 0, por eso antes no hizo falta considerar J.
RESPUESTA A ESCALÓN UNITARIO
Someteremos al modelo y al motor real a una señal escalón unitaria (donde una unidad
corresponde a una vuelta). Es una señal en posición, el sistema es un sistema en lazo
cerrado con un controlador PID (ver apartado siguiente).
Respuesta del modelo para J = 0:
Vemos que si despreciamos el momento de inercia del motor, su comportamiento en
seguir la señal es casi perfecto.
Respuesta del motor:
El motor presenta un comportamiento característico para sistemas de segundo orden.
Debido al sistema en lazo cerrado que realimenta la señal, el motor al principio se pasa
del nivel deseado, realizando un sobreimpulso de valor 1’5, y luego regresa
paulatinamente, realizando unas oscilaciones cada vez más próximas a la señal, durante
un tiempo llamado de asentamiento algo superior a 0’2 segundos.
Para J = 2’7 g·cm² = 2’7 ·10-10
kg·m²
Si incluimos el momento de inercia del eje del motor en el modelo, su respuesta mejora
solo un poco, seguramente debido a que esta medida no ha tenido en cuenta otros
elementos presentes también en el cuerpo giratorio del motor.
Para J = 1 ·10-9
kg·m²
Para J = 2’5 ·10-9
kg·m²
Para J = 5 ·10-9
kg·m²
Este último valor se aproxima bastante bien a la respuesta real de nuestro motor, con
sobreimpulso máximo de más de 1’5, y un tiempo de asentamiento de más de 0’2
segundos. Comparada con la del motor resulta una aproximación bastante buena, y es la
que utilizaremos.
Respuesta del motor:
COMPARATIVA MODELO - MOTOR REAL:
SISTEMA EN LAZO CERRADO
Para una segunda prueba utilizaremos un sistema más complejo, donde se pueda poner
de manifiesto si realmente el modelo es apropiado.
Para ello, utilizaremos un sistema de control en lazo cerrado, mediante un controlador
PID, y compararemos la respuesta del motor y del modelo.
Para el motor, el sistema Simulink será el siguiente:
El controlador PID es un elemento típico de la forma
Donde los valores del PID se han ajustado de manera empírica, de forma que se consiga
una respuesta del motor adecuada, pero sin pretender un comportamiento perfecto de
este, ya que la intención es comparar su funcionamiento imperfecto con el del modelo.
La señal generada esta vez es más complicada:
Nótese además, que se trata de una señal respecto a la posición que el motor debe
adquirir en cada momento, siendo de 0 a 1 una vuelta completa (revolucion), y debiendo
realizar esos cambios en pocos segundos.
El comportamiento del motor fue el siguiente:
Nótese que las escalas de tiempo para el “inicio” de las pruebas en esta y sucesivas
graficas de las medidas del motor y las generadas por el modelo no coinciden debido a
que se utilizo un software diferente. Esto no afecta a los resultados.
Es un comportamiento bastante bueno, salvo por los sobreimpulsos en las
discontinuidades de la señal. Son esas diferencias precisamente las que nos interesan,
más adelante ampliaremos esta gráfica para compararlas con las del modelo.
El sistema Simulink para el modelo del motor será:
El modelo de motor no nos da la posición, pero tras cambiar la velocidad de rpm a
revoluciones/s, e integrando, obtenemos esta representada de una manera equivalente a
la que se obtiene en el motor real.
El comportamiento del sistema fue el siguiente:
A simple vista, un comportamiento bastante similar al del motor real. Analicemos
ambos con más detalle.
DETALLE DEL ESCALÓN INICIAL
Motor Real
Modelo
DETALLE DE LA SECCIÓN DE LA RAMPA
Motor
Modelo
DETALLE DE LA SECCIÓN DE SUCESIÓN DE DESNIVELES
Motor
Modelo
SEÑAL COMPLETA
Motor
Modelo

Modelo motor

  • 1.
    Universidad de Huelva I.T.Informática de Sistemas MMOODDEELLOO DDEE MMOOTTOORR DDCC EENN SSIIMMUULLIINNKK YY CCOOMMPPAARRAATTIIVVAA CCOONN MMOOTTOORR RREEAALL MMEEDDIIAANNTTEE DDSSPPAACCEE Alumno: Vicente Herrera García Profesor: Dr. Omar Sánchez Pérez
  • 2.
    CONTENIDO Este documento esun estudio sobre el desarrollo en Simulink de un bloque que simule el comportamiento de un motor real a partir de datos existentes en su hoja de características. Incluye su desarrollo teórico, la implementación en Simulink y la comparación con un motor real. Apartados: Faulhaber Aplication Notes En este apartado incluimos unas notas teóricas del fabricante de servomotores Faulhaber, que han servido de base a este estudio. Ecuación de la Velocidad Resumen final con la ecuación de velocidad de un motor en función del torque y el voltaje, así como de constantes físicas del mismo. Distintas formas de expresar dicha ecuación. Análisis dimensional Análisis de la coherencia entre las unidades de medida, y la forma más adecuada para trabajar con estas, en la ecuación de velocidad. Modelo Simulink Modelo en Simulink de la ecuación de velocidad, que nos servirá para simular el comportamiento de un motor en Matlab. Hoja de Características de un motor real Características físicas del servomotor Faulhaber Micromo 2230-12s dadas por el fabricante, que será utilizado para compararlo con el modelo en Simulink. DSpace: Adquisición de datos y simulación de modelos Una breve explicación del sistema de adquisición de datos empleado para el estudio del motor, y de cómo se ha realizado el montaje del mismo. Comparativa modelo-motor real: Velocidad máxima sin cargar El motor real y el modelo en una comparativa donde se comprueba su velocidad máxima sin carga al voltaje nominal, y se compara con las especificaciones del fabricante. Evaluación del momento de inercia Estudio del efecto en el comportamiento del modelo de el momento de inercia del motor (sin carga), y en que manera es necesario para emular completamente al motor real. Estimación del momento en el motor real. Comparativa Modelo-Motor real: Sistema en lazo cerrado Comparativa del modelo y el motor real en un sistema en lazo cerrado con control mediante PID, cuya variable representativa es la posición, utilizando una señal patrón compleja.
  • 3.
    FAULHABER APLICATION NOTES REFERENCIA: http://www.micromo.com/03application_notes.asp Faulhaber– MicroMo Electronics, Application Notes. Motor Calculation: Numerical calculation Lo siguiente es un extracto de las Aplication Notes que pueden encontrarse en la página web de Faulhaber, un fabricante de motores. Este estudio no solo se centra en los parámetros utilizados para describir sus motores, sino que se trata de unos cálculos genéricos, válidos para otros motores del mismo tipo. Numerical Calculation For an iron-less core, DC motor of relatively small size, the relationships which govern the behavior of the motor in various circumstances can be derived from physical laws and characteristics of the motors themselves. Kirchoff's voltage rule states that "The sum of the potential increases in a circuit loop must equal the sum of the potential decreases." When applied to a DC motor connected in series with a DC power source, Kirchoff's voltage rule can be expressed as "The nominal supply voltage from the power source must be equal in magnitude to the sum of the voltage drop across the resistance of the armature windings and the back EMF generated by the motor.": Vo = (I x R) + Ve Where: Vo = power supply voltage in volts I = current in the circuit in Amps R = resistance of motor windings in Ohms Ve = generated back EMF in volts The back EMF generated by the motor is directly proportional to the angular velocity of the motor. The proportionality constant is the back EMF constant of the motor. Ve = W x Ke Where: W = angular velocity of the motor Ke = back EMF constant of the motor Therefore, by substitution: Vo = (I x R) + (W x Ke) The back EMF constant of the motor is usually specified by the motor manufacturer in volts/RPM or mV/RPM. In order to arrive at a meaningful value for the back EMF, it is necessary to specify the motor velocity in units compatible with the specified back EMF constant.
  • 4.
    The motor constantis a function of the coil design and the strength and direction of the flux lines in the air gap. Although it can be shown that the three motor constants normally specified (back EMF constant, torque constant, and velocity constant) are equal if the proper units are used, calculation is facilitated by the specification of three constants in the commonly accepted units. The torque produced by the rotor is directly proportional to the current in the armature windings. The proportionality constant is the torque constant of the motor. T = I x Kt Where: T = torque developed at rotor Kt = motor torque constant Substituting this relationship: V = (T x R)/Kt + (W x Ke) The torque developed at the rotor is equal to the friction torque of the motor plus the resisting torque due to external mechanical loading: T = Tf + T1 Where: Tf = motor friction torque T1 = load torque Assuming that a constant voltage is applied to the motor terminals, the motor velocity will be directly proportional to sum of the friction torque and the load torque. The constant of proportionality is the slope of the torque-speed curve, given by: Speed loss = -Wo / Ts Where: Wo = motor friction torque Ts = load torque An alternative approach to deriving this value is to solve for velocity, W: W = Vo/Ke - T1 / (Kt x Ke)
  • 5.
    Atención: Existe unaerrata en la fórmula anterior Si despejamos W a partir de V = (T x R)/Kt + (W x Ke) vemos que la formula que obtenemos es W = Vo/Ke – (T1 x R) / (Kt x Ke) y no: W = Vo/Ke - T1 / (Kt x Ke) **no** donde por error ha sido omitido el término R. Es la fórmula correcta la que se presupone se utiliza a continuación para el resto de cálculos. Differentiating both sides with respect to T1 yields: dW/dT1 = -R / (Kt x Ke) Using dimensional analysis to check units, the result is: -Ohms/(oz-in/A) x (V/RPM) = -Ohm-A-RPM/V-oz-in = -RPM/oz-in which is a negative value describing loss of velocity as a function of increased torsional load.
  • 6.
    Sample Calculation Motor 1624T009Sis to be operated with 9 volts applied to the motor terminals. The torque load is 0.2 oz-in. Find the resulting motor speed, motor current, efficiency, and mechanical power output. From the motor data sheet, it can be seen that the no-load speed of the motor at 9 volts is 11,700 rpm. If the torque load is not coupled to the motor shaft, the motor would run at this speed. The motor speed under load is simply the no-load speed less the reduction in speed due to the load. The proportionality constant for the relationship between motor speed and motor torque is the slope of the torque vs speed curve, given by the motor no-load speed divided by the stall torque. In this example, the speed reduction caused by the 0.2 oz-in torque load is: 0.2 oz-in x (11,700 rpm/.634 oz-in) = -3690 rpm The motor speed under load must then be: 11,700 rpm - 3690 rpm = 8010 rpm The motor current under load is the sum of the no-load current and the current resulting from the load. The proportionality constant relating current to torque load is the torque constant (Kt), in this case, 1.039 oz-in/A. In this case, the load torque is 0.2 oz-in, and the current resulting from the load must be: I = 0.2 oz-in x 1 amp/1.039 oz-in = 192 mA The total motor current must be the sum of this value and the motor no-load current. The data sheet lists the motor no-load current as 11 mA. Therefore, the total current is: 192 mA + 11 mA = 203 mA The mechanical power output of the motor is simply the product of the motor speed and the torque load with a correction factor for units (if required). Therefore, the mechanical power output of the motor in this application is: output power = 0.2 oz-in x 8010 rpm x .00074 = 1.18 Watts The mechanical power input to the motor is the product of the applied voltage and the total motor current in Amps. In this application: input power = 9 volts x .203 A = 1.82 Watts Since efficiency is simply power out divided by power in, the efficiency in this application is: efficiency = 1.18 Watts / 1.82 Watts = .65 = 65%
  • 7.
    ECUACIÓN DE LAVELOCIDAD Partiendo de la fórmula utilizada anteriormente: W = Vo/Ke – (T1 x R) / (Kt x Ke) Vamos a estudiar algunas formas de trabajar con ella de manera más adecuada. Para empezar, en el término anterior se suponia que todo el torque que estaba generando el motor es torque aplicado, pero si no despreciamos el torque de rozamiento: T = T1 + Mr W = Vo/Ke – (T x R) / (Kt x Ke) Ya que el torque de rozamiento es un parámetro conocido de las características del motor. En ocasiones en lugar de estudiar el torque nos será más útil utilizar la expresión: T = L · dw/dt donde L es el momento de inercia del sistema. Esta es válida para sistemas en los que el momento L sea constante. Como el torque es una magnitud aditiva, es decir, el torque total generado es igual a la suma de los torques generados para cada caso en particular, podemos generalizar en la forma: W = Vo/Ke – (T x R) / (Kt x Ke) T = T1 + Tw + Mr W : velocidad angular del motor Vo : voltaje aplicado al motor T1 : torque generado Tw = L · dw/dt : torque generado en función de J L : momento de inercia constante Mr : torque de rozamiento R : resistencia del motor Kt : constante de torque del motor Ke : constante de fuerza contraelectromotriz De esta manera, cuando nos interese podemos hacer T1=0, y trabajar solo con valores de L, o viceversa, o utilizar ambos.
  • 8.
    Esta fórmula, enla que tenemos W en función de Vo y T, puede ser despejada en función de las otras variables: Vo en funcion de W y T Vo = W · Ke + (T · R) / Kt T en funcion de Vo y W T = (Vo · Ke) / R – (W · Ke · Kt) / R
  • 9.
    ANÁLISIS DIMENSIONAL Examinando lahoja de características de un motor Faulhaber, vemos que las constantes vienen dadas por: modelo 2230-012S: Ke = 1’250 mV/rpm Kt=Km = 12’00 mNm /A R= 10’8 ohm Deberíamos, para ser consistente con esas unidades, trabajar en: W en rpm T en N·m Vo en V O convertir esas variables a dichas unidades en el momento de utilizar la fórmula, o convertir las unidades de las constantes del motor. Si tenemos en cuenta que: ohm = V/A V= N·m y consideramos aparte los factores mili de las constantes, Ke = 1’250·10-3 V/rpm Km = 12’00·10-3 Nm /A El análisis dimensional resulta: [W] = V / ( V/rpm ) + ( N · m · ohm ) / ( (V/rpm) · (Nm/A) ) [W] = rpm + (V · ohm) / ( (V/A) · (Nm/rpm) ) = = rpm + (V·ohm)/(ohm · V/rpm ) = rpm + rpm [W] = rpm Luego dimensionalmente, la fórmula resulta consistente.
  • 10.
    Las dimensiones elegidasen la hoja de características de Faulhaber para describir el momento de inercia del rotor son: J = 2’70 g·cm² Las unidades naturales que se obtienen para el momento de inercia según las que hemos utilizado hasta ahora serían: si J = T / (dw/dt), entonces [J] = N·m / (rev/min²) Estas unidades son poco apropiadas. Si queremos realizar la conversión, tendremos que hacer lo siguiente: (N·m) / (rev/min²) = ( (N·m) / (rad/s²) ) / ( 2pi /(60·60) ) = =( (kg·m·m/s²) / (rad/s²) ) · ( 60² / 2pi) ) = kg· m² · 60² / 2pi = =g · cm² · (60² / 2pi) · 1000 · 100² = =g · cm² · 602 · 107 / 2pi Es decir, podemos para utilizar directamente el valor del momento de inercia en g·cm² en la fórmula de la velocidad, debemos antes dividirlo por 602 · 107 / 2pi
  • 11.
    MODELO SIMULINK Vamos arealizar un modelo en Simulink que contenga la ecuación de velocidad W = Vo/Ke – (T x R) / (Kt x Ke) Las constantes del motor, R, Ke Kt y Mr se introducirán como bloques constantes dentro del bloque modelo del motor. Para poder estudiar datos adicionales en el modelo, introduciremos también los cálculos de corriente consumida, potencia mecánica generada y eficiencia que se vieron en la Aplication Note de Faulhaber. Modelo 1: Primera versión, con T=T1+Mr
  • 12.
    Modelo 2: Igual alanterior, con cálculo de datos adicionales
  • 13.
    Modelo 3: Modelo definitivo T= T1 + L·dw/dt + Mr Con cálculo de datos adicionales
  • 14.
    HOJA DE CARACTERÍSTICASDE UN MOTOR REAL Utilizaremos el siguiente motor para comparar su comportamiento con el del modelo. Faulhaber DC-Micromotors 2,1 Watt Precious Metal Commutation Serie 2230 012 S 2230 T 012 S 1 Nonimal Voltage UN 12 Volt 2 Terminal resistance R 10.8 Ω 3 Output Power P2 max. 3.27 W 4 Efficiency η max. 83 % 5 No-load speed no 9500 rpm 6 No-load current (with shaft d 1,5 mm) Io 0.010 A 7 Stall torque MH 13.20 mNm 8 Friction torque MR 0.12 mNm 9 Speed constant kn 799 rpm/V 10 Back-EMF constant kE 1.250 mV/rpm 11 Torque constant kM ó kt 12.00 mNm/A 12 Current constant kI 0.084 A/mNm 13 Slope of n-M curve ∆n/∆Μ 720 rpm/mNm 14 Rotor inductance L 420 µH 15 Mechanical time constant τ m 20 ms 16 Rotor inertia J 2.70 gcm² 17 Angular acceleration α max. 50 ·103 rad/s² 18 Thermal resistance Rth 1 / Rth 2 4/28 K/W 19 Thermal time constant τ w1 / τ w2 4.5/602 s 20 Operating temperature range: -motor -30…+85 (optional –55…+125) ºC -rotor, max. permissible +125 ºC 21 Shaft bearings ball bearings 22 Shaft load max.: (optional) -with shaft diameter 2.0 mm -radial at 3000 rpm (3 mm from bearing) 8 N -axial at 3000 rpm 0.8 N -axial at standstill 10 N 23 Shaft play: -radial ∠ 0.015 mm -axial ∠ 0.2 mm 24 Housing material Steel, zinc galvanized and passivated 25 Weight 50 g 26 Direction of rotation Clockwise, viewed from the front face RECOMMENDED VALUES 27 Speed up to 8000 rpm 28 Torque up to 2.5 mNm 29 Current up to (thermal limits) 0.450 A
  • 15.
    DSPACE: ADQUISICIÓN DEDATOS Y SIMULACIÓN DE MODELOS Para el estudio de la respuesta del motor frente a distintos estímulos utilizaremos el sistema DSpace. DSpace nos permite, mediante su software ControlDesk, realizar una adquisición de los datos en tiempo real, y exportar las variables capturadas al espacio de trabajo Matlab. Pero lo más interesante es que DSpace no es solo un sistema de adquisición de datos, sino que mediante sus librerías en Simulink y su compilador RTI podremos utilizar los propios modelos en Simulink introduciendo bloques que corresponden a entradas y salidas analógicas y digitales. Librería DS1102 para Simulink Todas las entradas y salidas del sistema DSpace existen como bloques que permiten su programación mediante modelos Simulink.
  • 16.
    Montaje del sistemamediante DSpace A la izquierda, el panel de conexiones de DSpace. Este envía mediante una de sus salidas analógicas una señal en voltios a la etapa de potencia, arriba a la derecha, que la amplifica y la alimenta al motor, abajo a la derecha. Éste posee un encoder incremental, el cual es leído de nuevo por DSpace mediante una de las conexiones especializadas para ello. De esta manera, DSpace no solo adquiere los datos del motor, sino que suministra su señal. Esta no tiene porqué estar prefijada, sino que puede ser un complejo sistema en lazo cerrado, diseñado mediante Simulink, cuyo valor a la salida hacia el motor depende en tiempo real del valor leído a la entrada desde el motor. Esto nos permite, como se verá en la última sección, diseñar un sistema de control de posición en lazo cerrado mediante PID en Simulink, y utilizar el mismo diseño tanto para el motor real como para nuestro bloque de motor simulado.
  • 17.
    COMPARATIVA MODELO -MOTOR REAL: VELOCIDAD MÁXIMA SIN CARGA Utilizaremos el sistema de control y adquisición de datos dSpace para analizar la respuesta del motor real directamente a partir de un modelo Simulink. Para ello, emplearemos el siguiente sistema: El límite para protección del motor, que impide que se le suministren más de 12 voltios, no juega ningún papel, ya que dicho límite no es sobrepasado. El bloque proporcional que representa la ganancia de la etapa de potencia es necesario ya que el motor no es alimentado directamente por el hardware del dSpace, que no podría suministrar la intensidad de corriente necesaria, sino que es amplificado mediante un operacional en un montaje cuya ganancia equivale a 2’43. Para evitar que este valor modifique lo que queremos que el motor reciba en voltios, antes de enviar la señal al motor la dividimos por dicha ganancia, de forma que cuando el montaje operacional la multiplique, se obtenga el nivel original de voltaje. La posición que adquiere el motor, tal como la lee el encoder de posición que trae incorporado, nos viene dada en revoluciones, es decir, cada unidad representa una vuelta completa. En este caso, nuestra prueba será de velocidad, así que convertiremos esta medida a radianes, y utilizando bloques derivadores, podemos averiguar tanto esta como la aceleración si así lo deseamos.
  • 19.
    El bloque delmotor, está formado por: donde el proporcional a la salida constituye un escalado propio del dSpace para todas sus salidas, donde un valor numérico de 1 equivale a 10 voltios; y la operación a la entrada constituye un factor de conversión necesario para adecuar la resolución del encoder y el tamaño del registro de datos al valor de medida que estamos realizando. La señal que enviaremos al motor será: Una rampa de pendiente unidad, que comienza un segundo después de haberse iniciado la simulación, y llega hasta el nivel de 12 V, donde se mantiene durante 8 segundos. Con esta señal conseguiremos estudiar la velocidad máxima sin carga del motor, y así comparar esta con la que nos da el modelo y con la que viene especificada en su hoja de características.
  • 20.
    Respuesta del motorreal: La velocidad máxima sin carga, sometiendo el motor a12 voltios, es de algo menos de 9500 rpm.
  • 21.
    Para el modelodel motor, utilizamos el sistema: Que es similar al anterior, pero cuyos bloques son algo diferentes, ya que: Se ha añadido externamente el valor del momento de inercia del eje, que hemos estimado de un valor 5·10-9 Kg·m² (es casi 20 veces mayor que el especificado en la hoja de características). El torque aplicado es cero, el motor va sin carga. Tal como hemos utilizado las constantes del modelo (ver el apartado anterior), la salida del bloque constituye un valor en rpm, que es adecuado para comparalo con el valor de velocidad máxima sin carga de la hoja de características. Para poder comparar los valores de posición y aceleración del modelo con los que se van observando en el sistema de adquisición de datos, se convierten estos a revoluciones por segundo, y radianes/s² Por último, se utiliza un momento de inercia de 5·10-9 Kg·m² Este último no afecta prácticamente para nada en el resultado de este experimento en concreto, y su aparición se explica en el siguiente apartado.
  • 22.
    La respuesta obtenidadel modelo es: Podemos observar una velocidad máxima sin carga de aproximadamente 9500 rpm. Consultando la hoja de características, vemos que esta es exactamente la velocidad especificada: Velocidad máxima sin carga para el voltaje nominal Vo=12V motor real menos de 9500 rpm modelo de motor 9500 rpm hoja de características 9500 rpm
  • 23.
    EVALUACIÓN DEL MOMENTODE INERCIA Hasta ahora hemos estado utilizando una señal que no contenía discontinuidades ni saltos. Si examinamos la fórmula de la ecuación de la velocidad: W = Vo/Ke – (T x R) / (Kt x Ke) Tal cual está escrita parece que en un instante dado, si cambiamos rápidamente el nivel de voltaje aplicado al motor, como por ejemplo mediante una señal escalón, el cambio en velocidad efectuado sería a su vez instantáneo. Esto no sucede así debido al término en T que contiene al momento de inercia, según el cual: T = T1 + Tr + J·dw/dt Donde entra de nuevo en juego la velocidad del sistema. Si J no es cero, esto se convierte en una ecuación diferencial, y si estamos trabajando sobre posiciones w = dΘ/dt entonces todo el sistema es un sistema de orden dos. ANALOGÍA ENTRE MOMENTO DE INERCIA Y MASA Para entender esto fácilmente es común utilizar la analogía de la ley de Newton: F = m · a Una forma más exacta de esta ecuación es: F = d(m·v)/dt pero si m=cte, entonces F = m · dv/dt = m · a Lo mismo sucede con el torque y el momento de inercia: T = d(J ·w)/dt si J=cte (si no cambia la distribucion de masas en el cuerpo giratorio) T= J · dw/dt = J · α Es decir, el momento de inercia tiene en el movimiento giratorio un papel análogo a la masa en el movimiento lineal, constituye un factor que al aplicar torque al principio se opone al movimiento, pero cuando el cuerpo se encuentra ya girando, hace que este sea más difícil de parar. Para consideraciones de velocidad máxima , donde w=cte , y para una rampa lo suficientemente lenta, donde casi w=cte en cada instante, resulta que α = 0, y entonces α · J = 0, por eso antes no hizo falta considerar J.
  • 24.
    RESPUESTA A ESCALÓNUNITARIO Someteremos al modelo y al motor real a una señal escalón unitaria (donde una unidad corresponde a una vuelta). Es una señal en posición, el sistema es un sistema en lazo cerrado con un controlador PID (ver apartado siguiente). Respuesta del modelo para J = 0: Vemos que si despreciamos el momento de inercia del motor, su comportamiento en seguir la señal es casi perfecto. Respuesta del motor: El motor presenta un comportamiento característico para sistemas de segundo orden. Debido al sistema en lazo cerrado que realimenta la señal, el motor al principio se pasa del nivel deseado, realizando un sobreimpulso de valor 1’5, y luego regresa paulatinamente, realizando unas oscilaciones cada vez más próximas a la señal, durante un tiempo llamado de asentamiento algo superior a 0’2 segundos.
  • 25.
    Para J =2’7 g·cm² = 2’7 ·10-10 kg·m² Si incluimos el momento de inercia del eje del motor en el modelo, su respuesta mejora solo un poco, seguramente debido a que esta medida no ha tenido en cuenta otros elementos presentes también en el cuerpo giratorio del motor. Para J = 1 ·10-9 kg·m² Para J = 2’5 ·10-9 kg·m²
  • 26.
    Para J =5 ·10-9 kg·m² Este último valor se aproxima bastante bien a la respuesta real de nuestro motor, con sobreimpulso máximo de más de 1’5, y un tiempo de asentamiento de más de 0’2 segundos. Comparada con la del motor resulta una aproximación bastante buena, y es la que utilizaremos. Respuesta del motor:
  • 27.
    COMPARATIVA MODELO -MOTOR REAL: SISTEMA EN LAZO CERRADO Para una segunda prueba utilizaremos un sistema más complejo, donde se pueda poner de manifiesto si realmente el modelo es apropiado. Para ello, utilizaremos un sistema de control en lazo cerrado, mediante un controlador PID, y compararemos la respuesta del motor y del modelo. Para el motor, el sistema Simulink será el siguiente: El controlador PID es un elemento típico de la forma Donde los valores del PID se han ajustado de manera empírica, de forma que se consiga una respuesta del motor adecuada, pero sin pretender un comportamiento perfecto de este, ya que la intención es comparar su funcionamiento imperfecto con el del modelo.
  • 28.
    La señal generadaesta vez es más complicada: Nótese además, que se trata de una señal respecto a la posición que el motor debe adquirir en cada momento, siendo de 0 a 1 una vuelta completa (revolucion), y debiendo realizar esos cambios en pocos segundos. El comportamiento del motor fue el siguiente: Nótese que las escalas de tiempo para el “inicio” de las pruebas en esta y sucesivas graficas de las medidas del motor y las generadas por el modelo no coinciden debido a que se utilizo un software diferente. Esto no afecta a los resultados. Es un comportamiento bastante bueno, salvo por los sobreimpulsos en las discontinuidades de la señal. Son esas diferencias precisamente las que nos interesan, más adelante ampliaremos esta gráfica para compararlas con las del modelo.
  • 29.
    El sistema Simulinkpara el modelo del motor será: El modelo de motor no nos da la posición, pero tras cambiar la velocidad de rpm a revoluciones/s, e integrando, obtenemos esta representada de una manera equivalente a la que se obtiene en el motor real. El comportamiento del sistema fue el siguiente: A simple vista, un comportamiento bastante similar al del motor real. Analicemos ambos con más detalle.
  • 30.
    DETALLE DEL ESCALÓNINICIAL Motor Real Modelo
  • 31.
    DETALLE DE LASECCIÓN DE LA RAMPA Motor Modelo
  • 32.
    DETALLE DE LASECCIÓN DE SUCESIÓN DE DESNIVELES Motor Modelo
  • 33.