- Descargar OpenModelica desde openmodelica.org
- Instalar la versión completa que incluye OMEdit (el entorno gráfico)
- Asegúrarse de instalar también las librerías estándar
- Abrir OMEdit (OpenModelica Connection Editor)
- Ir a Tools → Options → Libraries
- Verificar que esté cargada la librería Modelica Standard Library que incluye componentes de fluidos
Crear un ejemplo simple de un tanque con flujo:
a) Nuevo modelo:
- Archivo → Nuevo → Modelo
- Nombrar el modelo:
TanqueSimple
b) Código del modelo:
model TanqueSimple
// Importar librería de fluidos
import Modelica.Fluid.*;
// Parámetros del sistema
parameter Real altura_inicial = 2.0 "Altura inicial del líquido (m)";
parameter Real area_tanque = 1.0 "Área del tanque (m²)";
parameter Real coef_descarga = 0.6 "Coeficiente de descarga";
parameter Real area_orificio = 0.01 "Área del orificio (m²)";
parameter Real g = 9.81 "Aceleración gravitacional (m/s²)";
// Variables de estado
Real altura(start = altura_inicial) "Altura del líquido (m)";
Real flujo_salida "Flujo de salida (m³/s)";
Real velocidad_salida "Velocidad de salida (m/s)";
equation
// Ecuación de continuidad (conservación de masa)
area_tanque * der(altura) = -flujo_salida;
// Ecuación de Torricelli para flujo por orificio
velocidad_salida = coef_descarga * sqrt(2 * g * altura);
flujo_salida = area_orificio * velocidad_salida;
end TanqueSimple;a) Verificar sintaxis:
- Clic derecho en el modelo → Check Model
- Debe mostrar "Check of TanqueSimple completed successfully"
b) Configurar simulación:
- Clic derecho → Simulate
- En la ventana de simulación:
- Start Time: 0
- Stop Time: 100 (segundos)
- Tolerance: 1e-6
c) Ejecutar simulación:
- Clic en Simulate
Después de la simulación:
-
En el
Plotting Perspective
, seleccionar las variables:
altura(altura del líquido vs tiempo)flujo_salida(flujo de salida vs tiempo)
-
Hacer doble clic en las variables para graficarlas
Para un ejemplo más complejo usando componentes visuales:
a) Nuevo modelo gráfico:
- Archivo → Nuevo → Modelo
- Cambiar a vista Diagram
b) Agregar componentes: Desde la Libraries Browser, navega a:
Modelica.Fluid.Vessels→ Arrastrar unOpenTankModelica.Fluid.Sources→ Arrastrar unBoundary_pT(fuente de presión)Modelica.Fluid.Pipes→ Arrastrar unStaticPipe
c) Conectar componentes:
- Usar la herramienta de conexión para unir los puertos de fluido
- Configurar los parámetros de cada componente
- Error de librerías: Verificar que Modelica Standard Library esté cargada
- Problemas de convergencia: Reducir la tolerancia o ajusta los valores iniciales
- Unidades inconsistentes: Revisar que todas las unidades sean coherentes
- Usar Tools → Options → Simulation para ajustar el solver (prueba con DASSL o Euler)
- Para modelos complejos, considerar usar
Modelica.Fluid.Examplescomo referencia - Guardar trabajo con Ctrl+S
OpenModelica es un entorno de modelado y simulación de código abierto basado en el lenguaje Modelica, compatible con el estándar Modelica Language Specification (MLS), lo que permite portabilidad entre herramientas. en.wikipedia
OpenModelica sigue estrictamente el estándar Modelica, evitando vendor lock-in y permitiendo usar modelos en múltiples herramientas para simulación, generación de FMUs, optimización y control. Desarrollado por el Open Source Modelica Consortium (OSMC) en colaboración con Linköping University, soporta la mayoría del lenguaje Modelica, incluyendo ecuaciones, algoritmos, eventos y paquetes. modelica
- OMEdit: Interfaz gráfica propia (basada en Qt/C++) para modelado, simulación y notebooks interactivos (OMNotebook). openmodelica
- Enterprise Architect: Integración con SysML para simulación de sistemas físicos mediante SysPhS. sparxsystems
- Python/Julia: API para análisis avanzado, como optimización y control, superando limitaciones de herramientas como MATLAB en DAEs. ep.liu
- OpenModelica.jl: Framework en Julia para compilación Modelica, compatible con ModelingToolkit.jl y extensiones para variable structure systems. pdfs.semanticscholar
| Herramienta | Relación con OpenModelica | Ventajas compartidas |
|---|---|---|
| Dymola | Ambas usan Modelica estándar | Portabilidad de modelos openmodelica |
| MATLAB/Simulink | OpenModelica maneja DAEs nativamente | Mejor soporte para ecuaciones acausales ep.liu |
| Wolfram SystemModeler | Competidor comercial | OpenModelica es gratuito y extensible modelica |
OpenModelica se integra con bibliotecas como Modelica Standard Library y soporta FMU para interoperabilidad con software propietario. build.openmodelica