This application claims benefit to German Patent Application No. DE 102022134031.7, filed on Dec. 20, 2022, which is hereby incorporated by reference herein.
The present disclosure relates to a method for creating a co-simulation having a plurality of simulation modules, wherein the simulation modules in each case have at least one communications interface and in each case can be executed with simulation agents, comprising the following method steps: generating simulation components, which in each case are a container for one simulation module or several simulation modules, assigning the simulation modules to the simulation components, providing each simulation component with a runtime environment information module that has information on the requirements of the simulation modules contained in the simulation component for the runtime environment, wherein the respective simulation agents may have properties corresponding to the requirements of the simulation modules in order to be able to execute them, and providing each simulation component with a communications unit that contains a description of the communications interface of the simulation module, such that communication with further simulation components is enabled.
There are a variety of simulation tools for creating model-in-the-loop, software-in-the-loop, hardware-in-the-loop, or connected-mixed-reality simulations. A simulation tool usually consists of an editor, which can be used to define what is to be simulated, and a compiler, a just-in-time compiler, or an interpreter in a simulation environment. The simulation defined in the editor can be executed with the compiler, the just-in-time compiler, or the interpreter. Each of these simulation tools is typically designed for special areas of application. Connected mixed-reality simulations are mixed simulations of real and simulated control units.
A simulation tool that has been developed on a computing unit is a simulation agent. The computing unit does not necessarily have to be a localizable computing unit. Rather, this computing unit can be part of a computing cluster or part of a cloud computing solution. The individual simulation is a simulation module executed with the simulation agent, wherein the simulation module can be a script that can be ported into the editor of a simulation tool. A script is a file that can be implemented with the simulation agent and can also be in binary format. If necessary, an executable can be generated from the simulation module prior to execution. The executable is a compiled script and therefore a program that can be executed on a processor.
A co-simulation is characterized by the fact that it contains several simulation modules, which can be variously designed and can require similar, but also different types of simulation agents for execution. In order to create a co-simulation with various simulation modules and the associated simulation agents, the simulation modules or the specific simulation environments of the simulation tools of the simulation agents may be modified in such a way that data can be exchanged between the simulation modules via special bus systems. This communication may be realized within the individual simulation tools and therefore in different ways in each case. In addition to the communication between the simulation modules, a consistent distribution of the simulation modules to the different simulation environments, a time synchronization, and a control of the simulations are to be realized.
The Functional Mock-up Interface specification defines a standard that describes containers that can accommodate simulation modules. These containers are provided with interface descriptions for communication. Accordingly, the communication of the simulation modules assigned to simulation components and the type of data exchanged is defined exclusively within the associated simulation agents and is thus not universally valid. It follows that the execution of a simulation module on different simulation agents requires a new adjustment of the communication in each case, and that changes to the simulation regarding the model-in-the-loop, software-in-the-loop, hardware-in-the-loop, or connected mixed-reality simulation type result in communication changes, which in turn require time-consuming adjustments to the communication of the simulation modules. Thus, every change in the simulation modules or in the simulation type requires a further adjusted, memory-intensive co-simulation. The distribution of a simulation model to various simulation environments may also be specific to the simulation environment.
In an embodiment, the present disclosure provides a method for creating a co-simulation having a plurality of simulation modules. The simulation modules in each case have at least one communications interface, and in each case are configured to be executed with simulation agents. the method includes:
Subject matter of the present disclosure will be described in even greater detail below based on the exemplary figures. All features described and/or illustrated herein can be used alone or combined in different combinations. The features and advantages of various embodiments will become apparent by reading the following detailed description with reference to the attached drawings, which illustrate the following:
In view of the background discussed above, aspects of the present disclosure provide a time-efficient and memory-efficient method for creating a co-simulation.
According to the present disclosure, a method for creating a co-simulation having a plurality of simulation modules is thus provided, wherein the simulation modules in each case have at least one communications interface and in each case can be executed with simulation agents, comprising the following method steps:
This provides a method for creating a co-simulation that is significantly more time-efficient and memory-efficient than conventional methods. With the present disclosure, the existing computer hardware can thus be used substantially more efficiently than before by the improvement in internal computer processes.
The smallest unit of a co-simulation is the individual simulation module. Each simulation module has requirements for its runtime environment. In this respect, a simulation tool that can be used for co-simulation is part of these requirements. The requirements can also in any event relate to the processor architecture, the number of available CPU's and GPU's, the RAM, or the operating system. In addition to the further requirements, the simulation tool is designed as a property on a simulation agent that can execute the simulation module.
The simulation module is assigned to a simulation component that is equipped with a communications unit and a runtime environment information module. The communications unit contains a description of the communications interface of the simulation module. This allows the type of communication with further simulation components to be defined. The types of communication possible in the communications interface are independent of specific simulation agents and can be signal-based communication in the form of model port connections or a bus access request in the form of an automotive bus such as Ethernet, CAN, Lin, or FlexRay. The physical bus does not necessarily have to be provided in every simulation component. Instead, the physical bus for a simulation component can be provided by another simulation component. In the context of a software-in-the-loop simulation type, a physical bus is therefore not necessarily required. Rather, direct communication with a further simulation component can also be established with a virtual bus. In addition, data exchange can be enabled via a global data structure that is synchronized between the simulation agents, and via inputs and outputs in the form of electrical signals that connect the simulation components with one another.
The runtime environment information modules of the simulation components show the requirements, needed to execute the simulation module, for the runtime environment. The requirements for the runtime environment include the minimum requirements that a simulation agent may have as properties in order to be able to execute the corresponding simulation component. This also includes necessary connections with other simulation agents, in interdependent simulation components, or simulation components that are mutually dependent.
By creating a co-simulation application, a hierarchy is generated, with which the co-simulation application can be orchestrated. Here, orchestrating a co-simulation application specifically means executing certain simulation modules, contained in the simulation components, in a certain sequence.
According to a further development of the present disclosure, it is provided that the simulation agents be configured to be able to execute hardware-in-the-loop, software-in-the-loop, or model-in-the-loop simulations. The combination of simulation components forms the simulation component level. This is independent of the subsequent execution of the co-simulation application and, in particular, the type of simulation. Model-in-the-loop, software-in-the-loop, hardware-in-the-loop, or connected-mixed-reality simulations can be executed in this way with the same, unchanged simulation component level. Version updates of the simulation component level or the simulation agents can be carried out independently of one another and do not affect the respective other structure.
According to a further development of the present disclosure, the method comprises the following further method steps: grouping simulation components with runtime environment information modules having compatible requirements, categorizing the simulation components with runtime environment information modules having compatible requirements in a processing unit application, such that simulation components with runtime environment information modules having compatible requirements are arranged in a common processing unit application, and simulation components with runtime environment information modules having incompatible requirements are arranged in different processing unit applications. Simulation components with compatible requirements in the runtime environment information modules can be executed together with a simulation agent type that has the corresponding description of the properties. Execution can take place chronologically, in parallel, and under real-time conditions. It is not necessary for the runtime environment information modules of the simulation components to have the same number of identical or compatible requirements for the runtime environment. If necessary, it is sufficient that the requirements for the runtime environment of the simulation component that has the most requirements are fulfilled.
In a further embodiment of the present disclosure, the method comprises the following further steps: forming a simulation inventory that contains simulation agent types available in a simulation agent type network, and selecting the simulation agent types, required for executing the processing unit application, from the simulation inventory. The available simulation agent types are those simulation agent types that are available for executing the co-simulation application. The network connections of the simulation agent types describe the connections between the simulation agents described by the respective simulation agent types, such that any communication between the simulation components on different simulation agents can be fulfilled. For example, data can be exchanged via a global data structure that can be synchronized between the simulation agents. A simulation agent type is the description of the properties of the simulation agent required to execute the simulation module. There can be several simulation agents of one simulation agent type in a simulation agent type network.
In principle, the simulation agents can be associated with the co-simulation application in various ways. However, according to an exemplary embodiment of the present disclosure, the method comprises the following further steps: providing a simulation agent inventory that contains the simulation agents corresponding to the simulation agent types, and associating the co-simulation application with the simulation agents. The provision of a simulation agent inventory enables more rapid retrieval of the available simulation agents. Associating the co-simulation application with the simulation agents includes assigning the simulation agents to the respective simulation components. The simulation components can then be executed with the corresponding simulation agents.
In principle, the co-simulation application can be implemented in various ways. According to an exemplary embodiment, however, it is provided that the co-simulation application be executed in parallel on a computing cluster. Several instances of this co-simulation application can thus be executed in parallel on the computing cluster. The entire co-simulation application does not necessarily have to be executed on a computing cluster. In the case of co-simulation applications that execute hardware-in-the-loop simulations, the co-simulation application may be only partially executed on a computing cluster. The part of the co-simulation application that concerns the hardware can then be executed on a specialized workstation with the corresponding linked hardware. Here, a workstation means a local computing unit. In this specific example, the hardware together with the computing unit are the simulation agent.
According to a further development of the present disclosure, it is provided that the co-simulation application be executed in parallel on a GPU architecture of the computing cluster. The execution of the co-simulation application on a GPU architecture enables particularly rapid and efficient calculation. In a further embodiment of the present disclosure, several instances of the co-simulation application are generated. With a plurality of available simulation agents of the simulation agent types required to execute the co-simulation application, better utilization and thus more efficient use of the hardware can be achieved. The instances of the co-simulation application can be distributed to various available simulation agents, and further co-simulation applications can thus also be dynamically allocated. This enables the prioritization of individual parts of the co-simulation application or other co-simulation applications.
It is possible for the simulation agents to be formed on a local computing unit. However, according to an exemplary embodiment, it is provided that the simulation agents be part of a cloud computing system, and the co-simulation application be ported to this cloud computing system. Parts of the co-simulation application that are not hardware-bound can be executed in a decentralized manner in a cloud computing environment, such that the executability of the co-simulation application is not tied to the resources of a user and can also be made available as a service.
According to the present disclosure, there is further provided a non-volatile, computer-readable storage medium with instructions stored thereon that, when executed on a processor, effect a method according to one of the preceding claims.
This method for creating a co-simulation 100 having several simulation modules 1 with communications interfaces 2, wherein the simulation modules 1 are executable with simulation agents 4, comprises the following steps:
Finally,
While subject matter of the present disclosure has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. Any statement made herein characterizing the invention is also to be considered illustrative or exemplary and not restrictive as the invention is defined by the claims. It will be understood that changes and modifications may be made, by those of ordinary skill in the art, within the scope of the following claims, which may include any combination of features from different embodiments described above.
The terms used in the claims should be construed to have the broadest reasonable interpretation consistent with the foregoing description. For example, the use of the article “a” or “the” in introducing an element should not be interpreted as being exclusive of a plurality of elements. Likewise, the recitation of “or” should be interpreted as being inclusive, such that the recitation of “A or B” is not exclusive of “A and B,” unless it is clear from the context or the foregoing description that only one of A and B is intended. Further, the recitation of “at least one of A, B and C” should be interpreted as one or more of a group of elements consisting of A, B and C, and should not be interpreted as requiring at least one of each of the listed elements A, B and C, regardless of whether A, B and C are related as categories or otherwise. Moreover, the recitation of “A, B and/or C” or “at least one of A, B or C” should be interpreted as including any singular entity from the listed elements, e.g., A, any subset from the listed elements, e.g., A and B, or the entire list of elements A, B and C.
Number | Date | Country | Kind |
---|---|---|---|
102022134031.7 | Dec 2022 | DE | national |