Parallel emulation for controls testing
A control design and testing system simplifies the execution of parallelized control testing simulators using emulation techniques. The system is capable of emulating large and complex industrial systems using a combination of selective model partitioning, space parallel simulation, and co-simulation. According to this approach, a digital model of the industrial automation system is partitioned into sub-models such that inter-model logical relationships between the sub-models comprise only logical relationships that can tolerate a temporal error equal to or less than a duration, or timestep, of a co-simulation cycle. The sub-models are deployed to separate processing spaces, and the system uses co-simulation to execute a parallel emulation of the sub-models.
1 . A system for emulating industrial automation systems, comprising:
a memory that stores executable components;
a processor, operatively coupled to the memory, that executes the executable components, the executable components comprising:
a partitioning component configured to partition a digital model of an industrial automation system into sub-models;
a simulation component configured to perform a parallel emulation of the sub-models on respective processing spaces using co-simulation;
a node interface component configured to aggregate graphical data from the sub-models and simulation data generated by the processing spaces to yield unified presentation data; and
a user interface component configured to
render, on a client device, an animated graphical representation of the industrial automation system based on the unified presentation data, and
receive, during a current timestep of the parallel emulation, command input via interaction with the animated graphical representation, the command input representing a simulated user interaction with the industrial automation system,
wherein the simulation component is further configured to hold the command input in memory until emulations of the sub-models have advanced to an end of the current timestep, and to synchronize the command input to one or more of the sub-models in response to determining that all of the processing spaces have advanced the emulations of the sub-models to the end of the current timestep.
2 . The system of claim 1 , wherein the partitioning component is configured to partition the digital model based on sub-model designation data that defines a partitioning of the digital model.
3 . The system of claim 2 , wherein the user interface component is further configured to render a graphical representation of the digital model and to receive the sub-model designation data via manual interaction with the graphical representation.
4 . The system of claim 3 , wherein the sub-model designation data further defines, for each sub-model of the sub-models, an identity of a processing space, of the respective processing spaces, to which the sub-model is to be deployed.
5 . The system of claim 2 , wherein the partitioning component is configured to generate the sub-model designation data based on an analysis of the digital model and a defined partitioning criterion.
6 . The system of claim 5 , wherein the defined partitioning criterion specifies that the digital model is to be partitioned such that any simulated events that will be communicated between the sub-models in connection with the parallel emulation are tolerant of temporal errors equal to or less than a defined timestep of the co-simulation.
7 . The system of claim 1 , wherein the executable components further comprise a model deployment component configured to deploy the sub-models to the respective processing spaces.
8 . The system of claim 1 , wherein the processing spaces execute emulations of the sub-models independently of one another in cycles defined by timesteps, including the current timestep, and
for a current cycle of the cycles, the simulation component
instructs the processing spaces to advance the emulations of the sub-models by a duration defined by the current timestep,
in response to determining that all of the processing spaces have advanced the emulations by the duration defined by the current timestep, synchronizes the command input to the one or more of the sub-models and synchronizes at least one simulated event generated by a first of the sub-models to a second of the sub-models, and
instructs the processing spaces to restart the emulations of the sub-models for a next timestep.
9 . The system of claim 1 , wherein the processing spaces comprise separate hardware machines that reside on a common network, separate central processing units, or separate virtual machines that execute on a cloud platform.
10 . A method for emulating industrial automation systems, comprising:
delineating, by a system comprising a processor, a digital model of an industrial automation system into sub-models;
performing, by the system, a parallel emulation of the sub-models on respective separate processing spaces using co-simulation;
aggregating, by the system, graphical data obtained from the sub-models and simulation data generated by the separate processing spaces to yield unified presentation data;
rendering, by the system on a client device, an animated graphical representation of the industrial automation system based on the unified presentation data;
receiving, by the system during a current cycle of the parallel emulation defined by a timestep, command input via interaction with the animated graphical representation, wherein the command input represents a simulated user interaction with the industrial automation system;
in response to determining that emulations of the sub-models have not all advanced to an end of the current timestep, holding, by the system, the command input in memory without synchronizing the command input to the sub-models; and
in response to determining that all of the separate processing spaces have advanced the emulations of the sub-models to the end of the current timestep, synchronizing, by the system, the command input to one or more of the sub-models.
11 . The method of claim 10 , wherein the delineating comprises delineating the digital model in accordance with sub-model designation data that defines a division of the digital model.
12 . The method of claim 11 , further comprising
rendering, by the system, a graphical representation of the digital model; and
receiving, by the system the sub-model designation data via manual interaction with the graphical representation.
13 . The method of claim 12 , wherein the sub-model designation data further defines, for each sub-model of the sub-models, an identity of a processing space, of the respective separate processing spaces, to which the sub-model is to be deployed.
14 . The method of claim 11 , wherein the delineating comprises generating the sub-model designation data based on an analysis of the digital model and a defined partitioning criterion.
15 . The method of claim 10 , further comprising deploying, by the system, the sub-models to the respective separate processing spaces.
16 . The method of claim 10 , wherein the delineating comprises:
analyzing the digital model to identify logical relationships between modeled objects representing components of the industrial automation system;
determining a subset of the logical relationships that are tolerant of temporal errors equal to or less than a defined timestep of the co-simulation; and
delineating the digital model such that logical relationships between the sub-models comprise only logical relationships from the subset of the logical relationships.
17 . The method of claim 10 , wherein the performing of the parallel emulation comprises:
executing, by the processing spaces, respective emulations of the sub-models independently of one another in cycles, including the current cycle, defined by timesteps, and
for the current cycle:
advancing, by the processing spaces, the respective emulations of the sub-models by a duration defined by the current timestep,
in response to determining that all of the processing spaces have advanced the respective emulations by the duration defined by the current timestep, synchronizing at least one simulated event generated by a first of the sub-models to a second of the sub-models, and restarting the respective emulations of the sub-models for a next timestep.
18 . The method of claim 10 , wherein the separate processing spaces comprise separate hardware machines that reside on a common network, separate central processing units, or separate virtual machines that execute on a cloud platform.
19 . A non-transitory computer-readable medium having stored thereon instructions that, in response to execution, cause a system comprising a processor to perform operations, the operations comprising:
dividing a digital model of an industrial automation system into sub-models;
performing a parallel emulation of the sub-models on respective separate processing spaces using co-simulation;
aggregating graphical data obtained from the sub-models and simulation data generated by the separate processing spaces to yield unified presentation data;
rendering, on a client device, an animated graphical representation of the industrial automation system based on the unified presentation data;
receiving, during a current cycle of the parallel emulation defined by a timestep, command input via interaction with the animated graphical representation, the command input representing a simulated user interaction with the industrial automation system;
in response to determining that emulations of the sub-models have not all advanced to an end of the current timestep, holding the command input in memory without synchronizing the command input to the sub-models; and
in response to determining that all of the separate processing spaces have advanced the emulations of the sub-models to the end of the current timestep, synchronizing the command input to one or more of the sub-models.
20 . The non-transitory computer-readable medium of claim 19 , wherein the dividing comprises:
analyzing the digital model to identify logical relationships between modeled objects representing components of the industrial automation system;
determining a subset of the logical relationships that are tolerant of temporal errors equal to or less than a duration of a cycle of the co-simulation; and
dividing the digital model such that inter-model logical relationships between the sub-models comprise only logical relationships from the subset of the logical relationships.