Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Implementación de un
motor de inducción
de control Esquema
trifásico
Por
Gareth Stephen Roberts
Departamento de Tecnología de la Información e
Ingeniería Eléctrica,
la Universidad de Queensland
El Director de la Escuela,
Facultad de Tecnología de la Información e Ingeniería
Eléctrica, Universidad de Queensland,
Santa Lucía, Queensland, 4072
De acuerdo con los requisitos del grado de Licenciatura en Ingeniería (con honores) en la
división de Ingeniería Eléctrica, presento la siguiente tesis titulada “Diseño e
Implementación de un control del motor de inducción trifásico Esquema”. Esta tesis se
llevó a cabo bajo la supervisión del Dr. Geoff Walker.
Este proyecto de tesis no ha sido sometido a cualquier otra Universidad. Declaro que
este trabajo no ha sido publicado o escrito por cualquier otra persona, excepto cuando
se hace referencia al texto.
Tuyo sinceramente,
Gareth Roberts.
Este proyecto de tesis se centra en derivar un esquema de control para conducir una
máquina de inducción que se podría aplicar a los vehículos eléctricos. máquinas de
inducción son de uso en la industria debido a su robustez, fiabilidad, bajo precio y alta
eficiencia (hasta 80%). Sin embargo, hasta los últimos tiempos, ha sido difícil de
controlar el par del motor de inducción.
El Dr. Geoff Walker, mi supervisor, por tomarse el tiempo a través de todo el curso
del año para ofrecer explicaciones claras y entusiastas. El Dr. Walker siempre fue
capaz de guiar la tesis a lo largo del camino correcto.
Sr. David Finn por prestarme su tablero de control del motor. David también proporcionó
la información requerida necesaria para hacer funcionar este tablero.
Mi familia, para ofrecer apoyo a través de mis años universitarios; Este año en particular.
Resumen………………………………………………………….. yo
Expresiones de ii
gratitud……………………………………………….
Lista de figuras e ilustraciones ....................................... iii
Capítulo 9 - Conclusión…………………………………………. 64
9.1Summary y
Conclusión…………………………... 64
9.2Future
trabajo…………………………………………. 64
Bibliografía……………………………………………………… 66
Motor
Lista de Figuras
Un coche híbrido fue lanzado comercialmente este año. Combina dos o más fuentes de
energía; el coche híbrido de gasolina y electricidad, por ejemplo, hace precisamente esto.
Wildi [1] es una fuente excelente de información sobre la teoría detrás de la operación de
un motor de inducción. La máquina de inducción trifásico se presenta en el capítulo 13.
Los fenómenos electromagnéticos y mecánicos que son responsables de muchas ventajas
del motor de inducción se explican claramente. Wildi también presenta los dos tipos de
motores de inducción: “el motor de inducción de jaula de ardilla” y el “motor de heridas”.
se da una explicación de las ventajas y desventajas de cada uno. conceptos esenciales
como la “velocidad de sincronismo”, “deslizamiento”, “par” y las entradas de entrega de
potencia se presentan e ilustran con ejemplos de problemas. El circuito eléctrico
equivalente para un motor de inducción se deriva sobre la base del transformador
trifásico.
Este libro también presenta los fundamentos del motor de inducción de un punto de vista
práctico. Las pequeñas y grandes tipos de motor se distinguen, donde se muestran las
características eléctricas y mecánicas típicas de cada uno. En los capítulos posteriores (20
a 23), Wildi lleva al lector a través de algunos de los métodos existentes de accionar un
motor de inducción:
cargos estáticos de frecuencia
controladores de voltaje estático
sistemas rectificador-inversor con conmutación línea
sistemas rectificador-inversor con auto-conmutación
sistemas de modulación de ancho de pulso
sistemas de modulación por ancho de pulso son los únicos esquemas de control que se
pueden considerar para esta tesis como el controlador de motor está diseñado
específicamente para la modulación por ancho de pulso.
El texto de Mohan, Undeland y Robbins [2] da una buena explicación de los principios
de funcionamiento de la máquina de inducción. Conceptos tales como el funcionamiento
del motor de inducción en la región de par constante, voltios por el control hertz, la
puesta en marcha consideraciones y la conducción de una máquina de inducción con un
inversor de puente de tres fases se explican.
El libro de bimal K. Bose que editó en 1996 [4] presenta amplias explicaciones sobre el
control de FO. Conceptos que comprenden el control de campo orientadas (FO), tales
como los sistemas de referencia rotativos y estacionarios, Clarke y Parque transforma,
controladores PI y PWM son explicó ampliamente. Bose también ejemplifica algunos
modelos de MATLAB que se pueden utilizar para simular el control FO. En las etapas
posteriores, “auto-sintonización” y “menos sensor-” control FO se investigan. Bose
también ofrece las explicaciones generales del lector en los microprocesadores y la forma
en que son los medios de control central de control de FO.
El libro, los sistemas de control de ingeniería [7] está dedicado a presentar los
conceptos de generar un diseño de control. Además, MATLAB se utiliza
extensivamente a través del curso del libro. Sin embargo, “Simulación dinámica de la
maquinaria eléctrica utilizando MATLAB / SIMULINK” [6] es un libro que presenta
específicamente cómo aplicar el control de FO en MATLAB, cómo modelar un motor
de inducción en MATLAB y los aspectos de diseño de control de control de FO.
3. El diseño de hardware
El usuario aplica una señal de entrada (por ejemplo, el acelerador del coche) que se
alimenta en el generador de comandos del controlador DSP. El controlador DSP
manipulará esta señal de control para producir señales de que el motor de inducción
puede funcionar fuera. Estas señales se convierten en señales PWM (modulada en
anchura) de modo que el MOSFET Full-puente (Metal-Óxido Efecto silicio Campo
Transistor) inversor en el controlador del motor puede amplificar estas señales a niveles
sustanciales de tensión. Se prevé que las señales PWM amplificados entonces inducir un
par motor en el rotor del motor de inducción que es proporcional a la magnitud de la
señal de entrada aplicada por el usuario. El diseño utilizará un codificador que envía
hacia abajo pulsos que pueden ser manipulados para calcular la velocidad y la posición
del rotor. Los pulsos del codificador y las corrientes medidas extraídas por el motor de
inducción forman la parte de realimentación del diseño. Por lo tanto, el principal objetivo
de este proyecto de tesis es desarrollar una estrategia de control para el controlador DSP
que controla la producción de par dentro de la máquina de inducción. Sin embargo, no
hay gran énfasis en el control de par preciso.
3.2. El controlador de motor existente
tablero de control del motor de David Finn se puede ver en la figura 3.2. Hay dos
características principales que son de particular relevancia a este proyecto de tesis:
Teniendo en cuenta la tasa que se detectan los impulsos, la resolución resultante del
ángulo de posición del rotor parece ser más que adecuado para el control de par para
este proyecto. Si la resolución del ángulo del rotor no era satisfactoria, el diseño de
software tendría que interpolar entre los pulsos. Esto se discute en la sección de
software (Capítulo 7).
4. La máquina de inducción
Estos parámetros son importantes para las estrategias de control que serán presentados en el capítulo
5. La máquina de inducción usado en este proyecto de tesis tiene los siguientes
parámetros eléctricos:
E = tensión nominal de fase, 127 Vrms
P Puntuación = potencia, 500W y
0.67hp p = pares de polos, 2
rs = resistencia del estator,
4,495 Ω rr '= resistencia del
rotor, 5.365 Ω xs =
inductancia del estator, 16
mH xr' = inductancia del
rotor, 13 mH
XM = inductancia de magnetización,
149 mH Mnom = par nominal, 3,41
Nm
J = rotor de inercia, 0,95 × 10-3 kg ● m2
Por lo tanto, la corriente a plena carga para este motor trifásico se puede calcular
utilizando la siguiente ecuación aproximada:
Un motor de inducción nunca viaja a la velocidad síncrona; es por eso que se hace
referencia a máquinas como asíncronos. Cuando no se aplica carga al rotor, la máquina
de inducción tiene un trozo de 0,5%. Cuando el rotor está bloqueado, el deslizamiento es,
por supuesto, 100%. En condiciones de rotor bloqueado, la corriente puede ser de cinco a
seis veces la corriente a plena carga, por lo que las pérdidas I2R 25 a 36 veces mayor de
lo normal. Por este motivo, no se recomienda dejar el rotor bloqueado durante más de
unos pocos segundos [1]. La curva de velocidad de par para el tipo de motor de inducción
usado en este proyecto de tesis puede verse sobre-página.
Figura 4.2. La curva de velocidad de par de la máquina de inducción a la tensión nominal utilizada en esta tesis
Como se puede ver, no hay una relación simple entre la velocidad y el par, esta es la
razón por la inspección de esta curva es tan importante. torque Desglose representa el par
máximo que la carga se puede aplicar antes de que el motor de inducción es incapaz de
desarrollar velocidad. La velocidad nominal es la velocidad angular que la máquina de
inducción acelera hacia para una tensión y frecuencia dada. Por lo tanto, mediante la
aplicación de diferentes voltajes de diferente frecuencia (tensión y frecuencia que
aumentar en la misma proporción con el fin de mantener un flujo del rotor constante),
podemos girar la máquina de inducción en una amplia gama de velocidades nominales y
valores par nominal. Al cambiar la velocidad nominal desarrollado, la curva de velocidad
de par se desplaza horizontalmente a lo largo del eje x.
Por lo general, la operación de velocidad del motor tiene un límite superior que es igual a
la velocidad nominal del motor. El funcionamiento del motor de inducción por encima de
la velocidad nominal afecta a la eficiencia de la producción de accionamiento y el par
debido a la disipación de calor y la saturación magnética [17]. Por lo tanto, el flujo del
rotor debe ser reducida de manera que se extiende el rango de operación de alta
eficiencia de la unidad de motor. Considere la figura se ve a continuación:
Figura 4.3. La operación de debilitamiento de campo
En resumen, las principales consideraciones de diseño para accionar un motor de inducción son:
Por lo tanto, es necesario desarrollar una estrategia de control que varía la frecuencia y
el voltaje de la señal aplicada a los devanados del motor de inducción, mientras que el
control del flujo creado en el espacio de aire del motor de inducción. Esto se muestra en
el siguiente capítulo.
5. Control de campo-orientadas (FOC)
Para simplificar las ecuaciones y para proporcionar un control sobre la producción de par
de una manera directa, ambas ecuaciones estator y del rotor se expresan con respecto a
un eje de referencia común. Este eje es a lo largo del λr campo del rotor, a una θrf ángulo
del flujo del rotor con respecto al eje del estator s1 ( “un eje” en la figura 5.1). Con el fin
de expresar el par en términos de la λr flujo del rotor y la corriente del estator, hacen
referencia a un ejes dq ortogonales se introduce marco. La directa (d) eje x siempre está
alineado con el λr flujo del rotor, mientras que la cuadratura (q) eje x es siempre 900 por
delante del eje d. El vector de espacio actual se puede descomponer a lo largo del dq ejes
como:
es = ISD + JISQ (5,1)
Figura 5.1. La transformación del marco de referencia estacionario al marco de
referencia de rotación [9]
Por lo tanto, el concepto FOC implica que los componentes de control de corriente
aplicada al sistema son en fase (componente de flujo) y en cuadratura (componente de
par) a la λr flujo del rotor. Por el bloqueo de la fase del sistema de referencia de manera
que el flujo del rotor está totalmente en el eje d (d-eje), la siguiente restricción
matemática eventúa:
λqr = 0 (5,2)
El par electromagnético desarrollado por el motor puede, por lo tanto, ser
mostrado por Tem = kt ● λdr ● isq (5,3)
Por lo tanto, la corriente del estator a lo largo del eje en
cuadratura está dada por: isq = Tem ÷ (kt ● λdr) (5,4)
Finalmente, la siguiente relación se puede demostrar el rotor de flujo a lo largo del eje directo:
λdr = KR ● ISD (5,5)
La corriente del estator a lo largo del eje directo está dada por:
ISD = λdr ÷ KR (5,6)
Donde kt y KR son constantes que dependen de la estator y la resistencia del rotor y la
inductancia. Tener ecuaciones que dependen de variables que describen el motor en
consecuencia dará lugar a un mejor control de las variaciones de par. Al mantener λdr y,
por lo tanto, ISD en un valor constante, el par electromagnético desarrollado por el rotor
Tem está completamente determinada por la corriente del estator a lo largo del eje en
cuadratura, isq, como se ve en la ecuación (5.3). Por lo tanto, isq se convierte en el
comando deseado de control de par.
yos
= cos - yoD
yos pecado akota (5,8)
del
sin
Sur
cos yocu
adrad
os
y 0 yo (5,9)
os = - s
a
- - yo
y s
os
b
o
Ca
rol
ina
del
Su
r
Para obtener el ángulo de posición de la del flujo del rotor se requiere, en primer lugar,
un codificador conectado en el eje del rotor; este se utiliza para detectar la posición del
rotor (con la ayuda de software). En segundo lugar, tenemos que calcular el “ángulo de
deslizamiento”. Esto se calcula mediante el uso de
L • yocuadrados
metro=
(5,10)
resbalón
Tr • r
Por lo tanto, el ángulo del flujo del rotor está dada por:
= ∫ (slip + rotor) dt (5,11)
5.3. El controlador PI
El controlador PI es un medio eficaz de regular la torsión y tensión magnitudes a los
valores deseados. También mejora el error de estado estacionario y la sensibilidad de
error [4]. Esto se consigue proporcionando una ganancia para el término de error con una
corrección componente integral. Kp es la ganancia proporcional y Ki es la ganancia
integral del bucle de realimentación. El controlador PI se ejecutará completamente en la
sección de software del diseño. Vía
El análisis de MATLAB, tenemos que encontrar los polos y los ceros necesarios para el
diseño de modo que la respuesta transitoria es rápido y los errores de estado
estacionario se reducen al mínimo.
señal de comando +
Error Error × Kp
Corrección
-
+
La señal de realimentación Error × Ki
Figura 5.2. El controlador PI
El objetivo de PWM es dar forma y controlar los voltajes de salida de tres fases en la
magnitud y la frecuencia mediante la utilización de un voltaje de CC constante. PWM es
un proceso donde las señales sinusoidales de tres fases se comparan con una forma de
onda triangular frecuencia de conmutación repetitivo. En el diseño del software, el núcleo
DSP causará interrupciones periódicas donde los tres valores sinusoidales se introducen
en 3 registros comparar (véase el capítulo 7). El TMS320F243 DSP creará el PWM
sincronizados simétrica deseada a través de los generadores de señales 6 PWM. Las 6
señales PWM se aplican a las 6 MOSFETs en el inversor de tres fases en el controlador
de motor de David Finn a través de los controladores MOSFET.
La frecuencia de la onda triangular es 20 kHz. Esto es compatible para su uso con los
MOSFETs existentes a bordo controlador de motor de David Finn. A pesar de esto,
debido a las finitos de encendido y los tiempos de giro fuera asociados con cualquier tipo
de interruptor, el diseño requiere la inclusión de retardos de tiempo ligeras cuando los
MOSFETs están cambiando. Una banda muerta es el retardo de tiempo entre la
desconexión de un MOSFET en una fase del inversor y de conectar el MOSFET
complementario. Esto asegura que cualquier retraso en el tiempo
la desconexión de un dispositivo no conduce a un cortocircuito de tiro a través de que
puede dañar el circuito cuando su pareja está encendido.
El diseño empleado aquí se refiere como “indirecta orientación del campo.” Esto se debe
a que este método utiliza un sensor de velocidad en el circuito de retroalimentación en
lugar de un sensor Hall que utiliza el método directo. ω * es el de entrada aplicada por el
usuario (el acelerador del coche). Esto se compara con la velocidad alcanzada del rotor
que se obtiene del sensor de velocidad.
Este se convierte entonces en una señal de par electromagnético Tem * a través del
controlador de par (este es un controlador PI). La velocidad obtenida del rotor también se
utiliza para fijar el rotor requerido flujo λr * que se necesita para ser creado en el motor
de inducción en el entrehierro. El 'Field-Debilitamiento del bloque' compara el valor de la
velocidad de entrada y salida a un valor de flujo deseada. En su mayor parte, el motor de
inducción requiere flujo del rotor constante, sin embargo, a altas velocidades positivas y
negativas, el bloque de debilitamiento de campo tendrá que disminuir el flujo de salida de
una manera no lineal. El Tem * y λdr * Las señales se convierten entonces en ISD y ISQ
señales utilizando las ecuaciones (5.4) y (5.6) que se ha indicado anteriormente.
Se concluye que FOC proporciona un medio fiable y eficaz de controlar el par y el flujo.
Para este proyecto, no es básicamente una entrada de par variable (el acelerador del
coche), que puede controlar directamente el par del motor de inducción por medio de
FOC. Además, FOC facilita la operación de cuatro cuadrantes, plena capacidad de par
motor a bajas velocidades y una mayor eficiencia (en comparación con el método
tradicional de control de voltios / frecuencia) para cada punto de funcionamiento en una
amplia gama de velocidades [4]. Por lo tanto, FOC es elegido como medio de control de
movimiento para este proyecto de tesis. Este diseño completo tendrá que ser probado en
un programa de simulación de ordenador llamado MATLAB. Todo esto diseño discutidos
excepto para la amplificación de las señales PWM comprenderá el diseño de código C
que se descargarán en el controlador DSP.
6. El diseño de MATLAB
Hay dos entradas en este sistema, ω * y T_load. La intención fundamental de este diseño
SIMULINK, es que la parte de control FO del diseño hará que el rotor para generar un
perfil de velocidad que sigue a la entrada de velocidad mandado, ω *. Para ello, la señal
de velocidad comandado se alimenta en la sección de FO del diseño en el que se resta de
la velocidad medida del rotor. El error generado se alimenta entonces en un bloque de
controlador de par. El bloque de controlador de par es un controlador PI que genera una
orden de par, Tem *. Este comando de par se utiliza para establecer el par
electromagnético inducido dentro del motor de inducción mediante el cálculo de un IQS
apropiadas * comando basándose en la señal Tem * generado y utilizando la ecuación
5.4.
Figura 6.2. El diseño completo SIMULINK
tem *, lambdare_r (La señal producida a partir de la tabla de consulta), junto con theta_r
(La integral de la velocidad del rotor) se introducen en el bloque FO_Controller.
Explicación del funcionamiento de este bloque no es de gran relevancia para esta tesis.
En resumen, este bloque permite al diseñador:
Mediante el uso de esta ecuación:
2Jωsegundo d (ωr/ ωsegundo) = T
em + Tmech - Thúmedo
pdt (6,2)
El rotor de velocidad mecánico se puede calcular, que es esencial para toda la
operación de este diseño SIMULINK.
Observar la respuesta dinámica de este método de control de vector
Ver lo bien que tal control mantiene constante el flujo del rotor durante los
cambios de par de carga.
6.3. Simulación del diseño MATLAB
Otros criterios que estamos buscando son para lograr una rápida respuesta
transitoria (aceleración rápida) y una respuesta que es “suave”.
Figura 6.9. Los resultados de la simulación de velocidad de MATLAB
Para la simulación llevada a cabo, la entrada de velocidad alimenta en este sistema (en la
figura 6.2) rampas a 200 rpm para la primera 0.5s y luego se mantiene a 200 rpm para el
1.5s restante; esto se puede ver en la figura 6.9. La otra curva, que se asemeja a un
segundo orden de respuesta del sistema de control de sobre-humedecido, es la velocidad
real desarrollado por el motor. La principal conclusión que se puede extraer de este
gráfico es que nuestro diseño funciona y no hay ninguna indicación sustancial de
inestabilidad. La curva de respuesta de velocidad se asemeja adecuadamente la curva de
comando de velocidad. De la figura 6.9, se puede observar que cuando el comando de
entrada de la velocidad es constante, la velocidad de respuesta es relativamente constante.
Por lo tanto, se concluye este sistema es aceptablemente estable. Recordando que este
esquema de control del motor sólo se utiliza para conducir un hiper o coche eléctrico,
Para esta simulación, el error de estado estacionario es de 8 rpm, que es 4%. Digamos,
por motivo de la discusión, que es equivalente a 200 rpm 60 km h-1 para el coche
eléctrico. Además, el usuario proporciona el comando de entrada de velocidad mediante
la aplicación de una fuerza sobre el pedal del acelerador. UNA
error de estado estacionario de esta magnitud no es de ninguna preocupación real como
el usuario simplemente presiona el pedal del acelerador hacia abajo hasta que él / ella ve
que la velocidad desarrollada por el coche está a 60 km h-1 a través de la lectura del
velocímetro en el tablero de instrumentos de la coche. Sin embargo, la inspección de la
figura 6.9 sugiere que hay espacio para acelerar la respuesta transitoria. Para ello,
tendríamos que añadir más ganancia proporcional al controlador de par (el controlador
PI para la señal de error de velocidad) [7]. Por lo tanto, se llevó a cabo un experimento
donde la ganancia proporcional se aumentó de 30 a 60. Los resultados pueden verse a
continuación:
Figura 6.10. La velocidad de respuesta del sistema de control, donde se aumenta la ganancia
proporcional del regulador de velocidad
Como se puede ver, la respuesta transitoria es más rápido, ya que sigue la pendiente de
orden de velocidad más de cerca. El problema con esta velocidad de respuesta es que la
respuesta de rampa no es muy suave; en cambio, es bastante grueso e irregular. Esto
indica la existencia de componentes de alta frecuencia que tienen las magnitudes de
voltaje significativos. Esto podría ser el ruido o armónicos. Ambos afectan a corto plazo
y a largo plazo el rendimiento de la máquina de inducción. Según Bose [3], los
armónicos pueden causar lo siguiente para una máquina de inducción:
Armonía:
Puede causar daños de par y velocidad (frecuencia de reluctancia y golpes)
Puede causar un sobrecalentamiento del motor debido a exceso de pérdidas de hierro y de cobre
Causas transitorios de corriente de motor que sobrecargar la capacidad del inversor de conmutación.
Además, estos componentes de alta frecuencia, podría forzar los componentes mecánicos
que están conectados al rotor. Un punto importante que debe ser reforzada es que
MATLAB es un programa que modela todos los procesos físicos involucrados con este
controlador de motor matemáticamente. No tiene en cuenta variables tales como el calor,
la saturación magnética, etc. Con la presencia de componentes de alta frecuencia, que no
hemos visto cómo estas variables o una respuesta rápida velocidad pueden afectar el
funcionamiento de la máquina de inducción. Si ahora se aumenta la ganancia
proporcional del 30 al 90, el sistema se vuelve inestable, como puede verse en la figura
6.11. Nuestra señal de control de velocidad no tiene influencia significativa en la
velocidad desarrollado por el motor, por lo tanto, nuestro diseño de control ya no es un
control adecuado de la máquina de inducción.
Figura 6.11. La velocidad de respuesta del sistema con una ganancia proporcional del 90
Por lo tanto, se concluye que el aumento de la ganancia proporcional del regulador de
par hará lo siguiente:
Cualquiera de amplificar o introducir componentes de alta frecuencia en el
sistema que puede dañar la máquina de inducción.
El sistema se aproximará a la inestabilidad que incumpla las
especificaciones de diseño fundamental de cualquier esquema de control.
Por lo tanto, la ganancia proporcional del regulador de par es elegido para ser 30.
Basándose en el análisis MATLAB, obtenemos una respuesta transitoria adecuada de
esta. Además, la respuesta transitoria no dispone rápidos transitorios y nítidas de
cualquier tipo. Parece ser una opción confiable y segura. Si uno donde para optimizar la
respuesta transitoria de este sistema, que tendrían que realizar pruebas físicamente por
ensayo y error como MATLAB no realmente demostrar exactamente cómo se comporta
la máquina de inducción.
Figura 6.15. La velocidad de respuesta del sistema sin realimentación es decir, la respuesta de
bucle abierto del sistema de
comienzo
Inicializar los parámetros y los ISR. Escribir en los registros utilizados para PWM, la detección del
codificador, ADC y SCI
interrupción periódica
mientra provocada por Timer1
Resultados s que Pulso
A/D (1)
detección
sobre los
pasadores
QEP ISR codificador PWM ISR
+
Alimentar a los
_ valores de tensión
Calcular la velocidad y la posición del rotor. trifásica existentes
en los tres PWM
Calcular la requerida Calcula el comparar los
par electromagnético flujo del rotor requerido registros
Regreso Regreso
Calcular el IQS e ^ * mandado, ids ^ e * y ρ
Calcular las tres corrientes de fase requeridos
usando transformadas de Clarke y Parque
_ + tensiones de fase
controlador PI +
limitación de la
tensión
Esta sección del diseño esencialmente emula los procesos presentados en el capítulo 6
del diseño de Simulink. Haciendo referencia de nuevo a la figura 6.2, estamos
formulando un diseño de software que se aplica el bloque de suma inicial, el regulador
de par PI, la
bloque FO_Controller, el bloque dqe2abc y el bloque controlador de corriente. Se
mencionó anteriormente que podríamos generar un diseño de código C a partir del diseño
de MATLAB usando el taller en tiempo real. Cuando este proceso se llevó a cabo, se
encontró que el código C generado no era muy eficiente en la forma en que utiliza las
variables que declaró. Además, el código de MATLAB genera utiliza variables
denominadas “Temp 1, Temp 2, etc.”; esto impide las ventajas de portabilidad y
mantenibilidad asociados con el uso de código C. Mediante el uso de variables
“temporales”, es difícil ver cómo se desarrolla el control FO dentro del programa. Como
resultado, se hace que la optimización del código de un proceso difícil. Por lo tanto, se
concluye que el código generado en el taller en tiempo real es una buena guía en cuanto a
cómo construir el programa. Sin embargo,
error de +
velocidad error de velocidad × Kp
tem *
+
Integrator1
Figura 7.2. La señal de error de velocidad, el WRM, es la entrada para el regulador de par y Tem * es la salida
A medida que el comentario inicial sugiere, la regla trapezoidal se utiliza para integrar el
valor del WRM. Si a su vez su atención a la figura 7.3, podemos ver cómo funciona la
regla trapezoidal con el tiempo para una señal de error de velocidad constante. Cada vez
que se procesa esta parte del código, se añade el valor Integrator1 existente para el
período TIMER1 multiplicado por la señal de error de velocidad, wrm y la ganancia
integral del compensador PI, Ki. Por lo tanto, el diseño del software está creando
efectivamente un perfil escalonado en el tiempo. Esto tiene sentido si tenemos en cuenta
que la integración de una línea recta es constante o una pendiente lineal. La línea azul
continua dibujada entre los bloques de color rosa en la figura 7.3 demuestra que mediante
el uso de la regla trapezoidal, creamos una pendiente lineal desde un valor wrm
constante. El diseño de software sólo requiere el valor de cada periodo Integrator1
CRONOM1.
La aplicación de la regla trapezoidal con el tiempo
2.00E-04 40
El valor de Integrator1
1.80E-04 35
1.60E-04 30
1.40E-04 25
1.20E-04 20
1,00E-04 15
8.00E-05 10
6.00E-05 5
4.00E-05 0
2.00E-05
0.00E + 00
123456789 10 11 12 13 14 15 16 17 18
interrupciones CRONOM1
Figura 7.3. Una representación gráfica de cómo la regla trapezoidal desarrolla el valor
integrador con el tiempo para una señal de error de velocidad constante
Si se utiliza el controlador del motor durante un largo período de tiempo y que no
reduzca la velocidad del motor de inducción en cualquier fase de la operación, el valor
Integrator1 llegará a alcanzar un valor relativamente grande. No queremos que esto
suceda. Esto es porque el comando de par electromagnético generado podría alcanzar
valores fuera de los límites posibles de funcionamiento del motor de inducción. La otra
posibilidad es que el valor Tem podría desbordarse. Por lo tanto, el valor pasa de ser
relativamente grande para ser de ser muy pequeña en un ciclo de reloj. Mediante el uso
de una instrucción if-else se muestra a continuación (Figura 7.4), que inhibe ninguna
probabilidad de cualquiera de estos escenarios se producen.
Integrator1 =
Sí Integrator1
Integrator1_US
Integrator1 Si (Integrator1>
Integrator1_US
)
No
Sí Integrator1
Si (Integrator1> Integrator1 =
Integrator1_LS) Integrator1_LS
No Integrator1
Figura 7.4. Limitar el resultado de la
integración
No
Lamdare_r
Lambdare_r = el
valor de flujo
nominal
Figura 7.5. Cálculo del flujo del rotor requerido: Lambdare_r
0.7
0.6
0.5
mandado Flux
0.4
0.3
0.2
0.1
0 20 40 60 80 100 120
error de velocidad
Figura 7.6. Los resultados del uso de la técnica de debilitamiento de campo utilizado en el diseño de software
Los métodos utilizados para calcular las corrientes del estator a lo largo de la cuadratura
y el eje directos están empleando simplemente las fórmulas visto en el capítulo 5. Para
calcular rho, el diseño del software utiliza otra variable Integrator. Este método
integrador de nuevo utiliza el método trapezoidal; el código utilizado para crear este
valor puede verse a continuación:
Sí Integrator2
Integrator2 Si (Integrator2 => 3600 ) Integrator2 = - 3600
(~ Slip_angle)
No Integrator2
Esta vez no limiten el valor integrador de los límites superior e inferior. Esto es porque el
valor Integrator2 es esencialmente el ángulo de deslizamiento que se discutió en el
capítulo 5. Por lo tanto, con el fin de asegurar que el desbordamiento de este valor no se
produce nunca, si el ángulo de deslizamiento es igual o mayor que 3600, 3600 se resta de
la corriente deslizarse valor de ángulo. Esto restablecerá el valor del ángulo de
deslizamiento de 00 o inferior. El resultado con el tiempo se puede ver en la figura 7.8;
se ve como una ola “dientes de sierra”.
Después de que el controlador DSP calcula el ángulo de rho, calcula el seno y coseno de
rho. Para ello, se requiere la utilización de las funciones de la biblioteca de la
matemáticas. Esto consume algo de tiempo de ejecución del programa valioso. Todos
estos valores se utilizan en el Parque inversa transformada.
Demostración del ángulo de deriva con el tiempo
400
350
300
ángulo de deslizamiento
250
200
150
100
50
0
0 20 40 60 hora 80 100 120 140
Ia_comman +
controlador PI dieciséis
d Ia_command
Va_command
-
Ia_feedback CRONOM1
registro de comparación # 1
Figura 7.9. Este diagrama de flujo muestra cómo las obras de sección del regulador de intensidad
Al comienzo de esta sección del código, hay una unión sumadora de las corrientes de
fase mandado y las corrientes de retroalimentación. Después de esto, cada error de
corriente de fase se alimenta a través de sus propios controladores PI. Una vez más, se
emplean métodos de integración que utilizan la regla trapezoidal y un if-else para
limitar los valores calculados.
La limitación de los valores es muy importante porque evita que los números que son ya
sea negativo o mayor que la amplitud de la onda triangular de la CRONOM1 de ser
enviado a la PWM comparan los registros. ganancia proporcional del compensador PI se
utiliza para escalar el valor de error actual.
7.3. La rutina de servicio de interrupción PWM
Para ilustrar cómo se generan las señales PWM, vamos a enviar los siguientes valores
en los tres comparar registros para generar formas de onda de las siguientes:
CRONOM1 periodo de registro, TPR = 5h
CRONOM1 comparar register1, CMPR1 = 3h
CRONOM1 comparar register2, CMPR2 = 2h
CRONOM1 comparar register3, CMPR3 = 4h
Figura 7.10. Las formas de onda PWM generadas con banda muerta activados [11]
Como puede verse, la amplitud de la onda triangular generada es 5 y su período es 10.
TIMER1 registro de comparación 3 se envió el mayor valor de comparación (4h), sin
embargo, tenía la relación de trabajo más pequeño de todos las formas de onda no
complementado. Basado en esto, el proceso de PWM inversas efectivamente el número
alimentado en el registro de comparación.
Figura 7.11. Muestra la infraestructura interna del controlador DSP que se ocupa de la generación
de PWM (uso figura en la página 7 de la generación en tiempo muerto) [11]
PWM_ISR (void) {
Debido a que el núcleo de DSP no puede manejar todas las solicitudes de interrupción
periféricos a la vez, tiene un controlador de interrupción centralizada que se utiliza
para arbitrar los 6 niveles de solicitudes de interrupción. El TMS320F243 tiene un
controlador llamado la expansión periférica de interrupción (PIE) que organiza ISR
cuando se presentan. El controlador DSP entra en una operación de IRQ Nivel 2 cada
vez que se correspondía con el periodo TIMER1. El c_int2 declaración indica al
procesador interno del controlador DSP que el ISR de nivel 2 interrupciones está aquí.
7.4 El codificador de rutina de servicio de interrupción
Figura 7.13. La arquitectura interna del procesador del controlador TMS320F243 DSP
que se ocupa de la detección de impulsos del encoder [13]
Cada vez que se detecta un pulso, el registro TIMER2 retiene el número acumulado de
pulsos de reloj del contador de funcionamiento libre. También permite que sea el CAP1 o
registros CAP2. Estos registros están en la sección de expansión periférica de
interrupción de la arquitectura del procesador. Por lo tanto, se elevará la PAC
interrupción banderas, haciendo que el programa de software para llamar a la ISR
codificador. La declaración de método codificador ISR puede verse a continuación:
si (old_cnt! = No
T2CNT) Volver al menú principal
Sí
No old_cnt = T2CNT
si (Theatre_r => 3600 )
Sí
Theatre_r
- = 3600
Ia_feedback = *
Gain_Kc;
Ib_feedback = *
Gain_Kc;
Ic_feedback = *
Gain_Kc;
Técnica empleada:
El cos_rho y las variables sin_rho se establecen en valores constantes (1 y 0),
respectivamente, y la señal de error de velocidad, el WRM, se establece en 25rps. Este
programa, en consecuencia procesarán a cabo formas de onda PWM predecibles. Vamos
a utilizar una CRO para ver estas formas de onda. Con el fin de predecir los resultados,
se realizaron los siguientes cálculos:
resultados:
Cuando este programa se ejecuta en el controlador DSP, se produjeron las siguientes
formas de onda PWM:
(una)
(segundo)
(do)
(re)
Figura 8.1. Las formas de onda PWM observados en la CRO (a) Fase A, PWM # 1, (b)! Fase A, PWM # 2,
(C) Fase B, PWM # 3 y (d)! Fase B, PWM No. 4
Las cosas que pueden ser observadas a partir de estas formas de onda:
€ El controlador DSP TMS320F243 y el trabajo circuitos circundante.
€ la principales números de abdominales programa cabo según las
especificaciones.
€ Hemos habilitado correctamente los registros de PWM y el
controlador DSP ha demostrado que se puede realizar
interrupciones PWM.
Este código lee el valor T2CNT y lo envía puerto D. Para la placa de evaluación
utilizado para llevar a cabo estas pruebas, 8 LEDs están conectados a las patillas de
puerto D del controlador DSP. La sentencia do utilizado crea un retardo de tiempo para
que podamos ver visualmente que los LED parpadean.
resultados:
Antes de que el generador de funciones estaba conectado a los pines QEP, todos los
LEDs eran luminosos. Tan pronto como el generador de funciones se conecta, los
últimos tres LED comenzaron a parpadear. Por lo tanto, podemos concluir lo siguiente:
€ Hemos habilitado correctamente todos los registros que están
asociados con la detección del codificador.
€ Podemos leer T2CNT sin entrar en un ISR codificador.
resultados:
Cuando se ejecuta este programa, la fase A o PWM1 se genera una señal que tenía una
relación de trabajo de aproximadamente 50%. Tan pronto como el generador de
funciones se conecta a la placa de evaluación, la relación de trabajo cambió. Se encontró
que la relación de trabajo de la señal de fluctuaría entre ~ 70% y 50%. Sin embargo, la
relación de trabajo debería haber estabilizado en 70%.
En este informe, se discutió el diseño del hardware que se utiliza para accionar
un motor de inducción. Por otra parte, se explicó que el hardware que se
requiere en el bucle de retroalimentación.
Los elementos esenciales de un motor de inducción se exploraron, los
principios de su funcionamiento, las propiedades eléctricas y las
relaciones de par / velocidad.
Este informe presenta el concepto de control orientado al campo (FOC), un
método de control de vector. FOC fue elegido para ser la técnica de control de
movimiento, ya que produce resultados controlados que tienen una mejor
respuesta dinámica al par variaciones en una gama de velocidades más amplio
en comparación con otros métodos escalares
Se muestra en el Capítulo 6, a través de análisis de MATLAB, que el control de
FO es un medio eficaz de accionar un motor de inducción. Se generó un perfil de
velocidad con una respuesta transitoria adecuada y error de estado estacionario.
Además, el sistema era estable.
En el capítulo 7, un diseño de software que demuestra un control FO fue desarrollado.
Físicamente, se comprobó que la generación de PWM y la detección del
codificador puede ser realizado por el DSP usando el diseño del software
desarrollado.
Se prevé que todo el sistema llevará a cabo a especificaciones en el día de
demostración.
[7] NS Nise, Control de Ingeniería de Sistemas, John Wiley & Sons, Nueva
York, 2000
/ ************************************************* ***************** /
/ * Título: El software propuesto diseño
* /
/ * Proyecto : Controlador de motor de inducción
* /
/* Versión : # 1 * /
/ * Fecha: 22/08/2001 * /
/ * Autor: Gareth S Roberts * /
/* Empresa : UC * /
/ * Comentarios: Este no es el diseño final que es yendo a*/
/ * Ser utilizado en la demostración day.Utilisation * /
/ ************************************************* ***************** /
/ * Inicialización de la sección la diseño*/
/ *************************************************
* / doble Gain_Kc;
/ * Expresión: G2 = 2 / P = 1 * /
/ * Expresión: G3 = 1 / xm = 6,711
* / double Gain_G3;
/ * Expresión: 0 * /
doble Integrator1;
/ * Expresión: 0 * /
doble Integrator2;
/ * Expresión: 0 * /
IntegratorA dobles;
/ * Expresión: 0 * /
doble IntegratorB;
/ * Expresión: 0 * /
doble IntegratorC;
/ * Expresión: 20 * /
Integrator1_US dobles;
/ * Expresión: 360 * /
double Integrator2_US;
/ * Expresión: 5 * /
IntegratorI_US dobles;
/ * Expresión: 0 * /
Integrator_LS dobles;
/ * Expresión: 0.571 * /
double Constant_flux;
/ ************************************************* ***************** /
/ * Entradas en la sistema*/
/ ************************************************* ***************** /
doble Ia_feedback;
doble Ib_feedback;
doble Ic_feedback;
doble Speed_input;
doble Speed_feedback;
/ ************************************************* ***************** /
/*Parámetro inicialización * /
/ *************************************************
Speed_input = 0,0;
Speed_feedback = 0,0;
Gain_Kp = 30,0;
Gain_Ki = 90,0;
Gain_Ks = 10000.0;
Gain_Kc = 1;
Gain_G1 = 0,05817;
Gain_G2 = 1;
Gain_G3 = 6,711;
Gain_G4 = 0,0163;
Gain_G5 = 177,72;
Gain_G6 = 0,66667;
Gain_G7 = 0,33333;
Gain_G8 = 0,57735;
Integrator1 = 0,0;
Integrator2 = 0,0;
IntegratorA = 0,0;
IntegratorB = 0,0;
IntegratorC = 0,0;
Integrator1_US = 20;
Integrator2_US = 360;
IntegratorI_US = 90;
Integrator_LS = 0;
IntegratorI_LS = -90;
Constant_flux = 0,571;
old_cnt = 0;
rated_speed = 25;
wrm = 0;
Tem = 0;
theatre_r = 0;
lambdare_r = 0;
IQS = 0;
ids = 0;
slip_speed = 0;
rho = 0;
cos_rho = 0;
sin_rho = 0;
ialfa = 0;
IBeta = 0;
Ia_feedback = 0;
Ib_feedback = 0;
Ic_feedback = 0;
Ia_command = 0;
Ib_command = 0;
Ic_command = 0;
Va_command = 0;
Vb_command = 0;
Vc_command = 0;
}
/ * Final de parámetros initalise * /
/ * Llamar al método de
configuración de PWM * /
pwm_setup (void);
/ * Llamar al método de
configuración de PWM * /
encoder_setup (void);
/ * Llamar al método de
configuración SCI * /
scisetup (void);
/ ************************************************* ***************** /
/*Los principal programa*/
/ ** /
/ ************************************************* ***************** /
unsigned int i;
WDDISABLE; / * Deshabilitar el temporizador de vigilancia * /
while (1)
{
/ ************************************************* ***************** /
/*Corriente realimentación cálculo*/
/ ************************************************* ***************** /
Ia_feedback = GetADC
(1); Ib_feedback =
GetADC (2);
/ * * Field_Weakening /
si (Speed_feedback => rated_speed)
{lambdare_r = 100 / (Speed_feedback
^ 2)
else {
lambdare_r = Constant_flux;
}
/ ************************************************* ***************** /
/ * FO controlar código*/
/ ************************************************* ***************** /
/ * Cálculo de la rho * /
rho = theatre_r + Integrator2;
/ ************************************************* ***************** /
/ * El Inversa Parque Transformar*/
/ * (D, q) -> (esparto, beta)*/
/ ************************************************* ***************** /
/ * Cálculo de Is (alfa) * /
ialfa = (IDS * cos_rho) - (sin_rho * IQS);
/ * Cálculo de Is (beta) * /
IBeta = (ids sin_rho *) + (cos_rho * IQS);
/ ************************************************* ***************** /
/ * El Inversa Clarke Transformar*/
/ * (Alfa, beta) -> (a B C)*/
/ ************************************************* ***************** /
/ * Cálculo de Isa_command * /
Ia_command = Gain_G6 *
ialfa;
/ * Cálculo de Isb_command * /
Ib_command = - (Gain_G7 * ialfa) + (Gain_G8 * IBeta);
/ * Cálculo de Isc_command * /
Ic_command = - (Gain_G7 * ialfa) - (Gain_G8 * IBeta);
/ ************************************************* ***************** /
/*Suma de corrientes * /
/ ************************************************* ***************** /
/ ************************************************* ***************** /
/ * Compensación PI de la corriente señales
* /
/ ************************************************* ***************** /
/ ************************************************* ***************** /
/*Integrador * bloques /
/ ** /
/ ************************************************* ***************** /
/ * Límites de integración1 * /
si (Integrator1> Integrator1_US)
{Integrator1 =
Integrator1_US;
} Else if (Integrator1 <Integrator_LS)
{Integrator1 = Integrator_LS;
} / * Fin del si * /
/ * Cálculo de slip_speed * /
slip_speed = IQS * Gain_Gain5 /
ids;
} / * * Final de principal /
/ ************************************************* ***************** /
/ * El PWM interrumpir rutina*/
/ *************************************************
PWM_ISR (void) {
si (old_cnt = T2CNT!)
{theatre_r = +
0,18;
/ ************************************************* ***************** /
/ * InitInts () - registros de interrupción de procesador Initalise * /
/ ** /
/ ************************************************* ***************** /
initInts (void)
{
}
/ * Final de initalisation del procesador interrumpe * /
/ ************************************************* ***************** /
/ * Pwm_setup (): *
/ * T1PR Timer1 Período Registro - 20Mhz / T1PR /
frecuencia *
/ * CRPM xCompare Registro x-deber /
*
/
/ * ORCA 7-4 I / O de control Mux Registro A-set * /
pwm patas
/ * ACTR 8-37 Comparación de Acción Registro de Control -active * /
alto
/ * 50ns DBTCON Banda muerta del temporizador Controlar * /
Register-muertos banda
/ * COMCON 8-36 Comparar Controlar * /
Register-PWM
/ * T1CON 8-28 GP temporizador Controlar * /
Register-up
/ * GPTCON 8-30 GP temporizador Controlar * /
Registrarse en marcha, pol
/ ** /
/ ************************************************* ***************** /
pwm_setup (void)
{
* / T1PR = 500;
CMPR1 = 0x0000;
CMPR2 = 0x0000;
CMPR3 = 0x0000;
T2CNT = 0x0000;
T2PR = 0xFFFF;
T2CMPR = 0x8FFF;
/ ************************************************* ***************** /
/ * Adcsetup (): * /
/ * ADCTRL1 control analógico a Digial registro * 1 /
/ ** /
/ ************************************************* ***************** /
adcsetup vacío ()
{
/ * ++ ------------------ suave y bits libres, la emulación suspender
|| + ----------------- conversión inicio inmediato
||| + Activar ---------------- ADC # 2
|||| + -------------- Habilitar ADC # 1
|||| | + ------------- Habilitar la conversión continua
|||| || + ------------ habilitar las interrupciones
|||| ||| + ----------- indicador de interrupción,
|||| |||| + --------- bit es uno, mientras que la conversión
|||| |||| | +++ ------ canal ADC2 seleccionar, ADCIN02
|||| |||| |||| +++ - canal ADC1 seleccionar, ADCIN02
|||| |||| |||| ||| + - Iniciar conversión ADC
|||| |||| |||| ||||
1101 1101 0010 * 0010 /
ADCTRL1 = 0xDD22; / * este es el registro de control ADC 1 * /
si (Chan> 6) {
PBDATDIR = (~ PBDATDIR y 0x0030) | ((Chan-7) << 4);
/ * Dar al MUX un pequeño tiempo para
stablise * / basura ++;
basura +
+; Chan =
7;
}
/ * Iniciar la conversión ADC * /
ADCTRL1 = (ADCTRL1 y (~ 0x000F)) | (Chan << 1) | 0x0001;
/ * Dar al menos dos ciclos de reloj antes de consultar la
bandera EOC * / basura ++;
basura ++;
/ * * Sondeo bandera EOC /
while (ADCTRL1 y 0x0080);
scisetup vacío ()
{
/ * + -------- bits de parada 0 = 1, 1 = 2.
| + Paridad
|| + ------ paridad permiten
||| + ----- bucle permiten volver
|||| + ---- poco Idle-line / dirección de seleccionar
||||| +++ - selector de longitud Charactor
||||||||
00000111
* /
SCICCR = 0x07;
/ * + Reservada-
| + ------- error Rx habilitación de interrupción
|| + ------ reinicio del software
||| + reservada
|||| + ---- método de reanimación Tx
||||| + --- activar el modo de suspensión
|||||| + - Tx permiten
||||||| + - Rx permitir
||||||||
00100011
* /
SCICTL1 = 0x23;
OCRA | = 0x0003;
}
/ * Final de scisetup * /