Methods for event-based simulation of systems

In the development process of electronic control devices, the system time and simulation time are synchronized by using multi-computing unit system and virtual clock generator, the problem of decoupling simulation and real-time time is solved, and the reliability and flexibility of simulation are improved. It is suitable for Test requirements for complex motor vehicle systems.

CN112166428BActive Publication Date: 2024-12-27D SPACE GMBH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN201980032587.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-05-17
Filing Date
2019-05-16
Publication Date
2024-12-27
Estimated Expiration
2039-05-16

AI Technical Summary

Technical Problem

In the development process of electronic control devices, event-based simulation methods are difficult to effectively decouple simulation time and real-time time, resulting in unreliable simulation results and inconsistent simulation speed, especially in complex motor vehicle systems, test system Computing and storage requirements are huge, making it difficult to effectively allocate the computing load.

Method used

A multi-computer unit system is adopted, in which the central computing unit manages the event waiting queue, and synchronizes the system time and simulation time on the distributed computing unit through a virtual clock generator to ensure the time consistency of each simulation step and realize event-based simulation.

Benefits of technology

Advantages the advantageous decoupling of simulation and real-time time, ensures the reliability of simulation results, and improves the flexibility of simulation speed, and can simulate faster or slower when needed, avoiding time synchronization problems.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN112166428B_ABST
    Figure CN112166428B_ABST
Patent Text Reader

Abstract

A method for event-based simulation of a system, wherein the simulation is performed on a computer system including a first computing unit and a second computing unit, the first computing unit having a simulation time; the second computing unit having a system time; the second computing unit executing a simulator application on which simulation objects are executed; and the first computing unit managing an event waiting queue, listing events for each simulation step and configuring the event with a process to be executed and setting a simulation time for executing the process; the second computing unit having a virtual clock generator, for each simulation step: transmitting a start signal to the virtual clock generator via the first computing unit for executing a new simulation step in the second computing unit; and increasing the system time of the second computing unit based on the time difference between the simulation time of the previous simulation step and the simulation time of the new simulation step, and executing the process at the simulation time configured for the waiting process.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method for event-based simulation of a system. Background Art

[0002] In the development of electronic control units, which are also widely referred to as ECUs (English: Electronic Control Unit), the focus today is on virtual assurance and subsequent early testing during the development process. This occurs before the electronic control unit is tested at its specific location and usually before the prototype of the future control unit hardware exists in general. Such real control units are mostly complete computers with an operating system and input and output interfaces (I / O interfaces), which are connected to a bus system, by means of which the control unit can communicate with other control units. The operating system of the application usually has to meet real-time conditions, because the control unit should map safety-threatening functions in its specified application. The tasks of the control unit are mostly of a control and regulation technical nature and are used, for example, in the automotive field or in aviation and aerospace technology. Examples of such functions are the regulation of the internal combustion engine by the engine control unit or the control of driver assistance systems, such as speed-adaptive distance regulators. In this field of application, the networking of the control units with each other is an important aspect, because these control units are in an operative relationship with each other.

[0003] In the above-mentioned safeguards, software-in-the-loop simulation (also called: SIL simulation) is usually applied, with the help of which the completed production code can be tested in a virtual environment without the need for control device hardware. For this purpose, a virtual control device is applied, on which the production code is executed. The virtual control device simulates the control device hardware and can exchange messages with each other, receive measurements of sensor data and act on actuators by means of I / O interfaces and bus systems, just like a real control device that exists physically. For this purpose, a SIL simulation environment is required, which simulates the behavior of sensor data and bus systems and provides a virtual control device, which appears for the real control device hardware. The virtual control device then also includes software components, which belong to the hardware platform in the real situation and can be distinguished from the production code executed thereon. These software components include, for example, an operating system with a kernel and a hardware abstraction layer, a runtime environment, a variety of services for systems and communications, and other components. These functions are then virtually simulated and simulated with the help of a simulator. The simulator can, for example, be provided by one or more physically real computing units, which are dedicated to the simulation task. It can also involve a virtual simulation computing unit, which is implemented on a standard PC. It is also possible to implement a virtual controller on a real-time system such as a SIL simulator. Within the simulator, the virtual controller or controllers interact with a simulation environment, which is also referred to below as a simulator application. For this purpose, the virtual controller has an external data interface that allows the exchange of messages with a corresponding data interface of the simulator application. This type of simulation is known in the prior art and can be found, for example, in the documentation for the products dSPACE SystemDesk V-ECU Generation Module or dSPACE VEOS.

[0004] In this early stage of the control device development process, it is not yet necessary or desirable to carry out the simulation under real-time conditions, as in the case of the HIL test of the completed control device later. Since the control device is simulated here, the real control device clock is also mapped in the simulation. The simulation is therefore carried out along the simulated time, which is also referred to as the simulation time below. The simulation time is not necessarily coupled to the real time, the time that passes outside the simulation, and is forwarded. The simulation time then appears asynchronous and can pass faster or slower than the real time depending on the clock frequency and the number of computing units used and depending on whether the simulation is stopped. Therefore, in the case of this simulation, it is referred to as an offline simulation, which can also be implemented on a standard computer.

[0005] In such an off-line simulation, people use the concept of event-based simulation. In an event-based simulation, the simulation proceeds along a series of events to be processed. Here, only discrete events are simulated at the following time, at which these discrete events are set in a list, which is called the event waiting queue. The time between the events is not simulated. This method makes it possible to simulate a long virtual period in a short real elapsed time when the step size between two discrete events is large. In addition, the simulation is controlled by the so-called zero time assumption, which means that the event itself is assumed to be implemented immediately from the perspective of the simulation time. Such events do not map the necessary execution time on the real control device in the simulation.

[0006] In today's motor vehicles, the systems consisting of control devices are becoming more and more complex, and the tasks that these control devices have, for example for driver assistance systems (and in the context of the widely pursued autonomous driving), are becoming more and more extensive. This naturally also has an impact on the complexity of the test system, with the help of which an early virtual guarantee of the functions of such control devices is achieved. The simulation models that come with it place great demands on the computing power and storage requirements of the computer system used by the simulator. In this context, it may be necessary to distribute the calculations of different simulation objects to different computing units, which can be, for example, virtual control devices. It is not important here whether the computing units exist as physically existing computing nodes or whether they are computing units virtualized in a virtual machine monitor. For example, it may also be necessary that the simulation object cannot run on the operating system of the simulator used, or that the computing load needs to be distributed to multiple computers as described above.

[0007] In this case, the central computing unit, which manages the event waiting queue, predetermines the valid simulation time. The central computing unit then has the task of triggering the computing units assigned and connected to the central computing unit in order to execute the waiting event. On these computing units, simulation objects are executed in their corresponding operating systems. This usually occurs: the simulation object makes an operating system call in order to process the waiting event. In the case of such an operating system call, the time is queried from the time base of the assigned system if necessary. In this case, the time queried in this way by the simulation object is not consistent with the central simulation time, which can lead to incorrect behavior of the simulation. Summary of the invention

[0008] Against this background, the object of the present invention is to further improve the prior art.

[0009] This object is achieved by a method according to the invention for event-based simulation of a system.

[0010] According to the technical solution of the method for event-based simulation of a system, the simulation is performed on a computer system including a first computing unit and at least one second computing unit, the first computing unit having a simulation time; the second computing unit having an operating system layer and an application layer; the second computing unit having a system time in the operating system layer; at least the second computing unit executes a simulator application, wherein at least one simulation object is executed on the simulator application; and the first computing unit manages an event waiting queue, wherein at least one event is listed for each simulation step in the event waiting queue, and the event is configured with a process to be executed by the simulation object and a simulation time for setting the execution of the process; the second computing unit has a virtual clock generator, wherein the method has the following steps for each simulation step: a start signal is transmitted to the virtual clock generator by the first computing unit for executing the next simulation step in the second computing unit; and the system time of the second computing unit is increased based on the time difference between the previous simulation step and the simulation time, and the process is executed at the simulation time configured for the waiting process.

[0011] In the scope of the content of the method according to the present invention, a computer system is understood to be a combination of various computing units, each of which has its own operating system and can execute applications on each computing unit. In the computer system, there is a first computing unit, which is called a central computing unit in the following embodiment, based on which the progress of the simulation is managed. In addition, the computer system contains a second or more other computing units, which are connected to the first computing unit via a bus system. The bus system can be based on Ethernet or another bus system. The other computing units are called distributed computing units, and the simulation is performed on the distributed computing units. The simulation includes executing one or more simulation objects in the distributed computing units or also on the central computing unit. These simulation objects can be, for example, virtual control devices, Simulink models, functional model units (FUM) or virtual control devices according to the automotive open system architecture (AUTOSAR) standard. The participating simulation objects can be in an action relationship here. This means that, for example, the simulation object sends the calculation result of the process to another simulation object during the execution of the simulation, and the other simulation object executes another process based on the calculation result in the subsequent simulation step. The sending of the calculation result can be realized by means of the bus system.

[0012] In order to execute the simulation objects, a simulator application is executed on the distributed computing units. An application is understood to be one that manages the simulation objects assigned to it and starts processes assigned to the managed simulation objects. In addition, the simulator application receives calculation results from simulation objects on other computing units for further processing by the simulation objects assigned to these computing units and / or forwards calculation results of simulation objects assigned to these computing units to simulation objects on other transport units.

[0013] In the scope of this content, the event-based simulation of the system is understood as a simulation that progresses according to a list of events to be processed, which is referred to as an event waiting queue. The time that has passed between events is not simulated here. The progress of the simulation follows the simulation time, which is predetermined by the central computing unit, which manages the event waiting queue. For this purpose, the central computing unit can, for example, use its internal hardware clock. The event waiting queue lists the process to be executed and the simulation time, at which time the execution should occur, and the message to the computing unit that performs the execution, for each event. Once the simulation time of the event is reached, the event is executed and the simulation is transferred to the next simulation state. If the simulation object configured with the next waiting event is on one of the distributed computing units, the correct time for executing the associated process is originally unknown from the perspective of the simulation object. This reason is that the simulation object easily obtains the system time of the computing unit for the first time when performing a time query on the operating system of the distributed computing unit. However, the system time does not have to be consistent with the simulation time. According to the method of the present invention, a virtual clock generator is therefore provided on the distributed computing unit, which is used as the clock generator of the operating system on the corresponding computing unit. The clock generator receives a start signal for each simulation step from the first arithmetic unit at the beginning of each simulation step. The start signal contains the information that the next simulation step can be executed. It is not important how this information is transmitted. In the simplest case, 1 bit, such as a rising edge or a change from 0 to 1 is sufficient.

[0014] With the help of the start signal and the information about the simulation time contained therein, the second computing unit can now increase its system time to the correct simulation time. This should now be understood so that the second computing unit knows the valid simulation time and the system time corresponding to this moment from the previous simulation step. At the beginning of a new simulation step, the second computing unit now obtains the simulation time valid for this simulation step. The second computing unit can now correct its system time by the time difference between the two simulation moments - the previous and the new simulation step. Then, at the correct simulation moment, the process waiting in the new simulation step is calculated.

[0015] The method according to the invention enables an advantageous decoupling of the event-based simulation from the real time running outside the simulation. It is thereby possible to reliably imitate the simulation results, which would not be the case without the invention. It is also possible to run the simulation faster or slower and to stop the simulation in comparison with real time.

[0016] In an advantageous embodiment of the invention, it is provided that the time difference between the preceding simulation step and the new simulation step is already calculated by the first computing unit and transmitted with the start signal to a virtual clock generator on a second or external distributed computing unit.

[0017] In another advantageous embodiment of the invention, it is provided that the current simulation time is first transmitted from the first computing unit together with a start signal to the second or further distributed computing units. The simulator on the second computing unit is used to form a time difference, and the virtual clock generator increases the system time in such a way that the system time is consistent with the simulation time.

[0018] A further advantageous embodiment of the invention provides that the first and the second or further distributed computing units have a network interface, by means of which communication between the computing units is possible via a bus system.

[0019] In another advantageous embodiment of the invention, it is provided that the simulation object is executed on the same operating system as the simulator application that manages the simulation object. The operating system used is, for example, based on Linux and / or a real-time operating system. Since the simulation object can call the operating system during the simulation, the corresponding operating system can be regarded as part of the simulation.

[0020] In another advantageous embodiment of the invention, it is provided that the simulation object is executed in a closed environment. This means that the simulation object is allowed access to the hardware resources necessary for the simulation. In particular, the simulation object is prohibited from accessing the system time of the distributed computing unit, because otherwise synchronization with the simulation time is no longer guaranteed. For the simulation object, in a closed environment, which can be, for example, a sandbox, access to hard disk storage, network interfaces, main memory, processor cores and others can be allowed.

[0021] Another advantageous embodiment of the invention provides that the first and second or further distributed computing units have a virtual network interface, by means of which communication between the computing units via a virtual bus system is possible. This enables the simulation to be performed on a plurality of virtual computing nodes.

[0022] In another advantageous embodiment of the invention, it is provided that one or more of the simulation objects are provided in the simulation by a virtual controller which simulates the behavior of a physically existing controller. A virtual controller is understood to be a software application which simulates extensive components of a series controller, such as, for example, a runtime environment, system services, communication services or a hardware abstraction layer, so that they can be simulated in a simulator.

[0023] In another advantageous embodiment of the present invention, it is provided that the calculation result of the simulation object is transmitted from the virtual network interface of the first computing unit to the virtual network interface of the second computing unit via a network channel.

[0024] Another advantageous embodiment of the present invention provides that the computing units used are respectively physical computing nodes.

[0025] Another advantageous embodiment of the present invention provides that the computing units used are virtual computing nodes, wherein the operating systems of these virtual computing nodes are executed by a virtual machine monitor.

[0026] In a further advantageous embodiment of the invention, it is provided that the virtual clock generator is implemented in the application layer.

[0027] In a further advantageous embodiment of the invention, it is provided that the virtual clock generator is implemented in the operating system layer. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The present invention is further explained below with reference to the accompanying drawings, in which the same type of parts are indicated by the same reference numerals.

[0029] Figure 1 A schematic diagram showing an embodiment of the present invention comprising a system consisting of three computing units;

[0030] 2 shows a time flow chart of an event-based simulation on two computing units using a method known from the prior art;

[0031] Figure 3 The chronological flow diagram of an event-based simulation on two computing units using the method according to the invention is shown. DETAILED DESCRIPTION

[0032] Figure 1 The embodiment of the present invention is shown in the figure on a distributed computer system, which includes three computing units RE1, RE2 and RE3. The number of computing units in this embodiment is arbitrarily selected. Figure 1As shown in the figure and explained below, the present invention will also run on a computer system composed of two, four or more computing units. It is also not important whether the computing units exist as physical computing cores or virtual computing nodes. The computing units RE1, RE2 and RE3 each have an operating system OS, on which each simulator application SAP1, SAP2 or SAP3 is executed. The operating system OS does not have to be the same on each computing unit. The task of the simulator application SAP1 on the computing unit RE1 is to manage the event waiting queue, which is processed to implement event-based simulation. The event waiting queue includes a list of events and the configuration of the process TASK configured for the events, as well as information on which time in the simulation time the listed events should be processed and which computing unit is used to provide execution information. During the execution of the simulation, the simulator application SAP1 sends a start signal to the simulator applications SAP2 and SAP3 on the central computing unit RE1, and the simulator applications are set to execute the waiting events.

[0033] The simulator applications SAP2 and SAP3 on the processing units RE2 and RE3 have the task of starting the processing of events by the respectively responsible distributed processing unit RE2 or RE3, as soon as the start signal S1 is received and the simulation time is reached, at which the event is executed by the processing unit associated with the event. After processing the event, the simulator application of the processing unit in question sends the end signal S2 (at Figure 1 The end signal indicates by means of a signal that the processing of the event is completed.

[0034] In order to exchange start and end signals, the computing units RE1, RE2 and RE3 also have network interfaces ETH1, ETH2 and ETH3, which are connected to a bus system BUS, which allows simulator applications SAP1, SAP2 and SAP3 to exchange messages between the central computing unit RE1 and the distributed computing units RE2 and RE3. The network interfaces ETH1, ETH2 and ETH3 can be realized, for example, by an Ethernet controller. The computing units then exchange messages based on the Ethernet protocol.

[0035] exist Figure 1In the embodiment based on, the function of the computing unit 1 is to form a central computing unit, while the computing units RE2 and RE3 are distributed computing units. In addition to the above-mentioned components, the computing units RE2 and RE3 respectively have a virtual clock generator VCLK, an operating system kernel KRN and a closed environment BOX. In the closed environment BOX, a simulation object is executed, and the simulation object is configured to the corresponding distributed computing unit RE2 or RE3 for execution, wherein the simulation objects SO1 and SO2 are configured to the computing unit RE2, and the simulation objects SO3 and SO4 are configured to the computing unit RE3. If the operating system OS of the application is based on Linux on the corresponding computing units RE2 and RE3, then the closed environment can be, for example, a sandbox, a kernel namespace (Namespace). The task of the closed environment can ensure that the simulation objects executed therein only access the hardware resources specified for them. These hardware resources can be, for example, hard disk storage, network interface ETH2 or ETH3, one or more processor cores or main memory.

[0036] In this embodiment, the computing units RE2 and RE3 each have a virtual clock generator VCLK. The task of the virtual clock generator VCLK is to increase the system time in the operating system kernel KRN of the distributed computing unit according to the clock difference obtained between the previous simulation step and the simulation time suitable for the obtained time. In this sense, the virtual clock generator can be understood as a virtual replacement for the original clock generator, which is used by the computing unit concerned to increase its system time. Because the obtained clock difference directly refers to the simulation time predetermined by the central computing unit RE1, the distributed computing unit indirectly uses the central simulation time as the system time. The determination of the clock difference can be realized by the virtual clock generator VCLK itself, or it has been calculated by the first computing unit RE1 and transmitted to the virtual clock generator. In both cases, the virtual clock generator uses the clock difference to increase the system time in the distributed computing unit, which is the computing unit RE2 or RE3 in this embodiment, and synchronize it with the simulation time.

[0037] 2 is a schematic diagram of the time sequence of an event-oriented simulation according to a method known in the prior art. In this example, two computing units RE2 and RE3 can be found. The number is chosen completely arbitrarily here, and the actual situation depicted would also be on three or more computing units.

[0038] FIG. 2 shows the time flow of the processing of the various processes of the simulation objects SO1 and SO2 on the operation unit RE1 shown in the upper system and the simulation object SO3 on the operation unit RE2 shown in the lower system. The simulation objects SO1, SO2 and SO3 can be virtual control devices, for example. The first operation unit RE1 is designed as a simulator in this example, that is, the simulator application SAP is executed on the operation unit RE1. The first operation unit manages the event waiting queue (not shown) and starts to execute the process that is waiting as the next one in the event waiting queue through the simulation objects SO1 and SO2, wherein the first operation unit RE1 transmits a start signal S1. The operation unit RE2 is a distributed component, which is separated from the operation unit RE1 and the simulator application running on it is executed. The simulation object SO3 is executed on the operation unit RE2.

[0039] With the start signal S2, the first simulation step Step 1 is started, and the simulation objects SO1 and SO2 respectively execute the processes PRZ1 and PRZ2. Once the processes are thus completed, they inform the simulator application SAP of the end of the processes in reverse via the end signal S2. In this example, the simulation object SO1 is completed first, followed by the simulation object SO2. Once the two simulation objects entrusted with the processes are completed, the simulation step is ended. After the simulation step is ended, the calculation results of the simulation objects are transmitted to other simulation objects, which require the calculation results for their next executed processes. In the example, the calculation results of the simulation object SO1 are transmitted to the simulation object SO2 via the bus system before the simulation step Step 2 is started. The calculation results of the simulation object SO2 are required by the simulation object SO3 for the next simulation step and are transmitted to the simulation object SO3.

[0040] With the next start signal S1, the next simulation step Step 2 begins, and the simulation object SO1 executes the process PRZ3 on the computing unit RE1; the simulation object SO2 executes the process PRZ4 using the calculation result of Step 1 of the simulation object SO1; and the simulation object SO3 executes the process PRZ5 on the computing unit 2. As soon as the simulation objects SO1 and SO2 have finished calculating their processes, PRZ3 and PRZ4, they again inform the simulator application SAP with the end signal S2. Since the simulation object SO3 is not simulated in time synchronization in this example, but only reacts to the calculation result of the simulation object SO2, the simulation step ends before the simulation object SO3 can end the calculation of the process PRZ5. No further calculations are performed here, but other processes are simulated in the simulation objects SO1 and SO2. In the simplest case, it is a process CHECK, which only checks whether there are new calculation results. If this is not the case, the simulation step ends again, in that the simulator application SAP is informed with the end signal S2. This query is repeated so long and the simulation steps accumulate until the simulation object SO3 provides new calculation results for SO2. This is the case in this exemplary embodiment when simulation object SO3 completes the calculation of process PRZ5 on computing unit RE2. After the calculation is completed, simulation object SO3 sends its calculation result to the previously determined receiver, in this case simulation object SO2, which writes the calculation result into a buffer in the following simulation step Step 1000. In this example, the calculation result of PRZ5 can then be transmitted to simulation object SO2 only in simulation step Step 1000. Since each simulation step is assigned a simulation time, SO2 incorrectly obtains the calculation result at the 1000th simulation time, although this calculation result must already be available after the second simulation step due to the zero time assumption.

[0041] exist Figure 3 The drawing shows an overview of the time sequence of an event-oriented simulation according to the method according to the invention.

[0042] Figure 3The time flow of the processing performed by the simulation objects SO1 and SO2 on the operation unit RE1 shown in the upper system and the simulation object SO3 on the operation unit RE2 shown in the lower system is shown. The simulation objects SO1, SO2 and SO3 can be virtual control devices, for example. The first operation unit RE1 is constructed as a simulator in this example, that is, the simulator application SAP1 is executed on the operation unit RE1. The first operation unit RE1 manages an event waiting queue (not shown) and starts to execute the process that is next in the event waiting queue through the simulation objects SO1, SO2 and SO3, in which the first operation unit RE1 transmits a start signal S1. The operation unit RE2 is a distributed component, which is separated from the operation unit RE1 and the simulator application SAP1 running on it is executed. The simulator application and the simulation object SO3 are executed on the operation unit RE2.

[0043] The first simulation step Step 1 is started with the start signal, and the simulation objects SO1 and SO2 execute the processes PRZ1 and PRZ2 respectively. Once the process is completed, the end signal S2 is used to inform the simulator application SAP1 in reverse that the process is finished. In this example, the simulation object SO1 is completed first, followed by the simulation object SO2. Once the two simulation objects entrusted with the processes are completed, the simulation step is finished. After the simulation step is finished, the simulation object transmits its calculation results to other simulation objects, which require the calculation results for the next process to be executed. In the example, the simulation object SO1 transmits its calculation results to the simulation object SO2 via the bus system before starting the simulation step Step 2. The calculation results of the simulation object SO2 are required by the simulation object SO3 for the next simulation step and are transmitted to the simulation object SO3. For the transmission of the calculation results, for example, a network channel (indicated by a dotted line) can be used, which enables communication between the simulation objects on different computing units.

[0044] With the next start signal S1, the next simulation step Step 2 is started, and the simulation object SO1 executes the process PRZ3 on the computing unit RE1; the simulation object SO2 executes the process PRZ4 using the calculation results of the simulation object SO1 in Step 1. The already completed process PRZ2 triggers the subsequent process PRZ5, which is to be executed on the computing unit 2 by the simulation object SO3. After the simulation step Step 1 is completed, the simulation object SO2 sends its calculation results to the simulation object SO3. With the start signal S1, the computing unit RE2 implicitly receives information about the simulation time and can increase its system time accordingly. The simulation object SO3 can then start the calculation of the process PRZ5 at the correct simulation time stored in the event waiting queue.

[0045] As soon as SO1 and SO2 have finished calculating their processes, PRZ3 and PRZ4, these simulation objects again inform the simulator application SAP1 with an end signal S2. The simulation objects SO1 and SO2 have finished their calculations, while the calculation of the process PRZ5 continues on the computing unit RE2. This simulation step is not yet finished, unlike the example described with respect to FIG. 2. The reason for this is that the simulation time, on which the calculation of all processes is based, is known and identical for both computing units RE1 and RE2 during all simulation steps.

[0046] After the process PRZ5 has completed the calculation on the computing unit RE1, the calculation result is sent to the simulation object SO2 on the computing unit RE1.

[0047] Since the simulation is carried out under the assumption of zero time, no simulation time elapses during the calculation of the process. Therefore, the simulation step STEP 2 ends only after the process PRZ5 has been completed by the calculation of the simulation object SO3 on the computing unit RE2. At the same time, no time elapses from the perspective of the simulation.

Claims

1. A method for event-based simulation of a system, wherein: The simulation is performed on a computer system comprising a first computing unit (RE1) and at least one second computing unit (RE2), wherein: The first operation unit (RE1) has a simulation time; The second computing unit (RE2) has an operating system layer and an application layer; The second computing unit (RE2) has a system time in the operating system layer; At least the second computing unit (RE2) executes a simulator application (SAP2), wherein at least one simulation object (SO) is executed on the simulator application (SAP2); and The first operation unit (RE1) manages an event waiting queue (ERG), In the event waiting queue (ERG), at least one event is listed for each simulation step, and a process (PRZ) to be executed by the at least one simulation object (SO) is configured for the event and a simulation time for executing the process is set; The second arithmetic unit (RE2) has a virtual clock generator (VCLK), The method comprises the following steps for each simulation step: transmitting a start signal to a virtual clock generator (VCLK) via the first operation unit (RE1) for executing a new simulation step in a second operation unit (RE2); and increasing the system time of the second computing unit (RE2) based on the time difference between the simulation time of the previous simulation step and the simulation time of the new simulation step, and executing the awaited process at the simulation time assigned to the process, After processing the event, the simulator application of the corresponding executing computing unit sends an end signal (S2) to the first computing unit (RE1), wherein the end signal indicates by signal means that the processing of the event is completed; and The simulation step ends only after the execution of the calculation of the simulation object on the second processing unit (RE2) has been completed.

2. The method according to claim 1, wherein: The time difference between the simulation time of the preceding simulation step and the simulation time of the new simulation step is calculated by the first computing unit and transmitted to the second computing unit with the start signal.

3. The method according to claim 1, wherein: The simulation time of the new simulation step is transmitted to the second calculation unit through the first calculation unit along with the start signal, and the second calculation unit calculates the time difference between the simulation time of the previous simulation step and the simulation time of the new simulation step.

4. The method according to any one of claims 1 to 3, wherein: The first computing unit has a first network interface, and the second computing unit has a second network interface, and the first network interface and the second network interface are connected to each other via a bus system, and the transmission of the start signal is realized by means of the network interfaces and the bus system.

5. The method according to any one of claims 1 to 3, wherein: The simulation object is executed on the same operating system as the associated simulator application.

6. The method according to claim 5, wherein: The simulation object is executed in a closed environment, wherein the simulation object has access in the closed environment to a first number of hardware resources of a computing unit configured with a simulator application, wherein the first number of hardware resources is defined by the simulator application.

7. The method according to claim 6, wherein: The simulation object is prohibited from accessing a second number of hardware resources of a computing unit configured with a simulator application in the closed environment.

8. The method according to claim 5, wherein: At least two of the simulation objects each have a virtual network interface, wherein calculation results can be received or sent via the virtual bus system by means of the virtual network interface.

9. The method according to claim 5, wherein: At least one of the simulation objects is a virtual controller on the first or second computing unit.

10. The method according to claim 8, wherein: The calculation result can be sent from the virtual network interface of the first computing unit to the virtual network interface of the second computing unit via the network channel.

11. The method according to claim 5, wherein: The computing units are each designed as a physical computing node.

12. The method according to claim 7 or 8, wherein: At least one computing unit is configured as a virtual computing node, wherein an operating system of the corresponding computing unit is executed by a virtual machine monitor.

13. The method according to any one of claims 1 to 3, wherein: The virtual clock generator is implemented in the application layer.

14. The method according to any one of claims 1 to 3, wherein: The virtual clock generator is implemented at the operating system level.