Method and system for predicting the development of simulation results regarding the Internet of Things network

JP7711516B2Active Publication Date: 2025-07-23FUJITSU LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021149342
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-15
Filing Date
2021-09-14
Publication Date
2025-07-23
Estimated Expiration
2041-09-14

AI Technical Summary

Technical Problem

Existing smart transportation systems face challenges in providing real-time, complex services to diverse users due to the difficulty in managing and predicting the state of large-scale transportation networks, as they lack a mechanism for maintaining the correlated history of multiple data streams and are limited in their ability to predict future states.

Method used

The implementation of a digital twin sequence (DTS) that includes a source digital twin and clone digital twins, connected via a data stream synthesizer, allows for the prediction of future states by replicating and advancing the simulation time in increments, maintaining a directed acyclic graph (DAG) structure to process data streams efficiently.

Benefits of technology

Enables the provision of proactive and accurate services by predicting the future development of transportation networks, enhancing the management capabilities of smart transportation systems and other IoT networks, such as power grids, by providing insights into future system states and enabling proactive decision-making.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007711516000001
    Figure 0007711516000001
  • Figure 0007711516000002
    Figure 0007711516000002
  • Figure 0007711516000003
    Figure 0007711516000003
Patent Text Reader

Abstract

To provide a method and a system for predicting development of a simulation result about an Internet network of things.SOLUTION: In a method, a step is driven by data sensed in real time from objects and generates a source digital twin about an IoT network. The objects are mutually connected. The source digital twin outputs states of one or more objects of the objects in real time, generates a clone digital twin including the same model as the source digital twin and mutual connection, and adds a time increase to output of the source digital twin. The method drives the clone digital twin at a time of day when the source digital twin is added by the increase, and develops one or more objects of the objects at the time of day added by the increase.SELECTED DRAWING: Figure 7
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the simulation (modeling) of object networks in the Internet of Things (IoT). The IoT refers to interconnecting computing devices embedded in everyday objects via the Internet (and potentially other networks) to enable the transmission and reception of data. This application uses the concept of a digital twin (DT). A digital twin is a virtual (mathematical) model that reflects the current state of the object being modeled using data input to the corresponding object. The digital twin is updated as the corresponding object reflects new states, such as operating conditions and / or location, for example (the variable result of the input that describes the status), and changes as it is updated and changes.

Background Art

[0002] An example of the use of digital twins is in transportation management, such as in smart cities, but there are also many other applications, for example, in power networks to ensure a balanced power supply over a wide area.

[0003] Taking transportation as an example, a smart transportation system (or Intelligent Transportation Systems, ITS) used to control traffic by linking data from sensors and traffic signals optimizes the operation of the entire system, including roads, roadside infrastructure, vehicles, pedestrians, etc., with the expectation of making transportation better (more reliable, efficient, safe, and fast). These systems combine data generated by sensors (located at suitable positions within the system, such as vehicles, travelers, infrastructure, etc.) with data from other sources (e.g., weather data and / or social data) using big data technologies and machine learning (ML).

Summary of the Invention

Problems to be Solved by the Invention

[0004] To realize the promise of better transportation, smart transportation systems must provide a wide range of services to a large number of diverse users (there may be thousands or more users) in real time (fast enough for effective action).

[0005] The requirements mainly involve providing a wide range of services created by the complex processing of real-time sensed data streams on or from sources serving the transportation network, such as roads and vehicles. The responses to those services need to be generated "in real time," i.e., fast enough for the users of the services to act immediately. There are diverse data sources generating different types of data at different rates. The services are also diverse and complex, using data in a wide variety of different ways.

[0006] For example, a metropolitan transportation authority can create a system digital twin of its public transportation infrastructure that provides a real-time virtual model of the flow of people across the city. The virtual model is driven by data generated in real time from a wide variety of sources: · Vehicle-mounted GPS, roadside sensors, CCTV analytics, routing requests, vehicle movements from public transportation agencies' live dispatch · The status and operation of infrastructure such as traffic lights · Mobile GPS, ticketing activities, human movement from CCTV

[0007] The National Traffic Information Service, which is responsible for traffic management on the trunk road network in England, obtains data from approximately one million vehicles traveling on the road network, 1,000 number plate cameras, and over 10,000 roadside monitoring units. Transport for London, which is responsible for London's public transportation system and road network, operates over 9,000 buses and 900 trains, controls 6,300 traffic lights, manages vehicle traffic exceeding 100,000,000 km per day, and manages the movement of over 5,000,000 public transportation passengers per day.

[0008] The system digital twin (the virtual model of the system) integrates these data sources and provides a real-time understanding of the state of traffic flow. Synchronization services can be added to the digital twin, such as by using anomaly detection methods to identify incidents (accidents, congestion, etc.). However, it is also necessary to manage these incidents, such as by diverting traffic around an accident, deploying emergency services, and / or rerouting public transportation. The system digital twin can assist with this if it has a prediction function that advances the virtual state of the model in time (faster than real time or with a certain offset from real time).

[0009] In other words, the requirements of a smart transportation system are to predict the state of the system, thereby enabling services such as collision detection, accurate travel time prediction, determination of the impact of incidents on the system, indication of when public transportation will arrive, and selection of individual taxis. Each of these services is based, directly or indirectly, on the modeled infrastructure / state of objects within the infrastructure, mainly from the perspective of positioning.

[0010] The same requirements are also evident in other application areas, such as in power grids.

Means for Solving the Problem

[0011] According to an embodiment of the first aspect of the present invention, a method for predicting the development of simulation results for an Internet of Things (IoT) network, comprising: generating a source digital twin for the IoT network, driven by real-time sensed data from objects input into a model of the objects, wherein the objects are interconnected as object nodes in a directed acyclic graph (DAG), the interconnection representing a data flow, and the source digital twin outputs the state of one or more of the objects in real time; generating a clone digital twin including the same model and interconnection as the source digital twin; connecting the input of the clone digital twin to the output of the source digital twin via a data stream synthesizer node, the data stream synthesizer node adding a time increment to the output of the source digital twin and driving the clone digital twin at the time when the source digital twin is incremented; and executing the source digital twin and the clone digital twin to provide, as the output of the clone digital twin, the developed state of one or more of the objects at the time when the increment is added.

[0012] Each digital twin in this sense is a system digital twin, and individual models (nodes) are object digital twins.

[0013] The data stream synthesizer uses the output of the source digital twin to emulate, in the clone digital twin, the input of real-time data to the source digital twin and provide synthesized values incremented in time (e.g., by incrementing the position using the output position and speed of the vehicle from the source digital twin and determining the position at a selected time). Thus, instead of the actual detected position, a synthesized position for a given time increment is provided to the clone based on known data.

[0014] This allows a clone digital twin (which has the same modeling as the source digital twin, e.g., starting from the same state as the source digital twin) to then generate an evolved state that is a future predicted state. To extrapolate into the future, multiple clone digital twins (based on a single source digital twin) may be provided in a sequence, as will be described in more detail.

[0015] To allow a preferred type of computing platform to function (or function efficiently), the source digital, clone digital twin, and data stream synthesizer nodes (in fact, all nodes within the constructed simulation system, including any sequence of clone digital twins) together form an overall DAG.

[0016] Nodes in the simulation are not limited to nodes representing objects. Depending on the situation, any suitable type of node may be added. Nodes within the source digital twin (and thus the clone digital twin(s)) may also include event nodes that model events that affect the IoT network, such as incidents that affect the state of an object.

[0017] Additionally or alternatively, nodes within the source digital twin (and thus the clone digital twin(s)) may also include system information nodes that model information about the IoT network (such as bus routes).

[0018] The method may further include the step of creating service nodes (as part of the overall DAG) in the output of the source digital twin or the output of the clone digital twin or both. Service nodes can generate data services, for example, based on the state of objects within the IoT network. More preferably, both the output and the service are based on the state of all nodes within the network, regardless of whether it is real-time (output of the source) or future (output of any clone digital twin). Of course, the service can use the states of multiple objects or even other services, or the predicted and evolved states of objects in the chain of clones.

[0019] Such a "service" can be regarded as a function of the state (in the mathematical sense). For example, the predicted position of a vehicle is a state, but the system can output a collision warning, which is a service / function that depends on the positions of all vehicles (part of the state).

[0020] In one preferred configuration, the service node is provided in parallel with the digital twin's data stream synthesizer. In this configuration, the method may further include supplying the same output to both nodes. It will be understood that the data synthesizer is not required in the output of the last digital clone in the sequence.

[0021] More specifically, if there are multiple cloned digital twins during the digital twin sequence, the method includes creating an additional (or second) cloned digital twin that includes the same model and interconnections as the source digital twin and the cloned digital twins; connecting the input of the additional cloned digital twin to the output of the cloned digital twin via an additional data stream synthesizer node, where the additional data stream synthesizer adds an additional time increment to the output of the cloned digital twin such that the cloned digital twin drives the additional cloned digital twin at a time with the additional increment added; and further including executing the source digital twin, the cloned digital twin, and the additional cloned digital twin and providing data indicative of the state of one or more of the objects at a time with the additional increment added at the output of the additional cloned digital twin.

[0022] The additional digital twin may start with the same state as the first digital twin but then the state changes by a time increment. If there are two or more cloned digital twins, each cloned digital twin may be connected as described above and an additional cloned digital twin is connected to the previous digital twin.

[0023] The time increment for each cloned digital twin can have different values. Preferably, each subsequent time increment has a larger value.

[0024] The input to the simulation is not limited to real-time sensor data or IoT data. Preferably, context information from an external data source is additionally input to the source digital twin and / or the cloned digital twin(s).

[0025] Looking at a preferred specific application, the IoT network may be a transportation network. Here, the object nodes may include vehicle nodes and / or one or more infrastructure nodes. One or more event nodes are included, such as traffic incident nodes.

[0026] The state of one or more of the objects may include one or more of the position of the object and the speed of the object.

[0027] In one scenario, the transportation network is a public transportation network, and the nodes in the source digital twin and clone digital twin(s) include vehicle nodes, incident nodes representing events that can affect the public transportation network, stop nodes representing sections of the public transportation network infrastructure, and system information nodes representing the routes of the vehicles. In this case, the order of the DAG may be Incident, Stop, Run, and Bus nodes (each type of node is in parallel in each digital twin of the system).

[0028] According to an embodiment of the second aspect of the present invention, a computer program having instructions is provided. When the program is executed by a computer, the instructions cause the computer to execute any of the above methods.

[0029] The program can be executed locally, or in the cloud, or both, to provide a computer-implemented method on a local device. For example, the digital twin may be built and executed on a server (in the cloud), and the output may be provided to a local device to provide a specific service.

[0030] According to an embodiment of a third aspect of the present invention, there is provided a computer (data processing device) having a processor, a memory, and a network interface configured to execute the method according to any of the above claims. The processor and the memory may be linked to a display (e.g., to display DTS / services or results) and / or an input device (for the developer to input data and parameters for building the model or for the end user to interact with the service).

[0031] A corresponding computer system can comprise the computer as defined above, a display, an input device, and any other required components.

[0032] An apparatus (computer or computer system) or computer program according to a preferred embodiment of the present invention may include any combination of method aspects. A method or computer program according to a further embodiment may be described as being computer-implemented in that they require processing and memory capabilities.

[0033] An apparatus according to a preferred embodiment may be described as being configured or arranged or simply performing to perform certain functions. This configuration or arrangement can be done by using hardware or middleware or any other suitable system. In a preferred embodiment, the configuration or arrangement is by software.

[0034] The present invention may be implemented in a digital electronic circuit, or in computer hardware, firmware, software, or in combinations thereof. The present invention may be implemented as a computer program or a computer program product, i.e., a non-transitory carrier of information, for example, a machine-readable storage device or in a propagated signal, having instructions embodied therein for execution by, or for controlling the operation of, one or more hardware modules, as a computer program.

[0035] The computer program may be in the form of a stand-alone program, a part of a computer program or a plurality of computer programs, may be written in any form of programming language including a language that is compiled or interpreted, and may be deployed in any form, as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a data processing environment. The computer program may be executed on one module or on a plurality of modules distributed over one site or a plurality of sites and may be deployed so as to be interconnected by a communication network.

[0036] The method steps of the present invention may be executed by one or more programmable processors executing a computer program that acts on input data and generates an output to perform the functions of the present invention. The apparatus of the present invention may be implemented as programmed hardware or as special purpose logic circuitry including, for example, an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0037] Processors suitable for the execution of a computer program include, for example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. In general, a processor receives instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions coupled to one or more memory devices for storing instructions and data.

[0038] The present invention will be described with respect to specific embodiments. Other embodiments are within the scope of the following claims. For example, the steps of the present invention may be performed in a different order and still achieve desirable results. Multiple test script versions may be edited and invoked as units without using object-oriented programming techniques; for example, the elements of a script object may be organized within a structured database or file system, and the operations described as being performed by the script object may be performed by a test control program.

[0039] Elements of the present invention may be described using terms such as "processor", "input device", etc. Those skilled in the art will understand that such functional terms and their equivalents may refer to portions of a system that, although spatially separated, are combined to perform a defined function. Similarly, the same physical portion of a system may provide more than one defined function.

[0040] For example, any separately defined means may be implemented using, as appropriate, the same memory and / or processor.

Brief Description of the Drawings

[0041] Preferred features of the present invention will now be described, by way of example only, with reference to the accompanying drawings.

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Figure 9

Figure 10

Mode for Carrying Out the Invention

[0042] Processing large-scale streaming data and providing real-time insights are used in many web-scale applications, such as click-stream processing for delivering advertisements, detecting online fraud, and video media consumption. It is also useful, for example, in smart transportation by ride-hailing services. In ride-hailing services, location data is used to provide arrival estimates, price displays, driver allocation, and ride monitoring. These applications generally require merging two or more data streams, for example, to match passengers with drivers and vehicles. However, this is difficult due to the design of stream data processing systems. Complex processing can only be applied at the level of a single data stream, and merging different data streams requires a lot of effort. This is particularly problematic when the processing depends on the history of objects. This is because the prior art does not have a mechanism for maintaining the correlated history of multiple data streams. This limits the number and sophistication of services that can be built on real-time data streams. As a result, real-time services are often simplistic, and more complex processing is performed offline.

[0043] One useful concept used to develop more sophisticated services is the digital twin introduced above. In a digital twin, an actual entity in the real world, such as a vehicle, is replicated in the digital world, and its behavior is modeled in code, but is driven by values from an input stream of sensor data. One advantage of a digital twin is that it separates the service from acting directly on the data stream, and the service can act on the state and output of the digital twin.

[0044] When modeling a complex system, the designer distinguishes between a digital twin of the entire system (system digital twin, e.g., smart city) and digital twins of components (object digital twins, e.g., vehicles, passengers, traffic lights). The object digital twin automatically handles the collection of all data streams related to the real-world counterpart (e.g., vehicle telemetry and location data from the current occupants), stores all relevant histories (states), performs complex processing to model the behavior or state of the object, and then outputs it.

[0045] Such digital twins can be built on large-scale and high-volume streaming data using platforms such as Fujitsu's Stream Data Utiliser (also known as Dracena: Patent Document 1), Flink's Stateful Functions (Patent Document 2), or Azure's Durable Functions (Patent Document 3).

Non-Patent Document 1

Non-Patent Document 2

Non-Patent Document 3

[0046] A platform for processing streaming data achieves high performance in part by restricting the types of computations that can be executed with general constraints that require the processing to be structured as a directed acyclic graph (DAG). The processing graph consists of nodes where computations are performed (which correspond to object digital twins or services that use their outputs) and edges that connect those nodes and represent the flow of data or events. When the graph is a DAG, events always flow in the forward direction. Thus, there are no cycles that allow for the reprocessing of data already processed by a node. In other words, nodes can be grouped into sets that form stages, and there is no communication from a stage to a previous stage or "reverse" / "lateral" communication between nodes within a stage.

[0047] Some platforms, such as Flink's Stateful Functions, may allow for such cycles in processing, but there is a large performance penalty.

[0048] There are techniques to overcome these limitations. For example, by introducing nodes that aggregate events or by splitting the digital twin across multiple stages.

[0049] Digital twins implemented using these techniques can provide services based on the current or recent past state, but it is difficult to provide services that require predicting the future development of the state. In the prior art, time-dependence is incorporated into the system digital twin by modifying the equations of motion of each individual object twin. In doing so, if there is time-dependence in the interaction between object twins, it would be necessary for messages to be passed between object twins (nodes) that share the same computational stage. As described above, this is not possible in a streaming platform that requires computations to be constructed as a DAG.

[0050] Figure 1 shows a very simple processing DAG. The circled letters (A, B, C) are processing nodes, and the connecting edges represent the flow of data (the arrows indicate the direction). This DAG can be used to predict the travel time along a road section when node A is the object digital twin of a vehicle and node B is the object digital twin of a road section. Node C provides a travel time estimation service. In reality, there will be many instances of the types of nodes A and B and a few instances of node C, but the flow of data will be strictly from left to right. The various nodes A supply the position(s) and route(s) of the vehicle to the various nodes B, and the various nodes B accumulate that data and calculate the traffic density on their segments. The various nodes C calculate the travel time using that traffic density.

[0051] The configuration of Figure 1 gives a view of the current travel time but not a view of the future state of the road. The estimation of where the vehicle will be at a future time depends on the travel time of the road segment calculated at node C. Figure 2 shows the data flow required to achieve this. The movement of data from node C to node A means that the graph is no longer a DAG and cannot (or cannot be efficiently) processed using a current stream data processing system.

[0052] The configuration of the present application allows the future state of the system modeled by the digital twin to be estimated by replicating the digital twin to create a clone digital twin. The clone digital twin has the same mathematical modeling as the original (or source) digital twin, but the inputs are different and thus the outputs are different. Thus, the modeling is the same, but the state of the twin is different (due to ML learning and / or the difference in time).

[0053] As used herein, a source digital twin (sDT) is a virtual model of a physical object or system (e.g., a system digital twin such as a smart city, transportation network, power network), reflects the current state of the physical system / object, and is driven by events and sensor measurements from the real world.

[0054] As used herein, a clone digital twin (cDT) is a virtual model of a physical object or system, reflects the state of the physical system at some future point in time, and some action may be performed on it. The cDT is driven by the output of one or more other DTs within the collection.

[0055] As used herein, the term "driven" defines the primary source of data used to set the state of the digital twin and thus the modeled behavior. In traditional digital twins, this is the real world, but in this methodology, a digital twin can be driven by the output of other digital twins.

[0056] As used herein, a digital twin collection is a set of one or more digital twins (usually system digital twins).

[0057] As used herein, a physical system or object is a part of the real world modeled by a digital twin as described in this document.

[0058] As used herein, a digital twin sequence (DTS) is an ordered collection of system digital twins offset from each other by some time interval (not necessarily constant), and is intended to model the future evolution of a physical system. The sequence starts with an sDT, followed by several cDTs, each of which is driven by the immediately preceding DT in the sequence. Since the DTS is executed in real time, the DTs in the sequence always reflect the state of the physical system at the same offset from the current time.

[0059] As will be described in more detail below, these clones can be run in parallel with the original digital twin, but advancing their system time (the time being modeled) in short increments, to estimate future states. A series of clones are run in parallel, incrementing the time until the desired prediction offset is reached. Or a single clone may be provided.

[0060] Figure 3 is a schematic diagram of nodes and data flow, showing the new flow of data and the structure of the calculations. Note that the data flow is strictly unidirectional (left to right) through the graph, and the graph is maintained as a DAG. System source digital twins (including object twins A and B) are shown in the bottom layer. The future states of the system are shown in the upper layers, each of these layers also maintaining a DAG. These future states are provided by clone digital twins cDTs at current + Δt1 (including object twins A' and B') and current + Δt2 (including object twins A" and B"). Here Δt nis the offset from the real - time (current) of the cDT. Here, current + Δt2 can be regarded as adding an additional time increment to the first clone time. All digital twins export the same data / services as before (the data goes out to the right). Of course, more clone digital twins may be provided, or a single clone digital twin may be provided.

[0061] Figure 3 introduces a new type of processing node, the "Data Stream Synthesiser", labeled with DS(301, 302). This effectively provides a modified "synthesized" data stream for subsequent cDTs and plays a role in advancing the simulation time. The data stream synthesizer receives the states of all object twins within the system twin (sDT or cDT) and implements a service that models the time evolution of each twin, advancing the simulation time to the time of subsequent clones. For example, the data stream synthesizer uses the speed and position data of a vehicle to advance the position of the vehicle to the estimated position at the incremented time. Other examples are: using traffic signal sequencing to determine the light settings of traffic signals at the incremented time; using the number of passengers boarding / alighting to determine whether a bus is departing from a stop at the incremented time; or using the density and flow of downstream traffic to calculate the density of upstream traffic at the incremented time. Any or all of these examples and other suitable algorithms may be used in combination, depending on the available data, the required accuracy, and the available computing power. In a power generation and transmission scenario, an example of time - evolution modeling is using weather forecast (context) data to set the magnitude of the power generated at the incremented time.

[0062] The data stream synthesizer uses the advanced state of time to generate predictions of the data that the real-world sensors would generate at the simulation time of the next clone.

[0063] Using this structure, the input for future clones can be the output of the immediately preceding clone in the sequence. The “current” digital twin is driven by external events and data (coming in from the left), while future clone digital twins (at times current + t1 and current + t2) are driven by the synthesized results of the immediately preceding digital twin (“current” drives current + Δt1, current + Δt1 drives current + Δt2, etc.). These services, although not shown here (or in Figure 4), could be Node B, and thus there is a single object digital twin. Alternatively, they could be provided as additional nodes for each digital twin (or any digital twin providing such services), for example, in series before the data stream synthesizer or in parallel with the data stream synthesizer.

[0064] The cloning of digital twins may increase the computational load and resource consumption in direct proportion to the number of clones (see below for additional strategies to mitigate this possible effect). Note that each clone takes on its time range while maintaining a certain offset from the basic simulation, set by the data stream synthesizer. As real time progresses, the sDT follows and the cDT maintains their offsets (e.g., Δt1 and Δt2 in Figure 3). However, since this is a simulation of the development of a real system, the accuracy of the clones will become lower as time goes on. This is because the simulation error from the inaccuracy of the modeling and the lack of current values for some data propagates to the next stage. Furthermore, the longer the time scale for which values are required, the further ahead in time is predicted. For both of these reasons, the time range taken on by each clone is not necessarily constant and can increase with the further ahead of time modelled. See Figure 4 for this illustration. In Figure 4, each digital twin includes exemplary nodes A and B, and the data stream synthesizer DS is shown as following. The first digital twin on the left side of the figure is the source digital twin, the other digital twins are clones, and Δt can increase from Δt1 to Δt7.

[0065] As the current time progresses, the "current" source digital twin uses the incoming data to keep up with the current time. The fact that the output from "current" drives "current + Δt1" and "current + Δt2" via the data stream synthesizer means that these clones maintain their offsets from the current time. In this way, services that rely on the simple development of the current state (e.g., routing based on traffic conditions one hour after the start of a trip) can be provided.

[0066] FIG. 5 is a schematic diagram in which the representation of each individual node (object digital twin) in each system digital twin is replaced by a single block representing the system digital twin. This shows the main processes in the implementation of the digital twin sequence DTS.

[0067] A digital twin system known from the prior art that maintains a mirror of the evolving state of a physical system consists of items 501, 502, 503, and 504. The real-world sensors 501 and / or other real-world data sources provide a real data stream that is fed into the source digital twin sDT 503 of the (system). The output of the source digital twin (sDT) is passed to both the service 504 and the data stream synthesizer 506. The sDT 503 that models the physical system is driven not only by the real-time data stream 501 but also possibly by a further data stream 502 that provides information about the context of the physical system (e.g., weather conditions, events, dates, etc.). The information about the context may be in real time or, for example, from a database query. The system uses the data from the sDT to provide a service 504 (such as a simple routing service) to the client. The next component of the DTS is formed by cloning the sDT 503 to form the first cDT 505. This cDT 505 is driven by a synthesized data stream created from the data stream synthesizer 506 and possibly from context information (e.g., by referring to a later weather forecast or data applicable at a time incremented by ΔT1 if there are time-varying changes in the context data). This cDT provides a service 507 for various clients, derived from data that estimates the state of the physical system at t0 + ΔT1. The DT is further extended into the future by cloning the first cDT to form the cDT 508 at t0 + ΔT2 (this cDT 508 is driven by the synthesized data stream 509 and possibly by context data offset by ΔT2). Thus, the second cDT 508 has the same state as the first clone, which is then adjusted for ΔT2 thereafter.

[0068] The clone can be constructed in either of two ways: · By complete replication. Each clone operates as an independent entity that holds copies of the dynamic and static states. This has the advantage of simple coding and allows for changes to the configuration over time (e.g., addition and / or deletion of processing nodes representing individual objects). · Clones can be created as additional processing / services within the underlying digital twin. This has the complexity of additional coding as incoming data must be processed by an instance with the correct time progression and the dynamic state must be isolated. This technique may be more resource - efficient as the static state can be shared among all instances (clones).

[0069] Most streaming systems have a mechanism to hold a non - volatile state to guard against computer failures or, for some platforms, to ease upgrades. State recovery is designed to be efficient. Cloning to create a new sequence may be initiated by copying the saved state of the sDT to initialize the first cDT. Output from this can then be used to initialize the next clone in the time sequence, and so on.

[0070] Figure 6 shows this process. 601 is the DT as part of the DTS. As part of good management practice, continuous execution of the computer program that runs the DT is ensured by taking periodic copies of the program's state and saving those copies to some form of non - volatile memory. In the case of a system like Dracena, the program state is composed of all the state values of all the objects within the DT and the computer code used to model the system (602). In case of a failure, the DT's execution can be resumed by restoring the saved state to the execution hardware (603). The same mechanism is available for all DTs within the sequence (604, 605, 606).

[0071] To extend the DT sequence by ΔT, execution capabilities (hardware and support software, e.g., Flink) are allocated for the new clone. The execution of the new clone is initiated by restoring a saved copy of the state at t to the newly allocated hardware and software (607). This initializes both the calculation of DT at t+ΔT (604) and the object state to that of 603, i.e., at time t. In parallel with the initialization of 604, a new data stream synthesizer (608) is created and attached to the output of 603. Thereby, the data stream can move the clone from time t to time t+ΔT at 604 as needed.

[0072] Note that the program state save / restore mechanism can be achieved using various techniques.

[0073] Figure 7 is a flowchart of a method for predicting the evolution of simulation results for an Internet of Things (IoT) network according to a general embodiment. Step S2 creates a source digital twin (sDT) for the IoT network. The sDT is driven by real-time sensed data from the object, which is supplied to the object model. The objects are interconnected as object nodes in a DAG. In the DAG, the interconnections represent the flow of data. The sDT outputs the state of one or more of the objects in real time.

[0074] A clone digital twin (cDT) is created in step S4, which includes the same model and interconnections as the sDT.

[0075] Step S6 includes connecting the input of the cDT to the output of the sDT via a data stream synthesizer (DS) node. The DS adds a time increment to the sDT output, whereby the sDT drives the cDT at the incremented time.

[0076] Finally, in step S8, both sDT and cDT are executed, and the developed state of one or more of the objects at the time when the increment is added is provided as the output of cDT.

Example

[0077] Public transportation The management of the public transport network of buses (and railways, trams, watercraft) is currently strict, and buses operate on fixed routes according to a fixed timetable. Variations in actual conditions (traffic volume, speed of boarding and alighting) can make the services provided irregular, meaning that vehicles [vehicles / crafts] across the system can vary from empty to overcrowded. Some public transport authorities can manage some aspects dynamically, for example by adjusting the intervals between buses in real time. By allocating resources completely dynamically and anticipating problems related to services before they occur, a better level of service can be provided.

[0078] The DTS described herein forms the basis of a dynamic bus management system and provides a source of truth regarding the current state of buses and the quality of services provided. Buses are equipped with a system that reports their state, such as position and speed, in real time. These data are combined with other data sources, such as road traffic conditions. The same scenario applies to trams, railways, ferries, and other public transport networks.

[0079] sDT and all cDTs include the following individual twin-types (or nodes such as A, B, and C in FIGS. 1 and 2).

[0080] Incident: These nodes reflect that it can occur in a broader environment that can affect the provision of bus services. One type of incident is the closure of a part of the road due to reasons such as traffic accidents, road construction, utility problems, etc. The closed road incident notification is generated based on the actual management application and the location of the closed area and the expected time of resolution. Another type of incident can be the narrowing of a part of the road due to the same problem. Alternatively, the incident may be the end of an event (concert). This means that many people are trying to go home from the same bus stop at the same time.

[0081] Events from the real world trigger incidents to become active. Incidents become inactive when notified by the actual management application in sDT, when the expected resolution time has passed in cDT, or by a cascaded resolution notification.

[0082] An incident notifies the bus stops that may be affected of the change in its state (such as the start, end, and location of the incident). To minimize the number of messages passed between the incident and the bus stops, the bus stops calculate a bounding box. The bus stop route positions are converted to coordinates, and the maximum and minimum values of these are calculated to form the bounding box, which is sent to the incident when the incident starts. The use of easting and northing distances for this purpose is known (see Non-Patent Document 4). However, of course, any coordinate system such as latitude and longitude is sufficient. The bounding box may overlap, especially when the bus stop route is winding. An incident transmits the state change only to the bus stops whose bounding box contains that incident.

Non-Patent Document 4

[0083] Stop: A stop represents a bus stop and a part of the road network that connects that stop to the next stop on the route. The stop maintains a view of the actual road network it represents, especially when the road network is blocked. The stop also maintains a view of the operations that use that stop and, if an incident that affects that stop (i.e., an incident within its bounding box) notifies the operations of that incident, it is maintained.

[0084] Run: A bus route has several runs. A run is the actual track defined in the timetable for the bus to follow. Runs can be in different directions of the route. The run twin object maintains the actual route that the bus on the run should follow and updates the bus on the run with any changes. Input data arrives from an appropriate data stream (501 or 506, 509) and notifies the start and exit of the actual bus on the run (the data is the bus identifier initially generated by the (actual) bus). Changes to a run are received from the stop twin. These changes are the stop name, the end stop name, and the direction (GPS position and instructions) that the bus must follow to reach the end stop. The run twin distributes these changes to the bus twins registered as being on the run. The run twin also receives notifications of changes to incidents (as positions) and generates rerouting requests so that the bus detours around the incident and is properly routed.

[0085] Bus: A twin of a vehicle on the road that is in operation. This twin receives position (in meters, east offset distance, north offset distance) and speed data (in meters per second) from an appropriate data stream (501 or 506, 509). This twin also maintains the current route of the bus (route, e.g., created by a route discovery application, and a list of directions and stops that the driver must follow). The route can be dynamically updated by other twins within the sDT or cDT, such as the operation twin, in response to an incident. The reported position is matched with the current route to ensure that the driver is following the correct route. Changes to the route are sent to the actual bus using an interface to the Kafka messaging service in Dracena to enable dynamic routing.

[0086] The digital twins within the DTS are linked by a data flow.

[0087] Route [Path]: When the bus route changes in response to re-routing due to an incident generated in the cDT, the bus route is transmitted to the later CDTs in the chain without modification by the data stream synthesizer. Planned incidents such as roadworks can be inserted into the cDT or sDT.

[0088] Bus Position: Each bus DT holds an instantaneous value of the position of the bus at the (simulation) time of that DT. The data stream synthesizer advances this position by a time increment for subsequent cDTs, using the speed that depends on the traffic conditions transmitted via the context source and the current route of the bus (received from the previous DT).

[0089] Incident Development: State changes progress along the DTS, and the state of an incident within the cDT depends on the simulation time of the cDT.

[0090] The structure of the DTS constructed from the above sDT and cDT depends on the requirements of the operator and the expected accuracy of the predictions embedded in the chain (this accuracy depends on the accuracy of the input data such as passenger and traffic predictions). The time increment between cDTs is related to the variability of these external data sources, and typically, the interval is 5 minutes when three cDTs are executed in parallel.

[0091] Figures 8 and 9 show a simplified structure for this system. Figure 8 shows some instantiations of the above object types and some of the data flow. Note that the message flow is directional and the connections form a DAG without cycles. The order of the nodes is "Incident", "Stop", "Run", "Bus". Three incidents affect three different stops. Two of the stops have blocked roads, which lead to rerouting on two of the runs, and three buses on each of those two runs follow a new route.

[0092] Figure 9 shows the additional flow required to connect the DTs in a sequence (the data flow from Figure 8 is still valid but not all is shown). Here, the clone receives the position from the previous synthesizer, the new route from the previous DT (source or clone), and the incident state from the previous DT. Thus, the effect of the modeling could be the predicted changes in the routing of public transport vehicles. This could have further consequences such as providing warnings to, for example, system operators or users, using the display on the GUI (or app) or simply using an audible warning.

Example

[0093] Traffic management for highways A further example of the application of this proposal lies in the field of traffic management for highway systems. Ensuring a good flow of traffic is important for the driver experience, the reliability of delivery progress on the network, and capacity increase. Towards this end, the operators of highway systems have extensive sensor systems and obtain data from other sources such as vehicle position data from cellular phone towers. The future development of the Internet of Things and connected cars will increase the diversity and volume of data sources. The operators have several management strategies to mitigate the impact of incidents on the network. These include setting variable speed limits, diverting traffic, closing one or more lanes, and controlling merging traffic. Each of these options will have different impacts on the incident and the wider road network.

[0094] In this example, there is no digital twin of an individual vehicle, and vehicle data is held and modeled as aggregations.

[0095] The source digital twin twins the highway network as a series of connected road segments. Each segment has characteristics such as traffic density, traffic flow, and traffic speed. Twins for data sources (road sensors and vehicle movement data) and control mechanisms (sign values, intersection signals, lane closures) are also added.

[0096] The road segment digital twin maintains a view of the state of the section of road that the twin represents. This includes flow (number of vehicles per second) and density (number of vehicles per meter) to model the state of traffic on the road. The data stream synthesizer uses the state (flow, density) of connected road segments as input and estimates the time evolution using the "fundamental equation" of traffic flow (see Non-Patent Document 5).

Non-Patent Document 5

[0097] The digital twin sequence predicts the near - future development of the network. Here, the data stream synthesizer models the movement of vehicles between segments and other drivers of highway performance (e.g., vehicles entering and leaving the network).

[0098] Services related to DTS allow for the detection of future problems. Once an incident occurs, DTS evolves to predict the impact of the incident and, if there is a legitimate reason, a decision can be made to take mitigation measures such as setting variable speed limits.

Example

[0099] Other uses Other application areas include the following: · Smart cities that manage the flow of people and things through the city by monitoring situations, dynamically allocating traffic resources, and adjusting priorities (traffic signals). DTS is used to anticipate problems such as congestion and irregular services. · Power networks that ensure a balanced power supply over a wide area. Here, power generation includes contributions from a number of distributed small - scale units (such as household solar panels and wind turbines). The time - evolution of renewable power generation is driven by external data sources (context 502 - weather forecasts, day - night cycles). The overall state of the network is also determined by the availability of storage facilities, batteries, hydro - power generation, etc., and its development is modeled by the data stream synthesizer.

[0100] Summary This methodology enhances the power and usefulness of digital twins of smart IoT-driven systems, which are characterized as complex networks of dynamically interacting objects. This adds the ability to operate these system digital twins in a simple and flexible manner, advancing time using only the basic digital twin (current methods require creating completely separate models to add predictive capabilities). As a result, system digital twins can be used to predict the impact of events and the outcome of mitigation actions.

[0101] The enhanced digital twins enable proactive and active management of their physical systems, resulting in, for example, more efficient and less polluting transportation networks.

[0102] The described configurations for source and clone digital twins have many advantages, such as: ·Insight into the future development of the modeled system; ·The implementation of these ideas will shift the digital twins of networked systems from current state reporting and analysis tools to true management tools for predicting future states and outcomes. ·Real-time digital twin modeling of large-scale network-connected systems for better smart transportation, cities, and energy.

[0103] These techniques can be used to create models of the future state of a system by cloning the current state model and drive the development of the clone by replacing the actual data stream with a synthesized data stream.

[0104] FIG. 10 is a block diagram of a computing device, such as a data storage server, that can be used to implement a method of embodying the present invention and modeling using a source DT and one or more clone DTs. The computing device has a processor 993 and a memory 994. Optionally, the computing device also includes a network interface 997 for communication with other computing devices, such as other computing devices of the invention embodiments. The computing device may implement one of the aforementioned platforms, such as Dracena.

[0105] For example, an embodiment may be composed of a network of such computing devices. Optionally, the computing device also includes one or more input mechanisms, such as a keyboard and a mouse 996, and a display unit, such as one or more monitors 995. The components can be connected to each other via a bus 992.

[0106] Memory 994 may include a computer-readable medium. A computer-readable medium is a term that can refer to a single medium or multiple media (e.g., a centralized or distributed database and / or associated cache and server) configured to carry computer-executable instructions or store data structures. Computer-executable instructions can be accessible, for example, by a general-purpose computer, a special-purpose computer, or a special-purpose processing device (e.g., one or more processors), and may include instructions and data for executing one or more functions or operations. Thus, the term "computer-readable storage medium" may include any medium that stores, encodes, or carries a set of instructions for machine execution and that can cause a machine to execute any one or more of the methods of the present disclosure. Therefore, the term "computer-readable storage medium" includes, but is not limited to, solid-state memory, optical and magnetic media. By way of example and not limitation, such computer-readable media may include non-transitory computer-readable storage media including random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), compact disc read-only memory (CD-ROM), or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory devices (e.g., solid-state memory devices).

[0107] Processor 993 is configured to control a computing device and perform processing operations, such as executing executable code stored in memory, to implement various different functions described herein and in the claims. For example, the processor may perform steps to execute a digital twin model. Additionally or alternatively, the processor may perform steps to generate a digital twin or add incidents, as described in the embodiments.

[0108] Memory 994 stores data that can be read from and written to by processor 993, and may include, for example, any database referred to herein, or may simply store parameters for the model, such as the position and velocity of the object being modeled. As referred to herein, the processor may include one or more general-purpose processing devices, such as a microprocessor, a central processing unit, etc. The processor may include a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, or a processor implementing other instruction sets or a combination of instruction sets. The processor may also include one or more special-purpose processing devices, such as an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a digital signal processor (DSP), a network processor, etc. In one or more embodiments, the processor is configured to execute instructions for performing the operations and steps discussed herein.

[0109] Display unit 995 may display a representation of data stored by the computing device, and may also display a cursor, dialog boxes, and screens that enable interaction between the user and the programs and data stored in the computing device. Input mechanism 996 may enable a user to input data and instructions into the computing device. In one example, the display may be used to show a representation of DTS (e.g., in graph form), or a representation of individual twins (e.g., as a table of states and / or as inputs and outputs). In another example, the display may show generated vehicle alerts, such as warnings of impending collisions or traffic or bus delays.

[0110] The network interface (Network I / F) 997 may be connected to a network such as the Internet, can be connected to other such computing devices via the network, and enables the computing device to access a database as needed and acquire real-time data for constructing / updating a digital twin. The Network I / F 997 can control data input / output with other devices via the network. Other peripheral devices such as a microphone, speaker, printer, power supply unit, fan, case, etc. may be included in the computing device.

[0111] The method for implementing the present invention may be executed on a computing device as shown in FIG. 10. Such a computing device does not necessarily have all the components shown in FIG. 10 and may be composed of a subset of those components. The method for implementing the present invention may be executed by a single computing device that communicates with one or more data storage servers via a network. The computing device may itself be a data storage device that stores modeled data.

[0112] The method for implementing the present invention may be executed by a plurality of computing devices and / or IoT objects that cooperate with each other. One or more of the plurality of computing devices may be a data storage server that stores at least a part of the modeled data for the digital twin.

[0113] Regarding the embodiments including the above embodiments, the following appendices are further disclosed. (Appendix 1) A method for predicting the development of simulation results for an Internet of Things (IoT) network, comprising: Generating a source digital twin for an IoT network driven by real-time sensed data from objects input into a model of the objects, wherein the objects are interconnected as object nodes in a directed acyclic graph (DAG), the interconnection representing a flow of data, and the source digital twin outputs in real time the state of one or more of the objects; Generating a clone digital twin including the same model and interconnection as the source digital twin; Connecting an input of the clone digital twin to an output of the source digital twin via a data stream synthesizer node, the data stream synthesizer node adding a time increment to the output of the source digital twin and driving the clone digital twin at the time when the increment is added to the source digital twin; Executing the source digital twin and the clone digital twin to provide, as an output of the clone digital twin, the developed state of one or more of the objects at the time when the increment is added. A method. (Appendix 2) The method according to Appendix 1, wherein the source digital twin, the clone digital twin, and the data stream synthesizer node together form an overall DAG. (Appendix 3) The method according to Appendix 1 or 2, wherein the nodes in the source digital twin also include event nodes that model events affecting the IoT network, such as incidents affecting the state of the objects. (Appendix 4) The method according to any one of Appendices 1 to 3, wherein the nodes in the source digital twin also include system information nodes that model information regarding the IoT network. (Appendix 5) In the output of the source digital twin and / or the clone digital twin, further including the step of generating a service node as part of the overall DAG, the service node generating a data service based on the state of an object within the IoT network, the method according to any one of Appendices 1 to 4. (Appendix 6) The service node is provided in parallel with the data stream synthesizer in the digital twin, and further including the step of supplying the same output to the service node and the data stream synthesizer, the method according to Appendix 5. (Appendix 7) The step of generating a further clone digital twin including the same model and interconnection as the source digital twin and the clone digital twin; The step of connecting the input of the further clone digital twin to the output of the clone digital twin via an additional data stream synthesizer node, the additional data stream synthesizer adding a further time increment to the output of the clone digital twin such that the clone digital twin drives the further clone digital twin at a time with the further increment added; Further including the step of executing the source digital twin, the clone digital twin, and the further clone digital twin, and providing data indicating the state of one or more of the objects at the time with the further increment added in the output of the further clone digital twin. The method according to any one of Appendices 1 to 6. (Appendix 8) The method according to Appendix 7, wherein the further time increment has a different value, preferably a value greater than the time increment. (Appendix 9) The method according to any one of Appendices 1 to 8, wherein context information from an external data source is additionally input into the source digital twin and / or the clone digital twin(s). (Appendix 10) The method according to any one of Appendices 1 to 9, wherein the IoT network is a transportation network, the object nodes include vehicle nodes and / or one or more infrastructure nodes, and one or more event nodes such as traffic incident nodes are included. (Appendix 11) The method according to any one of Appendices 1 to 10, wherein the state of one or more of the objects includes one or more of the position of the object and the speed of the object. (Appendix 12) The method according to Appendix 10 or 11, wherein the transportation network is a public transportation network, and the nodes in the source digital twin and the clone digital twin(s) include vehicle nodes, incident nodes representing events that can affect the public transportation network, stop nodes representing sections of the public transportation network infrastructure, and system information nodes representing the routes of the vehicles. (Appendix 13) A computer program having instructions that, when the program is executed by a computer, cause the computer to execute the method according to any one of Appendices 1 to 12. (Appendix 14) A computer having a processor, a memory, and a network interface configured to execute the method according to any one of Appendices 1 to 13.

Description of Reference Numerals

[0114] 501 Real-world sensors, etc. 502 Context 503 Source Digital Twin 504 Service for t0 505 Clone Digital Twin at t0+ΔT1 506 Data Stream Synthesizer from t0 to t0+ΔT1 507 Service for t0+ΔT1 508 Clone Digital Twin at t0+ΔT2 509 Data Stream Synthesizer from t0+ΔT1 to t0+ΔT2 601 Digital Twin for t 602 Copy of Digital Twin in t state 604 Digital Twin for t+ΔT 605 Copy of Digital Twin in t+ΔT state 608 Data Stream Synthesizer Increment ΔT S2 Create a source digital twin for an IoT network, driven by real-time sensed data from objects input into the model of the object. The objects are interconnected as object nodes in a directed acyclic graph, the interconnection representing the flow of data, and the source digital twin outputs the state of one or more objects in real time S4 Create a clone digital twin including the same model and interconnection as the source digital twin S6 Connect the input of the clone digital twin to the output of the source digital twin via a data stream synthesizer node. The data stream synthesizer node adds a time increment to the output of the source digital twin, thereby driving the clone digital twin at the time when the increment has been added to the source digital twin S8 Execute the source digital twin and the clone digital twin, and provide the evolved state of one or more objects at the time when the increment has been added as the output of the clone digital twin

Claims

**Claim 1** A method, executed by a computer, for predicting the evolution of simulation results for an Internet of Things (IoT) network of things, the method comprising: generating a source digital twin for the IoT network, driven by real-time sensed data from objects input into a model of the objects, wherein the objects are interconnected as object nodes within a directed acyclic graph (DAG), the interconnection representing a flow of data, and the source digital twin outputs, in real time, the state of one or more of the objects; generating a clone digital twin that includes the same model and interconnections as the source digital twin; connecting the input of the clone digital twin to the output of the source digital twin via a data stream synthesizer node, the data stream synthesizer node adding a time increment to the output of the source digital twin and driving the clone digital twin at the time when the source digital twin has had the increment added; executing the source digital twin and the clone digital twin to provide, as the output of the clone digital twin, the evolved state of one or more of the objects at the time when the increment has been added. The method. **Claim 2** The method of claim 1, wherein the source digital twin, the clone digital twin, and the data stream synthesizer node together form an overall DAG. **Claim 3** The method according to claim 1 or 2, wherein the nodes within the source digital twin also include event nodes that model events that affect the IoT network, such as incidents that affect the state of the objects. **Claim 4** The method according to any one of claims 1 to 3, wherein the nodes within the source digital twin also include system information nodes that model information about the IoT network. **Claim 5** In the output of the source digital twin and / or the clone digital twin, further comprising the step of generating a service node as part of the overall DAG, the service node generating a data service based on the state of an object within the IoT network, the method according to claim 2.

6. The service node is provided in parallel with the data stream synthesizer node in the source digital twin and the clone digital twin, and the same output as that supplied to the data stream synthesizer node is supplied to the service node, the method according to claim 5.

7. The step of generating a further clone digital twin including the same model and interconnections as the source digital twin and the clone digital twin; The step of connecting the input of the further clone digital twin to the output of the clone digital twin via an additional data stream synthesizer node, the additional data stream synthesizer adding a further time increment to the output of the clone digital twin such that the clone digital twin drives the further clone digital twin at the time with the further increment added; The method further comprising the steps of executing the source digital twin, the clone digital twin, and the further clone digital twin, and providing data indicative of the state of one or more of the objects at the time with the further increment added, in the output of the further clone digital twin. The method according to any one of claims 1 to 6.

8. The method according to claim 7, wherein the further time increment has a different value, preferably a value greater than the time increment.

9. The method according to any one of claims 1 to 8, wherein context information from an external data source is additionally input to the source digital twin and / or the clone digital twin(s).

10. The IoT network is a transportation network, and the object nodes include vehicle nodes and / or one or more infrastructure nodes, and include one or more event nodes such as traffic incident nodes, according to any one of claims 1 to 9.

11. The state of one or more of the objects includes one or more of the position of the object and the speed of the object, according to any one of claims 1 to 10.

12. The transportation network is a public transportation network, and the nodes in the source digital twin and the clone digital twin(s) include vehicle nodes, incident nodes representing events that can affect the public transportation network, stop nodes representing sections of the public transportation network infrastructure, and system information nodes representing the routes of the vehicles corresponding to the vehicle nodes, according to claim 10.

13. A computer program having instructions which, when the program is executed by a computer, cause the computer to perform the method according to any one of claims 1 to 12.

14. A computer having a processor, a memory, and a network interface configured to perform the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Prediction of failures of vehicle based on digital twin simulation

    JP2019153291A

  • Predicting using digital twins

    US20190294975A1

  • Digital twin system with energy harvesting sensor devices

    WO2020205484A1