JuliaSim is a next generation cloud-based modeling and simulation platform, combining the latest techniques in Scientific Machine Learning (SciML) with equation-based digital twin modeling and simulation. Build scalable models quickly with ML-enhanced workflows while having the robustness of a high-performance physical modeling platform designed for industrial simulation and controls analysis.
JuliaSim's feature set can be broken down as follows:
- An acausal modeling framework in ModelingToolkit.jl which makes it easy to quickly implement complex physical systems.
- A fast compiler for models which allows the simplest model implementations to scale to large-scale cloud compute.
- A collection of pre-built model libraries to accelerate the development process.
- Automated Model Discovery tooling to accelerate the model building process with machine learning.
- Tools for handling difficult nonlinear model calibration and inverse problems, making it easy to transform any model into a data-adjusted digital twin of real physical devices.
- A pipeline for surrogate generation, i.e. generating high-performance model approximations via machine learning which accelerate further analysis by orders of magnitude.
- An industry-grade controls suite, making it simple to use the digital twin to design robust controllers that are deployable to the field.
The near future roadmap of JuliaSim also includes features for code generation for embedded devices to bring digital twins to edge computing. Together, JuliaSim is a complete platform covering modeling to deployment with SciML-enhanced features and performance.
JuliaSim's tools can be used in 3 separate ways:
- The JuliaSim cloud application is a graphical user interface (GUI) for interactive model development that makes it easy to access all of the most common JuliaSim features in an easy to learn environment.
- The JuliaSim cloud IDE is an interactive development environment (IDE) built using VS Code. It's a coding interface to using all of the JuliaSim packages on the cloud platform, offering the maximum flexibility along with access to thousands of CPUs and GPUs.
- The JuliaHub package registry allows for local access to JuliaSim packages. Install the package registry in order to access JuliaSim packages via the Julia package manager and use them in your local Julia development environment.
Only a subset of modules of JuliaSim are accessible via the JuliaHub package registry. Using these modules requires a JuliaSim license (or non-commercial use). See the Getting Started page for more details
At the foundation of JuliaSim are the open-source Scientific Machine Learning ecosystem in Julia, which provide best in class equation solvers, sensitivity analysis methods built using automatic differentiation and implementations of many popular scientific machine learning techniques.
Additionally, ModelingToolkit.jl is the modeling language of JuliaSim. ModelingToolkit is an acausal modeling framework that enables engineers to build large multiphysics models by leveraging resuable component models.
Many electrical, mechanical, magnetic and thermal components can be found in the open-source through the ModelingToolkit Standard Library, but JuliaSim provides a proprietary libraries:
- Battery models: Fast Doyle-Fuller-Newman (DFN) models, Single Particle Models (SPM) simulations for cells and battery packs.
- HVAC systems: Build fast vapor-compression cycle models using built-in compressors, expansion devices, heat exchangers, evaporators, chillers and proprietary refrigerant property models.
- Multibody systems: Efficiently study the dynamics of complex mechanical systems in various fields, such as robotics, biomechanics, aerospace, and vehicle dynamics.
The analyses modules of JuliaSim allow engineers to calibrate models to data, augment their model with data-driven terms (model discovery), build control systems and build surrogate models. This supercharges the model building process to improve what one can do with a model. The main analyses libraries of JuliaSim are:
- JuliaSim Model Optimizer: Calibrate models to experimental data using a suite of calibration algorithms. Use multi-stage optimization techniques to avoid local minima, and leverage built-in parallelism for fast convergence. Alternatively, use experimental data to augment a physical model with data-driven terms (model discovery). These data-driven terms can then be reinterpreted from a basis of physically interpretable terms.
- JuliaSim Surrogates: Build fast surrogate models using automated techniques. Use for faster design optimization to find optimal operating parameters, accelerated control design via surrogatizing plant models, and faster simulations by replacing a slow component of a simulation with surrogate model.
- JuliaSim Control: Design and analyze control systems, from simple PID controllers to advanced and robust Model Predictive Controllers (MPC). In addition, leverage many automated methods for linearizing models, model-order reduction, system identification, state estimation, robust control and more. Build a surrogate model of the MPC controller (as opposed to the plant model) for fast MPC operation.
JuliaSim is intended to build many workflows that may not have been possible before:
- Compose proprietary rigid-body vehicle dynamics models, battery models and HVAC systems all on one platform to design the next electric vehicle. Collaborate within and across teams on the JuliaHub platform.
- Start with an incomplete physical model, get test data for normal operation and use the model-discovery component to augment new physics to the existing model. Design robust control systems for new discovered model.
- Build surrogate model of physical system, and use for accelerated control design. Tune controller and test with original system before deployment.
- Deploy designed control logic onto embedded systems.
JuliaSim is a proprietary software developed by JuliaHub Inc. It is free to use for non-commercial academic teaching and research purposes. For commercial users, license fees apply. Please refer to the End User License Agreement for details. Please contact firstname.lastname@example.org for purchasing information.