Final Upload
This commit is contained in:
parent
7b0373e1ed
commit
fab9752add
50
README.md
Normal file
50
README.md
Normal file
@ -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.
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 19 KiB |
@ -19,6 +19,9 @@ with open(rutaPLA, 'r') as f:
|
||||
if linea.startswith("BValue["): bPLAcond.append(float(linea.split("=")[1]))
|
||||
if linea.startswith("HValue["): hPLAcond.append(float(linea.split("=")[1]))
|
||||
|
||||
hPLAcond = np.array(hPLAcond)
|
||||
bPLAcond = np.array(bPLAcond)
|
||||
|
||||
bM800 = []
|
||||
hM800 = []
|
||||
|
||||
@ -26,6 +29,9 @@ with open(rutaMetal, 'r') as f:
|
||||
for linea in f.readlines():
|
||||
if linea.startswith("BValue["): bM800.append(float(linea.split("=")[1]))
|
||||
if linea.startswith("HValue["): hM800.append(float(linea.split("=")[1]))
|
||||
|
||||
bM800 = np.array(bM800)
|
||||
hM800 = np.array(hM800)
|
||||
|
||||
plt.figure()
|
||||
plt.plot(hPLA, bPLA, label = 'PLA')
|
||||
|
Loading…
Reference in New Issue
Block a user