Trabajo Fin de Máster Características de un sistema de suspensión magnético, con control activo en los tres ejes Autor/es Isaac Royo Silvestre Director/es Jesús Letosa Fleta Antonio Usón Sardaña Escuela de Ingeniería y Arquitectura de Zaragoza 2013 Repositorio de la Universidad de Zaragoza – Zaguan http://zaguan.unizar.es
Repositorio de la Universidad de Zaragoza – Zaguan http://zaguan.unizar.es
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Características de un sistema de suspensión magnético, con control activo en los tres ejes RESUMEN Este Trabajo Fin de Máster (TFM) corresponde al Máster en Energías Renovables y Eficiencia Energética de la Universidad de Zaragoza. En este trabajo se ha estudiado un tipo de rodamiento magnético con control activo en los tres ejes, con rotor cilíndrico e imanes permanentes. Esta estructura fue propuesta por Tsuchida, Takemoto y Ogasawara en 2010 [1]. Los objetivos principales son entender las características magnéticas del dispositivo y desarrollar un modelo electromagnético funcional del sistema bajo estudio que sea adaptable a diferentes dimensiones del rotor y el estátor. El estudio tiene la dificultad de requerir simulaciones en 3D. También se estudia la posibilidad de realizar simulaciones simplificadas en 2D que permitan acelerar los cálculos. El trabajo comienza con una introducción que explica la relevancia del tema y qué es un rodamiento magnético activo, también incluye una revisión del estado del arte en rodamientos magnéticos activos. A continuación se expone la estructura del dispositivo en estudio, después se explica brevemente el principio de funcionamiento del sistema. La parte central del trabajo justifica el modelo utilizado en las simulaciones por Método de Elementos Finitos (MEF) 3D y expone algunos resultados. La justificación del modelo se realiza de varias formas. Primero se comparan resultados de fuerzas y campos magnéticos con la referencia [1], esto también sirve para mostrar la potencia del dispositivo. En segundo lugar, puesto que algunos resultados no coinciden con la referencia, se justifica la calidad de nuestro modelo por medios teóricos. Se pone a prueba el margen de error del modelo variando sus parámetros, se intenta calcular fuerzas con dos métodos y se utiliza otra forma de validación por medio de simulaciones con MEF 2D. El siguiente punto explora las posibilidades y limitaciones inherentes a simular este problema 3D por medio de modelos simplificados 2D. A continuación se expone brevemente un ejemplo de aplicación adaptando el rodamiento a un flywheel (volante de inercia) con unos requerimientos determinados. Se presenta una curva de rigidez necesaria para diseñar un control (más allá del ámbito de este TFM). Finalmente se presentan las conclusiones, propuestas de trabajos de investigación futuros y las referencias. Tras la finalización del documento principal de la memoria se encuentran anexos con información adicional. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 3
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes ÍNDICE RESUMEN...................................................................................................................................................3 ÍNDICE.........................................................................................................................................................4 1. Introducción.........................................................................................................................................5 2. Estructura del Rodamiento Magnético en estudio.................................................................7 3. Breve descripción del principio de funcionamiento..............................................................9 4. Metodología.......................................................................................................................................10 5. Justificación del modelo................................................................................................................11 5.1. Comparación con una referencia......................................................................................11 5.2. Variación de los parámetros de la simulación...............................................................13 5.3. Resultados de Fuerzas con diferentes métodos...........................................................14 5.4. Resultados con diferente software...................................................................................15 6. Modelos en 2D..................................................................................................................................16 6.1. Modelo 2D para el calculo de la fuerza axial Fz............................................................16 6.2. Modelo 2D para el calculo de las fuerzas radiales Fx y Fy.........................................18 7. Aplicación y curvas de rigidez.....................................................................................................19 8. Conclusiones y trabajo futuro......................................................................................................21 Referencias..............................................................................................................................................22 4 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes 1. Introducción En este trabajo se ha estudiado un tipo de rodamiento magnético con control activo en los tres ejes, con rotor cilíndrico e imanes permanentes. Los problemas abordados y objetivos son: - Revisión del estado del arte sobre rodamientos magnéticos activos en los tres ejes - Diseño y puesta en funcionamiento de una simulación 3D, del sistema de suspensión, que permita el cálculo numérico del problema electromagnético mediante el método de los elementos finitos. - Validación de los modelos desarrollados con resultados de la bibliografía. - Estudiar las limitaciones de las simulaciones simplificadas del sistema en 2D para analizar este sistema de suspensión. - Generalizar los modelos, en la medida de lo posible, para que puedan utilizarse con conjuntos rotor-estátor de distintas dimensiones. Los rodamientos magnéticos son sistemas de suspensión magnética que pueden regular los desplazamientos de un eje rotatorio sin necesidad de contacto mecánico, reduciendo el mantenimiento necesario y aumentando la eficiencia de la máquina rotativa. Estas características favorecen su aplicación en máquinas rotativas de alta velocidad. Un tema de investigación importante en la actualidad, en el ámbito de las energías renovables, es el del almacenamiento de energía. Existen muchas posibilidades, p.e. los volantes de inercia. Para esa aplicación es fundamental que la frecuencia de giro y su eficiencia en el almacenamiento de energía sea la máxima posible, por tanto se hace imprescindible la utilización de rodamientos magnéticos. Estos rodamientos magnéticos pueden usar imanes permanentes, electroimanes o ambos. El control puede ser pasivo por medio de fuerzas de restauración o activo si se controla la corriente de los electroimanes en función del desplazamiento [2]. Figura 1. Sistemas de levitación magnética para un motor. A la izquierda un sistema convencional con dos rodamientos radiales y uno axial. A la derecha la configuración asociada a este trabajo (en rojo el rodamiento activo con control en los tres ejes). Imagen modificada de [1]. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 5
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes En las últimas décadas podemos encontrar abundante investigación sobre el tema, que ha dado lugar a la proposición de muchos sistemas de suspensión magnética. Una posible configuración permite el control activo en los cinco grados de libertad de movimiento del rotor. Dicha configuración consta de un rodamiento radial y un rodamiento activo en los tres ejes (Figura 1); este TFM se centra en el segundo dispositivo (el rodamiento activo elegido esta descrito en la referencia [1]). Pueden encontrarse investigaciones desde los 80, Matsumura [3] experimenta con la suspensión magnética de un motor eléctrico de eje horizontal, utilizando electroimanes. El sistema de control es modelado y ajustado experimentalmente con un montaje real, sin embargo no se simula teóricamente el dispositivo. En 1998 Antila [4] publica un estudio exhaustivo de rodamientos activos radiales usando MEF 2D y el tensor de Stress de Maxwell, los resultados se comparan con valores experimentales. Los estudios teóricos anteriores datan de principios y mediados de los 90, utilizaban circuitos magnéticos (menos fiable y más difícil de parametrizar) o simulaciones de MEF 2D incompletas o no validadas experimentalmente (ver introducción en [4]). En 2001 Pichot [5] estudia los rodamientos magnéticos activos para grandes volantes de inercia. Su diseño es de tipo homopolar con imanes permanentes, pero coloca la parte rotórica en el exterior. Sus conclusiones incluyen un breve análisis con MEF 3D de un rodamiento radial y de un rodamiento combinado que aplica fuerza radial y de empuje. Lleva a la práctica la construcción del rodamiento radial. En 2004 Polajžer [6] modeliza y cuantifica el problema de los acoplamientos entre las bobinas en los rodamientos magnéticos radiales basados unicamente en electroimanes. Durante la primera década de siglo se desarrolla el standard ISO 14839-3:2006, referente a las vibraciones en maquinaria industrial equipada con rodamientos magnéticos activos. En 2009 Hijikata [7] propone y analiza un nuevo rodamiento axial que utiliza un acople de rotor cilíndrico, en vez del gran disco habitual en los rodamientos axiales. Se comprueba que funciona correctamente a altas velocidades de rotación. En 2010 Tsuchida [1] propone y patenta una nueva estructura para un rodamiento magnético activo que controla tres ejes, inspirado por trabajos previos en motores sin rodamientos y el modelo de rodamiento axial de Hijikata [7]. La nueva estructura no requiere un gran disco acoplado al rotor, presenta características muy lineales y coloca el rotor en el interior, además requiere menos espacio. El dispositivo es modelado con MEF 3D pero no se construye experimentalmente. Este es el dispositivo que analizamos en este Trabajo de Fin de Master. También en 2010 Khoo[8] propone una nueva estructura de rodamiento magnético activo axial de disco muy lineal y capaz de generar más fuerza. Las investigaciones en 2012 y 2013 tocan los ámbitos del control ( Kang[9]), análisis dinámico (Han[10]), nuevas estructuras de rodamientos activos radiales con rigidez pasiva axial (Eryong [11], Bangcheng[12]), rodamientos radiales con bajas pérdidas por rotación del eje (Jiancheng[13]), rodamientos electrodinámicos como alternativa a los rodamientos activos (Impinna[14]) y nuevos actuadores axiales contrastados con experimentos (Yang[15], el concepto es muy similar al de la parte axial de la referencia [1] que usamos en este Trabajo Fin de Master). 6 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes 2. Estructura del Rodamiento Magnético en estudio El rodamiento tiene cuatro grupos de piezas diferenciados que solo son funcionales al emplearse conjuntamente: control axial, control radial, imanes permanentes y rotor. El rotor es la parte móvil del rodamiento, en contacto con el eje de la máquina en la que se instala el rodamiento; el resto forman la parte estática del rodamiento (normalmente ajustada a la parte estática de la máquina). Ver Figura 2. El estátor de control axial o empuje es el cilindro hueco de mayor tamaño que sirve de carcasa para todo el conjunto. Por medio de una sustancia adhesiva [16] (nombrado como SUS tube en la referencia [1]) el resto de elementos estáticos (todos menos el rotor) quedarán alojados en su interior. La bobina de mayor tamaño, cuyo eje es el eje Z, es la bobina de control axial o de empuje. El estátor de control radial es un estrecho cilindro de menor tamaño del que sobresalen cuatro polos, a cada polo se arrolla una bobina de control radial, una pareja de bobinas (cada bobina en un polo opuesto) controla la Fuerza del eje X y la otra controla el eje Y. Como la corriente que circula por cada pareja va a ser la misma las bobinas para cada eje pueden estar conectadas en serie. Los imanes permanentes son ocho, todos magnetizados en dirección axial, aunque no todos en la misma dirección. Los imanes se colocan entre los dos estatores, cuatro a cada lado del estátor radial, el sentido de la magnetización es +Z para los de un lado, -Z para los del otro lado. El rotor es la única parte móvil, notar que la pieza que aparece en los diagramas de las referencias [1][16] y en este trabajo no es el eje del rotor de la máquina en la que se utiliza este rodamiento, si no un tubo de material magnético (p.e. Hierro) de unas dimensiones concretas que se ajusta alrededor del eje de la máquina (de forma similar a como se ajusta un rodamiento de bolas al eje de una máquina rotatoria, con la salvedad de que en un rodamiento magnético las bolas son sustituidas por un entrehierro de aire). El entrehierro entre el rotor y los estátor es es de 0,5 mm. Las fuerzas calculadas se aplican sobre el rotor. Ver dimensiones en la Figura 3. Las bobinas son de cobre, los estatores y el rotor son de materiales magnéticos como el Hierro, la sustancia adhesiva debe ser aislante (aparece como aire en las simulaciones) y el eje de la máquina (que atravesaría el rotor) se considera no magnético (aparece como aire en las simulaciones). Se ha simulado un modelo standard, muy similar al de la referencia [1], si bien se desconocen los metales e imanes permanentes utilizados en la referencia. La corriente que circula por las bobinas es corriente continua [16]. El peso de las partes móviles no se incluye en las fuerzas resultantes mostradas en este trabajo o en las referencias. El peso a levantar se estima en 43,1 N [1]. Las simulaciones se han limitado a las densidades de corriente de la referencia [1], 4A/mm 2 , 6A/mm 2 en casos puntuales. 4A/mm 2 es una densidad de corriente usada frecuentemente en las referencias, la experiencia dicta que es adecuada para no llegar a límites térmicos en un dispositivo pequeño. El volumen que ocupan los conductores reales (con sus aislantes) no afecta a los cálculos magnéticos y no se utiliza en nuestras simulaciones en Opera 3D, la experiencia y la referencia [1] indican que las secciones de cable utilizadas son adecuadas. Según [1] el factor de llenado de los bobinados sería de 34,3% para los bobinados radiales, 49,9% para el axial. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 7
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Cada bobina radial tiene una sección de 45 mm 2 , la bobina axial es de 298 mm 2 . Notar que en la práctica esta sección puede conseguirse con diferentes combinaciones sección-N vueltas. El supuesto en la referencia [1] y en este trabajo es que el cable exterior de alimentación para cada bobinado es de 1 mm 2 (aunque internamente los bobinados puedan ser de cables de menor sección en paralelo) por lo que se indica indistintamente densidad de corriente [A/mm 2 ] y corriente [A]. Figura 2. Despiece (izquierda) y corte en el plano ZY (derecha). Imagen modificada de la referencia [1]. Figura 3. Dimensiones del rodamiento simulado (alzado y perfil) y direcciones de magnetización de los imanes permanentes. En el detalle definición de la distancia e (entrehierro, de 0,5 mm) y L (solapamiento axial o axial overlap ). El modelo standard que se ha hecho para comparar con la referencia [1] utiliza la curva de magnetización del Hierro Puro para sus elementos metálicos. Los imanes permanentes son de SmCo 24 MGOe (Samario-Cobalto de 24 MegaOersted) representado como un material lineal isotrópico de µr=1,11 y coercitividad Hc=-724000 A/m, es decir un imán de 1,01 T. Ver curvas B-H en Anexo III. 8 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes 3. Breve descripción del principio de funcionamiento El funcionamiento de este dispositivo se basa en la superposición de diferentes flujos de tal manera que aparezcan campos magnéticos de diferente intensidad en puntos opuestos del rotor (la pieza móvil). Este desequilibrio en el modulo de los campos magnéticos produce Fuerzas netas en el rotor (Figura 4). Los flujos producidos por los imanes permanentes son constantes, simétricos y opuestos, no producen Fuerzas en el rotor si el rotor está centrado, cuando el rotor se desplaza aparecen fuerzas de atracción y repulsión. Los flujos producidos por las bobinas son variables, controlando la corriente que circula por los bobinados creamos flujos que se superponen a los de los imanes permanentes. Notar que el flujo de los imanes pasa por el rotor, el estátor radial y el estátor axial moviéndose en el plano ZY. El flujo de la bobina axial solo pasaría por el rotor y el estátor axial (plano ZY). El flujo de las bobinas radiales pasa por el rotor y el estátor radial (plano XY), además el flujo de las bobinas alrededor del eje X hacen pasar su flujo por los polos en el eje X y las bobinas del eje Y hacen pasar su flujo por los polos del eje Y. Así el flujo de los imanes permanentes se superpone a los de las bobinas solo en algunos entrehierros. Con el de las bobinas del eje Y, arriba y debajo del rotor. Con el de las bobinas del eje X, a izquierda y derecha del rotor. Con el de la bobina axial (eje Z), delante y detrás del rotor. Los flujos de los imanes son opuestos, mientras que los flujos de las bobinas van en una sola dirección. Por tanto en un lado los flujos se suman y en el otro lado los flujos se restan, creando una Fuerza en una dirección. De lo anterior también se desprende que, idealmente, la Fuerza en un eje depende solo de la corriente por la bobina que crea el flujo variable en ese eje. Por tanto este dispositivo permite controlar de forma independiente las fuerzas en los tres ejes cartesianos, en condiciones ideales. Es posible controlar independientemente las tres fuerzas a la vez. Sin embargo hay que tener en cuenta que pueden aparecer saturaciones en los materiales al hacer pasar grandes flujos por los puntos comunes (por ejemplo los flujos radiales X e Y tienen que pasar ambos por el estátor de control radial), en cuyo caso se perdería independencia. Las simulaciones mostrarán si esto pasa. Figura 4. Flujos relevantes. Imagen modificada de la referencia [1]. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 9
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes 6. Modelos en 2D Uno de los objetivos de este trabajo es simular algunas características de este dispositivo por medio de modelos 2D, más fáciles de entender, menos costosos computacionalmente y resolubles con programas de MEF gratuitos como femm 4.2. Esto permite realizar evaluaciones iniciales rápidas, sin embargo se aconseja realizar las simulaciones finales con MEF 3D ya que estos modelos 2D siempre son artificiosos y solo se puede garantizar su validez al realizar un estudio parametrizado completo. En este TFM se ha realizado un estudio parcial (ver este capítulo y los anexos). El tema ya ha sido abordado para otros rodamientos por otros autores (ver introducción y contenido de la referencia [4]). A continuación se explican los fundamentos de esa simplificación y los resultados obtenidos con los modelos 2D. Para las simulaciones se ha utilizado el programa de MEF femm 4.2. de David Meeker, programa gratuito y muy conocido. El tiempo necesario para una simulación en 2D ha sido del orden de 50 veces menor que en 3D. Antes se ha explicado que el principio de funcionamiento de este rodamiento es tridimensional y que existen pocas simetrías geométricas (ninguna si consideramos todos los desplazamientos del rotor). Los programas MEF 2D pueden calcular Fuerzas en X e Y por medio de modelos planares, los modelos axisimétricos solo pueden calcular Fz, en ambos casos hay restricciones a la fidelidad geométrica que podemos conseguir. Conclusiones: a) Un único modelo 2D jamás puede calcular las tres fuerzas a la vez, necesitamos dos modelos b) Los desplazamientos del rotor solo pueden representarse en algunos ejes c) Hay que modificar la geometría del modelo. En esencia simplificar nuestro modelo 3D a un objeto creado a partir de revolucionar o trasladar un modelo 2D es similar a hacer un circuito magnético clásico. Para que el circuito magnético final sea similar al original hay que asegurarse de que el flujo generado por las fuentes (bobinas e imanes permanentes) sea el mismo, también se debe intentar mantener la reluctancia del circuito (modificado por secciones y longitudes de las piezas). 6.1. Modelo 2D para el calculo de la fuerza axial Fz El calculo de Fz con un modelo 2D es el más sencillo y fiable. Anteriormente se ha explicado que Fz se produce por la superposición de los flujos de los imanes permanentes y el flujo de la bobina de control axial, en ambos casos los flujos tienden a describir trayectorias en un plano ZY (que además rotaría alrededor del eje Z, si observamos las simulaciones 3D). Por tanto debe ser sencillo utilizar un modelo 2D axisimétrico para modelar Fz. La limitación del modelo axisimétrico es que solamente se puede calcular Fz y que el rotor solo se puede desplazar en el eje Z. Hay que hacer modificaciones geométricas para representar correctamente el modelo. Los imanes permanentes originales no forman dos anillos continuos, son 4 piezas en cada lado; así que hay que representarlos como dos anillos más estrechos, de tal forma que la sección y volumen total de los imanes permanentes se mantenga (así mantenemos el flujo). Los cuatro polos del estátor radial se convierten en un gran anillo, se pueden obtener mejores resultados su estrechamos el anillo para que la superficie total de los entrehierros de esos polos se mantenga, así también 16 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes representamos mejor la reluctancia del circuito. Por supuesto las bobinas radiales desaparecen. La Figura 10 muestra el modelo 2D axisimétrico utilizado. La Figura 11 muestra la comparación de resultados entre el modelo standard en Opera y el modelo simplificado 2D en femm 4.2; se observa que son casi idénticos. Figura 10. Modelo 2D axisimétrico en femm 4.2 (eje Z vertical), coloreado por materiales. Observar que se han estrechado imanes y polos. Figura 11. Comparación entre el modelo standard (Opera 3D) y el modelo simplificado 2D para calcular Fz. L es la longitud del axial overlap o solapamiento axial. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 17
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes 6.2. Modelo 2D para el calculo de las fuerzas radiales Fx y Fy El calculo de la fuerzas radiales (Fx y Fy) con un modelo 2D simplificado es más complicado, no representa algunas características geométricas y requiere un nivel mayor de abstracción. Anteriormente se ha explicado que la fuerzas radiales se producen por la superposición de los flujos de los imanes permanentes y los flujos producidos por las bobinas radiales en los polos del estátor radial. El flujo de los imanes circula por los planos ZY y ZX, el flujo de las bobinas circula por el plano XY, los flujos relevantes para Fx se superponen en los dos polos donde se instalan las bobinas para Fx, lo mismo sucede para Fy. Por tanto los flujos implicados circulan por planos independientes y solo tienen los polos y entrehierros del estátor radial como puntos comunes. Al convertir este problema 3D a un modelo 2D tenemos que respetar esa independencia entre los flujos. En un modelo axisimétrico la bobina (y por tanto polos) tendría que usar el eje de revolución del modelo, por lo sería demasiado abstracto. De ese modo tan solo queda usar un modelo planar 2D. El modelo planar puede partir de un corte del plano XY o del plano ZY, cada modelo tiene ventajas y desventajas al no poder representar correctamente ciertas características geométricas, en ambos casos la falta de espacio limita la calidad de la solución. Se han probado varios modelos y se han apuntado sus características (Figuras 12 y 13). El modelo similar a un corte en el plano XY proporciona buenos resultados y la simplificación de las piezas es más sencilla. Este modelo no puede tener en cuenta el axial overlap L (que no parece tener mucha importancia), además el circuito del estátor axial no existe; los imanes se colocan entre estátor y rotor para que su flujo pase por los polos, pero esto puede saturar algunas zonas que no deberían hacerlo, por otro lado apenas hay flujos dispersos. Finalmente el volumen de los imanes es solo la mitad del nominal, esto es así por que las simulaciones indican que aproximadamente la mitad de las lineas de flujo de los imanes se cierran por el estátor axial y el aire, en vez de pasar por los entrehierros de lo polos (esto no puede representarse en este modelo y puede invalidarlo si el dispositivo varía sustancialmente sus dimensiones y materiales). Aunque el modelo puede aplicar las dos corrientes ix e iy a la vez, los resultados son poco fiables si bien se confirma que los circuitos son casi independientes. La desventaja de este modelo es que se basa en el conocimiento previo de que la mitad del flujo de los imanes permanentes se desperdicia, no podemos afirmar que esta sea una condición general y por tanto este modelo 2D no se sustenta en una base teórica tan sólida. En el modelo 2D basado en un corte de ZY los resultados son similares pero el error puede variar mucho según la forma de adaptar el recorrido del estátor radial, además la conversión de las dimensiones geométricas es más laboriosa. En este caso solo se representa la corriente para un eje, un par de polos, un par de imanes para cada lado, la totalidad del estátor radial y el rotor así como parte del estátor axial. Es de aplicación más general al poder modelar (aunque no perfectamente) el flujo inútil de los imanes permanentes y usar el volumen real de imán permanente que afecta a cada polo. 18 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 12. Modelos 2D planares en femm 4.2, a la izquierda modelo XY, a la derecha modelo alternativo ZY. Coloreado según materiales (amarillo: imanes, marrón: cobre de las bobinas, blanco: hierro, azul: aire o material no magnético). Notar que se ha modificado la posición y forma de los imanes para respetar la circulación de flujos. Figura 13. Comparación entre el modelo standard (Opera 3D) y los modelos simplificados 2D para calcular Fy. (a) rotor centrado, (b) rotor desplazado Y=-0,1mm. 7. Aplicación y curvas de rigidez Como punto final de este trabajo se ha modificado el modelo del rodamiento magnético para simular un dispositivo de este tipo que podría colocarse en un flywheel (volante de inercia) que se ha construido en la Universidad de Zaragoza [18]. Actualmente el flywheel tiene rodamientos radiales pasivos, este rodamiento activo permitiría controlar el desplazamiento axial e incluso podrían plantearse configuraciones para controlar los 5 grados de libertad. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 19
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Datos del Flywheel construido Masa del rotor 870 g Diámetro del eje Entre 11 y 25 mm (según altura) Diámetro de la carcasa del soporte del estátor 250 mm Fuerza axial necesaria si se conservan los rodamientos radiales actuales y la oscilación máxima permitida es ±1mm: 67 N a 2 mm Rigidez en dirección radial (actualmente) 41 N/mm Margen de seguridad del rodamiento activo Deseable el doble de Fuerza Tabla 2. Resumen de datos y especificaciones del flywheel . Dadas las dimensiones del flywheel (Tabla 2) resulta posible utilizar el modelo standard de rodamiento activo de este trabajo con unas pocas modificaciones. •El estátor del rodamiento es más pequeño que el del flywheel , por lo que el rodamiento se podría insertar por medio de una carcasa no magnética. •Suponemos que el rodamiento activo se colocaría en un extremo, por lo que el diámetro del eje del flywheel sería de 11mm (si bien también es posible insertar uno de 25). Esto permite poner de manifiesto una ventaja constructiva de este rodamiento, al cambiar el diámetro del eje de la máquina cambiar el acople del rotor puede ser inmediato, solo cambia el diámetro interior del tubo. En la práctica sería fácil de cambiar ya que el rotor es de menor diámetro que la obertura en el estátor del rodamiento. •Se ha cambiado también la característica constructiva de los imanes para probar, en vez de ocho piezas en arco se colocan dos anillos (el volumen total de imán es el mismo). •Se ha utilizado una longitud del solapamiento axial L=1mm en vez de 0,5 mm, alargando el rotor en 1 mm. La razón es que con un mayor solapamiento axial la Fuerza axial se mantiene mejor al desplazar el rotor. Las nuevas simulaciones ponen de manifiesto que las Fuerzas resultantes del rodamiento son las mismas. El grosor del tubo del rotor apenas afecta a la Fuerza conseguida (siempre y cuando no se estreche tanto que se sature el hierro). Otra característica de este rodamiento activo es que la Fuerza axial apenas depende del desplazamiento radial, pero sí depende del desplazamiento axial. La Fuerza axial que genera el rodamiento cuando la corriente iz=4A es 187 N con z=0 y baja hasta 115 N con z=-2 mm. Por lo tanto se genera casi el doble de la Fuerza axial necesaria (que incluye el peso del eje y la fuerza axial residual producida por los rodamientos activos radiales). Una característica negativa de este rodamiento activo es que cuando el rotor se mueve radialmente -0,1 mm aparece una Fuerza radial de -79N, por lo que los rodamientos radiales pasivos quedan prácticamente anulados y hay que recurrir al control activo de la Fuerza radial que proporciona el rodamiento activo. Se requiere iy=2A para que Fy(y=-0,1mm) sea aproximadamente cero. 20 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes El producto final de nuestras simulaciones deberían ser curvas de rigidez. Estas curvas de rigidez se utilizan en el diseño del control de los dispositivos (el diseño completo de un control va más allá de los objetivos de este TFM). La rigidez es el cociente entre la derivada de la Fuerza y la derivada del desplazamiento. La Figura 14 muestra la rigidez axial del rodamiento activo cuando iz=4A, en función del desplazamiento axial. Notar que la relación no es lineal, aunque podría simplificarse en tramos lineales. Además se debe recordar que Fz(z=0) es 187N, la gráfica de la Fuerza axial en sí puede verse en la Figura 7 (f), curva iz=4A. Figura 14. Rigidez de la Fuerza axial (Kz) producida por el rodamiento en función del desplazamiento axial cuando iz=4 A. La unidad de medida es N/mm. Recordar que la rigidez es la derivada de la Fuerza respecto de la derivada del desplazamiento y que Fz(z=0 mm) en este rodamiento no es cero (a menos que iz=0 A). Para una aplicación práctica habría que plantearse mayores modificaciones, incluso en el conjunto del sistema de levitación. Puesto que la fuerza axial a compensar proviene fundamentalmente de los dos rodamientos pasivos radiales, se debería colocar solamente uno, así el rodamiento activo a colocar podría ser de menor potencia. 8. Conclusiones y trabajo futuro En este Trabajo Fin de Máster se ha estudiado un rodamiento magnético con control activo en los tres ejes, mostrando su estructura y principio de funcionamiento contribuyendo a la comprensión del dispositivo. Se ha hecho una revisión del estado del arte sobre rodamientos magnéticos activos. Se ha realizado un modelo parcialmente parametrizable (por medio de scripts ) para simular un rodamiento por medio del programa de elementos finitos 3D Opera. Se ha validado el modelo utilizando resultados de la bibliografía. Las simulaciones han mostrado discrepancias respecto de la bibliografía. Según el modelo no existe fuerza de restauración axial y las fuerzas axiales generadas son menores. Se ha contrastado este resultado por otros métodos teóricos. Se han realizado simulaciones satisfactorias del mismo dispositivo con MEF 2D, explicando la teoría que soporta estas simplificaciones y las limitaciones de las Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 21 -2 -1 0 -20 -10 0 10 20 30 40 50 60 70 80 iz=4A, ix=iy=0A, L=1mm, eje de diametro 11mm Kz [N/mm] Desplazamiento axial rotor z[mm] Rigidez K [N/mm]
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes mismas. El modelo 3D se crea a partir de un script parcialmente parametrizable; se pueden cambiar fácilmente corrientes, las dimensiones de los polos y el solapamiento axial. Los modelos 2D se crean a partir de una geometría básica realizada manualmente y después se simulan en múltiples escenarios por medio de scripts parametrizables. Por tanto se ha realizado un modelo con algunas características generalizadas. Se ha mostrado una aplicación del rodamiento adaptándolo a un volante de inercia, esto ha requerido cambiar algunas dimensiones geométricas y evaluar las condiciones a cumplir. Se ha mostrado que a partir de los cálculos del modelo se pueden construir curvas de rigidez necesarias para un control del rodamiento. Finalmente se han realizado simulaciones más extensas que las mostradas en la referencia [1], de esta manera el conocimiento de las capacidades y limitaciones de este dispositivo es mayor gracias a este trabajo (Ver Anexos I y III). Como trabajo futuro, se proponen las siguientes tareas: •Comprobar experimentalmente el funcionamiento pasivo del dispositivo con el fin de comprobar las discrepancias observadas en la simulación. Esto requiere construir todo el rodamiento magnético, pero sin necesidad de aplicar corrientes ni implementar un control. Se deberían medir las fuerzas que aparecen sobre el rotor al moverlo en dirección axial y radial. Este es un paso previo a construir un rodamiento magnético activo funcional. •Diseñar un control de corriente para las bobinas del rodamiento magnético activo, imprescindible para su funcionamiento. •Construir el rodamiento magnético activo, lo que requiere completar los dos puntos anteriores. Referencias [1] Kouhei Tsuchida, Masatsugu Takemoto, y Satoshi Ogasawara; "A Novel Structure of a 3-axis Active Control Type Magnetic Bearing With a Cylindrical Rotor"; 2010 INTERNATIONAL CONFERENCE ON ELECTRICAL MACHINES AND SYSTEMS (ICEMS); 2010. [2] Gerhard Schweitzer y Eric H. Maslen; "Magnetic Bearings, Theory, Design, and Application to Rotating Machinery"; Springer-Verlag; 2009. [3] F. Matsumura y T. Yoshimoto; "System modeling and control design of a horizontal-shaft magnetic-bearing system"; IEEE TRANSACTIONS ON MAGNETICS, Vol. 22, pp. 196-203; mayo 1986. [4] M. Antila, E. Lantto, y A. Arkkio; "Determination of forces and linearized parameters of radial active magnetic bearings by finite element technique"; IEEE TRANSACTIONS ON MAGNETICS, vol. 34, pp. 684–694; mayo 1998. [5] M. A. Pichot, J. P. Kajs, B. R. Murphy, A. Ouroua, B. M. Rech, R. J. Hayes, J. H. Beno, G. D. Buckner, y A. B. Palazzolo; "Active Magnetic Bearings for Energy Storage Systems for Combat Vehicles"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 37, NO. 1; enero 2001 22 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes [6] Bostjan Polajžer, Gorazd Stumberger, Jože Ritonja, Oto Težak, Drago Dolinar, y Kay Hameyer; "Impact of Magnetic Nonlinearities and Cross-Coupling Effects on Properties of Radial Active Magnetic Bearings"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 40, NO. 2; marzo 2004. [7] K. Hijikata, M. Takemoto, S. Ogasawara, A. Chiba, y T. Fukao; "Behavior of a Novel Thrust Magnetic Bearing with a Cylindrical Rotor on High Speed Rotation"; IEEE TRANSACTIONS ON MAGNETICS, Vol. 45, No. 10, pp. 4617-4620; octubre 2009. [8] W. K. S. Khoo, Karuna Kalita, Seamus D. Garvey, R. J. Hill-Cottingham, Dave Rodger, y J. Fred Eastham; "Active Axial-Magnetomotive Force Parallel-Airgap Serial Flux Magnetic Bearings"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 46, NO. 7; julio 2010 [9] Kyungdae Kang y Alan Palazzolo; "Homopolar Magnetic Bearing Saturation Effects on Rotating Machinery Vibration"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 48, NO. 6; junio 2012 [10] Bangcheng Han, Shiqiang Zheng, Yingguang Wang y Junchao Cheng; "A FEM- Based Method Dynamic Analysis of a Thrust Magnetic Bearing with Permanent Magnet Bias"; 2012 8th IEEE INTERNATIONAL SYMPOSIUM ON INSTRUMENTATION AND CONTROL TECHNOLOGY (ISICT), pp.281 - 285; 2012 [11] Hou Eryong y Liu Kun; "Investigation of Axial Carrying Capacity of Radial Hybrid Magnetic Bearing"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 48, NO. 1; enero 2012 [12] Han Bangcheng, Zheng Shiqiang, Wang Xi, y Yuan Qian; "Integral Design and Analysis of Passive Magnetic Bearing and Active Radial Magnetic Bearing for Agile Satellite Application"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 48, NO. 6; junio 2012 [13] Fang Jiancheng, Wang Xi, Wei Tong, Tang Enqiong, y Fan Yahong; "Homopolar 2-Pole Radial Permanent-Magnet Biased Magnetic Bearing With Low Rotating Loss"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 48, NO. 8; agosto 2012 [14] Fabrizio Impinna, Joaquim Girardello Detoni, Nicola Amati, y Andrea Tonoli; "Passive Magnetic Levitation of Rotors on Axial Electrodynamic Bearings"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 49, NO.1, pp. 599-608 ; enero 2013 [15] Sheng-Ming Yang y Yu-Hue Tsai; "Design of a Thrust Actuator for Magnetic Bearings With Low Radial Attraction Force"; IEEE TRANSACTIONS ON MAGNETICS, VOL. 48, NO. 11; noviembre 2012 [16] Masatsugu Takemoto, Matsuhashi Daiki, y Nomura Masakatsu. Patente JP.2011-085223.A (obtenida traducción inglesa de Japan Patent Attorneys Association via http://www4.ipdl.inpit.go.jp/Tokujitu/tjsogodben.ipdl?N0000=115 diciembre 2012) [17] D.A.Lowther y P.P.Silvester; "Computer-Aided Design in Magnetics"; Springer- Verlag, New York; 1985 [18] Proyecto de investigación CYCIT_2011 de la Universidad de Zaragoza “Rodamientos por levitación magnética para volantes de inercia”, ref. ENE2011‐ 29741‐C02‐02; 2011. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 23
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Características de un sistema de suspensión magnético, con control activo en los tres ejes ANEXOS 24 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes ÍNDICE ÍNDICE.......................................................................................................................................................25 I. Graficas de comparación con la bibliografía............................................................................26 II. Grados de Libertad..........................................................................................................................29 III. Resultados adicionales del modelo..........................................................................................30 III.I. Mapas del campo B.................................................................................................................30 III.II. Flujos...........................................................................................................................................34 III.III. Gráficas de fuerzas................................................................................................................35 III.IV. Diferentes materiales magnéticos..................................................................................39 III.V. Diferentes imanes permanentes.......................................................................................40 IV. Resultados de los modelos 2D...................................................................................................42 IV.I. Calculo 2D de la fuerza axial Fz..........................................................................................42 IV.II. Calculo 2D de la fuerza radial Fy.......................................................................................44 V. Calculo de fuerzas en Opera y femm 4.2..................................................................................46 V.I. El método del Tensor de Stress de Maxwell....................................................................49 V.II. El método de los trabajos virtuales...................................................................................52 VI. Modificaciones del rodamiento.................................................................................................54 VII. Referencias.......................................................................................................................................56 VIII. Códigos fuente en Opera...........................................................................................................57 VIII.I. Script RodaMagActivo.comi..............................................................................................58 VIII.II. RodaMagActivoPostProc.comi........................................................................................77 IX. Scripts para femm 4.2....................................................................................................................84 IX.I. MagBearingZ.lua.....................................................................................................................84 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 25
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 24. Mapa de |B| cuando el rotor está centrado y la corriente axial iz=4A, resto de corrientes cero (cortes en los planos XY -izquierda- y ZY -derecha). La Fuerza se ejerce en dirección +Z. En la Figura 24 se puede ver qué sucede cuando se excita la bobina axial cuando el rotor está centrado, se concentra el campo en un extremo del rotor y circulan flujos más importantes por el exterior del estátor axial (debido al flujo de la bobina axial). La Figura 25 muestra en 3D los campos cuando todas las corrientes (ix, iy, iz) son 4A. La distribución de B en el rotor es igual que en el caso en el que solo se aplica iz. Figura 25. Mapa de |B| 3D cuando el rotor está centrado y todas las corrientes son 4A. Se muestra estátor radial, rotor e imanes; bobinas y estátor axial ocultos. La Figura 26 muestra el funcionamiento pasivo del rodamiento cuando el rotor se mueve hacia abajo (y= -0,1mm), se observa que aparece un campo intenso en el polo inferior que atrae al rotor hacia abajo (esta es una desventaja de este dispositivo). 32 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 26. Mapa de |B| cuando el rotor está desplazado 0,1mm hacia abajo y las corrientes son cero. La Fuerza se ejerce en dirección -Y. Figura 27. Mapa de |B| cuando el rotor está desplazado en dirección axial z=-1mm y las corrientes son cero. La Fuerza se ejerce en dirección -Z. La Figura 27 muestra el funcionamiento pasivo del rodamiento cuando el rotor se mueve en una dirección axial. Se observa que aparece un campo en un extremo del rotor que le mueve hacia ese mismo sentido, por lo que no hay fuerza pasiva de restauración (esta es una desventaja de este dispositivo). Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 33
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes III.II. Flujos Las siguientes imágenes muestran los flujos en el rodamiento por medio de vectores del campo B (el tamaño de las flechas es proporcional al módulo de B), obtenidos en Opera. Los vectores se muestran encima de un mapa de la intensidad de campo H [A/m]. Estas figuras corroboran el principio de funcionamiento a partir de flujos superpuestos. Figura 28. Flujos y mapa de |H| cuando el rotor está centrado y las corrientes son cero. Cortes en el plano XY y ZY. En la Figura 28 se aprecia la simetría de los flujos cuando el rotor está centrado y no se excitan las bobinas, estos flujos se producen por los imanes permanentes (por ello los flujos circulan en su mayor parte por los polos y el rotor, pero no por el resto del estátor radial). En la Figura 28 derecha puede verse con más claridad un hecho que se ha comentado anteriormente al simplificar el modelo a uno 2D, aproximadamente solo la mitad de las lineas de flujo que sale de los imanes vuelve atravesando los entrehierros, la otra mitad circula por el estátor axial y finalmente vuelve atravesando el aire. Este flujo que no vuelve por los entrehierros es inútil, por lo que esta parte del diseño es poco eficiente. La Figura 29 muestra el efecto de excitar las bobinas radiales del eje Y, los flujos de un polo se restan mientras que los flujos del polo opuesto se suman. La Figura 30 muestra los flujos al excitar la bobina axial, en esta figura el rotor está desplazado pero la figura es muy similar cuando el rotor está centrado. 34 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 29. Flujos y mapa de |H| cuando el rotor está centrado y la corriente radial iy=4A (el resto de corrientes son cero). Cortes en el plano XY y ZY. Figura 30. Flujos y mapa de |H| cuando el rotor se ha desplazado z=-2mm y la corriente axial iz=4A (el resto de corrientes son cero). Cortes en el plano XY y ZY. III.III. Gráficas de fuerzas Las gráficas mostradas en el Anexo I muestran los cálculos de Fuerza más importantes, sin embargo no caracterizan completamente el rodamiento magnético. En esta sección se muestran varias gráficas adicionales que dan más información y revelan algunas características adicionales no nombradas en la bibliografía. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 35
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 31. Fuerza axial Fz [N] en función del desplazamiento axial z [mm] para una corriente axial determinada (ver leyenda). Cada gráfica corresponde a una longitud L de solapamiento axial diferente. La Figura 31 muestra la Fuerza axial para grandes desplazamientos axiales. Se observa que la fuerza desestabilizadora producida por los imanes permanentes (curva iz=0A) apenas aumenta más allá de 30 N pasado cierto punto. 36 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA -3 -2,8 -2,6 -2,4 -2,2 -2 -1,8 -1,6 -1,4 -1,2 -1 -0,8 -0,6 -0,4 -0,2 0 -30 0 30 60 90 120 150 180 210 240 270 (b) ix=iy=0A, L=0,5mm iz=0A iz=4A Desplazamiento axial rotor z[mm] Fuerza axial Fz[N] -3 -2,8 -2,6 -2,4 -2,2 -2 -1,8 -1,6 -1,4 -1,2 -1 -0,8 -0,6 -0,4 -0,2 0 -60 -30 0 30 60 90 120 150 180 210 240 270 (c) ix=iy=0A, L=0mm iz=0A iz=4A Desplazamiento axial rotor z[mm] Fuerza axial Fz[N] -3 -2,8 -2,6 -2,4 -2,2 -2 -1,8 -1,6 -1,4 -1,2 -1 -0,8 -0,6 -0,4 -0,2 0 -30 0 30 60 90 120 150 180 210 240 270 (a) ix=iy=0A, L=1mm iz=0A iz=4A Desplazamiento axial rotor z[mm] Fuerza axial Fz[N]
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes En la Figura 32 también se observa que la fuerza desestabilizadora axial es menor cuando el solapamiento axial es mayor. La Fuerza axial producida por la excitación de la bobina disminuye al desplazar el rotor, sin embargo esta disminución es menos pronunciada cuando el solapamiento axial es mayor. Sin embargo la relación Fuerza axial/Desplazamiento axial es más lineal cuando el solapamiento es más pequeño. Notar que la disminución de Fz es más pronunciada cuando el desplazamiento es igual al solapamiento axial, esto es por que cuando se desplaza el rotor hasta z=L un extremo del rotor deja de estar solapado con el estátor axial. Figura 32. Fuerza radial Fy [N] en función de la corriente radial iy [A] para diferentes solapamientos axiales (L). Rotor centrado. La Figura 32 muestra la dependencia de la Fuerza radial respecto del solapamiento axial y de la corriente axial. Aumentar el solapamiento axial en 0,5 mm aumenta la Fuerza radial iy en aproximadamente un 5%. La corriente axial iz influye muy levemente en la corriente radial Fy cuando el rotor está centrado, cumpliendo la característica de ejes independientes. Figura 33. Fuerzas en función del desplazamiento axial en distintas situaciones. A la izquierda calculamos la Fy con iy=4A y probando con diferentes corrientes axiales. A la derecha todas las corrientes son 4A y el rotor se ha movido 0,1 mm hacia abajo. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 37 01234 0 30 60 90 120 150 180 (a) ix=0A, iz=0A L=0 mm L=0,5 mm L=1 mm Corriente radial iy[A] Fuerza radial Fy[N] 0 1 2 3 4 0 30 60 90 120 150 180 (b) ix=0A, iz=4A L=0 mm L=0,5 mm L=1 mm Corriente radial iy[A] Fuerza radial Fy[N] -1 -0,8 -0,6 -0,4 -0,2 0 0 30 60 90 120 150 180 (a) iy=4A, ix=0A, L=0,5mm iz=0A iz=2A iz=4A Desplazamiento axial rotor z[mm] Fuerza radial Fy[N] -1 -0,8 -0,6 -0,4 -0,2 0 0 30 60 90 120 150 180 210 (b) ix=iy=iz=4A, L=0,5mm desplazamiento y=-0,1mm Fx Fy Fz Desplazamiento axial rotor z[mm] Fuerza F[N]
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Las pruebas indican que la Fuerza axial Fz es independiente de las corrientes radiales y del movimiento en los ejes X e Y (se aprecia comparando la gráfica de Fz en la Figura 33.b con las gráfica de Fz en el Anexo I, son iguales a pesar de las diferentes condiciones). Fz solo depende de la corriente axial iz y del movimiento del rotor en el eje Z. La Fuerza radial ya se ha mostrado que depende de la posición radial y de la corriente radial del eje en cuestión. Fy es muy independiente de ix y bastante independiente de iz (ver Anexo I). Sin embargo está independencia esta sometida a algunas sutilezas. La Figura 33.a muestra que iy es independiente del desplazamiento radial siempre que iz=0, sin embargo cuando se aplica corriente axial se pierde independencia. Esta conclusión puede ser importante para el dimensionamiento dado que la corriente radial puede disminuir al mover el rotor. La Figura 33.b muestra un caso extremo en el que el rotor no solo se mueve en el eje Z si no que además está desplazado 0,1mm hacia abajo (eje Y) y todas las corrientes se aplican al máximo (por lo que corremos el peligro de saturar los materiales). La fuerza Fx se ve afectada de la misma manera que la corriente radial en la Figura 33.a, pero vemos que Fy (recordar que y=-0,1mm) aumenta al mover axialmente el rotor. Este comportamiento de Fy se explica por que la contribución del flujo de los imanes a la Fuerza radial (recordar que en este caso empujaba al rotor hacia abajo) disminuye al mover el rotor en el eje Z. Finalmente las figuras 34 y 35 muestran un hecho importante a la hora de pensar como controlar el movimiento del rotor. La Figura 34 muestra la forma correcta de aplicar la corriente axial para mover el rotor, notar que una gráfica es para iz=4A y la otra es para iz=-4A (sentido de corriente inverso). La corriente debe ser aplicada con el sentido correcto según el rotor se mueva hacia un sector o hacia el otro, ya que una corriente positiva siempre mueve el rotor hacia delante y una corriente negativa siempre lo mueve hacia atrás. La Figura 35 muestra la Fuerza axial para iz positiva incluyendo el sector en que no se debería aplicar normalmente. Figura 34. Fuerza axial Fz en función del desplazamiento axial con las corrientes en sus sectores de aplicación correctos. Notar que una fuerza positiva mueve el rotor hacia z>0, mientras que una fuerza negativa mueve el rotor hacia z<0. 38 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA -1 -0,8 -0,6 -0,4 -0,2 0 0,2 0,4 0,6 0,8 1 -210 -180 -150 -120 -90 -60 -30 0 30 60 90 120 150 180 210 ix=iy=0A, L=0,5mm iz = 4A iz = -4A Desplazamiento axial rotor z[mm] Fuerza axial Fz[N]
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 35. Fuerza axial Fz en función del desplazamiento axial para iz=4A. Notar que una fuerza positiva mueve el rotor hacia z>0, por lo que esta corriente no debería aplicarse en el cuadrante derecho si queremos mantener el rotor centrado en el cero. Esta gráfica corresponde al modelo para la aplicación del Flywheel . III.IV. Diferentes materiales magnéticos El modelo standard utiliza Hierro Puro ( Pure Iron ) como material magnético usado en rotor y estatores, tiene una de las curvas de permeabilidad que permiten mayores campos B y es similar a algunos aceros (p.e. Steel 1006 ). Dado que en la práctica los materiales tienen costes y propiedades mecánicas determinantes, es importante plantearse que sucede cuando se utiliza un material magnético diferente, para ello se han hecho simulaciones en Opera utilizando un Acero Inoxidable ( Stainless Steel 416 ) con una curva de saturación que admite menores campos B. Figura 36. Curvas B-H empleadas en los modelos del trabajo, los datos provienen de la base de datos de materiales de femm 4.2. A continuación se muestran varias gráficas (Figura 37), similares a las mostradas anteriormente para el modelo standard, en las que se comparan las fuerzas generadas en el modelo con Hierro Puro y el modelo con Acero Inoxidable 416. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 39 -2 -1,5 -1 -0,5 0 0,5 1 1,5 2 0 20 40 60 80 100 120 140 160 180 200 Fz(N) Desplazamiento axial rotor z[mm] Fuerza axial Fz[N] iz=4A, ix=iy=0A, L=1mm, eje de diametro 11mm 0 50000 100000 150000 200000 0 0,5 1 1,5 2 2,5 Curvas B-H Hierro Puro Acero Inoxidable 416 H[A/m] B[T]
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 37. Comparación entre fuerzas obtenidas en el modelo standard (con Hierro Puro) y el modelo Steel 416 (con Acero Inoxidable 416). Se ve rápidamente que al usar ese acero como material magnético las fuerzas generadas son menores aunque a penas se pierde linealidad. Notar que la Fuerza desestabilizadora radial que aparece cuando se mueve el rotor hacia abajo (Figura 37.b) es menor, lo cual es una ventaja. III.V. Diferentes imanes permanentes El modelo standard utiliza imanes permanentes de SmCo 24 MGOe, un imán lineal con propiedades similares a algunos imanes de NdFeB. Los imanes son muy caros así que merece la pena plantearse si es posible utilizar imanes con curvas B-H no lineales y que criterios hay que seguir para elegirlos. Para ello se ha simulado en Opera un modelo con imanes permanentes de Alnico5, un imán no lineal con un campo coercitivo Hc muy bajo pero capaz de producir un campo B mayor. La Figura 38 muestra las curvas B-H de los imanes (utilizadas las curvas de la biblioteca de materiales de femm 4.2). A priori un imán más potente producirá fuerzas mayores, pero hay que considerar el campo H al que se somete el imán ya que va a trabajar en esa zona. Viendo las gráficas (Figura 39) se ve que se produce menos Fuerza utilizando Alnico5, por lo que 40 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 0 1 2 3 4 0 30 60 90 120 150 (a) ix=0A, L=0,5mm; rotor centrado iz=0A standard iz=0A Steel416 Corriente radial iy[A] Fuerza radial Fy[N] 0 1 2 3 4 0 30 60 90 120 150 180 210 240 (c) ix=0A, L=0,5mm; rotor centrado Corriente axial iz[A] Fuerza axial Fz[N] 0123456 -80 -60 -40 -20 0 20 40 60 80 100 120 140 (b) ix=0A, L=0,5mm Rotor desplazado y=-0,1mm iz=0A standard iz=0A Steel416 Corriente radial iy[A] Fuerza radial Fy[N] -1 -0,8 -0,6 -0,4 -0,2 0 -30 0 30 60 90 120 150 180 210 (d) ix=iy=0A, L=0,5mm iz=0A standard iz=4A standard iz=0A Steel416 iz=4A Steel416 Desplazamiento axial rotor z[mm] Fuerza axial Fz[N]
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes trabaja en una zona en la que produce menos B que el imán lineal. Además se puede perder linealidad, la extraña forma de la gráfica para Fz nos indica que el imán está sometido a valores de H variables. Figura 38. Curvas B-H empleadas en los imanes permanentes del TFM. Figura 39. Graficas comparando resultados de Fuerza con diferentes imanes. Por tanto solo se pueden usar imanes cuya zona lineal coincida con los rangos de H a los que van a ser sometidos (entre 2·10 4 y 10 5 A/m en el modelo con SmCo). Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 41 -800000 -700000 -600000 -500000 -400000 -300000 -200000 -100000 0 0 0,2 0,4 0,6 0,8 1 1,2 1,4 Curvas B-H SmCo 24 MGOe (lineal) Alnico5 H[A/m] B[T] 01234 0 30 60 90 120 150 180 210 240 (d) ix=0A, L=0,5mm iy=0A standard iy=0A Alnico5 Corriente axial iz[A] Fuerza axial Fz[N] -1 -0,8 -0,6 -0,4 -0,2 0 -30 0 30 60 90 120 150 180 210 (e) ix=iy=0A, L=0,5mm iz=0A standard iz=4A standard iz=0A Alnico5 iz=4A Alnico5 Desplazamiento axial rotor z[mm] Fuerza axial Fz[N] 01234 0 30 60 90 120 150 (a) ix=0A, L=0,5mm iz=0A standard iz=0A Alnico5 Corriente radial iy[A] Fuerza radial Fy[N] 0123456 -80 -60 -40 -20 0 20 40 60 80 100 120 140 (c) ix=0A, L=0,5mm, Rotor desplazado y=-0,1mm iz=0A standard iz=0A Alnico5 Corriente radial iy[A] Fuerza radial Fy[N]
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Simulación Diferencia Coenergía Diferencia 2D-3D con Tensor de Stress de Maxwell Diferencia 2D-3D con método de trabajos virtuales Diferencia entre los dos métodos en Opera. Solo bobina 3,3% -4,03% 1,22% 3,15% Dos bobinas -0,5% -4,31% -1,68% 0,83% Solo imán 3967% 14,62% 16,84% 3,33% Solo imán, más detalle 3181% 1,89% 1,13% -0,00% Imán y bobina 3300% 2,94% 14% 11,47% Imán y bobina, más detalle 3188% 1,10% 10% 9,04% Imán y bobina, mucho más detalle. 3169% 0,98% 8,79% 7,93% Tabla 3. Resumen de resultados de las pruebas de cálculo de energías y fuerzas en femm 4.2 y Opera, usando dos métodos de cálculo. Hay más de una razón para que femm 4.2. y Opera se comporten de forma diferente en este aspecto. En primer lugar Opera utiliza su propio algoritmo de cálculo para acelerar la solución (ver referencia [23] para una descripción del cálculo de campos magnéticos en Opera). Según la referencia [17] las aproximaciones numéricas utilizadas por los programas de MEF para solucionar las ecuaciones de los campos magnéticos es una de las causas de que diferentes métodos no den la misma solución. En segundo lugar, hemos observado que al mallar mejor en Opera las soluciones de los dos métodos tienden a converger; hay que mallar mucho mejor que en femm, tal vez por que el proceso de mallado en 2D es mucho más simple y fiable que en 3D. Finalmente femm 4.2 y Opera dan resultados muy diferentes al calcular la Coenergía cuando hay imanes permanentes en el modelo, de dos ordenes de magnitud. Sin embargo la diferencia no es tanta al calcular la Fuerza por medio de las energías, además la fuerza que calcula Opera tiende a converger con la de femm al mallar más y más fino. He aquí una posible explicación por la que el método de los trabajos virtuales da peores resultados que el Tensor de Stress en Opera: El método de los trabajos virtuales requiere calcular la energía contenida en todo el modelo, en dos simulaciones diferentes en las que la pieza se mueve. Aunque la relación entre energía magnética y densidad de campo sea el múltiplo de dos magnitudes (B·H) lo cierto es que grandes volúmenes con pequeños campos son relevantes para el cálculo de la energía total. Al aplicar el Método del Tensor de Stress basta con mallar muy bien el volumen cercano a la superficie de integración (normalmente entrehierros), pero al aplicar el método de los trabajos virtuales también se deben mallar bien los volúmenes cruzados por flujos dispersos. Dadas las dificultades del mallado en 3D es razonable que los errores sean mayores al integrar en volumen (p.e. energías). Respecto a por que los resultados son mucho peores cuando hay imanes permanentes en el modelo no hay una explicación convincente, aunque tampoco sabemos con exactitud la manera que tiene Opera de integrarlos en el cálculo. 48 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Como conclusión, se ha elegido el Tensor de Stress de Maxwell para calcular fuerzas en femm 4.2. ya que es más rápido y cómodo que el método de trabajos virtuales. En Opera se ha tenido que determinar qué método es más preciso para el tamaño de mallado que se podía emplear, para ello se han construido modelos axisimétricos en 2D y 3D, usando como objetivo los resultados de los modelos 2D con el mallado más fino. De nuevo el Tensor de Stress de Maxwell ha sido el método elegido ya que el método de los trabajos virtuales no da buenos resultados con un mallado razonable en Opera. V.I. El método del Tensor de Stress de Maxwell El método del Tensor de Stress de Maxwell es empleado frecuentemente en el cálculo de Fuerzas y Pares por métodos numéricos. Debido a inexactitudes numéricas (por ejemplo en MEF) el Par obtenido puede ser impreciso. Para calcular el Par existen métodos alternativos, p.e. el método de Arkkio y el método de la corriente magnetizante, ambos variantes del Tensor de Stress de Maxwell [19]. Este método es rápido y solo requiere el uso de una simulación (el método de trabajos virtuales requiere dos o más). El método parte de la ley de Faraday y define el tensor de stress σ F como una presión en una dirección que depende de las lineas de flujo. El tensor es función de la mitad de la permeabilidad magnética del medio y del cuadrado de la intensidad de campo magnético H (Formula 1) σ F = 1 2 µ 0 H 2 (Formula 1) [19] Descomponiendo el tensor en sus componentes normal y tangencial podemos calcular Fuerza y Par, tras integrar sobre la superficie de interés. Realizando sustituciones el método puede aplicarse de diferentes maneras, la forma habitual es integrar los tensores de stress sobre una superficie de aire (con permeabilidad magnética igual a la del vacío) muy cercana a la pieza sobre la que se calcula la Fuerza. La Fuerza magnética se expresa además en función de la integral de superficie del cuadrado de la densidad de flujo magnético B. La Formula 2 muestra el cálculo de fuerzas en femm 4.2, es la fuerza normal a una superficie diferencial. La Fuerza total se obtiene integrando a lo largo de una superficie cerrada de integración en el aire (representada en 2D por una camino lineal), descomponiendo el vector en componentes se obtienen las fuerzas en cada dirección (Fx y Fy para simulaciones 2D planares, Fz para simulaciones axisimétricas) [20]. dF = 1 2 (H(B· n)+B(H · n)−(H ·B)n) (Formula 2) "n" denota la normal [20] La Figura 50 muestra el cálculo de fuerzas para simulaciones magnéticas en Opera (3D). Como la superficie de integración suele ser aire o el vacío, µ es normalmente µ 0 . Opera permite la opción de integrar los tensores de stress a lo largo de superficies que cruzan materiales de diferentes permeabilidades magnéticas, pero eso requiere programar manualmente el proceso [21]. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 49
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 50. Formulas del método del Tensor de Stress de Maxwell en Opera [21]. Conceptualmente el método del Tensor de Stress sobre una superficie cerrada permite valorar de forma aproximada la dirección hacia la que se mueve una pieza rodeada de aire tras determinar donde aparecen los mayores campos magnéticos; para que exista Fuerza deben existir campos magnéticos de diferente magnitud en extremos opuestos como ya sabemos. Notar que los tensores de stress usados son normales a la cara exterior de la superficie y habitualmente positivos, es decir, el sentido del flujo total no es relevante en muchos casos, lo más relevante es el módulo del flujo total en la superficie (Figura 51). Sin embargo un tensor de stress puede tener sentido negativo (hacia dentro de la pieza), por ejemplo si H es tangente a la superficie [22]. Figura 51. Relación entre flujos y fuerzas ilustrada en varios ejemplos simples. Los flujos que se superponen se restan o suman entre sí según su dirección (no ilustrado) pero de los flujos totales resultantes lo más relevante para el cálculo de la Fuerza es la magnitud del campo magnético normal a la superficie de la pieza móvil. De cara al usuario de un programa de MEF hay varias consideraciones a tener en cuenta al utilizar el método del Tensor de Stress de Maxwell para calcular fuerzas en su modelo. •El tensor de stress se integra a lo largo de un superficie cerrada que envuelve la pieza en la que se evalúa la Fuerza. La precisión de este cálculo depende del error en los cálculos de los campos magnéticos (B y/o H), por lo que hay que procurar que los cálculos sean más precisos en el volumen que cruza la superficie de integración [20][21]. •En el método habitual nunca se debe elegir como superficie de integración la superficie del objeto en estudio. Esa superficie es la frontera o interface 50 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes entre dos materiales con diferentes permeabilidades y el programa va a utilizar la permeabilidad magnética del vacío o aire. Además las soluciones de B y H tienen mayor error en los lugares donde los campos varían más rápido de un elemento a otro; este error es particularmente notable en los puntos adyacentes a las fronteras entre materiales, especialmente en el cálculo de la componente tangencial (se usa para calcular el Par). Los errores en el cálculo de B también son particularmente notables en las esquinas [20][21]. •En teoría (si la solución del campo magnético ha sido exacta) el método del Tensor de Stress debe dar los mismos resultados independientemente de la superficie de integración elegida. Esto significa que podemos elegir una superficie de integración alejada de la pieza, y de cualquier material distinto del aire. Femm 4.2 aconseja elegir una superficie de integración alejada al menos 2 elementos de cualquier frontera o interface (cada elemento es un triángulo usado en el mallado del problema)[20]. •En la práctica diferentes superficies de integración proporcionan soluciones diferentes. Esta diferencia puede usarse para estimar cualitativamente el error cometido. Es aconsejable integrar más de una superficie y después promediar los resultados [17] •Hay que utilizar un mallado fino en el volumen que cruza la superficie de integración elegida. Por un lado necesitamos espacios con muchos elementos para poder escoger una superficie alejada de todas las interfaces . Por otro lado el cálculo depende B2, lo que implica mayores errores, la única forma de recuperar ese error es mejorar la precisión del cálculo de B (p.e. mallando mejor, en Opera tenemos esta y otras opciones como usar elementos cuadráticos en vez de lineales). Un mallado es lo suficientemente fino cuando cambiar el tamaño del mallado apenas altera la solución [20]. En el modelo usado en este Trabajo Fin de Máster se han seguido la mayoría de recomendaciones arriba señaladas. En Opera no se traza una superficie de integración si no que se elige el objeto de interés, se escoge una o más capas de elementos alrededor del objeto y se utiliza la superficie exterior resultante como superficie de integración. No se han realizado cálculos en múltiples superficies para después promediarlas, el mallado de los entrehierros que se podía hacer en Opera no era lo bastante fino y fiable como para permitirlo. En Opera la superficie de integración está alejada un elemento desde el rotor, las comparaciones en modelos axisimétricos indican que esa era la mejor superficie de integración. La superficie de integración en Opera no tiene esquinas de 90º (se ha forzado a Opera a mallar el aire alrededor del tubo del rotor de una forma determinada, en forma de tubo con esquinas biseladas). Como conclusión, en esta sección se ha explicado brevemente el método de cálculo de fuerzas empleado en la simulación, así como la forma en que debe aplicarse y la forma en que se ha podido aplicar en la simulación de este TFM. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 51
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes V.II. El método de los trabajos virtuales El método de los trabajos virtuales es un método general para calcular fuerzas a partir del cálculo de energías. Se basa en la relación Fuerza igual a Energía por desplazamiento (siendo esa energía la empleada en desplazar el objeto), o al hecho de que un movimiento causará una variación en la energía total del sistema. Por tanto la Fuerza es igual a la diferencia de energías en el sistema al realizar un desplazamiento, dividido entre la magnitud de dicho desplazamiento (Formula 3) para movimientos unidimensionales en un problema magnético). F = Wc p − Wc p (Formula 3) "p" es la posición inicial, "δ" es el desplazamiento, "Wc" es la coenergía magnética de todo el sistema en la posición apropiada [20]. El método supone que la fuerza no varía significativamente durante el desplazamiento, por lo que este desplazamiento debe ser pequeño [17]. También supone que la diferencia de energía se emplea en mover la pieza (p.e. no hay pérdidas por rozamiento ni se inducen corrientes). Según las referencias [20][22] la corriente debe ser constante para emplear este método. Al emplear MEF surgen errores por el cálculo de la energía (que depende de los campos magnéticos), el error es especialmente notable al trabajar con pequeñas fuerzas. Este error mejora si todas las simulaciones utilizan un mallado similar [17]. Por otro lado cualquier mejora en el cálculo de B (p.e. mallando más fino) hará más preciso el cálculo de la Energía. El cálculo también puede mejorarse creando una curva suavizada a partir de las energías calculadas y utilizar esta curva para calcular la Fuerza. Por otro lado la Fuerza calculada solo se correspondería a la Fuerza en los dos puntos donde se calcula la Energía si el desplazamiento es infinitesimal o la Fuerza apenas varía, en otro caso la Fuerza calculada corresponde más bien a punto medio en la trayectoria del desplazamiento virtual. En un problema magnético se puede calcular la Energía magnética (con la formulación lineal BH/2 o la no lineal, según los materiales sean lineales o no) y la Coenergía magnética. La Energía se puede emplear para calcular la inductancia [20] pero para calcular Fuerza y Par se utiliza la Coenergía (si bien la Coenergía es igual a la Energía en problemas lineales) [22]. La Coenergía en un punto es una integral de B y H, para un volumen se integra en el espacio. Para este método debe aplicarse la integral a todo el volumen del sistema (Formula 4). La Figura 52 muestra gráficamente los conceptos de Energía y Coenergía magnética almacenada en un punto con una curva de permeabilidad determinada. Wc = ∫ ∫ 0 H B· dH ' dV (Formula 4) Coenergía magnética contenida en un volumen. 52 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 52. Explicación gráfica de Energía (We) y Coenergia (Wc) magnética contenida en un punto con una curva de magentización no lineal en el que hay una intensidad de campo H'. Este método es computacionalmente más costoso, requiere dos o más simulaciones (una inicial, más otra para el desplazamiento en cada eje). En Opera (3D) el cálculo de la Energía en todo el volumen es mucho más lento que el cálculo del Tensor de Stress de Maxwell sobre una superficie cerrada. Este método no ha dado buenos resultados en Opera en modelos que tienen bobinas activas e imanes (Figura 53). Para dar buenos resultados se requiere mallar mucho más fino, no solo los entrehierros si no también volúmenes con flujos dispersos. Todo volumen cuya coenergía contenida varíe con el desplazamiento requiere un buen mallado para que este método de buenos resultados. Figura 53. Comparación entre los resultados del cálculo de fuerzas obtenido mediante el Tensor de Stress de Maxwell y el Método de Trabajos Virtuales. Se ha cálculo Fz en función del desplazamiento axial (z) cuando iz=4A. Como conclusión, en esta sección se ha explicado brevemente cómo se aplica el método de los trabajos virtuales a un problema magnetoestático y cuales son los problemas que se presentan al utilizarlo en un programa de MEF 3D como Opera. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 53
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes VI. Modificaciones del rodamiento En este anexo se van a mostrar y comentar varias modificaciones propuestas en la patente [16] asociada a la referencia [1]. La Figura 54 contiene los esquemas de las tres modificaciones, representados con cortes en el plano ZY. Se han coloreado los imanes en verde y las bobinas en marrón. Figura 54.a: Imanes permanentes finos (en su dimensión z), para ello el estátor axial tiene protuberancias (pieza 4c) en forma de anillos a la altura de los imanes. Los imanes siguen estando encajados en la misma posición. La protuberancia podría colocarse también en el estátor radial. El objetivo es reducir los costes de fabricación al utilizar imanes más finos. Se han realizado algunas simulaciones y se ha determinado que reducir el volumen del imán reduce la Fuerza que puede producir el rodamiento, pero no en la misma proporción. En el modelo standard, si reducimos el volumen de imán a la mitad realizando esta modificación, las fuerzas producidas se reducen en aprox. un 25% (incluso las desestabilizadoras). Por tanto la dimensión Z de los imanes es un parámetro con el que se puede jugar para optimizar los costes o para alterar las fuerzas producidas por el dispositivo. Figura 54.b: Se ha cambiado la disposición de los imanes y de los bobinados axiales, ahora todos los imanes son un único anillo pero tenemos dos bobinas axiales. Notar que las bobinas axiales siguen teniendo su eje en Z. El Conjunto se sigue sosteniendo con adhesivos como p.e. resina epoxy. El principio de funcionamiento sigue siendo muy similar, la referencia[16] asegura que al reducir el número de imanes se puede reducir el coste de fabricación. Figura 54.c: Esta es posiblemente la modificación de mayor interés. El objetivo es que el rodamiento produzca fuerza axial en una dirección incluso cuando la corriente axial iz es cero (introduce un offset a la Fuerza axial). Se ha modificado un lado del estátor axial de manera que no sea simétrico, de esa manera se crea una fuerza natural hacia la derecha del diagrama. El dispositivo se ha pensado para equipos que introducen perturbaciones constantes hacia un lado, pero parece que podría ser de utilidad para máquinas con eje vertical. Se han realizado algunas simulaciones y efectivamente aparece una Fuerza axial notable hacia la protuberancia marcada con dimensiones 4d. en la Figura 54.c. 54 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Figura 54. Modificaciones propuestas en la patente, imagen modificada de [16]. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 55
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes VII. Referencias Referencias utilizadas exclusivamente en los anexos. [19]Juha Pyrhönen, Tapani Jokinen, Valéria Hrabovcová; "Design of Rotating Electrical Machines"; John Wiley & Sons Ltd, Wiltshire; 2008 [20]David Meeker; "Finite Element Method Magnetics Version 4.2 User’s Manual"; Octubre, 2010 [21]"Opera-3d Reference Manual Version 13.0", Cobham Technical Services, Vector Fields Software. [22] Joao Pedro A. Bastos, Nelson Sadowski; "Electromagnetic Modelling by Finite Element Methods"; 2003 [23] Antonio Usón Sardaña; "Aplicación del Método de Elementos Finitos al Perfeccionamiento de Pinzas Amperimétricas"; tesis doctoral de la Universidad de Zaragoza; 2007. 56 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes VIII. Códigos fuente en Opera A continuación se incluyen los dos scripts .comi más importantes en Opera, a estos se le podría añadir un tercero utilizado exclusivamente para volver a realizar el postprocesado de varios archivos ya resueltos utilizando opciones adicionales. El enfoque utilizado a sido realizar un proceso secuencial en el que se programan una serie de simulaciones con ciertas características, por ejemplo para una corriente dada se van simulando varias posiciones del rotor. El script principal (RodaMagActivo.comi) se ejecuta en el programa Modeller , este crea el modelo, lo malla, crea la base de datos y llama al programa Solver que ejecuta el algoritmo de solución TOSCA, Modeller queda esperando con el script en pausa. La ejecución de Solver consume la mayor parte del tiempo utilizado, una vez terminada la solución Solver se cierra y Modeller llama al programa de Postprocesado haciendo que este se abra ejecutando el script de postprocesado (RodaMagActivoPostProc). Una vez completado el postprocesado Modeller vuelve a empezar con un nuevo modelo. La experiencia indica que este enfoque no ha sido el más adecuado. Por un lado no hace un uso muy eficiente de las licencias de Opera, ya que estas funcionan por programa ( Modeller , Solver , Post-processor ) y con este enfoque tenemos que emplear una licencia de Modeller cuando mantiene el script en espera mientras Solver hace su trabajo. En segundo lugar Solver es un programa que solo funciona en un procesador, por lo que no saca partido de los procesadores actuales con múltiples nucleos. Otro problema es que cualquier error rompe el proceso secuencial y volver a empezar desde cierto punto complica la programación. Finalmente es frecuente que se tengan que volver a postprocesar las simulaciones a posteriori para extraer nuevos datos o cambiar el formato, por lo que el proceso secuencial no da muchas ventajas. Un error que se ha encontrado con frecuencia es que Modeller no ha podido emplear suficiente memoria RAM para mallar un modelo, tras realizar varias simulaciones (el problema desaparece cuando se reinicia Modeller ). Esto sugiere que Opera tiene un Memory Leak , lo que hace desaconsejable utilizar un largo proceso secuencial, especialmente en SO Windows de 32 bits (que tienen una gestion de memoria RAM limitada). Windows XP (el utilizado en este TFM) solo permite que un proceso acceda a aproximadamente 2 GB de RAM, en la práctica esto permite solucionar y postprocesar archivos de solución de hasta 1GB aproximadamente. Para futuros usos se aconseja: •Utilizar un SO Windows de 64 bits. •Modelar, mallar y crear las bases de datos en un proceso secuencial con un script Modeller, pero no solucionar inmediatamente. •Opera permite dejar los archivos a solucionar en una cola que gestiona el mismo. Se pueden ir añadiendo a la cola por medio del script de Modeller y solucionarse cuando el usuario quiera, sin tener que utilizar licencias de Modeller y Solver a la vez. •Una ver solucionadas todas las simulaciones, postprocesarlas con un script de posprocesado. Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 57
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //DIRECCIONES DE MAGNETIZACION //Segun el documento ASK de Opera (hablando de los angulos Euler) la direccion de //magnetizacion por defecto de un Iman Permanente es el eje Z direccion positiva. //------------------------------------------------------------------------------------- //El comando VOLUME PICK crea la etiqueta de Volumen aunque ningun objeto la utilice. //Otra forma de crear etiquetas de volumen es asignarlo cuando se crea un objeto. VOLUME PICK 'Back Magnetization Direction' VOLUME OPTION=MODIFY THETA=180 PHI=0 PSI=0 VOLUME UNPICK 'Back Magnetization Direction' VOLUME PICK 'Front Magnetization Direction' VOLUME OPTION=MODIFY THETA=0 PHI=0 PSI=0 VOLUME UNPICK 'Front Magnetization Direction' //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //DEFINIR LOS PARAMETROS DEL ANALISIS //Solver, numero de iteraciones, tipo de integracion, etc. //------------------------------------------------------------------------------------- //Tipo de analisis (Tosca Magnetic) ANALYSIS OPTION=ACTIVATE PROGRAM=TOSCAMAGN ANALYSISDATA OPTION=SET PROGRAM=TOSCAMAGN LINEAR=NO NLITERTYPE=NEWTON NITERATIONS=21 TOLERANCE=1.0E- 03 HX=0 HY=0 HZ=0 RHS=ADAPTIVE POTENTIALCUT=YES //Tolerancias geometrícas al hacer los cuerpos (no confundir con las tolerancias de mallado) //poco documentado en la documentacion de Opera, default 1.0E-06 //PRECISIONDATA ABSTOL=1.0E-06 SMALLFACE=1.0E-06 //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //BUCLE DE SIMULACIONES //Hemos definido materiales, variables y otros datos generales. //Ahora prepararemos las simulaciones (con la geometria, el desplazamiento //del rotor y la corriente adecuadas) y las iremos resolviendo en un bucle. //El proceso es secuencial, preparamos una simulacion, la resolvemos, preparamos la siguiente, etc.. //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //Bucle de simulaciones en funcion de la posicion del rotor //Mientras el numero de posiciones de rotor simulados sea menor que el numero deseado... (i se inicializa en 0) //Notar que cada vez que avanzamos en este bucle la geometría cambia al moverse el rotor. //------------------------------------------------------------------------------------- $ WHILE #i LT #ejeNumDesplaz //Primero borrar el Model Body si existe, ya que en caso contrario no se permite mover los objetos //MODELBODY es una system variable del programa Modeller (0 si no se ha creado el Model Body, 1 si el Body esta creado) $ IF MODELBODY E 1 MODEL DELETE $ END IF //------------------------------------------------------------------------------------- //CREAR EL MODELO GEOMETRICO (SALVO BOBINAS) //La experiencia demuestra que tiene algo de importancia el orden en que se crean los objetos, //parece que Modeller ajusta los objetos complejos según se van creando. Es mejor hacer //los objetos importantes y pequeños primero. //------------------------------------------------------------------------------------- //calcular la posicion del centro del rotor en funcion del numero de simulacion $ constant #rotorX #ejeDesplazX*#i+#ejeIniX $ constant #rotorY #ejeDesplazY*#i+#ejeIniY $ constant #rotorZ #ejeDesplazZ*#i+#ejeIniZ //------------------------------------------------------------------------------------- //Borrar el modelo de la simulacion anterior, a menos que sea la primera simulacion (en cuyo caso no hay nada que 64 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes borrar) //BODIES y CONDUCTORS son variables de sistema de Modeller (numero de cuerpos y numeros de conductores presentes) $ IF (BODIES+CONDUCTORS) NE 0 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Rotor' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorExt' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorExtCent' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapX' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapY' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorInt' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorGap1' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorGap2' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorBiselA' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorBiselB' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorA' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorB' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Radial Control Stator' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Thrust Control Stator' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireGrueso' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireBobinaAxial' $ IF #formaPMAnillo E 0 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Up' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Left' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Down' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Right' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Up' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Left' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Down' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Right' $ END IF $ IF #formaPMAnillo E 1 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front' $ END IF PICK OPTION=TOGGLE TYPE=COND N=1 $ IF #formaPolos E 0 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireBobinasRadial' PICK OPTION=TOGGLE TYPE=COND N=2 PICK OPTION=TOGGLE TYPE=COND N=3 PICK OPTION=TOGGLE TYPE=COND N=4 PICK OPTION=TOGGLE TYPE=COND N=5 $ END IF $IF #PLANOS_CORTE GT 0 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CortePlano0XY' $END IF $IF #PLANOS_CORTE GT 1 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotor0YZ' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotor0XZ' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CortePlano0XZ_1' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CortePlano0XZ_2' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CortePlano0YZ_1' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CortePlano0YZ_2' $END IF DELETE REGULARISE=NO EXTERNAL=NO $ END IF //-------------------------------------------------------------------------------- //ROTOR //Hacer el TUBO que forma la sujeccion del eje de la máquina (este tubo se llama rotor del del rodamiento en la bibliografia). Recordar que el eje axial es el eje Z. CYLINDER Name='Rotor' X0=0 Y0=0 Z0=-24-#AxialOverlap X1=0 Y1=0 Z1=24+#AxialOverlap +TUBE SHAPECONTROL=TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 THICKNESS=22-#EjeRadio SIDES=2 //El rotor se mueve despues //-------------------------------------------------------------------------------- //CAPAS Y CORTES DE AIRE ALREDEDOR DEL ROTOR (PARA MALLAR FINO ENTREHIERROS Y DEMAS) //Cada vez que cambiamos la posicion del rotor hay que borrar varias piezas de aire y hacerlas nuevas para que Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 65
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes encajen bien entre ellas u optimizar el calculo //A veces confiar en los levels y las intersecciones y substracciones automaticas que hace el programa mientras malla es mejor aunque es lento, //hacer las piezas bien antes de malla a veces provoca errores de mallado por que Modeller no debe hacer muy bien todas las substracciones. // //Los Cortes para forzar mallado son planos y estructuras tridimensionales de grosor cero, lo que provocan es forzar el mallado por su superficie. //Estos planos aseguran que se va a mallar razonablemente bien cerca de la pieza movil, sobre todo en //la zona critica cercana a los entrehierros. Esto es fundamental para usar el tensor de stress de Maxwell con precision. //(requiere aun asi un muy buen mallado adicional en entrehierros y sobre todo en sitios donde haya piezas muy anguladas como los vertices de un rectangulo) //Tambien se usan para mejorar y hacer más rapido el mallado en general al partir la pieza en sectores. // //Los tubos con pared de grosor 0 funcionan, los cilindros con altura 0 tambien. //Es importante evitar cruces o huecos muy pequeños entre estos elementos de grosor 0 o darán problemas o fallos al mallar, //lo mejor es que se unan en sus aristas como su fuesen parte de un objeto 3D //Corte al aire exterior del rotor, para forzar un mallado muy fino cerca del rotor (para calcular el tensor de stress de Maxwell) CYLINDER Name='CorteRotorExt' X0=0 Y0=0 Z0=-24-#AxialOverlap X1=0 Y1=0 Z1=24+#AxialOverlap +TUBE SHAPECONTROL=TUBE MAJORRADIUS=22+0.1 MINORRADIUS=22+0.1 TOPRADIUS=22+0.1 THICKNESS=0.0 SIDES=1 //El corte del rotor se mueve despues //Piezas de aire para el entrehierro entre los polos radiales y el rotor, para mallar fino solamente los entrehierros (y un poco expandido para captar flujos dispersos), es decir el radialgap. //Notar que no hay que mover estas piezas de aire, ya que conectan la parte fija (estator) con la movil (rotor), lo que hacemos es crear un volumen de aire y restarle el rotor. //CYLINDER Name='AireRotorPolGapY' X0=0 Y0=0 Z0=(-1-(#PoloLong/2)) X1=0 Y1=0 Z1=(1+(#PoloLong/2)) +TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 THICKNESS=1 SIDES=2 CYLINDER Name='AireRotorPolGapY' X0=0 Y0=0 Z0=(-1-(#PoloLong/2)) X1=0 Y1=0 Z1=(1+(#PoloLong/2)) -TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 SIDES=2 CYLINDER Name='Cilindro' X0=0 Y0=0 Z0=-50 X1=0 Y1=0 Z1=50 -TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' TRANSFORM OPTION=APPLY KEEP=NO TYPE=DISPLACE DU=#rotorX DV=#rotorY DW=#rotorZ PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapY' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' COMBINE OPERATION=SUBTRACT +REGULAR BLOCK Name='Bloque' X0=-1-#PoloGrosor/2 Y0=-70 Z0=-1-#PoloLong/2 X1=1+#PoloGrosor/2 Y1=70 Z1=1+#PoloLong/2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapY' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Bloque' COMBINE OPERATION=INTERSECT +REGULAR //CYLINDER Name='AireRotorPolGapX' X0=0 Y0=0 Z0=(-1-(#PoloLong/2)) X1=0 Y1=0 Z1=(1+(#PoloLong/2)) +TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 THICKNESS=1 SIDES=2 CYLINDER Name='AireRotorPolGapX' X0=0 Y0=0 Z0=(-1-(#PoloLong/2)) X1=0 Y1=0 Z1=(1+(#PoloLong/2)) -TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 SIDES=2 CYLINDER Name='Cilindro' X0=0 Y0=0 Z0=-50 X1=0 Y1=0 Z1=50 -TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' TRANSFORM OPTION=APPLY KEEP=NO TYPE=DISPLACE DU=#rotorX DV=#rotorY DW=#rotorZ PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapX' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' COMBINE OPERATION=SUBTRACT +REGULAR BLOCK Name='Bloque' X0=-70 Y0=-1-#PoloGrosor/2 Z0=-1-#PoloLong/2 X1=70 Y1=1+#PoloGrosor/2 Z1=1+#PoloLong/2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapX' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Bloque' COMBINE OPERATION=INTERSECT +REGULAR //Tubo para mallado medio para rodear la cara exterior del rotor en la parte central (es decir, aire entre los entrehierros de los polos radiales) //(notar que dejamos huecos para poner las piezas de aire para los entrehierros) //Notar que no hay que mover estas piezas de aire, ya que conectan la parte fija (estator) con la movil (rotor), lo que hacemos es crear un volumen de aire y restarle el rotor. //CYLINDER Name='AireRotorExtCent' X0=0 Y0=0 Z0=(-1-(#PoloLong/2)) X1=0 Y1=0 Z1=(1+(#PoloLong/2)) +TUBE SHAPECONTROL=TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 THICKNESS=1 SIDES=2 CYLINDER Name='AireRotorExtCent' X0=0 Y0=0 Z0=-1-#PoloLong/2 X1=0 Y1=0 Z1=1+#PoloLong/2 -TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 SIDES=2 CYLINDER Name='Cilindro' X0=0 Y0=0 Z0=-50 X1=0 Y1=0 Z1=50 -TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' TRANSFORM OPTION=APPLY KEEP=NO TYPE=DISPLACE DU=#rotorX DV=#rotorY DW=#rotorZ BLOCK Name='Bloque1' X0=-70 Y0=-1-#PoloGrosor/2 Z0=-1-#PoloLong/2 X1=70 Y1=1+#PoloGrosor/2 Z1=1+#PoloLong/2 66 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes BLOCK Name='Bloque2' X0=-1-#PoloGrosor/2 Y0=-70 Z0=-1-#PoloLong/2 X1=1+#PoloGrosor/2 Y1=70 Z1=1+#PoloLong/2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorExtCent' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Bloque1' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Bloque2' COMBINE OPERATION=SUBTRACT +REGULAR //Otros cortes al rotor, los biseles son fundamentales para un buen mallado cerca de las esquinas. CYLINDER Name='CorteRotorBiselA' X0=0 Y0=0 Z0=-24-#AxialOverlap-0.1-0.1 X1=0 Y1=0 Z1=-24-#AxialOverlap +TUBE SHAPECONTROL=GENERAL MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22+0.1 THICKNESS=0 SIDES=2 CYLINDER Name='CorteRotorBiselB' X0=0 Y0=0 Z0=24+#AxialOverlap+0.1+0.1 X1=0 Y1=0 Z1=24+#AxialOverlap +TUBE SHAPECONTROL=GENERAL MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22+0.1 THICKNESS=0 SIDES=2 CYLINDER Name='CorteRotorInt' X0=0 Y0=0 Z0=-24-#AxialOverlap-0.1-0.1 X1=0 Y1=0 Z1=24+#AxialOverlap+0.1+0.1 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=#EjeRadio-0.5 MINORRADIUS=#EjeRadio-0.5 TOPRADIUS=#EjeRadio-0.5 THICKNESS=0.0 SIDES=1 CYLINDER Name='CorteRotorA' X0=0 Y0=0 Z0=-24-#AxialOverlap-0.1-0.1 X1=0 Y1=0 Z1=-24-#AxialOverlap-0.1-0.1 SHAPECONTROL=TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 THICKNESS=22-#EjeRadio+0.5 SIDES=1 CYLINDER Name='CorteRotorB' X0=0 Y0=0 Z0=24+#AxialOverlap+0.1+0.1 X1=0 Y1=0 Z1=24+#AxialOverlap+0.1+0.1 SHAPECONTROL=TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 THICKNESS=22-#EjeRadio+0.5 SIDES=1 //Los planos de corte planares 0XZ y 0XY al rotor hacen más rapido el mallado, pero restan un poco de precisión. $ IF #PLANOS_CORTE GT 1 BLOCK Name='CorteRotor0XZ' X0=-22 Y0=0 Z0=-24-#AxialOverlap-0.1-0.1 X1=22 Y1=0 Z1=24+#AxialOverlap+0.1+0.1 BLOCK Name='CorteRotor0YZ' X0=0 Y0=-22 Z0=-24-#AxialOverlap-0.1-0.1 X1=0 Y1=22 Z1=24+#AxialOverlap+0.1+0.1 $ END IF //Los cortes del rotor se mueven despues //MOVER EL ROTOR Y SUS PLANOS DE CORTE //Mover el rotor y los planos que cortan el aire a su alrededor a su posicion inicial (i==0), o a la que le corresponda en la simulacion PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Rotor' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorBiselA' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorBiselB' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorExt' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorInt' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorA' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotorB' $IF #PLANOS_CORTE GT 1 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotor0XZ' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='CorteRotor0YZ' $END IF TRANSFORM OPTION=APPLY KEEP=NO TYPE=DISPLACE DU=#rotorX DV=#rotorY DW=#rotorZ //Tubos que cubren las esquinas exteriores del rotor, para mallar muy fino los entrehierros que existen entre el estator de control axial y el rotor //(no confundir con los entrehierros de los polos), este seria un axialgap. //La experiencia indica que es mejor que el volumen de aire colisione con el volumen de metal del rotor, por medio de los LEVELS //el programa de mallado se quedará con la geometría correcta con mayor precisión que si restamos el volumen de metal en Modeller. //Notar que el Overlap esta expresado como (#AxialOverlap-0.5), esto es por que originalmente el script y la geometria se probó para #AxialOverlap=0.5 $ IF #rotorZ GT 0 CYLINDER Name='AireRotorGap1' X0=0 Y0=0 Z0=-24.75-(#AxialOverlap-0.5) X1=0 Y1=0 Z1=- 24.25+#rotorZ-(#AxialOverlap-0.5) +TUBE SHAPECONTROL=TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 THICKNESS=1 SIDES=2 $ ELSE CYLINDER Name='AireRotorGap1' X0=0 Y0=0 Z0=-24.75+#rotorZ-(#AxialOverlap-0.5) X1=0 Y1=0 Z1=- 24.25-(#AxialOverlap-0.5) +TUBE SHAPECONTROL=TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 THICKNESS=1 SIDES=2 $ END IF CYLINDER Name='Cilindro' X0=0 Y0=0 Z0=-24-#AxialOverlap X1=0 Y1=0 Z1=24+#AxialOverlap -TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' TRANSFORM OPTION=APPLY KEEP=NO TYPE=DISPLACE DU=#rotorX DV=#rotorY DW=#rotorZ PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorGap1' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' COMBINE OPERATION=SUBTRACT +REGULAR $ IF #rotorZ GT 0 CYLINDER Name='AireRotorGap2' X0=0 Y0=0 Z0=24.75+#rotorZ+(#AxialOverlap-0.5) X1=0 Y1=0 Z1=24.25+(#AxialOverlap-0.5) +TUBE SHAPECONTROL=TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 THICKNESS=1 SIDES=2 $ ELSE CYLINDER Name='AireRotorGap2' X0=0 Y0=0 Z0=24.75+(#AxialOverlap-0.5) X1=0 Y1=0 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 67
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes Z1=24.25+#rotorZ+(#AxialOverlap-0.5) +TUBE SHAPECONTROL=TUBE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 THICKNESS=1 SIDES=2 $ END IF CYLINDER Name='Cilindro' X0=0 Y0=0 Z0=-24-#AxialOverlap X1=0 Y1=0 Z1=24+#AxialOverlap -TUBE MAJORRADIUS=22 MINORRADIUS=22 TOPRADIUS=22 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' TRANSFORM OPTION=APPLY KEEP=NO TYPE=DISPLACE DU=#rotorX DV=#rotorY DW=#rotorZ PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorGap2' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' COMBINE OPERATION=SUBTRACT +REGULAR //-------------------------------------------------------------------------------- //ESTRUCTURA DEL RADIAL CONTROL STATOR Y POLOS //Forma standard (4 polos para 4 bobinas de control radial) $ IF #formaPolos E 0 //Hago uno de los polos metalicos del Radial Control Stator. Consiste en hacer un rectangulo (block) y restarle un cilindro para redondear la cara del polo cercana al rotor. //La otra cara del rotor no hace falta redondearla por que luego uniremos el polo a otra pieza por ese lado. BLOCK Name='Polo' X0=36 Y0=#PoloGrosor/2 Z0=#PoloLong/2 X1=0 Y1=-#PoloGrosor/2 Z1=-#PoloLong/2 CYLINDER Name='Cilindro' X0=0 Y0=0 Z0=10 X1=0 Y1=0 Z1=-20 -TUBE SHAPECONTROL=SIMPLE MAJORRADIUS=22.5 MINORRADIUS=22.5 TOPRADIUS=22.5 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Polo' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Cilindro' COMBINE OPERATION=SUBTRACT +REGULAR //Recordar que al sustraer objetos, el objeto resultante tiene el nombre del primer objeto picked, y los objetos usados se borran. //Multiplico y giro el polo creado para crear multiples polos alrededor del eje. //Notar que el original no se borra, y que el parametro COUNT indica cuantos polos adicionales se crean. Por lo que si quiero 4 polos, COUNT sera 3. PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Polo' TRANSFORM OPTION=COPY KEEP=NO TYPE=ROTATE ROTU=0 ROTV=0 ROTW=1 ANGLE=90 COUNT=3 LABEL='Polo' //Hacer el Radial Control Stator (el estator pequeño interior de control radial) a partir de los polos creados antes y un estrecho tubo que une todos los polos por la parte exterior. CYLINDER Name='Radial Control Stator' X0=0 Y0=0 Z0=-#EstatorRadialL/2 X1=0 Y1=0 Z1=#EstatorRadialL/2 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=46 MINORRADIUS=46 TOPRADIUS=46 THICKNESS=10 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Radial Control Stator' PICK OPTION=TOGGLE PROPERTY=Label LABEL='Polo1' PICK OPTION=TOGGLE PROPERTY=Label LABEL='Polo2' PICK OPTION=TOGGLE PROPERTY=Label LABEL='Polo3' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Polo' COMBINE OPERATION=UNION +REGULAR //Borro las Label que hayan podido quedar asociadas al objeto final PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Radial Control Stator' LABEL OPTION=CLEAR $ END IF //Forma en anillo (1 unico anillo, realmente sin polos, no habrá donde poner las bobinas de control radial) $ IF #formaPolos E 1 CYLINDER Name='Radial Control Stator' X0=0 Y0=0 Z0=-#EstatorRadialL/2 X1=0 Y1=0 Z1=#EstatorRadialL/2 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=46 MINORRADIUS=46 TOPRADIUS=46 THICKNESS=10 SIDES=2 CYLINDER Name='Polo' X0=0 Y0=0 Z0=-#PoloLong/2 X1=0 Y1=0 Z1=#PoloLong/2 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=36 MINORRADIUS=36 TOPRADIUS=36 THICKNESS=13.5 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Radial Control Stator' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Polo' COMBINE OPERATION=UNION +REGULAR $ END IF //-------------------------------------------------------------------------------- //IMANES PERMANENTES DEL RADIAL CONTROL STATOR //Forma standard con 8 imanes curvos (4 en cada dirección) $ IF #formaPMAnillo E 0 //Hacer un iman permanente. Se hace un tubo en forma de anillo estrecho, se quitan las //partes sobrantes para quedar con una parte de corona del angulo adecuado que sera un unico PM CYLINDER Name='Permanent Magnet' X0=0 Y0=0 Z0=#EstatorRadialL/2 X1=0 Y1=0 Z1=24 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=45 MINORRADIUS=45 TOPRADIUS=45 THICKNESS=7 SIDES=2 BLOCK Name='Block' X0=0 Y0=0 Z0=0 X1=100 Y1=100 Z1=100 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Block' 68 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes TRANSFORM OPTION=APPLY KEEP=NO TYPE=ROTATE ROTU=0 ROTV=0 ROTW=1 ANGLE=-30 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Block' TRANSFORM OPTION=COPY TYPE=ROTATE ROTU=0 ROTV=0 ROTW=1 ANGLE=150 COUNT=1 LABEL='Block' PICK OPTION=RESET PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Block' COMBINE OPERATION=SUBTRACT +REGULAR PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet' PICK OPTION=TOGGLE PROPERTY=Label LABEL='Block1' COMBINE OPERATION=SUBTRACT +REGULAR BLOCK Name='Block' X0=-100 Y0=-100 Z0=-100 X1=100 Y1=0 Z1=100 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Block' COMBINE OPERATION=SUBTRACT +REGULAR //Borro las Label que hayan podido quedar asociadas al objeto final PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet' LABEL OPTION=CLEAR //Copiar y rotar el iman permanente para hacer los de un lado. Tambien se cambia el nombre unico de cada iman. PICK OPTION=RESET PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet' TRANSFORM OPTION=COPY KEEP=NO TYPE=ROTATE ROTU=0 ROTV=0 ROTW=1 ANGLE=90 COUNT=3 LABEL='PM' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Front Up' PICK OPTION=TOGGLE PROPERTY=Label LABEL='PM1' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Front Right' PICK OPTION=TOGGLE PROPERTY=Label LABEL='PM2' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Front Down' PICK OPTION=TOGGLE PROPERTY=Label LABEL='PM3' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Front Left' //Ahora copiar y mover todos los imanes de un lado para hacer los imanes del otro lado, y renombrarlos. PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Left' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Down' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Right' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Up' TRANSFORM OPTION=COPY KEEP=NO TYPE=DISPLACE DU=0 DV=0 DW=-33 COUNT=1 LABEL='Front' PICK OPTION=TOGGLE PROPERTY=Label LABEL='PM' PICK OPTION=REMOVE PROPERTY=Label LABEL='Front' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Back Up' PICK OPTION=TOGGLE PROPERTY=Label LABEL='PM1' PICK OPTION=REMOVE PROPERTY=Label LABEL='Front' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Back Right' PICK OPTION=TOGGLE PROPERTY=Label LABEL='PM2' PICK OPTION=REMOVE PROPERTY=Label LABEL='Front' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Back Down' PICK OPTION=TOGGLE PROPERTY=Label LABEL='PM3' PICK OPTION=REMOVE PROPERTY=Label LABEL='Front' RENAME NAME='Permanent Magnet' UNIQUENAME='Permanent Magnet Back Left' //Borro las Label que hayan podido quedar asociadas a los objetos finales PICK OPTION=TOGGLE PROPERTY=Label LABEL='Front' PICK OPTION=TOGGLE PROPERTY=Label LABEL='Front1' LABEL OPTION=CLEAR $ END IF //si los imanes deben formar dos únicos anillos (en vez de 8 piezas) $ IF #formaPMAnillo E 1 //Hacer un iman permanente. Se hace un tubo en forma de anillo estrecho, se quitan las //partes sobrantes para quedar con una parte de corona del angulo adecuado que sera un unico PM CYLINDER Name='Permanent Magnet Front' X0=0 Y0=0 Z0=#EstatorRadialL/2 X1=0 Y1=0 Z1=24 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=42.79 MINORRADIUS=42.79 TOPRADIUS=42.79 THICKNESS=4.79 SIDES=2 CYLINDER Name='Permanent Magnet Back' X0=0 Y0=0 Z0=-#EstatorRadialL/2 X1=0 Y1=0 Z1=-24 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=42.79 MINORRADIUS=42.79 TOPRADIUS=42.79 THICKNESS=4.79 SIDES=2 $ END IF //-------------------------------------------------------------------------------- //ESTRUCTURA DEL ESTATOR DE CONTROL AXIAL (THRUST) // //Crear el Estator de control axial (Thrust Control Stator). Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 69
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes //Se trata de un cilindro hueco (para alojar el estator axial y en realidad todo el conjunto) con un agujero en su centro para que lo atraviese el rotor. //Para construirlo se hace un tubo (con el agujero central para el rotor) y se le resta un cilindro mas pequeño para hacer el hueco (para visionar bien todo en Modeller, hacer este objeto transparente) CYLINDER Name='Thrust Control Stator' X0=0 Y0=0 Z0=-30 X1=0 Y1=0 Z1=30 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=67.5 MINORRADIUS=67.5 TOPRADIUS=67.5 THICKNESS=45 SIDES=2 CYLINDER Name='Thrust Control Stator Inner' X0=0 Y0=0 Z0=24 X1=0 Y1=0 Z1=-24 -TUBE SHAPECONTROL=SIMPLE MAJORRADIUS=59.5 MINORRADIUS=59.5 TOPRADIUS=59.5 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Thrust Control Stator' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Thrust Control Stator Inner' COMBINE OPERATION=SUBTRACT +REGULAR //-------------------------------------------------------------------------------- //CAPA DE AIRE DE MALLADO MEDIANO QUE LLENA EL INTERIOR DE LA PIEZA // //Esta capa de aire llena el interior de la pieza y parte del exterior, asi podemos mallar el aire dentro con un grosor mediano //y mallar el exterior hasta la frontera con un grosor mayor CYLINDER Name='AireGrueso' X0=0 Y0=0 Z0=-39 X1=0 Y1=0 Z1=39 -TUBE SHAPECONTROL=SIMPLE MAJORRADIUS=77.5 MINORRADIUS=77.5 TOPRADIUS=77.5 SIDES=2 //-------------------------------------------------------------------------------- //CAPAS DE AIRE ALREDEDOR DE LAS BOBINAS //Segun el manual de Opera los conductores de Biot & Savart (los unicos que podemos usar para este //tipo de simulacion es TOSCA) deben estar contenidos en un volumen de aire con //Potencial escalar Reducido. Además los modelos deben tener una interface potencial total-reducido //(es decir el aire alrededor de un volume de potencial reducido deberia ser total) aunque con la asignacion //y cortes automaticos debería ser suficiente si se asigna que el aire de las bobinas es potencial reducido. // //Aire alrededor de la gran bobina de control axial CYLINDER Name='AireBobinaAxial' X0=0 Y0=0 Z0=-22 X1=0 Y1=0 Z1=22 +TUBE SHAPECONTROL=TUBE MAJORRADIUS=58.5 MINORRADIUS=58.5 TOPRADIUS=58.5 THICKNESS=11.44 SIDES=2 //Aire alrededor de las bobinas de control radial, para asegurar que envuelve a las bobinas aunque su geometria varie un poco //este aire es un cilindro al que le restamos un cubo o cilindro en su centro, de manera que el aire envuelve la mayor parte de los polos así //como una parte sustancial del aire contenido dentro del estator, pero no envuelve el rotor. //Usamos una variable temporal para calcular el tamaño adecuado de este volumen, desgraciadamente no se puede borrar una vez usada como dimension de una geometria. $ IF #formaPolos E 0 $ constant #zTemp 0 $ constant #zTemp #PoloLong/2+10 $ IF #zTemp GT 24 //el volumen de aire no puede superar la dimension z del estator que lo contiene. $ constant #zTemp 24 $ END IF CYLINDER Name='AireBobinasRadial' X0=0 Y0=0 Z0=#zTemp X1=0 Y1=0 Z1=-#zTemp -TUBE SHAPECONTROL=SIMPLE MAJORRADIUS=36 MINORRADIUS=36 TOPRADIUS=36 SIDES=2 //BLOCK Name='Caja' X0=24 Y0=24 Z0=30 X1=-24 Y1=-24 Z1=-30 CYLINDER Name='Caja' X0=0 Y0=0 Z0=30 X1=0 Y1=0 Z1=-30 -TUBE SHAPECONTROL=SIMPLE MAJORRADIUS=24 MINORRADIUS=24 TOPRADIUS=24 SIDES=2 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireBobinasRadial' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Caja' COMBINE OPERATION=SUBTRACT +REGULAR //$ constant #zTemp +delete //Recordar que al sustraer objetos, el objeto resultante tiene el nombre del primer objeto picked, y los objetos usados se borran. $ END IF //-------------------------------------------------------------------------------- //PLANOS PARA FORZAR MALLADO EN LOS ESTATORES //Piezas de grosor cero cuyo unico objetivo es forzar el mallado por su superficie, //y cortar la pieza en trozos de modo que sea más rápido el mallado. $ IF #PLANOS_CORTE GT 0 //Corte al plano XY: De interes para cortar los polos por la mitad, ya que muchas lineas de flujo deberían pasar tangencialmente al plano XY. CYLINDER Name='CortePlano0XY' X0=0 Y0=0 Z0=0 X1=0 Y1=0 Z1=0 -TUBE MAJORRADIUS=70 MINORRADIUS=70 TOPRADIUS=70 SIDES=1 $ END IF $ IF #PLANOS_CORTE GT 1 //cortes a los planos XZ así como YZ por similares razones, pero evitamos cortar el rotor por que el rotor se mueve y querríamos cortarlo pasando por su centro //Estos planos degeneran algo la geometría del rotor (aparecen campos mayores cerca de donde se cortarían los planos y el rotor, pero no parece que afecte a los resultados) 70 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes BLOCK Name='CortePlano0XZ_1' X0=22.5 Y0=0 Z0=30 X1=67.5 Y1=0 Z1=-30 BLOCK Name='CortePlano0XZ_2' X0=-22.5 Y0=0 Z0=30 X1=-67.5 Y1=0 Z1=-30 BLOCK Name='CortePlano0YZ_1' X0=0 Y0=22.5 Z0=30 X1=0 Y1=67.5 Z1=-30 BLOCK Name='CortePlano0YZ_2' X0=0 Y0=-22.5 Z0=30 X1=0 Y1=-67.5 Z1=-30 $ END IF //------------------------------------------------------------------------------------- //Llegados a este punto la geometría del objeto ha sido definida y existen los objetos con estos nombres: //Radial Control Stator, Thrust Control Stator, Rotor, Permanent Magnet Front Up, Permanent Magnet Back Up (y los otros imanes permanentes con Right, Left y Down en vez de Up). //Además varios bloques de aire: AireGrueso, AireBobinaAxial, AireBobinasRadial //Más adelante haremos piezas de aire para el rotor y entrehierros: AireRotorExt, AireRotorInt, AireRotorPolGapY (y X), AireRotorGap1 (y 2), AireRotorEst1 (y 2), AireRotorA (y B) //Y los planos de corte: CorteRotorExt, CorteRotorInt, CorteRotorA, CorteRotorB //Sin embargo hay que aplicar materiales, bobinas, direcciones de magnetizacion, otros detalles, las condiciones de frontera y preparar la simulacion //------------------------------------------------------------------------------------- //------------------------------------------------------------------------------------- //ASIGNACIONES DE MATERIALES, LEVELS, DIRECCIONES DE MAGNETIZACION, MESH SIZES Y VOLUME LABELS //Asignaciones de materiales a los objetos, niveles de preferencia (level) y etiquetas de direccion de magnetizacion //Las asignaciones de "Volume Labels" se utilizan para asignar direcciones de magnetizacion o para poder ciertas operaciones mas adelante //------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------- //Materiales metalicos PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Thrust Control Stator' CELLDATA OPTION=MODIFY MATERIALLABEL='Iron' POTENTIAL=Automatic ELEMENTTYPE=Linear LEVEL=10 VOLUMELABEL='Thrust Control Stator' SIZE=5 //Si en los polos aparecen elementos deformados al ver el mapa de B, usar tamaño 2.5 (sucede cuando se saturan mucho los polos con 2 o 3 corrientes a la vez) PICK OPTION=ADD PROPERTY=UniqueName LABEL='Radial Control Stator' CELLDATA OPTION=MODIFY MATERIALLABEL='Iron' POTENTIAL=Automatic ELEMENTTYPE=Linear LEVEL=9 SIZE=5 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Rotor' CELLDATA OPTION=MODIFY MATERIALLABEL='Iron' POTENTIAL=Automatic ELEMENTTYPE=Linear LEVEL=8 VOLUMELABEL='Rotor' SIZE=5 //-------------------------------------------------------------------------------- //Imanes //Segun el manual los imanes *deberian* tener Potencial Total. $ IF #formaPMAnillo E 0 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Up' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Left' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Down' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back Right' CELLDATA OPTION=MODIFY MATERIALLABEL='PM' POTENTIAL=TOTAL ELEMENTTYPE=Linear LEVEL=11 VOLUMELABEL='Back Magnetization Direction' SIZE=5 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Up' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Left' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Down' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front Right' CELLDATA OPTION=MODIFY MATERIALLABEL='PM' POTENTIAL=TOTAL ELEMENTTYPE=Linear LEVEL=11 VOLUMELABEL='Front Magnetization Direction' SIZE=5 $ END IF $ IF #formaPMAnillo E 1 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Back' CELLDATA OPTION=MODIFY MATERIALLABEL='PM' POTENTIAL=TOTAL ELEMENTTYPE=Linear LEVEL=11 VOLUMELABEL='Back Magnetization Direction' SIZE=5 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='Permanent Magnet Front' CELLDATA OPTION=MODIFY MATERIALLABEL='PM' POTENTIAL=TOTAL ELEMENTTYPE=Linear LEVEL=11 VOLUMELABEL='Front Magnetization Direction' SIZE=5 $ END IF //-------------------------------------------------------------------------------- //Aire grueso y aire bobinas // //Aire a mallar grueso dentro y justo alrededor de la pieza (tamaño de aprox. 5 o 7.5) //Total por que debe existir una interface TOTAL-REDUCIDO en el modelo (la bobina tiene aire con potencial reducido) Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 71
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes //Antonio Uson ha recomendado alternar aire con potencial reducido y total //Dejar el tamaño en 7.5, con la geometría usada finalmente un aire más grueso provoca errores de mallado en volumen. //Se puede reducir a 5 para mejorar los calculos en general, sobre todo si el mapa de B en los polos parece tener defectos. PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireGrueso' CELLDATA OPTION=MODIFY POTENTIAL=Total ELEMENTTYPE=Linear LEVEL=2 SIZE=7.5 //Aire alrededor de las bobinas (mallar decentemente, o dará Warnings en Solver y avisos de mal mallado) es bueno que tenga el mismo meshsize que el metal //(segun manual, potencial escalar reducido para conductores por Biot & Savart) //Usar tamaño 2.5 si los campos B en los polos parecen tener defectos PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireBobinaAxial' $ IF #formaPolos E 0 PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireBobinasRadial' $ END IF CELLDATA OPTION=MODIFY POTENTIAL=Reduced ELEMENTTYPE=Linear LEVEL=3 SIZE=5 //-------------------------------------------------------------------------------- //Aire alrededor del rotor - materiales y levels //entrehierros de los polos-rotor, mallar bien para calculo de Fuerzas X e Y PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapY' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorPolGapX' CELLDATA OPTION=MODIFY POTENTIAL=Automatic ELEMENTTYPE=Linear LEVEL=5 SIZE=#PoleGapMeshSize PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorExtCent' $ IF #formaPolos E 0 //el mallado del aire entre los polos no puede ser muy diferente del entrehierro o dará errores de mallado //Tambien he observado que un mallado grueso en esa zona NO acelera la solución, le cuesta más iteraciones converger CELLDATA OPTION=MODIFY POTENTIAL=Automatic ELEMENTTYPE=Linear LEVEL=3 SIZE=#PoleGapMeshSize $ END IF $ IF #formaPolos E 1 CELLDATA OPTION=MODIFY POTENTIAL=Automatic ELEMENTTYPE=Linear LEVEL=3 SIZE=#PoleGapMeshSize $ END IF //entrehierros del rotor con el estator, mallar bien para el calculo de Fuerzas Z. //requiere un mallado especialmente fino al haber esquinas y mucho campo magentico en poca superficie relevante //0.2 deberia ser suficiente para muchas simulaciones, pero si el gap se vuelve más pequeño que 0.4mm o se quiere mucha precision //es preferible un mallado de 0.1mm (más lento). PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorGap1' PICK OPTION=TOGGLE PROPERTY=UniqueName LABEL='AireRotorGap2' CELLDATA OPTION=MODIFY POTENTIAL=Automatic ELEMENTTYPE=Linear LEVEL=6 SIZE=#GapMeshSize //------------------------------------------------------------------------------------- //BOBINAS //Crear bobinas y dejar la corriente a cero A/mm2 //------------------------------------------------------------------------------------- //--------------------------------------------------------------------------------- //BOBINAS DEL ESTATOR DE CONTROL RADIAL (CUATRO BOBINAS) // //Hacer las bobinas para la forma polar standard (en otras formas ni siquiera hay bobinas radiales) //Dado que las bobinas deben estar totalmente rodeadas y contenidas en aire con potencial reducido, las //bobinas no deben colisionar con otros objetos, ni siquiera compartir caras. Por eso hay una pequeña separacion //entre la bobina y el polo alrededor del cual se arrolla, esa separación debe ser suficientemente grande //para evitar warnings al ejecutar el Solver. $ IF #formaPolos E 0 //Hacer una de las bobinas del estator radial. RACETRACK OPTION=NEW -KEEP XP1=#PoloGrosor/2+0.2 YP1=-3.2 WIDTH=7 THICKNESS=6.4 H1=#PoloLong/2+0.1 R1=0.1 INCIRCUIT=NO CIRCUITELEMENT= CURD=1 TOLERANCE=0 REVERSE=NO DRIVELABEL='Radial- Winding-Y' LCNAME='Global coordinate system' XCEN2=0 YCEN2=28 ZCEN2=0 THETA2=0 PHI2=0 PSI2=180 RXY=0 RYZ=0 RZX=0 SYMMETRY=0 MODELCOMPONENT=NO //Copiar la bobina original y rotarla para hacer todas las bobinas del estator radial //Además se asocian las bobinas a los Drives correspondientes (para asociar diferentes bobinas que estan en el mismo circuito) PICK OPTION=TOGGLE TYPE=COND N=1 TRANSFORM OPTION=COPY KEEP=NO TYPE=ROTATE ROTU=0 ROTV=0 ROTW=1 ANGLE=90 COUNT=3 72 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes //Correccion de las direcciones de las corrientes por las bobinas (angulos) PICK OPTION=TOGGLE TYPE=COND N=3 RACETRACK OPTION=MODIFY -KEEP XP1=#PoloGrosor/2+0.2 YP1=-3.2 WIDTH=7 THICKNESS=6.4 H1=#PoloLong/2+0.1 R1=0.1 INCIRCUIT=NO CIRCUITELEMENT= CURD=1 TOLERANCE=0 DRIVELABEL='Radial-Winding-Y' LCNAME='Global coordinate system' XCEN2=0 YCEN2=-28 ZCEN2=0 THETA2=0 PHI2=0 PSI2=180 RXY=0 RYZ=0 RZX=0 SYMMETRY=0 MODELCOMPONENT=NO PICK OPTION=TOGGLE TYPE=COND N=2 RACETRACK OPTION=MODIFY -KEEP XP1=#PoloGrosor/2+0.2 YP1=-3.2 WIDTH=7 THICKNESS=6.4 H1=#PoloLong/2+0.1 R1=0.1 INCIRCUIT=NO CIRCUITELEMENT= CURD=1 TOLERANCE=0 DRIVELABEL='Radial-Winding-X' LCNAME='Global coordinate system' XCEN2=-28 YCEN2=0 ZCEN2=0 THETA2=0 PHI2=0 PSI2=90 RXY=0 RYZ=0 RZX=0 SYMMETRY=0 MODELCOMPONENT=NO PICK OPTION=TOGGLE TYPE=COND N=4 RACETRACK OPTION=MODIFY -KEEP XP1=#PoloGrosor/2+0.2 YP1=-3.2 WIDTH=7 THICKNESS=6.4 H1=#PoloLong/2+0.1 R1=0.1 INCIRCUIT=NO CIRCUITELEMENT= CURD=1 TOLERANCE=0 DRIVELABEL='Radial-Winding-X' LCNAME='Global coordinate system' XCEN2=28 YCEN2=0 ZCEN2=0 THETA2=0 PHI2=0 PSI2=90 RXY=0 RYZ=0 RZX=0 SYMMETRY=0 MODELCOMPONENT=NO $ END IF //--------------------------------------------------------------------------------- //BOBINA DEL ESTATOR DE CONTROL AXIAL (THRUST O EJE Z) // //Bobina grande del estator axial exterior. Puede tener diferentes dimensiones, //lo importante es la sección y que quepa en el volumen de aire de potencial reducido. SOLENOID OPTION=NEW -KEEP XP1=49.06 YP1=20 XP2=49.06 YP2=-20 XP3=56.5 YP3=-20 XP4=56.5 YP4=20 CP1=0 CP2=0 CP3=0 CP4=0 INCIRCUIT=NO CIRCUITELEMENT= CURD=1 TOLERANCE=0 DRIVELABEL='Thrust-Windings' LCNAME='Global coordinate system' XCEN2=0 YCEN2=0 ZCEN2=0 THETA2=90 PHI2=-90 PSI2=-90 RXY=0 RYZ=0 RZX=0 SYMMETRY=0 MODELCOMPONENT=YES MESHSIZE=10 //SOLENOID OPTION=NEW -KEEP XP1=52.1 YP1=24 XP2=52.1 YP2=-24 XP3=58.3 YP3=-24 XP4=58.3 YP4=24 CP1=0 CP2=0 CP3=0 CP4=0 INCIRCUIT=NO CIRCUITELEMENT= CURD=1 TOLERANCE=0 DRIVELABEL='Thrust-Windings' LCNAME='Global coordinate system' XCEN2=0 YCEN2=0 ZCEN2=0 THETA2=90 PHI2=-90 PSI2=-90 RXY=0 RYZ=0 RZX=0 SYMMETRY=0 MODELCOMPONENT=NO //--------------------------------------------------------------------------------- //ESCRIBIR EN EL LOG //CONDUCTORS es variable de sistema $ open 1 &sNombreLog& append | $ format 1 CHARACTER 0 +VARIABLE | $ assign 1 1 $ string Cabecera '//---------------------------------------------' $ write 1 Cabecera $ string Cabecera '//---------------------------------------------' $ write 1 Cabecera $ string Cabecera 'Geometría definida para simulacion i%INT(#i), hay %INT(CONDUCTORS) bobinas, script &COMIBASENAME&, &NOW& &TODAY&' $ write 1 Cabecera $ close 1 //------------------------------------------------------------------------------------- //CONDICIONES CONTORNO, CREAR/VOLVER A CREAR BODY (CONTENEDOR) // //Forma del contenedor y de las condiciones de contorno. //Notar que la escala Z escala toda la dimension en el eje Z, mientras que la escala R escala el Radio, no el Diametro del Cilindro contenedor. //------------------------------------------------------------------------------------- //Sin simetria (lo habitual en este modelo) $ IF #SIMETRIA E 0 BACKGROUND OPTION=SET SHAPE=CYLINDER SCALEZ=5 SCALER=5 RXY=NONE RYZ=NONE RZX=NONE ROTZTYPE=NONE BCFRONT=TANGMAGN BCBACK=TANGMAGN BCRADIUS=TANGMAGN $ END IF //Opcional: Con simetria (ROTZNUM indica el numero de sectores) $ IF #SIMETRIA E 1 BACKGROUND OPTION=SET SHAPE=CYLINDER SCALEZ=5 SCALER=5 RXY=NONE RYZ=NONE RZX=NONE ROTZTYPE=TANGMAGN ROTZNUM=16 BCFRONT=TANGMAGN BCBACK=TANGMAGN BCRADIUS=TANGMAGN $ END IF //Crear el Body MODEL CREATE //------------------------------------------------------------------------------------- //MALLADO EN SUPERFICIE Y VOLUMEN //------------------------------------------------------------------------------------- //Mallado de superficies y despues en Volumen MESH SIZE=#GeneralMeshSize NORMALTOL=#MESH_NORMALTOL SURFACETOL=0.0 TOLERANCE=#MESH_TOL //Escribir en el log, NODES es variable del sistema $ string Cabecera 'Mallado de superficie terminado, hay %INT(NODES) nodos, &NOW& &TODAY&' $ open 1 &sNombreLog& append | $ format 1 CHARACTER 0 +VARIABLE | $ assign 1 1 | $ write 1 Cabecera Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 73
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes $ format 1 CHARACTER 0 +VARIABLE $ assign 1 1 1 1 1 1 $ write 1 Datos Datos2 Datos3 Datos4 Datos5 $ close 1 $ END IF $ END IF //-------------------------------------------------------------------------------------- //CREAR Y GUARDAR IMAGENES DEL CAMPO MAGNETICO //Notar que el modelo se espera que este en mm y Teslas // //Cuidado con el campo TITLE, si se vuelve demasiado grande la cadena de texto, Opera //se colgará sin emitir un mensaje de error. //-------------------------------------------------------------------------------------- //Comparar las configuraciones especificas y generales y elegir la prioritaria $ IF %COMPARE(&sBejeZ_MIN&,no) E 0 $string sBejeZ_MIN &sB_MIN& $ END IF $ IF %COMPARE(&sBejeZ_MAX&,no) E 0 $string sBejeZ_MAX &sB_MAX& $ END IF $ IF %COMPARE(&sBejeXY_MIN&,no) E 0 $string sBejeXY_MIN &sB_MIN& $ END IF $ IF %COMPARE(&sBejeXY_MAX&,no) E 0 $string sBejeXY_MAX &sB_MAX& $ END IF $ IF %COMPARE(&sB3D_MIN&,no) E 0 $string sB3D_MIN &sB_MIN& $ END IF $ IF %COMPARE(&sB3D_MAX&,no) E 0 $string sB3D_MAX &sB_MAX& $ END IF //Grafico del Modulo de B en el eje Z //Si se ha definido un nombre para el archivo de imagen. //Nota, el titulo se escribe de dos formas distintas, ya que el titulo en el grafico solo se ve entero en funcion de la configuracion //y la resolucion de pantalla. El titulo en letras pequeñas de Opera es más fiable. $ IF %COMPARE(&sBModEjeZ&, &sEmptyString&) NE 0 $string sTitulo 'ModB ejeZ. Sim nº%INT(#n), Pos rotor XYZ mm (%REAL(#rotorX,8), %REAL(#rotorY,8), %REAL(#rotorZ,8)). J bobin XYZ A/mm2 (%REAL(#currentX,8), %REAL(#currentY,8), %REAL(#currentZ,8)).' title string='&sTitulo&' position=topleft date=topleft LINE X1=0 X2=X1 Y1=0 Y2=Y1 Z1=-33 Z2=33 NP=1000 BUFFER=Line PLOT FILE=TEMP COMPONENT=Bmod TITLE='&sTitulo&' YMINIMUM=&sBejeZ_MIN& YMAXIMUM=&sBejeZ_MAX& PICTURE SAVE=YES FILENAME='&sBModEjeZ&%INT(#n).png' TYPE=PNG $ END IF //MIN y MAX son funciones de Opera, MINIMUM y MAXIMUM son variables de sistema del Postproc $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) //Grafico del Modulo de B en el eje Y $ IF %COMPARE(&sBModEjeY&, &sEmptyString&) NE 0 $string sTitulo 'ModB ejeY. Sim nº%INT(#n), Pos rotor XYZ mm (%REAL(#rotorX,8), %REAL(#rotorY,8), %REAL(#rotorZ,8)). J bobin XYZ A/mm2 (%REAL(#currentX,8), %REAL(#currentY,8), %REAL(#currentZ,8)).' title string='&sTitulo&' position=topleft date=topleft LINE X1=0 X2=X1 Y1=-70 Y2=70 Z1=0 Z2=0 NP=1000 BUFFER=Line PLOT FILE=TEMP COMPONENT=Bmod TITLE='&sTitulo&' YMINIMUM=&sBejeXY_MIN& YMAXIMUM=&sBejeXY_MAX& PICTURE SAVE=YES FILENAME='&sBModEjeY&%INT(#n).png' TYPE=PNG $ END IF $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) //Grafico del Modulo de B en el eje X $ IF %COMPARE(&sBModEjeX&, &sEmptyString&) NE 0 $string sTitulo 'ModB ejeX. Sim nº%INT(#n), Pos rotor XYZ mm (%REAL(#rotorX,8), %REAL(#rotorY,8), %REAL(#rotorZ,8)). J bobin XYZ A/mm2 (%REAL(#currentX,8), %REAL(#currentY,8), %REAL(#currentZ,8)).' title string='&sTitulo&' position=topleft date=topleft LINE X1=-70 X2=70 Y1=0 Y2=0 Z1=0 Z2=0 NP=1000 BUFFER=Line PLOT FILE=TEMP COMPONENT=Bmod TITLE='&sTitulo&' YMINIMUM=&sBejeXY_MIN& YMAXIMUM=&sBejeXY_MAX& PICTURE SAVE=YES FILENAME='&sBModEjeX&%INT(#n).png' TYPE=PNG $ END IF $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) //Mapa de B en el plano XY central //Nota: Los angulos de la vista de los ejes no son exactamente 0 por que en ese caso no se muestra correctamente el eje de coordenadas $ IF %COMPARE(&sBModPlanoXY&, &sEmptyString&) NE 0 title string='ModB plano XY. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6),%REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN X1=-70 X4=X1 Y1=-70 Y2=Y1 X3=70 X2=X3 Y3=70 Y4=Y3 Z1=0 Z2=Z1 Z3=Z1 Z4=Z1 CORNERS=4 N1=280 N2=280 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=BMOD MIN=&sB_MIN& MAX=&sB_MAX& CONTOUR=ZONES THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=0.0001 ROTY=0.0001 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sBModPlanoXY&%INT(#n).png' TYPE=PNG $ END IF $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) //Mapa de B en el plano ZY central 80 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes $ IF %COMPARE(&sBModPlanoZY&, &sEmptyString&) NE 0 title string='ModB plano ZY. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6),%REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN Y1=-70 Y4=Y1 Z1=-33 Z2=Z1 Y3=70 Y2=Y3 Z3=33 Z4=Z3 X1=0 X2=X1 X3=X1 X4=X1 CORNERS=4 N1=280 N2=132 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=BMOD MIN=&sB_MIN& MAX=&sB_MAX& CONTOUR=ZONES THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=0.0001 ROTY=90.0000 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sBModPlanoZY&%INT(#n).png' TYPE=PNG $ END IF $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) //Mapa de B en el plano ZX central (deberia ser muy similar a ZY) $ IF %COMPARE(&sBModPlanoZX&, &sEmptyString&) NE 0 title string='ModB plano ZX. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6),%REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN Z1=-33 Z4=Z1 X1=-70 X2=X1 Z3=33 Z2=Z3 X3=70 X4=X3 Y1=0 Y2=Y1 Y3=Y1 Y4=Y1 CORNERS=4 N1=132 N2=280 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=BMOD MIN=&sB_MIN& MAX=&sB_MAX& CONTOUR=ZONES THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=-90 ROTY=0.0001 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sBModPlanoZX&%INT(#n).png' TYPE=PNG $ END IF $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) //Mapa de H y Vectores de B en el plano XY central //Nota: Los angulos de la vista de los ejes no son exactamente 0 por que en ese caso no se muestra correctamente el eje de coordenadas $ IF %COMPARE(&sHModPlanoXY&, &sEmptyString&) NE 0 title string='ModH VectorB 0XY. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN X1=-70 X4=X1 Y1=-70 Y2=Y1 X3=70 X2=X3 Y3=70 Y4=Y3 Z1=0 Z2=Z1 Z3=Z1 Z4=Z1 CORNERS=4 N1=50 N2=50 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=HMOD MIN=* MAX=* CONTOUR=ZONES GRID=NO VECTOR=YES VX=Bx VY=By VZ=Bz SCALE=4 VECSBYSIZE=YES VMIN=* VMAX=* ERASE=YES PRINT=NO THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=0.0001 ROTY=0.0001 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sHModPlanoXY&%INT(#n).png' TYPE=PNG $ END IF //Mapa de H y Vectores de B en el plano ZY central //Nota: Los angulos de la vista de los ejes no son exactamente 0 por que en ese caso no se muestra correctamente el eje de coordenadas $ IF %COMPARE(&sHModPlanoZY&, &sEmptyString&) NE 0 title string='ModH VectorB 0ZY. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN Y1=-70 Y4=Y1 Z1=-33 Z2=Z1 Y3=70 Y2=Y3 Z3=33 Z4=Z3 X1=0 X2=X1 X3=X1 X4=X1 CORNERS=4 N1=56 N2=26 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=HMOD MIN=* MAX=* CONTOUR=ZONES GRID=NO VECTOR=YES VX=Bx VY=By VZ=Bz SCALE=4 VECSBYSIZE=YES VMIN=* VMAX=* ERASE=YES PRINT=NO THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=0.0001 ROTY=90.0000 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sHModPlanoZY&%INT(#n).png' TYPE=PNG $ END IF //Mapa de H y Vectores de B en el plano ZX central $ IF %COMPARE(&sHModPlanoZX&, &sEmptyString&) NE 0 title string='ModH VectorB 0ZX. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN Z1=-33 Z4=Z1 X1=-70 X2=X1 Z3=33 Z2=Z3 X3=70 X4=X3 Y1=0 Y2=Y1 Y3=Y1 Y4=Y1 CORNERS=4 N1=26 N2=56 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=HMOD MIN=* MAX=* CONTOUR=ZONES GRID=NO VECTOR=YES VX=Bx VY=By VZ=Bz SCALE=4 VECSBYSIZE=YES VMIN=* VMAX=* ERASE=YES PRINT=NO THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=-90 ROTY=0.0001 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sHModPlanoZX&%INT(#n).png' TYPE=PNG $ END IF //Mapa de MuR (permeabilidad magnetica relativa) en el plano XY central //Nota: Los angulos de la vista de los ejes no son exactamente 0 por que en ese caso no se muestra correctamente el eje de coordenadas $ IF %COMPARE(&sMurPlanoXY&, &sEmptyString&) NE 0 title string='MuR (perm mag rel) 0XY. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN X1=-70 X4=X1 Y1=-70 Y2=Y1 X3=70 X2=X3 Y3=70 Y4=Y3 Z1=0 Z2=Z1 Z3=Z1 Z4=Z1 CORNERS=4 N1=280 N2=280 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=BMOD/(HMOD*mu0) MIN=* MAX=* CONTOUR=ZONES GRID=NO VECTOR=NO THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=0.0001 ROTY=0.0001 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sMurPlanoXY&%INT(#n).png' TYPE=PNG $ END IF //Mapa de MuR (permeabilidad magnetica relativa) en el plano ZY central $ IF %COMPARE(&sMurPlanoZY&, &sEmptyString&) NE 0 title string='MuR (perm mag rel) 0ZY. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN Y1=-70 Y4=Y1 Z1=-33 Z2=Z1 Y3=70 Y2=Y3 Z3=33 Z4=Z3 X1=0 X2=X1 X3=X1 X4=X1 CORNERS=4 N1=280 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 81
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes N2=132 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=BMOD/(HMOD*mu0) MIN=* MAX=* CONTOUR=ZONES THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=0.0001 ROTY=90.0000 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sMurPlanoZY&%INT(#n).png' TYPE=PNG $ END IF //Mapa de MuR (permeabilidad magnetica relativa) en el plano ZX central $ IF %COMPARE(&sMurPlanoZX&, &sEmptyString&) NE 0 title string='MuR (perm mag rel) 0ZX. Sim n%INT(#n) PosRotorXYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN Z1=-33 Z4=Z1 X1=-70 X2=X1 Z3=33 Z2=Z3 X3=70 X4=X3 Y1=0 Y2=Y1 Y3=Y1 Y4=Y1 CORNERS=4 N1=280 N2=132 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=BMOD/(HMOD*mu0) MIN=* MAX=* CONTOUR=ZONES THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=-90 ROTY=0.0001 ROTZ=0.0001 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO AXES=YES PICTURE SAVE=YES FILENAME='&sMurPlanoZX&%INT(#n).png' TYPE=PNG $ END IF //Mapa de B en un plano ZY girado 45º alrededor del eje Z, de manera que vemos un corte que no //corta ni los polos del estator radial ni los imanes permanentes $ IF %COMPARE(&sBModZYGiro45g&, &sEmptyString&) NE 0 title string='ModB ZY 45grados ejeZ. Sim n%INT(#n) Pos rotor XYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft CARTESIAN CORNERS=4, X1=70 Y1=70 Z1=33 X2=-70 Y2=-70 Z2=33 X3=-70 Y3=-70 Z3=-33 X4=70 Y4=70 Z4=-33 N1=132 N2=280 BUFFER=Cartesian MAP FILE=TEMP COMPONENT=BMOD MIN=&sB_MIN& MAX=&sB_MAX& CONTOUR=ZONES WINDOW AXES=NO THREED OPTION=SETVIEW SIZE=70 | THREED OPTION=SETVIEW ROTX=0.0001 ROTY=90 ROTZ=45 PERSPECTIVE=NO WINDOW SOLID=NO OUTLINE=NO PICTURE SAVE=YES FILENAME='&sBModZYGiro45g&%INT(#n).png' TYPE=PNG $ END IF $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) //Dibujo 3D del estator de control radial con colores segun campo B $ IF %COMPARE(&sBModEstatorCRad&, &sEmptyString&) NE 0 title string='ModB 3D est c.radial. Sim n%INT(#n) Pos rotor XYZ mm(%REAL(#rotorX,6),%REAL(#rotorY,6), %REAL(#rotorZ,6)). J bobXYZ A/mm2 (%REAL(#currentX,6),%REAL(#currentY,6),%REAL(#currentZ,6))' position=topleft WINDOW AXES=NO WINDOW SOLID=YES OUTLINE=NO MAP FILE=TEMP COMPONENT=BMOD CONTOUR=NO GRID=NO VECTOR=NO ERASE=YES PRINT=NO SELECT ACTION=RESET SELECT ACTION=ADD, | SELECT LABEL=IRON SELECT ACTION=HIDE, | SELECT LABEL=THRUST_CONTROL_S SELECT ACTION=ADD, | SELECT LABEL=PM SELECT ACTION=SELECT OPTION=SURFACES ACCURACY=0 SYMMETRY=None | THREED OPTION=REFRESH THREED TYPE=COMP LINECOLOUR=YES COMPONENT=Bmod MIN=&sB3D_MIN& MAX=&sB3D_MAX& VECTOR=NO VECSBYSIZE=YES XORIGIN=0 YORIGIN=0 ZORIGIN=0 ROTX=20 ROTY=20 ROTZ=0 SIZE=46 FACETANGLE=10 PERSPECTIVE=YES XASPECT=1 YASPECT=1 ZASPECT=1 OPTION=SETVIEW THREED OPTION=SETVIEW SIZE=0 PICTURE SAVE=YES FILENAME='&sBModEstatorCRad&%INT(#n).png' TYPE=PNG $ END IF $constant #BMin MIN(#BMin;MINIMUM) $constant #BMax MAX(#BMax;MAXIMUM) title string='' position=none $ IF %COMPARE(&sNombreLog&, &sEmptyString&) NE 0 //Escribir en el log $ string Cabecera 'Imagenes, graficas y campos B tomados en Postproc., &NOW& &TODAY&' $ open 1 &sNombreLog& append | $ format 1 CHARACTER 0 +VARIABLE | $ assign 1 1 | $ write 1 Cabecera $ close 1 //Escribir en el log $ string Cabecera 'Campos B extremos registrados en imagenes y graficas de esta simulacion, BModmin: %REAL(#BMin) BModmax:%REAL(#BMax)' $ open 1 &sNombreLog& append | $ format 1 CHARACTER 0 +VARIABLE | $ assign 1 1 | $ write 1 Cabecera $ close 1 $ END IF //-------------------------------------------------------------------------------------- //ESCRIBIR DATOS DE FUERZAS, ENERGIAS Y PARES EN EL ROTOR, A UN ARCHIVO DE TEXTO //Recordar que la primera linea de los ficheros de texto (con la leyenda de la tabla) //se ha inicializado en el comi de Modeller. //Notar que el modelo se espera que este en mm y Teslas, pero este codigo lo pasa al SI //en metros para tener los pares en N·m //-------------------------------------------------------------------------------------- $ IF %COMPARE(&sFuerzas&,no) NE 0 $ IF %COMPARE(&sFParRotorDat&, &sEmptyString&) NE 0 //Seleccionamos la superficie del tubo del Rotor para poder calcular Fuerzas en el SELECT ACTION=RESET SELECT ACTION=TOGGLEADD, | SELECT LABEL=ROTOR $ IF #SIMETRIA E 0 SELECT ACTION=SELECT OPTION=ADD LAYERS=1 ACCURACY=0 SYMMETRY=None | THREED OPTION=REFRESH $ END IF $ IF #SIMETRIA E 1 SELECT ACTION=SELECT OPTION=ADD LAYERS=1 ACCURACY=0 SYMMETRY=Full | THREED OPTION=REFRESH $ END IF //Cambio de unidad (metros en vez de milimetros) para calcular el Par en N·m UNITS LENG=METRE FLUX=TESLA FIEL=AM SCAL=AMP VECT=WBM DISP=CM2 ELEC=VM COND=SM CURD=AM2 82 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes POWE=WATT FORC=NEWTON ENER=JOULE MASS=KG //Maxwell Stress Tensor en las superficies seleccionadas (las coordenadas son las del punto alrededor del cual se determina el par, deberia ser el centro del rotor) //Recordar pasar de mm a m cuando sea necesario! INTEGRATE X0=(#rotorX)/1000 Y0=(#rotorY)/1000 Z0=(#rotorZ)/1000 //Metemos los datos en una cadena de texto $ string Datos '%INT(#n) %REAL(#rotorX,8) %REAL(#rotorY,8) %REAL(#rotorZ,8)' $ string Datos2 ' %REAL(#currentX,8) %REAL(#currentY,8) %REAL(#currentZ,8)' $ string Datos3 ' %REAL(FX,8) %REAL(FY,8) %REAL(FZ,8)' $ string Datos4 ' %REAL(TORQX,8) %REAL(TORQY,8) %REAL(TORQZ,8)' //Escribir en el log $ IF %COMPARE(&sNombreLog&, &sEmptyString&) NE 0 $ string Cabecera 'Fuerza por Tensor de stress calculada en Postproc., &NOW& &TODAY&' $ open 1 &sNombreLog& append | $ format 1 CHARACTER 0 +VARIABLE | $ assign 1 1 | $ write 1 Cabecera $ close 1 $ END IF //Calculo de Energias en todo el modelo para tomar nota (asi se podria calcular fuerzas por medio de variaciones de energia en un proceso posterior). //Cuidado por que este comando ENERGY tambien actualiza FX FY FZ con nuevos datos diferentes a los que da el Tensor de Maxwell, y con un significado diferente //Notar que nuestras pruebas han demostrado que cuando un modelo tiene Bobinas e Imanes a la vez, el calculo de Fuerzas por medio del teorema de trabajos virtuales //(energias) no es el mejor método en Opera, y posiblemente el calculo de Coenergias no sea fiable. ENERGY ACTION=RESET ENERGY ACTION=INTEGRATE ADAPT=YES MULTIPOLE=NO //ENERGY ACTION=INTEGRATE ADAPT=NO MULTIPOLE=NO //Completamos la cadena de texto con datos $ string Datos5 ' %REAL(ENERGY) %REAL(COENERGY) %REAL(NLENERGY)' //Escribir en el log $ IF %COMPARE(&sNombreLog&, &sEmptyString&) NE 0 $ string Cabecera 'Energías calculadas en Postproc., &NOW& &TODAY&' $ open 1 &sNombreLog& append | $ format 1 CHARACTER 0 +VARIABLE | $ assign 1 1 | $ write 1 Cabecera $ close 1 $ END IF //Registro de datos de fuerzas, pares y energias del Rotor en fichero de texto $ open 1 &sFParRotorDat& append $ format 1 CHARACTER 0 +VARIABLE $ assign 1 1 1 1 1 1 $ write 1 Datos Datos2 Datos3 Datos4 Datos5 $ close 1 $ END IF $ END IF //-------------------------------------------------------------------------------------- //Cerramos el PostProcesador //-------------------------------------------------------------------------------------- END Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 83
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes IX. Scripts para femm 4.2. Para las simulaciones en femm 4.2 se ha utilizado un proceso secuencial en el que un único script lua va simulando y organizando los resultados. Este enfoque no ha dado problemas dado que la ejecución de la simulación 2D es más rápida y robusta que en 3D al demandar menos recursos al ordenador. Notar que en este caso el script no crea la geometría, solo la modifica (moviendo el rotor y cambiando corrientes). La geometría "base" se define en un archivo habitual de femm. IX.I. MagBearingZ.lua ----------------------------------------------------------------------------------- -- Creación automatizada de modelos de Rodamiento Magnetico Simplificado Axisimetrico para el calculo de Fz -- Requiere un archivo FEM de acompañamiento con el caso base (el script no crea toda la geometria) -- Simplemente coge el archivo base y lo modifica y analiza cambiando posicion del rotor y poniendo la corriente adecuada. -- Script para lenguaje Lua 4.0 integrado sobre Femm 4.2 -- Isaac Royo Silvestre
[email protected] (o
[email protected] ) -- Noviembre 2012 -- Desarrollado para el Trabajo de Fin de Master -- Master de Energías Renovables y Eficiencia Energética -- Escuela de Ingeniería y Arquitectura de la Universidad de Zaragoza (EINA), Universidad de Zaragoza -- Los comandos específicos de Femm están descritos en el manual de Femm 4.2. ( http://www.femm.info/wiki/HomePage ) -- Los comandos genéricos de LUA están definidos en el manual de referencia de Lua 4.0 ( http://www.lua.org ) -- Recordar que LUA es case-specific y los nombres tipo _X son para palabras reservadas, PI tambien es reservado. En Lua 4.0 no hay tipos booleanos. -- Script escrito con Notepad++ -- Codificacion de texto ANSI -- BUGs: Según el sistema operativo parece que la escritura del archivo de texto o la conversion de numero a string puede introducir errores en las cadenas de texto (pero no he podido reproducir el error) ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- -- INSTRUCCIONES -- 1. Se requiere este script LUA para femm y el archivo .fem con el caso basico (el script no crea integramente el modelo, solo lo modifica en tiempo real) -- Ambos deben estar en el mismo directorio. -- 2. Cambiar las variables maxSim y deltaZ para definir las simulaciones cambiando la posicion del rotor (solo posicion z) -- 3. Cambiar la densidad de corriente a usar para el Cobre (variable cobreJ), esto cambia la densidad de corriente J por la bobina (p.e. -4A/mm2). -- 4. Cambiar el nombre de los ficheros que se van a generar (ficheros fem y un fichero .txt con resultados) -- 5. Ejecutar el script lua en femm -- -- El fichero base puede modificarse para probar diferentes dimensiones geometrias etc. Simplemente hay que asegurarse de -- que el rotor está centrado y de que las lineas y puntos que delimitan el rotor se asignan al grupo 1 (para que los pueda mover -- el script) Tambien asegurarse de que el aire alrededor del rotor no tiene una geometria compleja para poder mover las lineas -- sin que interseccionen con nada. -- Notas: Si el rotor se mueve demasiado, hasta salirse del estator, habra intersecciones entre materiales (modificar el fichero base para poder hacer ese tipo de simulaciones) ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- -- CONFIGURACION ficheroBase="MagBearingZ-base.fem" --fichero base con modelo base a modificar name="MagBearingZ" --prefijo del nombre que recibiran los nuevos archivos creados (p.e. "MagBearingZ4A") cobreJ=0 --densidad de corriente J que pasa por el cobre en A/mm2. Notar que los sentidos de las corrientes son inversos en mi modelo 3D de Opera, por lo que 4A en Opera serian -4A en femm2D en este caso 84 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes maxSim=2 --numero de simulaciones para cada configuracion de corriente por la bobina (es decir, numero de posicion del rotor simuladas) deltaZ=-4 --desplazamiento del rotor en el eje z en cada simulacion siguiente a la inicial (en mm) ----------------------------------------------------------------------------------- ----------------------------------------------------------------------------------- -- Abrir nuevo documento y preparar el entorno. newdocument(0) -- Crea un nuevo documento de Femm, 0 indica que es un problema magnético. Función de Femm. -- Dejamos el modo de compatibilidad por defecto con Femm 4.1 -- setcompatibilitymode(0) -- Un valor de 0 (el valor por defecto) activa la compatibilidad con FEMM 4.1. Un valor 1 utiliza las definiciones de FEMM 4.2 para varios comandos de magnetics, en FEMM 4.2 estos comandos tienen argumentos complejos. Función de Femm. showconsole() -- Muestra en una ventana la consola de Lua. Función de Femm. clearconsole() -- Borra la información de la ventana de Lua. Función de Femm. hidepointprops() -- Oculta la ventana de Femm que muestra propiedades. Función de Femm. --- hideconsole() -- Para ocultar la consola. Función de Femm. ------------------------------------------------------------------------------------ ------------------------------------------------------------------- ------------------------------------------------------------------- -- BLOQUES DE ITERACIONES DE SIMULACION Y ANALISIS mResultados ={} --Inicializar matriz (tabla en Lua) donde guardaremos los resultados (en este primer bucle solo guardaremos z, J y Fuerza) -- Bucle, en cada iteracion se abre el archivo base, se modifica, se guarda un archivo con la geometria correspodiente para su coordenada z y se analiza, se guarda el archivo (para comprobacion manual) y se almacenan los resultados de los análisis en una variable iSim=1 -- Contador del número de simulaciones realizadas, empezamos por la primera. while(iSim<=maxSim) do -- calcular movimiento del rotor correspondiente a la simulacion z=(iSim-1)*deltaZ ---------------------------------------------------------------------- -- Crear el fichero del problema open(ficheroBase) -- Abrir el fichero base mi_setfocus(ficheroBase) mi_saveas(name.."_z"..z..".fem") -- Guardar el fichero modificado del problema con otro nombre. Función de Femm. mi_setfocus(name.."_z"..z..".fem")-- Pone el foco sobre el fichero creado. Función de Femm. hideconsole() -- Oculta la consola de Lua. Función de Femm. mi_close() --Cierra ventana del problema temporal creado. Función de Femm open(name.."_z"..z..".fem") -- Abrimos el fichero que acabamos de crear con el nombre que indicó el usuario mi_setfocus(name.."_z"..z..".fem")-- Enfocamos el problema que acabamos de abrir showconsole() -- Asegura que mostramos la consola de Lua. Función de Femm. -------------------------------------------------------------------- ------------------------------------------------------------------ -- Modificar la Geometría del problema -- Los nodos y lineas que definen la geometria relevante del rotor están asignados al grupo 1 en el modelo base. mi_selectgroup(1) mi_movetranslate(0,z) mi_clearselected() -- deseleccionar cualquier objeto antes de continuar -------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------- -- Definir propiedades del material Cobre (y la corriente por el) -- Cargar el material Cobre desde la biblioteca de materiales por defecto de Femm. mi_getmaterial("Copper") -- Modificar el material Cobre con la densidad de corriente J A/mm2 indicada por el usuario mi_modifymaterial("Copper",4,cobreJ) cobreMaterial="Copper: "..cobreJ.."A/mm2" Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 85
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes mi_modifymaterial("Copper",0,cobreMaterial) -- cambiamos nombre para recordar que se ha modificado ------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------- -- Modificar los Blocks, indicando la corriente a utilizar mi_selectlabel(53,0) -- Selecciona la etiqueta Block cercana a esa posicion (la de la bobina) mi_setblockprop(cobreMaterial,0,5,0,0) -- Editar propiedades del bloque seleccionado: Nombre, automesh (1), meshsize (si automesh es 0), circuito, direccion de magnetizacion (180: Hacia la izquierda, 0: no es iman). Hay más parametros opcionales, función de Femm. mi_clearselected() ----------------------------------------------------------------------------------- -- Guardar modelo finalizado mi_saveas(name.."_z"..z..".fem") -------------------------------------------------------------------------------- -- ANALIZAR EL PROBLEMA (CALCULAR FUERZA) mi_analyze(0) -- Analizar el problema focalizado, 0 para que se vea la ventana de analisis, 1 para minimizarla. Notar que antes de analizar este comando crea la malla. mi_loadsolution() -- Muestra la solución del problema en el post-procesador mo_seteditmode("area") -- Modo de seleccion de bloques mo_selectblock(17,0) -- Selecciono un bloque (el rotor) force = mo_blockintegral(19) -- Parte axial (en eje z) de la Fuerza calculada en el bloque por medio de un Weighted Stress Tensor. La parte radial se calcula con parametro 18, pero no nos interesa y debería ser 0) mo_clearblock() -- Cancela la seleccion de bloques actual print("Iteracion "..iSim..", Distancia z = "..z.." mm, Fuerza z = "..force.." N") mResultados[iSim]={z,force} -- Guardamos z y resultado de Fuerza en una matriz o tabla ---------------------------------------------------------------------------- -- Cerrar ventana de los archivos que hemos terminado de analizar en esta iteracion mo_close() mi_close() -- Mover el contador de iteraciones de simulación un paso iSim=iSim+1 end -- fin de while ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- -- CALCULAR AXIAL STIFFNESS (RIGIDEZ) -- Ya hemos terminado todas las simulaciones y tenemos los resultados en una matriz -- La rigidez k es la Fuerza dividida entre el desplazamiento *causado por esa fuerza*. Se mide en N/m -- La rigidez axial k se puede calcular como menos la derivada de la Fuerza axial respecto de z (siendo z la distancia axial entre los centros de los anillos) -- Es decir, la rigidez es la pendiente de la curva formada por los puntos (z,Fuerza) -- Así que para calcular la rigidez en un punto z, vamos a usar las Fuerzas calculadas en los puntos z anterior y siguiente (a menos que no esten calculados, como para el primer y último punto) y dividiremos entre el intervalo z correspondiente. iSim=1 while(iSim<=maxSim) do if( iSim==1 ) then -- Si no hay un punto anterior calculado a este, usar los valores del punto actual (notar que esto es preciso para calcular stiffness en z=0, por que la curva de fuerza es simétrica al eje z, siempre) zAnterior=mResultados[iSim][1] forceAnterior=mResultados[iSim][2] else zAnterior=mResultados[iSim-1][1] forceAnterior=mResultados[iSim-1][2] end if( iSim==maxSim ) then -- Si no hay un punto siguiente calculado a este, usar los valores del punto actual (notar que esto no es muy preciso para calcular stiffness en el último punto z=zMax) zSiguiente=mResultados[iSim][1] forceSiguiente=mResultados[iSim][2] print("Notar que el cálculo de Stiffness para el último punto z = zMáxima no es tan preciso como en los otros al no haber un punto siguiente para calcular la tangente") else zSiguiente=mResultados[iSim+1][1] 86 Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA
TFM - Características de un sistema de suspensión magnético, con control activo en los tres ejes forceSiguiente=mResultados[iSim+1][2] end stiffness = -1*(forceSiguiente-forceAnterior)/(zSiguiente-zAnterior) -- calcular rigidez mResultados[iSim][3]=stiffness -- insertar rigidez en la matriz de resultados iSim=iSim+1 end -- fin de while --------------------------------------------------------------------------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- --------------------------------------------------------------------------- -- Convertir la Matriz de Resultados en una cadena de Texto sInforme='z[mm];F[N];k[N/mm]\n' -- Cadena en la que guardaremos con texto el informe con datos que despues tendremos que guardar en un archivo. La primera fila es la cabecera de tabla y un salto de linea. if ( (formato=="s") or (formato=="S") ) then sInforme='z[mm],F[N],k[N/mm]\n' -- Version para formato separado por comas end iSim=1 while(iSim<=maxSim) do -- Cadena de texto para guardar los datos if ( (formato=="s") or (formato=="S") ) then sInforme=sInforme..tostring(mResultados[iSim][1])..','..tostring(mResultados[iSim] [2])..','..tostring(mResultados[iSim][3]) -- Guardamos en la cadena de texto los datos relevantes en formato separado-por- comas, y decimales con puntos else sInforme=sInforme..gsub(tostring(mResultados[iSim] [1]),"%.",",")..';'..gsub(tostring(mResultados[iSim][2]),"%.",",")..';'..gsub(tostring(mResultados[iSim][3]),"%.",",") -- Guardamos en la cadena de texto los datos relevantes en formato separado por punto-y-coma, y decimales con comas. Notar que usamos %. en vez de . por que . es un caracter especial cuando se hacen reemplazos en cadenas de Lua. -- En Lua los elementos de array se numeran por defecto desde el número 1. Antes hemos guardado la posicion z en [1], la Fuerza en [2] y la Rigidez o stiffness en [3] end -- Si no es la última iteración, insertar un salto de linea para separar la siguiente fila de datos if(iSim<maxSim) then sInforme=sInforme.."\n" end iSim=iSim+1 end -- fin de while --------------------------------------------------------------------------- --------------------------------------------------------------------------- ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- -- GUARDAR ARCHIVO DE TEXTO CON INFORME Y RESULTADOS -- Formato Comma-Separated-Values fError=writeto(name.."_csv.txt") -- Escribir el archivo (en realidad crearlo). Notar que si un archivo con el mismo nombre existe, será sobreescrito y se perderá su información. if(fError==nil) then -- Exception Handling messagebox("Error en writeto(nombre archivo).") mi_close() return end fError=write(sInforme) -- Escribir información en el archivo abierto para escritura if(fError==nil) then -- Exception Handling messagebox("Error al grabar datos en archivo.") mi_close() return end closefile(_OUTPUT) -- Cerrar el archivo creado por que hemos terminado de trabajar con él. _OUTPUT contiene el filehandle. ---------------------------------------------------------------------------- ---------------------------------------------------------------------------- Isaac Royo Silvestre - MÁSTER EN ENERGÍAS RENOVABLES Y EFICIENCIA ENERGÉTICA 87