System and method for controlling the operation of a coordination simulator

The collaborative simulator system addresses the sub-optimal performance of co-simulation by integrating an optimizer to adjust sub-simulator inputs and models during iterations, optimizing system performance and improving simulation efficiency.

JP7714709B2Active Publication Date: 2025-07-29KK TOSHIBA
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2024027658
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2023-05-02
Filing Date
2024-02-27
Publication Date
2025-07-29
Estimated Expiration
2044-02-27

AI Technical Summary

Technical Problem

Conventional co-simulation systems struggle to optimize the performance of complex systems with multiple subsystems, as they treat individual subsystems independently and do not account for interactions between them, leading to sub-optimal outcomes.

Method used

A collaborative simulator system that incorporates an optimizer within the co-simulation controller to adjust input values and parameters of sub-simulators during each iteration, using optimization algorithms to optimize system performance by considering interactions between subsystems.

Benefits of technology

The system efficiently optimizes the performance of complex systems by dynamically adjusting sub-simulator inputs and models, preventing unnecessary calculations and improving convergence, thus enhancing simulation accuracy and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007714709000001
    Figure 0007714709000001
  • Figure 0007714709000002
    Figure 0007714709000002
  • Figure 0007714709000003
    Figure 0007714709000003
Patent Text Reader

Abstract

To provide a system for controlling the operation of a co-simulator comprising two or more sub-simulators 304-1, 304-2, each sub-simulator being configured to simulate the behavior of a respective sub-system of a second system.SOLUTION: In a co-simulator, outputs of sub-simulators are combined to determine a value of one or more properties of a second system. The system comprises: a controller configured to receive, at one or more time points during each iteration of simulation, results of intermediate calculations performed by one or more of the sub-simulators, and to coordinate inputs of the received results; and an optimizer 302 configured to determine, at each of the one or more time points and based on the results of the intermediate calculations, one or more elements of the co-simulator to adjust so as to optimize a process of determining the value of the one or more properties of the second system.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments described herein relate to a system and method for controlling the operation of a collaborative simulator comprising two or more sub-simulators.

Background Art

[0002] Conventionally, low-dimensional models including simple look-up tables are often used for the simulation of complex systems having multiple subsystems. While such an approach can produce results in a moderately short time, it is not possible to identify, investigate, or obtain accurate overall system performance for some transient effects. Therefore, it is essential to use a model as detailed as possible in order to maximize the quality of the results of system simulation.

[0003] As a result, there is an increasing trend towards co-simulation architectures, or collaborative simulation. Collaborative simulation often refers to the co-simulation of loosely coupled stand-alone sub-simulators that can be used to model or simulate different subsystems of an overall larger system that are in different environments. For example, since there are many applications in the automotive and aerospace industries, several products currently provide support for this type of system simulation.

[0004] When implementing a co-simulation, the data flow between each model is realized using a defined structure that enables the co-simulator to control the overall simulation of the entire system. The co-simulation algorithm addresses time synchronization and interaction across sub-simulators. The sub-simulators are assumed to be completely independent of each other between the communication points implemented by the co-simulation controller. The sub-simulators may use various software approaches or simulation approaches and may operate in various simulation domains such as the electromagnetic domain, the thermal domain, or the mechanical domain.

[0005] Conceptually, the sub-simulators act like black boxes, receive inputs from other sub-simulators, advance in time up to the next communication point together with the built-in solver routines, and finally output the results. These results may then be reused as inputs to other sub-simulators.

[0006] Although co-simulation can provide useful information about how well a system may perform given a particular set of input values and parameters, it can be difficult to use co-simulation to optimize the performance of that system. Conventionally, individual subsystems are optimized independently of each other without considering how changes in the input values and parameters of one sub-simulator may affect the performance of another sub-simulator. In other approaches, a global approach may be used where the final output from the co-simulation is fed into an optimization algorithm. However, such global optimization may not take into account the constraints imposed by the individual subsystems and may lead to sub-optimal outputs from the individual parts of the system.

[0007] Next, embodiments will be described by way of example with reference to the accompanying drawings.

Brief Description of the Drawings

[0008]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

DETAILED DESCRIPTION OF THE INVENTION

[0009] According to a first embodiment, there is provided a system for controlling the operation of a cooperation simulator including two or more sub-simulators configured such that each sub-simulator simulates the behavior of a respective subsystem of a second system, the cooperation simulator being configured to perform one or more iterations of a simulation in which the outputs of the sub-simulators are combined to determine values of one or more characteristics of the second system, the system being Receiving, during each iteration of the simulation, the results of intermediate calculations performed by one or more of the sub-simulators at one or more points in time, and adjusting the input of the received results to other sub-simulators of the sub-simulators so as to be used in subsequent calculations to be performed during the iteration. A controller configured to perform; One or more elements of a co-simulator to be adjusted to optimize the process of determining the value of one or more characteristics of the second system, each at one or more of those points in time. And an optimizer configured to determine based on the results of the intermediate calculations.

[0010] One or more sub-simulators may simulate the behavior of each sub-system by executing their respective models. One or more elements of the co-simulator may comprise one or more parameters of at least one of the models.

[0011] The optimizer may be configured to adjust the parameters of at least one of the models so that the model can be executed more quickly by the respective sub-simulators.

[0012] One or more elements of the co-simulator may have an interval at which intermediate results are output to the controller by one or more sub-simulators.

[0013] The optimizer may be configured to abort the current iteration of the simulation based on determining that one or more of the intermediate results are outside a predetermined range of values.

[0014] The value of one or more characteristics of the second system may comprise criteria for the performance of the second system.

[0015] In some embodiments, one or more input values may be provided to two or more sub-simulators for each iteration of the simulation. The optimizer may be configured to determine a revised set of input values to be used in a next iteration based on the estimated values of one or more characteristics of the second system.

[0016] The revised set of input values may be determined using an optimization algorithm that is adapted to determine a set of input values that yields optimal values with respect to one or more characteristics of the second system.

[0017] The collaborative simulator may be configured to determine values of two or more characteristics of the second system. The optimization algorithm may be selected to determine a set of input values that jointly optimize the values of two or more characteristics of the second system.

[0018] The optimizer may be configured to switch to using an alternative optimization algorithm during the process in which the collaborative simulator performs multiple iterations of the simulation.

[0019] The optimizer may be configured to switch to using an alternative optimization algorithm in response to adjusting one or more elements of the collaborative simulator.

[0020] Upon switching to using an alternative optimization algorithm, the optimizer may be configured to hold the set of input values determined in the most recent iteration of the simulation as input for the next iteration of the simulation.

[0021] The optimization algorithm may be selected based on one or more characteristics of at least one of the two or more sub-simulators.

[0022] One or more sub-simulators simulate the behavior of each subsystem by executing their respective models. One or more elements of the collaborative simulator may comprise one or more parameters of at least one of the models. An optimization algorithm may be selected based on the one or more parameters.

[0023] The optimization algorithm may be selected based on an accuracy level or a noise level associated with one or more of the sub-simulators.

[0024] The accuracy of each sub-simulator may be defined based on the difference between the result of a calculation regarding a variable output by the sub-simulator and the expected value regarding the variable in the real world.

[0025] The optimization algorithm may be selected based on the memory requirements of one or more of the sub-simulators.

[0026] The second system may be a windmill or a wind turbine.

[0027] According to a second embodiment, there is provided a method of managing the operation of a collaborative simulator comprising two or more sub-simulators configured such that each sub-simulator simulates the behavior of a respective subsystem of a system, the collaborative simulator being configured to perform one or more iterations of a simulation in which the outputs of the sub-simulators are combined to determine values of one or more characteristics of the system, the method comprising receiving, at one or more points in time during each iteration of the simulation, the results of intermediate calculations performed by one or more of the sub-simulators, adjusting the input of the received results to other sub-simulators of the sub-simulators for use in subsequent calculations to be performed during the iteration, and It should be provided that one or more elements of the cooperative simulator to be adjusted to optimize the process of determining the value of one or more characteristics of the system are determined based on the results of intermediate calculations at each of the one or more points in time.

[0028] According to a third embodiment, there is provided a non-transitory computer-readable storage medium including computer-executable instructions that, when executed by a computer, cause the computer to execute the method according to the second embodiment.

[0029] FIG. 1 shows the structure of a conventional cooperative simulator 101. The cooperative simulator 101 includes a plurality of sub-simulators 104 and a cooperative simulation controller 103. In this embodiment, the cooperative simulator includes two sub-simulators 104-1 and 104-2. In general, the cooperative simulator may process any number of sub-simulators depending on the complexity of the system to be modeled and the number of sub-systems for which simulation is required.

[0030] The sub-simulator 104 may be entirely software-based and may be composed of two main components, namely, a model and a solver. The model generally includes one or more variables representing the characteristics of the particular sub-system being simulated. These variables may include physical characteristics of the sub-system such as the physical dimensions or physical weight of the components, operating parameters of the sub-system such as input power, and variables representing environmental conditions under which the system operates, such as temperature, wind speed, pressure, etc. The model may include one or more mathematical equations that can be solved by the solver to model how changes in each variable affect the overall output of the sub-system. In some embodiments, the model may be used to determine how a particular variable changes over time.

[0031] In some embodiments, the model for a particular sub-simulator may include one or more ordinary differential equations or partial differential equations where the solution is determined iteratively, for example, using a numerical integration algorithm. In such cases, the solver may be configured to execute the algorithm over a predetermined number of iterations or until the output from the model reaches a point where further convergence ceases.

[0032] Sub-simulators 104-1 and 104-2 are loosely coupled to each other by communicating with the cooperative simulation controller 103. The cooperative simulation controller 103 synchronizes the cooperative simulation 101 by implementing communication points between sub-simulators 104-1 and 104-2. At each communication point, one or more of sub-simulators 104-1, 104-2 return the values of one or more variables to the cooperative simulation controller. The cooperative simulation controller 103 may then communicate those output values to a different one of sub-simulators 104-1, 104-2 for use as input values in subsequent calculations. This process may be repeated a defined number of times with the sub-simulators exchanging the results of their calculations at multiple time intervals prior to the cooperative simulation reaching its final output. The results exchanged at each communication point may be considered "intermediate results" in that they are calculated by their respective sub-simulators during the individual iterations of the cooperative simulation and are used to determine the final output of the cooperative simulation for that particular iteration.

[0033] The final output from the coordination simulator may itself specify values regarding one or more characteristics of the system being simulated. For example, the final output may include an estimate of how well the system is likely to perform under some conditions. When obtaining the final output for a particular iteration of the coordination simulation, the coordination simulation may be re-run for one or more successive iterations with the sub-simulators initialized with different starting values and starting parameters at the beginning of each iteration. In this way, it is possible to observe the effect that changing these values and parameters has on the final output of the system.

[0034] Still referring to FIG. 1, the system can be regarded as comprising an external optimization module, or optimizer 102. The optimizer 102 is configured to select the initial starting inputs for each of the sub-simulators 104-1, 104-2 for each iteration of the coordination simulation. To do so, the optimizer may use an optimization algorithm designed to identify the input values that result in the best outcome from the coordination simulation. For example, the algorithm may be used to determine a set of input values that optimize the performance of the system as measured by the values specified in the final output.

[0035] The functionality of the coordination simulator described in the previous section can be further understood with reference to FIG. 2, which shows the sequence of operations performed by the sub-simulators 104-1 and 104-2, the controller 103, and the external optimizer 102.

[0036] The process begins at steps S201 and S202 where the sub-simulators 104-1 and 104-2 receive input values for the sub-simulations of these sub-simulators. If this is the first iteration of the coordination simulation, these input values may be determined by the user or may be automatically selected by the optimizer.

[0037] In step S205, the first sub-simulator among the sub-simulators 104-1 uses the received input to calculate values for one or more variables in the sub-simulation of that sub-simulator. The sub-simulator 104-1 may perform these calculations by repeatedly using a numerical method preselected based on the desired accuracy and / or processing time of the step size. After calculating the values for one or more variables, the first sub-simulator 104-1 outputs those values to the controller. In step S207, the controller provides the received values to the second sub-simulator 104-2 to be used as inputs for the calculations performed by the second sub-simulator.

[0038] The second sub-simulator 104-2 uses the input values provided to the second sub-simulator 104-2, together with the values received from the first sub-simulator 104-1 at the beginning of the simulation, to calculate values for one or more variables in the subsystem being simulated by the second sub-simulator 104-2. Similar to the case of the first sub-simulator, the second sub-simulator may perform the calculations of the second sub-simulator by repeatedly using a numerical method preselected based on the desired accuracy and / or processing time of the step size (step S209). After reaching the values of one or more variables, the second sub-simulator 104-2 outputs those values to the controller.

[0039] In step S211, the controller provides the value received from the second sub-simulator to the first sub-simulator 104-1. The process continues to repeat steps S213 to S217 replicating steps S205 to S209 respectively. In step S219, when receiving the latest output from the second sub-simulator 104-2, the controller can determine the final output regarding the simulation (Figure 2 shows that the first sub-simulator 104-1 and the second sub-simulator 104-2 exchanged values three times during the iteration process of the overall simulation, while in reality, it should be recognized that the sub-simulators may exchange values any number of times, determined by the nature of the system being simulated).

[0040] The output of the current iteration is obtained in step S219 and this output is transferred to the (external) optimizer. The external optimizer receives the collaborative output and performs a cost analysis to determine a revised set of input values for use in the next iteration of the collaborative simulation. The improved set of input values may be determined by using an optimization algorithm such as an evolutionary algorithm or a Bayesian algorithm. These input values are provided to the first sub-simulator 104-1 and the second sub-simulator 104-2 for use in the next iteration of the collaborative simulation.

[0041] In some embodiments, the collaborative simulation may be configured to repeat (i.e., perform successive iterations) until the output from the collaborative simulation further converges. Alternatively, the collaborative simulation may be continuously repeated over a predetermined length of time to prevent the collaborative simulation from running infinitely if a convergence event cannot be reached, or from running for an unreasonably long time if the calculation of intermediate results in each iteration takes longer than expected.

[0042] The problem with the collaborative simulation system shown in FIGS. 1 and 2 is that the optimizer cannot affect the collaborative simulation during each iteration. In this sense, the collaborative simulation is treated as a "black box" by the optimizer 102, and the optimizer cannot affect the execution of the collaborative simulation by changing the input values until after that particular iteration is completed.

[0043] The embodiments described herein provide a solution to the aforementioned problem by incorporating an optimizer within the collaborative simulation. FIG. 3 shows an exemplary configuration according to an embodiment. It can be understood that, compared to FIG. 1, the optimizer 302 is now incorporated within the collaborative simulation controller 303. Whereas previously the collaborative simulation behaved as a black box from the perspective of the optimizer, the current configuration allows the optimizer to control the parameters of the collaborative simulation during individual iterations of the collaborative simulation.

[0044] The functions of the controller / optimizer shown in FIG. 3 can be further understood with reference to FIG. 4, which shows an exemplary sequence of actions performed by the various components of FIG. 3. Note in FIG. 4 that the optimizer is not an external element of the system as in FIG. 2, but is combined with the controller.

[0045] As in the previous case, the sequence of steps begins with steps S401 and S403 where sub-simulators 304-1 and 304-2, shown in Figure 3, receive input values for the sub-simulations of these sub-simulators. If this is the first iteration of the co-simulation, these input values may be determined by the user or may be automatically selected by the optimizer. In step S405, the first of the sub-simulators 304-1 uses the received input to calculate values for one or more variables in the sub-simulation of that sub-simulator. The sub-simulator 304-1 may perform these calculations by repeatedly using a numerical method preselected based on the desired accuracy and / or processing time of the step size. After calculating values for one or more variables, the first sub-simulator 304-1 outputs those values as intermediate results to the controller and the optimizer.

[0046] In step S407, the controller provides the intermediate result received by the controller from the first sub-simulator 304-1 to the second sub-simulator 304-2 to be used as input for the calculations performed by the second sub-simulator. At the same time, the optimizer determines whether to adjust one or more elements of the co-simulator to optimize the overall simulation.

[0047] The optimizer may adjust the cooperative simulator in one of several different ways. In one embodiment, the optimizer may determine that the first sub-simulator is taking too long to calculate an intermediate result and, in so doing, is slowing down the overall cooperative simulation. The optimizer may address this by reconfiguring the model executed by the sub-simulator such that the sub-simulator issues the intermediate result more quickly. For example, if the model is one that uses an iterative method to calculate a result, the optimizer may reduce the degree to which the result of each iteration of the model is required to converge prior to being output to the controller. If the model is being used to determine how the value of a particular variable evolves over time, the optimizer may increase the time step used in successive iterations of the model such that an approach with lower granularity and possibly lower accuracy, but still reaching the output in a shorter period of time, is used by the sub-simulator. In some embodiments, the optimizer may configure the sub-simulator to switch to an entirely different model for calculating the required variable. Alternatively, or in addition, the optimizer may issue a request to allocate more memory to the sub-simulator in question, thereby enhancing the processing power of that sub-simulator.

[0048] In a further embodiment, the optimizer may determine that there is no continuing value in the current iteration of the collaborative simulation based on the results received from the sub-simulators. The optimizer may determine, for example, that the results are outside an acceptable range of values, which may include cases where the sub-simulator returns an error message or other output indicating that the model cannot be executed successfully using that particular set of input values instead of returning actual one or more values. The optimizer may determine that the set of input values selected for the current iteration of the collaborative simulation would lead to unrealistic or non-compliant results if those values were actually implemented in the real-world system being simulated. The optimizer may determine that a value calculated by a first sub-simulator is incompatible with a sub-system being simulated by a second sub-simulator. In such cases, the optimizer may issue an instruction to abandon the current iteration of the collaborative simulation. The optimizer may further issue an instruction to start a new iteration with a different set of input values.

[0049] It should be understood that the steps described in the previous paragraph are not possible in a conventional collaborative simulation as shown in FIG. 2, where the optimizer has to wait until the entire collaborative simulation is completed in order to have access to information about the collaborative simulation, and thus changes to the operation of the collaborative simulation are only possible with respect to the next instance of the collaborative simulation.

[0050] Once the adjustments to be made to the model (if any) are determined, the optimizer communicates those adjustments to the relevant sub-simulators that are to be updated accordingly. If the optimizer determines that the current iteration should be aborted, the collaborative simulation is stopped or returns to steps S401 and S403, and a revised set of input values is selected for the sub-simulators to begin a new iteration of the collaborative simulation. Assuming that the current iteration is allowed to continue, the method proceeds to step S409 where the second sub-simulator uses the input values provided to the second sub-simulator at the start of the simulation, together with the values received by the second sub-simulator from the first sub-simulator 304-1, to calculate values for one or more variables in the subsystem being simulated by the second sub-simulator 304-2. Similar to the case of the first sub-simulator, the second sub-simulator may perform the calculations of the second sub-simulator by repeatedly using a numerical method preselected based on the desired accuracy and / or processing time of the step size. Upon reaching the values of the one or more variables, the second sub-simulator 304-2 outputs those values to the controller / optimizer.

[0051] In step S411, the controller provides the intermediate results received by the controller from the second sub-simulator 304-2 to the first sub-simulator 304-1 to be used as input for further calculations performed by the first sub-simulator 304-1. At the same time, based on the intermediate results received from the second sub-simulator 304-2, the optimizer determines whether to adjust one or more elements of the collaborative simulation to optimize the overall simulation. Here, the optimizer may perform steps similar to the steps described previously in step S407.

[0052] Also in this case, assuming that the optimizer does not signal to stop the current iteration, the process replicates steps S413 to S417 from steps S405 to S409 respectively and repeats. In step S419, having received the latest output from the second sub-simulator 304-2, the controller can determine the final output regarding the simulation (FIG. 4 shows that the first sub-simulator 304-1 and the second sub-simulator 304-2 exchanged values three times during the course of the overall simulation iteration, but in reality, it should be recognized that the sub-simulators may exchange values any number of times, determined by the nature of the system being simulated).

[0053] Thus, by incorporating the optimizer 302 within the cooperative simulation, the optimizer can analyze the behavior of the cooperative simulation during each individual iteration of the cooperative simulation and then apply changes to the cooperative simulation that can assist in improving the performance and efficiency of the cooperative simulator. For example, a set of inputs may be completely incompatible with the optimization of one of the output values. Instead of having to wait until the completion of the cooperative simulation to learn this, the cooperative simulator of this embodiment can determine at a much earlier stage that these values are inappropriate and take steps to prevent unnecessary use of computing time and computing power.

[0054] Still referring to FIG. 4, the output of the current iteration has been obtained in step S419, and this output is now used by the optimizer to perform a cost analysis to determine the revised set of input values to be used in the next iteration of the cooperative simulation.

[0055] Similar to the cases of FIGS. 1 and 2, the optimizer may use one of several optimization algorithms, such as an evolutionary algorithm or a Bayesian algorithm, to determine the revised input values. The optimizer may select the most appropriate optimization algorithm based on the knowledge the optimizer has about various subsystems and their respective simulation models. In some embodiments, the optimization algorithm may be selected at least partially based on user input.

[0056] Here, it should be recognized that the optimization performed in step S421 is a different process from the adjustment performed by the optimizer when receiving intermediate results from various sub-simulators. In contrast to those adjustments that seek to optimize the functions of each sub-simulation model and their interactions, the optimization performed in step S421 is designed to identify a set of one or more input parameters for the simulation that will result in the best outcome in terms of the final output from the co-simulation. For example, the co-simulator may seek to optimize one or more of the cost, performance, and stability of the system, and the output of the co-simulation may provide an indication of the extent to which these requirements are met for different sets of input values. In this regard, the optimization algorithm used in step S421 is capable of identifying the set of input values for which one or more characteristics of the system are optimized, while the adjustments performed by the optimizer during the individual iterations of the co-simulation can make the process of executing each iteration more efficient and prevent unnecessary calculations by excluding a particular set of input values as sub-optimal at an earlier stage in the process.

[0057] The optimization algorithm used by the optimizer may change dynamically during the collaborative simulation process. For example, some of the subsystems may be able to use a simple simulation model during normal operating conditions. However, under extreme conditions, different / higher-precision models may be required that change the runtime for each iteration of the collaborative simulation. For example, if a higher-precision model that takes longer to compute is used for one of the subsystems, the optimization algorithm used in step S421 may be adjusted such that the algorithm requires fewer evaluations, i.e., fewer iterations of the overall collaborative simulation. In such cases, the collaborative simulator may transfer the current state of the old optimization algorithm to the new optimization algorithm to avoid a "cold start".

[0058] In some examples, some subsystems may be able to use a lower-precision simulation model compared to other subsystems, and if the collaborative simulator knows this, the collaborative simulator can select a different optimization algorithm or change the parameters of the current optimization algorithm. For example, if there is a hardware in loop, there may be measurable noise that can be quantized. In other cases, as described earlier, some sub-simulations may require a lot of memory to process a particular set of input values. To address this, the optimizer may switch to an alternative optimization method or change the parameters of the current optimization method.

[0059] The embodiments described in this specification may be utilized for the purpose of design automation. When designing a product, collaborative simulation may determine an optimal configuration of design parameters of one or more of the subsystems for the purpose of optimizing one or more of the characteristics of the system, and provide those configurations to the user for manufacturing. Also, embodiments may be made for the purpose of optimizing the operation of an existing system to determine how the existing system behaves under a series of different situations.

[0060] Next, an exemplary collaborative simulator that realizes the concepts described in the previous section will be described with reference to FIGS. 5 to 7. In this embodiment, the collaborative simulator is used to optimize the design and / or operation of an offshore wind turbine. FIG. 5 shows various types of floating structures 501-1, 501-2, 501-3, 501-4 for an offshore wind turbine, while FIG. 6 shows a plurality of blade control parameters that may be adjusted to optimize the power output from the turbine. FIG. 7 shows a schematic diagram of a collaborative simulator for use in simulating the functions of a wind turbine.

[0061] Referring to FIG. 7, the collaborative simulator 701 includes a collaborative simulation controller 701 and an optimizer 703, and three independent sub-simulators 704-1, 704-2, and 704-3 representing the subsystems of the offshore turbine. In this embodiment, the sub-simulator 704-1 is used to simulate the power generation device, the sub-simulator 704-2 simulates the blades of the turbine, and the sub-simulator 704-3 simulates the physical structure on which the turbine is based.

[0062] The sub-simulator 704-1 mainly relates to the simulation of power generation by a generator. During each co-simulation process, the sub-simulator 704-1 receives input values that define the rotational speed of the blade and the reference power of the system from the co-simulation controller. At the beginning of the co-simulation, these values may be initially set by the user, or these values may be automatically selected by the co-simulation controller / optimizer. Also, the generator sub-simulator 704-1 includes a torque controller for the purpose of modeling how changes in torque affect power generation. Also, since changes in torque also affect the rotational speed of the turbine, the rotational speed may also be an output at the communication point for use in other sub-simulators along with the determined power output.

[0063] The blade sub-simulator 704-2 may include a blade pitch controller for the purpose of modeling the impact that changing the blade pitch has on the behavior of the blade. The behavior of the blade may be output at the communication point, for example, in the form of one or more output values representing the determined rotational speed, blade pitch angle, and degree of blade bending.

[0064] The sub-simulator 704-3 representing the offshore structure receives, as input, data representing wind speed, wave spectrum, and blade pitch angle. The sub-simulator 704-3 uses these as input to calculate the six-degree-of-freedom motion of the structure over time. This six-degree-of-freedom motion may then be provided to the co-simulation controller at the communication point.

[0065] As an example of the exchange of input / output values between sub-simulators, as the collaborative simulation progresses, the offshore structure simulator 704-3 also receives, in this case via the collaborative simulation controller, an input value regarding the blade pitch angle from the blade sub-simulator 704-2. The blade sub-simulator 704-2 calculates the blade pitch angle as an intermediate result during each iteration of the collaborative simulation. Next, the offshore structure sub-simulator 704-3 uses the value received from the blade sub-simulator 704-2 to calculate the 6-degree movement of the offshore structure.

[0066] As described in the previous section, when receiving the blade pitch angle from the blade sub-simulator, the controller / optimizer may evaluate whether the calculated pitch angle is along the acceptable limit and, further, whether the blade sub-simulator can output the calculation of the pitch angle within an acceptable time frame. If one or more of these criteria are not met, the optimizer may issue an instruction to adjust one or more parameters of the blade sub-simulator and / or end the current iteration of the collaborative simulation, and then initialize a new iteration of the collaborative simulation with a new set of starting values for the different sub-simulators.

[0067] Some of the inputs shown in Figure 7, such as wind speed and wave spectrum, are operating conditions for the system, affect only the system, and it is understood that changes to these operating conditions can be made without being calculated by the sub-simulators. These operating conditions may be set as constants by the co-simulation controller, or may be changed over time for the purpose of simulating the system's response to changing conditions. Other inputs, such as rotational speed and the amount of power generated, comprise variables whose values may be calculated by one or more of the sub-simulators. The behavior of these variables may be the subject of simulation by multiple sub-simulators, and thus requires communication between the sub-simulators via the co-simulation controller to ensure consistency in the behavior of the variables across different sub-systems.

[0068] The co-simulation may be configured such that the power generated and the stability of the floating body platform are specified as outputs for optimization. The power generated is the output of the generator sub-simulator, and the stability may be determined from the output of the six-degree-of-freedom motion of the offshore structure sub-simulator. It may not be possible to optimize most of these outputs simultaneously. For example, there may be configurations where power generation is maximized, but the structure is unstable and leaves the turbine vulnerable to changes in wind speed or wave spectrum. Similarly, different configurations may exist where the structure is very stable but as a result, power generation is limited. In this case, a multi-objective optimization algorithm may be used to find a configuration for the wind turbine structure that achieves an optimal trade-off between these outputs.

[0069] Two exemplary optimization algorithms are the Nondominated Sorted Genetic Algorithm (NSGA) II, and the Thompson Sampling Efficient Multiobjective Optimisation (TSEMO). NSGA-II is an example of an evolutionary algorithm, and TSEMO is an example of a Bayesian algorithm. Both algorithms have different strengths and weaknesses that can be consciously considered when the optimization module selects an algorithm to use. Figure 8 shows a table summarizing the characteristics of these two algorithms.

[0070] In most cases, NSGA-II exhibits good performance, highly diverse solutions, and a fast computational speed. However, NSGA-II requires the performance of multiple function evaluations and has little ability to handle errors in calculations or measurements. In comparison, TSEMO tends to have less diverse solutions and slower calculations, but requires fewer function evaluations and can incorporate known inaccuracies during optimization. Therefore, it can be understood that collaborative simulation may have reasons to use both algorithms depending on the situation.

[0071] During optimization, the cost function needs to be evaluated multiple times with different input values. At the beginning of the optimization, the sub-simulation can potentially calculate relatively quickly with relatively little noise since the sub-simulation is operating within a range that can be considered normal operating conditions. However, as the simulation progresses, the operating conditions may approach the boundaries of normal operating conditions and may start to simulate abnormal operating conditions. As described in the previous paragraph, this may require the use of different models for the simulation, such as a more accurate model.

[0072] In this scenario, it may be most efficient to start the optimization using NSGA-II and only switch to TSEMO once the evaluation time of the sub-simulation has increased further. To avoid wasting the NSGA-II optimization process, the current information obtained by NSGA-II can be converted into the format used by TSEMO. This can include, for example, converting the currently existing population members in NSGA-II into the sampling of TSEMO, and based on that sampling, it is possible to construct a probability distribution. Members of Bayesian optimization-based algorithms such as TSEMO are designed for computationally expensive systems, so this may prove to be more computationally efficient compared to continuing NSGA-II function evaluations on the sub-simulator.

[0073] Another factor that can affect the choice of optimization algorithm is the accuracy level of the sub-simulator. As explained in the previous section, inaccuracies such as measurement noise can occur in the use of hardware in the sub-simulator or in the errors or approximations present in the models used in the sub-simulator. Evolutionary algorithms assume that the function yields error-free results and thus have difficulty dealing with inaccuracies. In contrast, Bayesian optimization algorithms can deal with inaccuracies because the variance of the previous probability distribution can be adjusted to incorporate the inaccuracies. Therefore, if the optimization module notices that one of the sub-simulators is operating with some level of inaccuracy, such as measurement noise, the optimization module may choose a Bayesian method such as TSEMO to take this into account.

[0074] The subject matter and the implementations of the operations described herein, including the structures disclosed herein and their structural equivalents, can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, or in combinations of one or more of them. The implementations of the subject matter described herein can be realized using one or more computer programs, i.e., one or more modules of computer program instructions encoded on a computer storage medium to be executed by a data processing apparatus or to control the operation of a data processing apparatus. Alternatively, or in addition, the program instructions can be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, generated to encode information for transmission to a suitable receiver device for execution by a data processing apparatus. The computer storage medium can be, or can be included in, a computer-readable storage device, a computer-readable storage substrate, a random access memory array or a memory device, or a serial access memory array or a memory device, or one or more combinations of them, or can be included in them or one or more combinations of them. Further, the computer storage medium can be, but is not limited to, the source or destination of computer program instructions encoded on an artificially generated propagated signal. Also, the computer storage medium can be, or can be included in, separate one or more physical components or physical media (e.g., multiple CDs, disks, or other storage devices).

[0075] Although several embodiments have been described, these embodiments are presented merely as examples and are not intended to limit the scope of the invention. In fact, the novel methods, devices, and systems described herein may be implemented in various forms, and furthermore, various omissions, substitutions, and changes may be made to the forms of the methods and systems described herein without departing from the spirit of the invention. The appended claims, and the equivalents thereof, are intended to cover such forms or modifications that are within the scope and spirit of the invention.

Claims

1. A system for controlling the operation of a cooperative simulator comprising two or more sub-simulators configured to simulate the behavior of respective sub-systems of a second system, wherein the cooperative simulator is configured to perform one or more iterations of a simulation in which the outputs of the two or more sub-simulators are combined to determine values of one or more characteristics of the second system, and the system a controller configured to receive, at one or more points in time during the iteration of the simulation, the results of a plurality of values of a plurality of intermediate calculations performed by one or more of the two or more sub-simulators, and to adjust the input to the other of the two or more sub-simulators such that the input is used in subsequent calculations to be performed during the course of the iteration, the input being the result of the plurality of received values, an optimizer configured to determine to adjust one or more elements of the cooperative simulator based on the results of the plurality of values of the plurality of intermediate calculations at each of the one or more points in time wherein the elements are one or more parameters of a model included in each of the sub-simulators.

2. The system of claim 1, wherein the one or more sub-simulators simulate the behavior of the respective sub-systems by executing respective pluralities of models, and the one or more elements of the cooperative simulator comprise one or more parameters of at least one of the pluralities of models.

3. The system of claim 2, wherein the optimizer is configured to adjust the one or more parameters of at least one of the pluralities of models.

4. The system of claim 1, wherein the one or more elements of the cooperative simulator include the time intervals at which the results of the plurality of values of the plurality of intermediate calculations are output to the controller by the one or more sub-simulators.

5. The system according to claim 1, wherein the optimizer is configured to abort the iteration of the simulation if one or more of the results of the plurality of values of the plurality of intermediate calculations are outside a predetermined range of the plurality of values.

6. The system according to claim 1, wherein the value of one or more characteristics of the second system includes a criterion for the performance of the second system.

7. For each iteration of the simulation, one or more input values are provided to the two or more sub-simulators. The system according to claim 1, wherein the optimizer is configured to determine a revised set of input values to be used in a next iteration based on the estimated values of the one or more characteristics of the second system.

8. The system according to claim 7, wherein the revised set of input values is determined using an optimization algorithm that determines a set of input values that yields optimal values for the one or more characteristics of the second system.

9. The collaborative simulator is configured to determine a plurality of values of two or more characteristics of the second system, and the optimization algorithm is selected to determine a set of input values that jointly optimizes the plurality of values of the two or more characteristics of the second system. The system according to claim 8.

10. The system according to claim 8, wherein the optimizer is configured to switch to using an alternative optimization algorithm during the process of the collaborative simulator performing multiple iterations of the simulation.

11. The system according to claim 10, wherein the optimizer is configured to switch to using the alternative optimization algorithm in response to adjusting one or more elements of the collaborative simulator.

12. When switching to using the alternative optimization algorithm, the optimizer is configured to hold the set of input values determined in the most recent iteration of the simulation as an input for the next iteration of the simulation. The system according to claim 10.

13. The system according to claim 8, wherein the optimization algorithm is selected based on one or more characteristics of at least one of the two or more sub-simulators.

14. The system, wherein each of the one or more sub-simulators simulates the behavior of each of the plurality of subsystems by executing a plurality of models for each, wherein the one or more elements of the cooperative simulator comprise one or more parameters of at least one of the plurality of models, The system according to claim 13, wherein the optimization algorithm is selected based on the one or more parameters.

15. The system according to claim 13, wherein the optimization algorithm is selected based on the accuracy or noise level associated with the one or more sub-simulators among the two or more sub-simulators.

16. The system according to claim 15, wherein the accuracy of each sub-simulator is defined based on the difference between the results of a plurality of values of a plurality of calculations regarding a plurality of variables output by the sub-simulator and the expected plurality of values regarding the plurality of variables in the real world.

17. The system according to claim 13, wherein the optimization algorithm is selected based on the memory requirements of the one or more sub-simulators among the two or more sub-simulators.

18. The system according to claim 1, wherein the second system is a windmill.

19. A method for managing the operation of a cooperative simulator comprising two or more sub-simulators configured such that each sub-simulator simulates the behavior of each subsystem of the system, wherein the cooperative simulator is configured to execute one or more iterations of a simulation such that the outputs of the two or more sub-simulators are combined to determine values of one or more characteristics of the system, and the method comprises: receiving, by the system controlling the operation, results of a plurality of values of a plurality of intermediate calculations executed by one or more of the two or more sub-simulators at one or more points in time during the iteration of the simulation. the system controlling the operation adjusting inputs resulting from the received values to other sub-simulators of the two or more sub-simulators for use in subsequent calculations to be performed in the course of the iteration; and determining that the system controlling the operation adjusts one or more elements of the co-simulator based on results of the plurality of values of the plurality of intermediate calculations at each of the one or more time points; Equipped with The method wherein the elements are one or more parameters of a model included in each of the sub-simulators.

20. 1. A program for causing a computer to execute a method for managing the operation of a co-simulator comprising two or more sub-simulators, each sub-simulator configured to simulate the behavior of a respective subsystem of a system, the program comprising: The co-simulator is configured to perform one or more iterations of a simulation in which outputs of the two or more sub-simulators are combined to determine values of one or more properties of the system, and the method includes: receiving, at one or more points during an iteration of the simulation, results of values of intermediate calculations performed by one or more sub-simulators of the two or more sub-simulators; adjusting inputs resulting from the received values to other sub-simulators of the two or more sub-simulators for use in subsequent calculations to be performed in the course of the iteration; and determining to adjust one or more elements of the co-simulator at each of the one or more time points based on results of the plurality of values of the plurality of intermediate calculations; Equipped with A program executed by a computer, wherein the element is one or more parameters of a model included in each of the sub-simulators.

Citation Information

Patent Citations

  • Method and device for previous stage co-simulation

    JP2020004399A

  • Systems and methods for automatically realizing models for co-simulation

    US20190370420A1

  • Co-simulation computer system, verification system for embedded systems, and verification method for embedded systems

    WO2014038030A1

  • Co-simulation, computer system

    WO2022128478A1