How to efficiently and effectively co-simulate whole-product functional systems models that include component subsystem models at differing levels of abstraction, or fidelity, has long vexed product engineering teams and simulation technology providers alike. Now, a powerful, elegant solution to this obstacle to faster, more efficient and effective model-based systems engineering (MBSE) is available in CosiMate, the core software product from Chiastek.
This tremendously exciting new technology breaks through what has long stood as one of the worst obstacles to implementing truly production-level MBSE: the difficulty of co-simulating whole-product functional systems models whose component subsystem models are at varying levels of fidelity. As they almost invariably are.
CosiMate enables exactly that—and in an easy, elegant, modern drag-and-drop manner, without the slow, laborious, cumbersome, rigid and inflexible hand coding that was long accepted, resignedly, as the only feasible, robust technical solution for mixed-fidelity co-simulation at the systems level.
In practice, what much more often happens is that only two physical domains at a time are co-simulated, tediously stepping through simulating the whole-product system model in this manner. Clearly sub-optimal, slow, labor-intensive and, above all, frequently unrevealing of undesirable or even actively harmful multi-system interactions that don’t surface until first physical prototype—or, worse, after a product has been released to production and delivered to market. Think uncommanded sudden vehicle acceleration.
These late-stage unpleasant surprises obviously create huge messes in any program where they erupt—and frequently a ruinous hit to reputation and bottom line. But such disasters remain only too common in practically every industry today except automotive and aerospace/defense, which have learned how to avoid them—almost, but not always—through prodigious application of manual engineering labor. A necessary but vastly costly and schedule-eating investment that Chiastek’s technology at last promises to relieve.
Introducing Chiastek and CosiMate
Billing itself “the multiphysics simulation company,” Chiastek provides solutions for MBSE of complex products in aerospace, automotive and many other discrete manufacturing industries. Its software products and professional services help engineering organizations meet the challenges of modeling and simulating complex product systems that encompass multiple physical domains by making it easy to link multiple physics solvers together, as well as to collaborate across multiple companies and geographies. “How to optimize systems design?” is the key question Chiastek’s offerings address.
CosiMate is a co-simulation conduit that links heterogeneous simulators operating at differing levels of product modeling abstraction, and using varying mathematical systems to model multiple different physical phenomena. It allows engineering specialists and discipline leads to develop simulations of differing subsystems using whatever is the most appropriate tool for their domain, then co-simulate the whole-product system by executing those subsystem simulations in parallel.
By making it easy for engineers to model and co-simulate complex systems, CosiMate technology overcomes the longstanding problem of accuracy degradation when simulation results are passed and shared among simulation tools of differing fidelity levels. Users get the combined benefit of a high-fidelity, full-system performance overview together with dramatically reduced time needed to model and set up such whole-product simulations.
Given the spiraling complexity of not just systems but systems-of-systems in automotive, aerospace and defense, telecommunications, medical devices and a myriad of other industries today, successful co-design, optimization, integration and validation of mechanical, electrical, electromechanical, electronic and software components is becoming ever more challenging. In most engineering organizations, design of complex systems requires close cooperation among multiple teams with differing domains of expertise, each using a different set of digital tools for design development and validation. Before actual implementation, systems engineers today need to be able to validate the product’s whole-system behavior as early as possible in the development cycle, and at varying levels of abstraction.
Unlike typical point-to-point solutions that let one simulator communicate with only one other simulator at a time, CosiMate uses an open architecture based on a co-simulation bus. This solution provides two key advantages: an open architecture that enables multi-point integration and simultaneous communication among heterogeneous simulators, and the ability to simulate models across a computer network to optimize both CPU usage and simulation performance.
CosiMate’s open architecture lets engineers connect an unlimited number of simulation environments together. Once the co-simulation process is launched, users can interact with the native simulators transparently, as if CosiMate were not present.
Models at differing levels of abstraction can be mixed and matched, providing maximum flexibility. At the same time, overall system quality is fostered and protected because individual engineers can work in their respective familiar environments.
CosiMate can be used as a test environment by integrating C/C++ debuggers and monitors, as well as test and measurement tools such as LabVIEW and LabWindows/CVI. Specialized tools such as CarSim, which simulates and animates dynamic tests of cars and trucks, are also e supported.
CosiMate includes an Automatic Bench Generator and other utilities that facilitate development of models or code without having to co-simulate the complete system. The generated C code provides an easy way to test a portion of the system using co-simulation.
CosiMate can co-simulate a model at differing levels of abstraction, making the software a complete environment for verifying non-regression of the model functionality along the design flow.
Working with its OEM customers, Chiastek reports it has proven the concept of software-in-the-loop (SIL) verification using CosiMate. Customers have created a complete framework for testing production control software against various plant models on PCs, it says, with focus mainly on software communication (direct I/O, CAN and the like), software initialization (calibration) and system synchronization (task scheduling).
Networked architecture yields big performance gains
CosiMate’s networked architecture is well suited to the needs of multidisciplinary product teams. Its networked nature also supports study of systems behavior in a multitasking mode by partitioning the model and distributing simulation of the various segments across multiple computing resources. In customer benchmarks, this technique has yielded significant gains in simulation speed.
CosiMate technology offers a solution to the difficulties of simulating integrated, large-scale, dynamic systems. A potential speedup of two to eleven times was measured on an actual large Simulink model. Significant reduction in simulation time is achieved by the traditional technique of partitioning (splitting the full-order model into several smaller parts) and then simulating on single or multiple computers.
Interacting with CosiMate
Users configure co-simulation sessions using a graphical drag-and-drop interface to define the following parameters: simulator list (types, network addresses and the like), connection types between simulators, and simulation start mode.
A data manager controls data synchronization among the various environments throughout the co-simulation process. Internal scopes are also available to follow the activity on the co-simulation bus.
Interacting with native simulators
An important CosiMate feature is the easy way of setting up interaction with the user’s preferred simulator. In addition to using the default CosiMate user interface to control the co-simulation, CosiMate allows execution in the native simulation environment. As a result, users can easily work in their familiar environment to control, debug and monitor simulations, just as if they were running in standalone mode.
Connecting a new simulator
The software’s Interface Development Package is a set of tools, resources and documents that facilitate integration of new simulators into the CosiMate framework. The new interface code is developed and compiled within the Eclipse CDT environment. The end user manages the components of the CosiMate library using graphical XML editing capabilities in the Eclipse environment. The CosimMate API documentation is available and integrated in the Eclipse IDE.
In addition to creating new interfaces, users have the ability to customize the interfaces to simulators such as Simulink and Saber which are currently supported in the standard CosiMate offering.
Functional Mock-up Interface (FMI)
FMI is an open interface definition for exchanging models between various simulation environments (FMI for Model-Exchange) or for co-simulating the models together (FMI for Co-simulation). Integration with CosiMate allows co-simulation between FMI and non-FMI models such as Simulink, Saber or those from other simulator types. And CosiMate has the power and flexibility to enable co-simulation between FMI for Co-Simulation and FMI for Model-Exchange models.
Key feature summary
- Heterogeneous models: electrical, mechanical, electronic, hydraulic, algorithmic, state charts and others.
- Hardware/software co-verification and hardware-in-the-loop (HIL) testing.
- Simulation across functional areas and across the organization.
- Support for multiple simulators and languages, multiple solvers within a unique simulator, multiple abstraction levels, and various data type connections all possible within a single co-simulation project.
- Flexibility for simulation dynamics through multiple communication sample times (time steps) and multiple start times.
- Support for pure event-driven co-simulations with HDL- and UML-based simulators.
- Flexibility for event-driven communication: interrupt driven, busy-wait polling, buffering and more.
- Support for heterogeneous co-simulation between solvers (Simulink for example) and event-driven (HDL, UML) or sequential (C) simulators.
- Easy simulator connection using a graphical editor to build the co-simulation netlist.
- Easy setup for remote access and multi-platform co-simulations.
- Easy simulator management and customized simulator setup.
- Easy framework integration using standard XML descriptions for I/O.
- Integrated debugging and monitoring features: Spy data, VCD and Excel traces, co-simulation controls.
- Large choice of simulation types (for example, continuous or discrete simulations) and data types (scalar, logic, vector or bus).
- LAN and WAN co-simulations.
- MPI co-simulation.
Simulators and language interfaces supported
Supported simulators include The MathWorks MATLAB and Simulink; IBM Rational Statemate and Rhapsody; Synopsys Saber, SaberRD, Saber HDL and Virtualizer; MSC Software Easy5 and Adams; Autodesk: Inventor; Siemens PLM Software Imagine.Lab AMESim and Virtual.Lab Motion; Powersys EMTP-RV; Powersim PSIM; Gamma Technologies GT-Suite; Mentor Graphics Modelsim; Engineering Center Steyr Kuli; Dassault Systèmes Dymola; OpenModelica; Mechanical Simulation CarSim; Siemens PLM Software NX I-deas TMG; and ANSYS Mechanical.
Supported languages are FMI, Modelica, C, C++, Java, VHDL and VHDL-AMS. Additional languages can be encapsulated in a C wrapper.
MVS: Multi-Variable Selector
Chiastek also offers MVS (Multi-Variable Selector), a preprocessing tool that helps engineers implement multiphysics simulation platforms. It assists in the creation of such platforms, manages data I/O following defined corporate standards, supports process implementation and automation, and automates netlist creation.