From fab9752add06f0119204f9e899f2b1356181adbd Mon Sep 17 00:00:00 2001 From: Pedro Jose Romero Gombau Date: Thu, 3 Apr 2025 14:06:05 +0200 Subject: [PATCH] Final Upload --- README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++ ResultadoFinal.png | Bin 22341 -> 19789 bytes graficar.py | 6 ++++++ 3 files changed, 56 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..885789d --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# Proceso de Ajuste Automático de la Curva B-H para Simulación en MotorCAD + +Este documento resume el procedimiento automatizado desarrollado para identificar la curva B-H que mejor representa el comportamiento magnético de un material dentro del contexto de un motor síncrono. El flujo consiste en comparar los resultados de simulaciones realizadas en MotorCAD con datos experimentales, ajustando iterativamente la curva B-H hasta minimizar el error en la tensión inducida. + +## 1. Obtención de datos experimentales + +A partir de ensayos en vacío, cortocircuito y carga, se determinan los parámetros eléctricos fundamentales del motor: + +- **Ensayo en vacío:** se mide la constante de tensión inducida \(k_e\) como \(k_e = V / f\). +- **Ensayo en cortocircuito:** se calcula la inductancia \(L\) mediante la expresión: + \[ x = \sqrt{\left(\frac{k_e f}{I}\right)^2 - R^2} \] +- **Ensayo en carga:** se estima la tensión inducida \(E\) como: + \[ E = I \cdot \sqrt{(R + \frac{V}{I})^2 + (2\pi f L)^2} \] + +Estos resultados proporcionan las tensiones inducidas experimentales de referencia para diferentes frecuencias. + +## 2. Generación de curvas B-H + +Se construye una curva B-H como una serie de pares \((H, B)\), donde \(H\) es el campo magnético y \(B\) la densidad de flujo: + +\[ B = \mu_0 H + \text{offset} \] + +Este offset se ajusta iterativamente. Los valores generados se exportan a un archivo `.mdb` compatible con MotorCAD. + +## 3. Simulación electromagnética en MotorCAD + +Para cada curva B-H generada, se realiza una simulación con corriente cero y velocidad fija en MotorCAD. Se extrae la tensión inducida \(E\) como resultado, replicando las condiciones del ensayo experimental. + +## 4. Bucle iterativo de ajuste + +Se sigue el siguiente algoritmo: + +1. Inicializar un valor de offset. +2. Generar la curva B-H con ese offset. +3. Simular y obtener las tensiones inducidas \(E_{\text{sim}}\). +4. Calcular el error relativo medio respecto a \(E_{\text{exp}}\): + \[ \text{error} = \frac{E_{\text{sim}}}{E_{\text{exp}}} \] +5. Si el error está dentro del margen, detener. +6. Si no, ajustar el offset con: + \[ \delta = |\tanh(\text{error} - 1)| \] + y repetir desde el paso 2. + +## 5. Objetivo + +Determinar automáticamente la curva B-H que reproduce el mismo comportamiento que el material real, sin necesidad de caracterizarlo completamente por separado. + +--- + +> **Nota:** Este README resume la lógica implementada en cuatro scripts principales: `ensayos_motor.py`, `genCurvas.py`, `motorcad.py` y `fluxControl.py`. Cada uno se encarga de una parte específica del proceso. + diff --git a/ResultadoFinal.png b/ResultadoFinal.png index 06dc730bffe4c476f59d395570b30f45fdfc6658..1cf926036998aa42749becf0528e2c5a9f41818e 100644 GIT binary patch literal 19789 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 literal 22341 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