US20090164200A1 - Distributed simulation - Google Patents
Distributed simulation Download PDFInfo
- Publication number
- US20090164200A1 US20090164200A1 US12/332,073 US33207308A US2009164200A1 US 20090164200 A1 US20090164200 A1 US 20090164200A1 US 33207308 A US33207308 A US 33207308A US 2009164200 A1 US2009164200 A1 US 2009164200A1
- Authority
- US
- United States
- Prior art keywords
- state
- physical
- simulation
- series
- subsystem
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
Definitions
- the present invention relates to computer programs that simulate systems. More specifically, the present invention relates to simulation systems using a distributed computer network, wherein subsystems can be simulated independently, the subsystem simulations communicating the values of input/output variables to simulate subsystem interaction.
- Present methods of simulating complex systems suffer from limitations in security, interoperability, cross-platform communication, and other functional areas. Many simulation platforms fail to enable distributed simulation at all, limiting the complexity of systems that can be modeled as a function of the computing and storage capacity of a single device. Simulation of complex systems (those of a tank or aircraft, for example) in a reasonable time is extremely difficult, if not impossible, using widely available computing systems.
- One form of the present invention is a unique distributed simulation system. Further forms include a system in which a plurality of processors each executes a separate program to independently simulate a different portion of a physical system. At various points in time, a first one of the processors communicates messages to a second one of the processors to convey information regarding the state of the simulated subsystem at a particular point in simulation time. The second processor uses the state-related information from the first processor to execute its model of the second portion of the system. In some embodiments of this form, the messages are sent at constant intervals in simulation time, while in other embodiments messages are sent at constant intervals in real time.
- the messages are sent at variable intervals depending on the circumstances, such as a function of one or more variables, the pattern of change in one or more variables, detected network congestion or delay, or the behavior of the other state variables (in the first model, second model, another model, or a combination thereof).
- one program exposes an interface associated with a first model
- a second program exposes an interface associated with a second model.
- the first interface permits access by the second program to a program-controlled set of state-related information of the first model, while preventing access by the second model to a substantial portion of the first program or model.
- the second program's interface allows the first model to access a program-controlled set of state-related information of the second model, while preventing access by the first model to at least a substantial portion of the second program or model.
- a system monitor application provides control and coordination of subsystem simulations.
- each subsystem model allows itself to be started, stopped, configured, and/or connected with other models by the system monitor application.
- a model accepts and serves requests to periodically transmit certain state-related information to one or more data output applications, which may produce one or more graphs of those values (or of a function of those values).
- a sequence of values of one or more state-related variables is broadcast to a plurality of possible recipients.
- FIG. 1 is a block diagram of a distributed simulation system.
- FIG. 2 is a block diagram of two embodiments of model host computers in a distributed simulation system.
- FIG. 3 is a block diagram of a system monitor computer and a model host computer in a distributed simulation system.
- FIG. 4 is a flowchart of a distributed simulation.
- FIG. 5 is a sample view of an OSCOPE application in a distributed simulation system.
- FIG. 6 is a schematic view of a portion of a distributed simulation system including a subnetwork arrangement.
- FIGS. 7A-7C are a flowchart of a control message handling loop for use in some distributed simulation systems.
- FIG. 8 is a sample view of a control panel application in a distributed simulation system.
- FIGS. 1-3 provides parallel implementations of various portions or aspects (“subsystems”) of a physical system.
- computer 29 starts, stops, configures, and controls connections and interactions between a plurality of models 22 , 24 , 26 , 28 , running on model host computers 23 , 25 , 27 .
- Each model 22 , 24 , 26 , 28 implements a model of one or more subsystems and makes that implementation available for connection to models of other portions of the system.
- a consistent external communication interface (discussed in further detail below) for various hardware and software platforms allows each subsystem to be modeled on a different simulation platform and/or operating system, and further allows different vendors of different subsystems to make models of their subsystems available for simulation in combination with the rest of the system.
- model for simulation purposes may be programmed by one or many programmers or organizations of programmers, in the same language as other models in the system, or in a different language.
- Network 21 interconnects computers 23 , 25 , 27 , and 29 .
- Models 22 , 24 , 26 , 28 running on those computers as illustrated collectively model a complete system, by each modeling at least one subsystem and interacting to communicate the states of the simulated interfaces between the subsystems at various intervals in real or virtual time as will be discussed in further detail below.
- Other applications involved in the distributed simulation system 20 are shown in FIG. 1 in various configurations.
- a simple model host computer 23 runs a single model 22 , which is accessible to other models 24 , 26 , 28 and other applications (such as system monitor 31 ) via network 21 .
- resources will be available within a single host computer to execute additional applications.
- a common configuration is shown in relation to computer 25 of FIG. 1 .
- model 24 simulates one or more subsystems, and control panel 32 issues start, stop, parameter setting, connection-related, and other commands as will occur to those skilled in the art.
- OSCOPE applications 33 and 34 display the values of one or more variables or functions of variables of model 24 over time. It has been found experimentally that this grouping of applications is a reasonably effective use of resources on a single computer.
- the other components may be off-loaded from the host computer and executed on a “neighboring” computer on a local-area network, for example.
- Models 26 and 28 which are each associated with a control panel ( 35 and 37 , respectively) and OSCOPE ( 36 and 38 , respectively).
- System monitor 31 runs on computer 29 and controls parameters of and connections between models 22 , 24 , 26 , 28 .
- control panels 32 , 35 , 37 each control and monitor a single model ( 24 , 26 , 28 , respectively)
- system monitor 31 is designed to manage the whole distributed simulation system 20 .
- OSCOPE 39 Also running on computer 29 is OSCOPE 39 , which monitors one or more variables or functions of variables of model 22 , for example.
- a “system monitor” application 31 (also discussed in more detail below) running on computer 29 sets parameters of the models, controls the connections between the models, monitors their functioning, and logs relevant facts, parameters, and events in the simulation. Several functions of system monitor 31 will be detailed further below.
- Model host computer 23 comprises processor 41 , which in one embodiment is a conventional, integrated circuit microprocessor arrangement, such as one or more PENTIUM III or PENTIUM 4 processors (supplied by INTEL Corporation of Santa Clara, Calif., USA), Athlon processors (supplied by Advanced Micro Devices, Inc., of Sunnyvale, Calif., USA), or PowerPC processors (supplied by the Semiconductor Products Sector of Motorola, Inc., of Austin, Tex., USA).
- processor 41 in one embodiment is a conventional, integrated circuit microprocessor arrangement, such as one or more PENTIUM III or PENTIUM 4 processors (supplied by INTEL Corporation of Santa Clara, Calif., USA), Athlon processors (supplied by Advanced Micro Devices, Inc., of Sunnyvale, Calif., USA), or PowerPC processors (supplied by the Semiconductor Products Sector of Motorola, Inc., of Austin, Tex., USA).
- Storage 43 provides the data storage required by computer 23 , including for example storage for program, model, log, and other data.
- Storage 43 may include one or more types of solid-state electronic memory, magnetic memory, or optical memory, just to name a few.
- storage 43 may include solid-state electronic Random Access Memory (RAM), Sequentially Accessible Memory (SAM) (such as the First-In, First-Out (FIFO) variety or the Last-In, First-Out (LIFO) variety), Programmable Read-Only Memory (PROM), Electrically Programmable Read-Only Memory (EPROM), or Electrically Erasable Programmable Read-Only Memory (EEPROM); an optical disc memory (such as a DVD or CD-ROM); a magnetically encoded hard disc, floppy disc, tape, or cartridge media; or a combination of any of these memory types.
- storage 43 may be volatile, nonvolatile, or a hybrid combination of volatile and nonvolatile varieties.
- Optional input device(s) 45 may include a keyboard, mouse, track ball, light pen, and/or microphone, to name just a few representative examples.
- optional output device(s) 47 may include one or more monitors, loudspeakers, printers, and/or other recording devices, again to name just a few representative examples.
- Operating system 49 is a general-purpose operating system, such as a WINDOWS operating system (published by Microsoft Corporation of Redmond, Wash., USA) or a MAC OS (published by Apple Computer, Inc., of Cupertino, Calif., USA). Other operating systems may be used without undue experimentation by those skilled in the art.
- WINDOWS operating system published by Microsoft Corporation of Redmond, Wash., USA
- MAC OS published by Apple Computer, Inc., of Cupertino, Calif., USA.
- Other operating systems may be used without undue experimentation by those skilled in the art.
- calculation platform 51 which is a general-purpose computation and analysis package such as MATLAB (published by The MathWorks, Inc., of Natick, Mass., USA). Some alternative simulation program and platform configurations are discussed below in relation to computers 25 and 27 .
- an additional simulation toolbox 52 known as SIMULINK (also published by The MathWorks, Inc.) is included to allow the incorporation of the distributed simulation API for the subsystem model implementation 22 .
- Model 22 is, in this example, written in the MATLAB programming language with references to procedures and/or objects defined in the SIMULINK toolbox 52 and the distributed simulation interface 55 .
- Interface 55 provides an API comprising functions that enable model 22 to programmatically control connections from other computing devices and to process data exchanged through them, as discussed further herein.
- Computer 25 is controlled by processor 61 using programs stored in storage 63 (where processor 61 and storage 63 may be of any suitable type, as discussed above in relation to processor 41 and storage 43 , respectively).
- Optional output device(s) 67 and optional input device(s) 65 again facilitate interaction with human users.
- Operating system 69 is, in this example, a WINDOWS 2000 operating system, published by Microsoft Corporation. Model 24 executes on OS 69 as a stand-alone application written in one or more system programming languages, such as C, C++, Fortran, Visual Basic, or JAVA.
- Browser 71 enables access to and viewing of resources available through network 21 , such as Hypertext Markup Language (HTML) files and JAVA applets (such as system control applet 32 ).
- Browser 71 may be, for example, Netscape Navigator (published by Sun Microsystems, Inc., of Palo Alto, Calif., USA).
- OSCOPE applications 33 and 34 read state-related information from model 24 and send it as output to the user via output device(s) 67 .
- distributed simulation interface 75 provides communication-related functionality to model 24 .
- FIG. 3 shows the components of computers 27 and 29 (see also FIG. 1 ).
- storage 83 optional input device(s) 85 , and optional output device(s) 87 are analogous to (though not necessarily the same as) 43 , 45 , and 47 .
- subsystem model implementations 26 , 28 are stand-alone applications written in one or more system programming languages, such as C, C++, Fortran, Visual Basic, or JAVA, to name just a few nonlimiting examples.
- Processor 81 is a custom-designed, application-specific integrated circuit (ASIC) specially adapted for simulation computations.
- ASIC application-specific integrated circuit
- a custom-designed simulation operating system 89 runs subsystem model implementations 26 and 28 , which communicate with each other and with other models in system 20 via distributed simulation interface 88 .
- Control panel application 35 and OSCOPE application 36 connect to model 26 and run on simulation operating system 89 , which also runs control panel 37 and OSCOPE 38 in conjunction with model 28 .
- System monitor application 31 runs on operating system 99 to provide command and control functionality for system 20 as summarized above and discussed in more detail below.
- OSCOPE application 39 also runs on operating system 99 , displaying to the user at computer 29 an output of state-related information from model 22 on computer 23 (see FIG. 1 ).
- Computer 29 includes processor 91 , storage 93 , input device(s) 95 , and output device(s) 97 (analogous to, but not necessarily the same as, corresponding components in computer 23 ; namely, components 41 , 43 , 45 , and 47 ).
- Operating system 99 is, for example, a UNIX or UNIX-like operating system such as Red Hat Linux (published by Red Hat, Inc., of Durham, N.C., USA).
- FIGS. 1-3 illustrates several uses and arrangements of computing resources, and several illustrations of connections and relationships among components, applications, applets, models, and other physical and functional parts of system 20 , it should be noted that those skilled in the art will be able to implement distributed simulation systems according to the present invention with these or other physical and/or virtual configurations.
- any functionality described herein can be implemented in any computing device in communication with at least one other component in the system.
- the process for carrying out a simulation according to one embodiment of the present invention will now be discussed in broad terms in relation to FIG. 4 , with continuing reference to items shown in and discussed in relation to FIGS. 1-3 . Additional detail regarding the control of connections among models in a selected embodiment of the present invention will be discussed below in relation to FIGS. 7A-7C .
- the process 100 in FIG. 4 starts at START point 101 .
- the various models are started at block 110 .
- this event may be initiated for each model by an action of a local user (such as a gesture in a desktop graphical user interface (GUI)), by a remote user (for example, through a web browser or by way of another signal), or by an automated process (such as invocation by a task scheduler), to name just a few possible triggers.
- a local user such as a gesture in a desktop graphical user interface (GUI)
- a remote user for example, through a web browser or by way of another signal
- an automated process such as invocation by a task scheduler
- the operating system 49 , 69 , 89 , 99 , calculation platform 51 , simulation toolbox 52 , subsystem model implementations 22 , 24 , 26 , 28 , and distributed simulation interface software 55 , 75 , 88 are loaded into memory and initialized with simulation parameters as will be understood by those skilled in the art.
- parameters (such as capacitance of a capacitor, or density of fuel in the system being simulated) for the various models 22 , 24 , 26 , 28 are set, for example, by the system monitor application 31 or the control panel 32 , 35 , 37 associated with each particular model.
- these parameters may be provided by a local configuration file, user input, a signal from system monitor 31 or a control panel, or other source as would occur to one skilled in the art.
- Models may be connected to and/or disconnected from other models at block 130 , again under the control of system monitor 31 or the model's respective control panel 32 , 35 , 37 .
- IP addresses and TCP port numbers are obtained (e.g., from local storage 43 , 63 , 83 , one or more command line parameters, system monitor 31 , etc.), and TCP connections are opened.
- subsystem model implementation 24 receives state-related messages from subsystem model implementation 22 that communicate information relating to one or more state variables from subsystem model implementation 22 . Subsystem model implementation 24 then uses that information in its simulation. For example, subsystem model implementation 24 will, in some implementations, use the information from the state-related messages as an input to the subsystem being simulated. In some of these embodiments, state-related messages from subsystem model implementation 24 to subsystem model implementation 22 provide information relating to one or more state variables in subsystem model implementation 24 as input(s) to the operation of subsystem model implementation 22 .
- process 100 is illustrated in FIG. 4 as a linear, single-threaded task, it may be implemented in a multi-threaded form, on multiple computing devices, or with an alternative control flow, as would occur to one skilled in the art.
- distributed simulation interfaces 55 , 75 , 88 expose an application programming interface (API) for development of the various subsystem model implementations 22 , 24 , 26 , 28 .
- API application programming interface
- the functions in this API allow the subsystem model implementation programmer to control the variables that are imported from and exported to other subsystem simulations.
- MIN model index number
- ADD_PORT name, desc., name—string name for the Declares a channel to be used status
- desc string that provides a variables/messages.
- description status connection status variable
- ADD_PORT_VAR_IN PIN, PIN—port index number Associates an input variable var) var—variable name for input with a port.
- PIN port index number Associates an output variable (PIN, var) var—variable name for output with a port.
- ADD_PARAM name, value
- Parameter name Declares a simulation variable value—initial value that can be set by system monitor 31 and/or control panel 32, 35, 37 when this subsystem simulation is initialized or started. A default value is provided.
- OSCOPE OIN, t_interval, OIN—oscope index number Defines a set of variables for var1, . . . , varN) t_interval—communication export to an OSCOPE interval application and the var1, . . . , varN—variable (simulation) time interval names between samples.
- EXCHANGE PIN, t_interval
- PIN port index number
- t_interval communication Defines the frequency with interval which the model will check for new control panel, system monitor, and remote model data connections.
- COM_CLOSE No Arguments Stops the model from listening for connections and exchanging data; frees computing resources allocated to inter-model communication.
- port index numbers (PINs) and OSCOPE index numbers (OINs) are sequentially assigned, beginning with zero, each time the ADD_PORT or OSCOPE functions, respectively, are called. Then, when an OSCOPE requests a connection to a particular model, the model connects the requesting application (or applet) to the next available OSCOPE index number, if another exists.
- the interval between exchanges of data is set by the programmer of the model using the commands shown in Table 1 before the simulation is executed.
- Exchanges for a given port occur at regular intervals (which may be the same as or different from the intervals used for other ports) in simulation time, using the model time as a frame of reference.
- a real-time or other external frame of reference is used, while in other embodiments, the intervals are dynamically controlled as discussed herein.
- Table 1 The functions shown in Table 1 are provided in various forms to accommodate the various simulation environments that may be available within system 20 .
- the functions may be implemented in a dynamically linked library (.DLL), source code library, device driver, operating system API or other format as would occur to one skilled in the art and be acceptable given the constraints of its implementation environment.
- .DLL dynamically linked library
- FIGS. 7A-7C A message-handling loop for processing simulation control messages appears in FIGS. 7A-7C .
- This example may easily be modified by those skilled in the art to include additional message processing tasks or other events that may occur in a given implementation of the invention.
- non-message-based control mechanisms may be used in various embodiments of the invention.
- loop 300 begins at START point 301 , handles system monitor connection activity in part 310 , handles control panel activity in part 320 , handles commands from the control panel in part 330 , handles incoming model connection requests in part 350 , handles incoming OSCOPE connection activity in part 360 , handles system monitor commands in part 370 , and ends at END point 399 .
- the model confirms at block 312 that it is listening for incoming connection requests from system monitor programs. If it is determined at decision block 314 that a system monitor connection request is pending (positive result), then at block 316 the system monitor attempting to connect is established as the active system monitor for the local model(s). Then, or if no such connection is pending (negative result at decision block 314 ), processing in part 310 ends and loop 300 proceeds to part 320 .
- Loop 300 handles incoming control panel connection activity in part 320 by first confirming in block 321 that the system is listening for incoming control panel connections. If it is determined at decision block 323 that an incoming connection is pending from a control panel application (positive result), the control panel application is established at block 325 as the active control panel. Current parameter and port information for the local model is then sent to that control panel at block 327 , and if a system monitor is active, it is notified of the new connection at block 329 . At that point, or if it is determined at block 323 that no connection from an external control panel is waiting (negative result), loop 300 proceeds beyond part 320 into part 330 .
- Loop 300 handles any pending control panel commands at part 330 . It is determined at decision block 331 whether a control panel is currently connected to the local model. If not (negative result), loop 300 proceeds beyond part 330 (via placeholder A) to part 350 . If it is determined that a control panel is connected (positive result at decision block 331 ), it is determined at decision block 333 whether a command from that control panel is waiting. If not (negative result at decision block 333 ), loop 300 proceeds to part 350 (via placeholder A).
- the command is read at block 335 , and the relevant parameter name and value for a “set parameter” are read at block 337 .
- the given parameter is updated to reflect the new value at block 339 , and if a system monitor is connected, it is notified at block 341 of the update.
- Decision block 343 implements an optional method for connecting/disconnecting remote models via control panel commands. If the parameter read at block 337 is not a valid port index number (“X” result at decision block 343 ), loop 300 proceeds to part 350 (via placeholder A). If the parameter name is a valid and the corresponding port status value is not one (negative result at decision block 343 ), the connection through that port is closed at block 345 , and loop 300 proceeds to part 350 (via placeholder A).
- model connection parameters including, for example, the IP number of the remote model host, the remote model index number, the remote port index number, and the local model index number
- a connection between the identified local model and the identified remote model is then initiated at block 349 , and loop 300 continues with part 350 .
- Loop 300 processes incoming connection requests from other models in part 350 .
- loop 300 handles incoming requests for connections from OSCOPE applications or applets. First, it is confirmed at block 361 that the model is listening for such connections. Then, if no OSCOPE connection request is waiting (negative result at decision block 363 ), loop 300 proceeds to part 370 . If such a request is waiting (positive result at decision block 363 ), the next available OSCOPE identifier is determined at block 365 , and the metadata (the number of variables available via the requested port, the names of those variables, and the name of the model, for example) for that OSCOPE identifier is sent to the OSCOPE application or applet at block 367 . At block 369 , the active system monitor (if one is connected) is notified of the activity. Loop 300 continues with part 370 .
- Commands from the system monitor are processed in part 370 of loop 300 .
- the requested command is read from the system monitor.
- decision block 411 it is determined whether the system monitor is requesting display of parameter and/or port data. If so, the name of the item being requested is read at block 413 . If that name is “PARAMS” or “ALL” (positive result decision block 415 ), the names and corresponding values of each parameter of the model are sent at block 417 to the system monitor. Then (or upon a negative result at decision block 415 ) it is determined at decision block 419 whether the name that was read at block 413 is “PORTS” or “ALL.” If so (positive result at decision block 419 ), the name and status of each port of the model are sent to the system monitor at block 421 .
- command read at block 401 is not a request for display of one or more parameters (i.e., a negative result at block 411 )
- command read at block 401 is also not for registration of a model (negative result at decision block 431 )
- command read at block 401 is also not a request to set a model parameter (negative result at decision block 441 )
- decision block 451 it is determined at decision block 451 whether the command is a request to connect a local model to a remote model. If so (positive result), the parameters for establishing that connection (see above discussion in relation to block 347 ) are read at block 453 . The requested connection between the remote model and the local model is then initiated and established at block 455 . Loop 300 continues at block 447 by sending the values and status of the parameters and ports to the control panel as discussed above, and returns (via placeholder C) to END point 399 .
- the command read at block 401 is not a request to connect a model (negative result at decision block 451 )
- command read at block 401 is determined at decision block 461 not to be a disconnect request, the command is ignored, and loop 300 proceeds (via placeholder C) to END point 399 .
- various embodiments of the present invention may process different, additional, or fewer commands than those discussed in relation to part 400 , as would be understood by those skilled in the art. It should also be noted that those skilled in the art will understand other commands to be available via the control panel other than the “set parameter” command described in relation to FIGS. 7A-7C .
- loop 300 illustrates the simultaneous connection of at most one system monitor and one control panel to a given model. While some embodiments of the present invention may operate with both types of control applications being connected, others may prevent the simultaneous connection of both types of control applications, and others may require both to be connected for certain functionality. Still others may allow multiple instances of one or both types of control applications to a given model.
- loop 300 has been simplified for easier understanding by omitting details relating to communication protocols being used, acknowledgements being sent and/or expected, and error handling. For example, it is preferred that model, port, OSCOPE, and other identification numbers and handles be validated by distributed simulation interfaces 55 , 75 , 88 before they are used. In some embodiments, errors are ignored, while in other embodiments, they cause a log entry to be created, alarm to be set off, and/or the system halted.
- the OSCOPE application facilitates access to particular state-related information of the various models 22 , 24 , 26 , 28 of system 20 .
- a graphical user interface (GUI) 200 comprising control elements 202 , output formatting elements 204 , and graph elements 206 , facilitates user interaction with the OSCOPE application.
- Control elements 202 accept the user's selection of a model host (IP address), model index number (MIN), and output format for the display.
- IP address model host
- MIN model index number
- the OSCOPE application attempts to connect to the selected model.
- the simulation data is received from the selected model, it is displayed in output graphs 206 .
- Various user interface components 204 allow the user to select a wide variety of formats for display, including selecting the variable to graph, scaling the graph in one or more dimensions, automatically scaling the graph using the ranges of data points acquired, displaying repeated traces based on one or more trigger points in one or more signals being graphed, connecting the sample points in the display, and/or transforming the signal through a FFT (fast Fourier transform) to name just a few nonlimiting examples.
- FFT fast Fourier transform
- signal data may be printed in the form of a page, plot, or strip chart by a printer that comprises an “output device” 67 in FIG. 2 .
- FIG. 8 A GUI for use with system 20 is illustrated in FIG. 8 .
- Check box 221 establishes or breaks a connection with a particular model based on user input.
- Model information area 223 reflects the values of the connected model's parameters and the status of the model's ports.
- the “parameter” and “value” fields can be used to change the parameters of the model to which the control panel is connected, while the “Local I/O Port” and “Port Status” elements can be used to connect/disconnect models to/from the model being controlled.
- the IP address, port identification number, and model identification number are entered in area 225 of GUI 220 .
- the “submit” button 227 is selected, and the information is transmitted to the model using methods, techniques and protocols known in the art. Messages received from the connected model as well as any error messages are shown to the user in text box 229 .
- networks shown may also connect devices not shown herein, including but not limited to devices that have no role in the distributed simulation.
- subsystem model implementations 22 , 24 , 26 , 28 are dynamically connected and configured while the model is being executed. In some cases, this dynamic connection simulates physical connection or reconnection of the physical components being modeled in the respective implementations.
- a plurality of simulation programs together simulate a system, each simulation program simulating a different subsystem of the system.
- different persons specify the parameters and data of the various subsystem models that can be viewed and/or controlled by or through other computers in the network.
- FIG. 6 A portion of still another embodiment is shown in FIG. 6 .
- a plurality of computers 251 form a subnetwork 261 in communication with network 21 .
- Each computer 251 models part of a subsystem, while a gateway computer 251 a in the subnetwork 261 serves as a communication gateway for state-related messages sent between the computers in the subnetwork 261 and the rest of the network 21 .
- Gateway computer 251 a may or may not also host one or more models. In some embodiments of this configuration, the simulations taking place on the non-gateway computers 251 occur independently (i.e., without reliance on state information from any other model). In these cases, gateway computer 251 a collects the results of those subsystem simulations, and may aggregate them or pass along the raw data to other models or other components in system 20 .
- a plurality of interrelated simulation programs are executed on a plurality of computers in a network.
- the plurality of interrelated simulation programs operate in parallel and exchange data with each other.
- the various simulation programs are each executed on the same software package (such as ACSL (published by The Aegis Technologies Group, Inc., of Huntsville, Ala., U.S.A.), Saber (published by Avant! Corporation of Fremont, Calif., U.S.A.), MATLAB/SIMULINK, or EASY 5 (published by The Boeing Company of Chicago, Ill., U.S.A.)).
- the various subsystem simulations are executed by a heterogeneous group of software packages (such as an ACSL model on one computer and two MATLAB/SIMULINK models, each on another separate computer).
- the plurality of simulation programs together simulate a real system, wherein each simulation program simulates a different real subsystem of the real system.
- different persons specify the parameters and data of the various simulation programs that can be viewed and/or controlled by or through other computers in the system 20 .
- a computer-readable medium is encoded with programming instructions executable by a first processor to (a) implement a first simulation model having a first state variable, (b) accept a first command signal from a program being executed by another processor, and (c) manage the first simulation model based on the first command signal; likewise, second computer-readable medium is encoded with programming instructions executable by a second processor in communication with an output device to (1) send the first command signal to the first processor, (2) cause the output device to make a first output reflecting information relating to the first state variable over a period of simulation time.
- information relating to the value of one or more state variables in the first simulation are passed to (or received from) the second simulation at regular intervals of real time.
- information relating to the values of one or more state variables in the first simulation are passed to (or received from) the second simulation at regular intervals of simulation time.
- information relating to the values of one or more state variables in the first simulation are passed to (or received from) the second simulation at intervals of simulation time that vary according to the state(s) of one or more models in the system.
- information relating to the values of two or more state variables in the first simulation are passed to (or received from) the second simulation.
- information relating to the values of four or more state variables in the first simulation are passed to (or received from) the second simulation.
- information relating to the values of n ⁇ 2 state variables in the first simulation are passed to (or received from) the second simulation, and at least one message in a series of state-related messages sent by the first simulation contains information relating to the value of each of the n ⁇ 2 state variables.
- information relating to the values of n ⁇ 2 state variables in the first simulation are passed to (or received from) the second simulation, and at least one message in a series of state-related messages sent by the first simulation contains information relating to the value of exactly one of the n state variables.
- one process makes the request, but the first simulation directs the series of state-related messages to a different process.
- a process receives the series of state-related messages and displays (e.g., a graph of a function of a state variable versus [simulation] time) on an output device (e.g., a monitor or printer) information carried by a plurality of the messages in that series.
- an output device e.g., a monitor or printer
- Yet another form of the present invention comprises a plurality of simulations operating on a plurality of computers.
- a system monitor communicates with each simulation, and is capable of configuring, controlling, and/or coordinating each simulation.
- a local control panel applet is also provided for each simulation and is capable of configuring, controlling, and/or coordinating that particular simulation.
- different subsystem model implementations 22 , 24 , 26 , 28 use different techniques and/or parameters for integration. For example, one model might use the finite Euler integration technique with new values being estimated every millisecond, while another uses Runge-Kutta integration with a one microsecond estimation interval. This type of embodiment enables more efficient simulation of systems that include fast-changing and slow-changing signals by “sampling” each subsystem at an appropriate rate without wasting computing resources on frequent sampling of slow-changing signals.
- plug-in components are provided for simulation development, wherein a “black box” element is placed in a subsystem model implementation design to represent one or more other subsystems in the simulation. Parameters are programmed for the “black box” that define the inputs and outputs of the subsystem that will be provided by and to (respectively) the neighboring subsystem.
- the “black box” is represented by a block in a GUI simulation design tool. Fields associated with the “black box” in the subsystem model implementation indicate the networking (e.g., IP address and TCP port number) and signaling (e.g., messaging frequency and availability of variables) parameters for that connection.
- computers 23 , 25 , 27 , 29 , and other computers discussed in this description may comprise additional or alternative components as needed or desired in a particular implementation.
- additional or alternative devices may be connected to network 21 and or subnetwork 261 (see FIGS. 1 and 6 ) without departing from the spirit of this invention.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Multi Processors (AREA)
Abstract
A method and apparatus are presented to facilitate simulation of complex systems on multiple computing devices. Model authors can specify state-related information to be exported for viewing or access by other applications and models. Subsystem models may be written to enable connection with other subsystem models via controlled interfaces, such as by defining state-related information for export and providing for a particular use of data imported from other models to which a subsystem model is connected. In some embodiments, a consistent distributed simulation API enables cross-platform, multi-device simulation of complex systems, wherein the proprietor of each subsystem simulation can keep its implementation secret but accessible to others.
Description
- This application is a continuation of application Ser. No. 09/884,528, filed Jun. 19, 2001, which claims the benefit of U.S. Provisional Application No. 60/212,695, filed Jun. 19, 2000, which are hereby incorporated by reference in their entireties.
- This invention was made with Government support under Contract F33615-99-C-2911 awarded by the U.S. Department of Defense. The United States Government has certain rights in the invention.
- The present invention relates to computer programs that simulate systems. More specifically, the present invention relates to simulation systems using a distributed computer network, wherein subsystems can be simulated independently, the subsystem simulations communicating the values of input/output variables to simulate subsystem interaction. Present methods of simulating complex systems suffer from limitations in security, interoperability, cross-platform communication, and other functional areas. Many simulation platforms fail to enable distributed simulation at all, limiting the complexity of systems that can be modeled as a function of the computing and storage capacity of a single device. Simulation of complex systems (those of a tank or aircraft, for example) in a reasonable time is extremely difficult, if not impossible, using widely available computing systems.
- Furthermore, where multiple vendors are responsible for the various subsystems of a larger system, security and proprietary concerns may inhibit or prevent formation of cooperative simulation systems comprising simulation models of each subsystem provided by each vendor. In some contractual and/or regulatory scenarios, vendors may be forced against their preferences to disclose their simulation models to other vendors or authorities, so that simulations may be conducted of the whole system.
- There is thus a need for further contributions and improvements to distributed simulation technology.
- It is an object of the present invention to provide a novel simulation system. Another object is to provide a simulation system in which various subsystem simulations are written in different languages and executed by different programs running on different computing devices, yet the subsystem simulations communicate to simulate operation of the combination of subsystems. Yet another object is to provide a simulation system in which various parts of the simulation can be executed using different integration methods and/or parameters from other parts of the simulation.
- These objects and others are achieved by various forms of the present invention. One form of the present invention is a unique distributed simulation system. Further forms include a system in which a plurality of processors each executes a separate program to independently simulate a different portion of a physical system. At various points in time, a first one of the processors communicates messages to a second one of the processors to convey information regarding the state of the simulated subsystem at a particular point in simulation time. The second processor uses the state-related information from the first processor to execute its model of the second portion of the system. In some embodiments of this form, the messages are sent at constant intervals in simulation time, while in other embodiments messages are sent at constant intervals in real time. In still other embodiments, the messages are sent at variable intervals depending on the circumstances, such as a function of one or more variables, the pattern of change in one or more variables, detected network congestion or delay, or the behavior of the other state variables (in the first model, second model, another model, or a combination thereof).
- In another form of the invention, one program exposes an interface associated with a first model, while a second program exposes an interface associated with a second model. The first interface permits access by the second program to a program-controlled set of state-related information of the first model, while preventing access by the second model to a substantial portion of the first program or model. In some embodiments of this form, the second program's interface allows the first model to access a program-controlled set of state-related information of the second model, while preventing access by the first model to at least a substantial portion of the second program or model.
- In yet another form of the invention, a system monitor application provides control and coordination of subsystem simulations. In some embodiments of this form, each subsystem model allows itself to be started, stopped, configured, and/or connected with other models by the system monitor application. In other embodiments, a model accepts and serves requests to periodically transmit certain state-related information to one or more data output applications, which may produce one or more graphs of those values (or of a function of those values). In some of these embodiments, a sequence of values of one or more state-related variables is broadcast to a plurality of possible recipients.
-
FIG. 1 is a block diagram of a distributed simulation system. -
FIG. 2 is a block diagram of two embodiments of model host computers in a distributed simulation system. -
FIG. 3 is a block diagram of a system monitor computer and a model host computer in a distributed simulation system. -
FIG. 4 is a flowchart of a distributed simulation. -
FIG. 5 is a sample view of an OSCOPE application in a distributed simulation system. -
FIG. 6 is a schematic view of a portion of a distributed simulation system including a subnetwork arrangement. -
FIGS. 7A-7C are a flowchart of a control message handling loop for use in some distributed simulation systems. -
FIG. 8 is a sample view of a control panel application in a distributed simulation system. - For the purpose of promoting an understanding of the principles of the present invention, reference will now be made to the embodiment illustrated in the drawings and specific language will be used to describe the same. It will, nevertheless, be understood that no limitation of the scope of the invention is thereby intended; any alterations and further modifications of the described or illustrated embodiments, and any further applications of the principles of the invention as illustrated therein are contemplated as would normally occur to one skilled in the art to which the invention relates.
- Generally, the distributed simulation system illustrated in
FIGS. 1-3 provides parallel implementations of various portions or aspects (“subsystems”) of a physical system. In this illustrated embodiment,computer 29 starts, stops, configures, and controls connections and interactions between a plurality ofmodels model host computers model - It should be noted that the present description can most easily be understood in terms of simulation of a physical system with distinct physical subsystems. “System” as used herein, however, is not intended to be limited to a physical arrangement of components. The concept should be understood to include the subject of any simulation. Likewise, a “subsystem” as used in the present application is not necessarily a physically distinct set of components. For example, one independently modeled “subsystem” might be the heat transfer aspects of an item, while another “subsystem” models the electronic aspects of the item.
- The implementation of a model for simulation purposes may be programmed by one or many programmers or organizations of programmers, in the same language as other models in the system, or in a different language.
-
System 20 will now be discussed in further detail with continuing reference toFIG. 1 .Network 21 interconnectscomputers Models distributed simulation system 20 are shown inFIG. 1 in various configurations. A simplemodel host computer 23 runs asingle model 22, which is accessible toother models network 21. - In many embodiments of the invention, however, resources will be available within a single host computer to execute additional applications. A common configuration is shown in relation to
computer 25 ofFIG. 1 . There,model 24 simulates one or more subsystems, andcontrol panel 32 issues start, stop, parameter setting, connection-related, and other commands as will occur to those skilled in the art. OSCOPEapplications model 24 over time. It has been found experimentally that this grouping of applications is a reasonably effective use of resources on a single computer. When the resources required by a model are too great to support the additional applications (for example, if the model were a bottleneck in the simulation system), the other components may be off-loaded from the host computer and executed on a “neighboring” computer on a local-area network, for example. - In some situations, multiple models can be executed on a single computer, as shown in relation to
computer 27 inFIG. 1 .Computer 27 runsmodels - System monitor 31 runs on
computer 29 and controls parameters of and connections betweenmodels control panels simulation system 20. Also running oncomputer 29 is OSCOPE 39, which monitors one or more variables or functions of variables ofmodel 22, for example. - A “system monitor” application 31 (also discussed in more detail below) running on
computer 29 sets parameters of the models, controls the connections between the models, monitors their functioning, and logs relevant facts, parameters, and events in the simulation. Several functions of system monitor 31 will be detailed further below. - Certain functional components of
computers FIG. 2 .Model host computer 23 comprisesprocessor 41, which in one embodiment is a conventional, integrated circuit microprocessor arrangement, such as one or more PENTIUM III or PENTIUM 4 processors (supplied by INTEL Corporation of Santa Clara, Calif., USA), Athlon processors (supplied by Advanced Micro Devices, Inc., of Sunnyvale, Calif., USA), or PowerPC processors (supplied by the Semiconductor Products Sector of Motorola, Inc., of Austin, Tex., USA). -
Storage 43 provides the data storage required bycomputer 23, including for example storage for program, model, log, and other data.Storage 43 may include one or more types of solid-state electronic memory, magnetic memory, or optical memory, just to name a few. By way of non-limiting example,storage 43 may include solid-state electronic Random Access Memory (RAM), Sequentially Accessible Memory (SAM) (such as the First-In, First-Out (FIFO) variety or the Last-In, First-Out (LIFO) variety), Programmable Read-Only Memory (PROM), Electrically Programmable Read-Only Memory (EPROM), or Electrically Erasable Programmable Read-Only Memory (EEPROM); an optical disc memory (such as a DVD or CD-ROM); a magnetically encoded hard disc, floppy disc, tape, or cartridge media; or a combination of any of these memory types. Also,storage 43 may be volatile, nonvolatile, or a hybrid combination of volatile and nonvolatile varieties. - Optional input device(s) 45 may include a keyboard, mouse, track ball, light pen, and/or microphone, to name just a few representative examples. Also, optional output device(s) 47 may include one or more monitors, loudspeakers, printers, and/or other recording devices, again to name just a few representative examples.
-
Operating system 49 is a general-purpose operating system, such as a WINDOWS operating system (published by Microsoft Corporation of Redmond, Wash., USA) or a MAC OS (published by Apple Computer, Inc., of Cupertino, Calif., USA). Other operating systems may be used without undue experimentation by those skilled in the art. - Running on
operating system 49 iscalculation platform 51, which is a general-purpose computation and analysis package such as MATLAB (published by The MathWorks, Inc., of Natick, Mass., USA). Some alternative simulation program and platform configurations are discussed below in relation tocomputers computer 23, however, anadditional simulation toolbox 52 known as SIMULINK (also published by The MathWorks, Inc.) is included to allow the incorporation of the distributed simulation API for thesubsystem model implementation 22.Model 22 is, in this example, written in the MATLAB programming language with references to procedures and/or objects defined in theSIMULINK toolbox 52 and the distributedsimulation interface 55.Interface 55 provides an API comprising functions that enablemodel 22 to programmatically control connections from other computing devices and to process data exchanged through them, as discussed further herein. -
Computer 25 is controlled byprocessor 61 using programs stored in storage 63 (whereprocessor 61 andstorage 63 may be of any suitable type, as discussed above in relation toprocessor 41 andstorage 43, respectively). Optional output device(s) 67 and optional input device(s) 65 again facilitate interaction with human users.Operating system 69 is, in this example, aWINDOWS 2000 operating system, published by Microsoft Corporation.Model 24 executes onOS 69 as a stand-alone application written in one or more system programming languages, such as C, C++, Fortran, Visual Basic, or JAVA. -
Browser 71 enables access to and viewing of resources available throughnetwork 21, such as Hypertext Markup Language (HTML) files and JAVA applets (such as system control applet 32).Browser 71 may be, for example, Netscape Navigator (published by Sun Microsystems, Inc., of Palo Alto, Calif., USA).OSCOPE applications model 24 and send it as output to the user via output device(s) 67. Likeinterface 55, distributedsimulation interface 75 provides communication-related functionality to model 24. -
FIG. 3 shows the components ofcomputers 27 and 29 (see alsoFIG. 1 ). Incomputer 27,storage 83, optional input device(s) 85, and optional output device(s) 87 are analogous to (though not necessarily the same as) 43, 45, and 47. Here, again,subsystem model implementations Processor 81 is a custom-designed, application-specific integrated circuit (ASIC) specially adapted for simulation computations. A custom-designedsimulation operating system 89 runssubsystem model implementations system 20 via distributedsimulation interface 88.Control panel application 35 andOSCOPE application 36 connect to model 26 and run onsimulation operating system 89, which also runscontrol panel 37 andOSCOPE 38 in conjunction withmodel 28.System monitor application 31 runs on operatingsystem 99 to provide command and control functionality forsystem 20 as summarized above and discussed in more detail below.OSCOPE application 39 also runs on operatingsystem 99, displaying to the user atcomputer 29 an output of state-related information frommodel 22 on computer 23 (seeFIG. 1 ). -
Computer 29 includesprocessor 91,storage 93, input device(s) 95, and output device(s) 97 (analogous to, but not necessarily the same as, corresponding components incomputer 23; namely,components Operating system 99 is, for example, a UNIX or UNIX-like operating system such as Red Hat Linux (published by Red Hat, Inc., of Durham, N.C., USA). - While the above description relating to
FIGS. 1-3 illustrates several uses and arrangements of computing resources, and several illustrations of connections and relationships among components, applications, applets, models, and other physical and functional parts ofsystem 20, it should be noted that those skilled in the art will be able to implement distributed simulation systems according to the present invention with these or other physical and/or virtual configurations. For example, any functionality described herein can be implemented in any computing device in communication with at least one other component in the system. - The process for carrying out a simulation according to one embodiment of the present invention will now be discussed in broad terms in relation to
FIG. 4 , with continuing reference to items shown in and discussed in relation toFIGS. 1-3 . Additional detail regarding the control of connections among models in a selected embodiment of the present invention will be discussed below in relation toFIGS. 7A-7C . Theprocess 100 inFIG. 4 starts atSTART point 101. The various models are started atblock 110. In various embodiments, this event may be initiated for each model by an action of a local user (such as a gesture in a desktop graphical user interface (GUI)), by a remote user (for example, through a web browser or by way of another signal), or by an automated process (such as invocation by a task scheduler), to name just a few possible triggers. In some of these embodiments, theoperating system calculation platform 51,simulation toolbox 52,subsystem model implementations simulation interface software - At
block 120, parameters (such as capacitance of a capacitor, or density of fuel in the system being simulated) for thevarious models application 31 or thecontrol panel - Models may be connected to and/or disconnected from other models at
block 130, again under the control of system monitor 31 or the model'srespective control panel local storage - Connected models exchange control and state-related information at
block 140 and export state-related information to an OSCOPE or other monitoring process at block 150. In the example embodiment shown inFIGS. 1-3 ,subsystem model implementation 24 receives state-related messages fromsubsystem model implementation 22 that communicate information relating to one or more state variables fromsubsystem model implementation 22.Subsystem model implementation 24 then uses that information in its simulation. For example,subsystem model implementation 24 will, in some implementations, use the information from the state-related messages as an input to the subsystem being simulated. In some of these embodiments, state-related messages fromsubsystem model implementation 24 tosubsystem model implementation 22 provide information relating to one or more state variables insubsystem model implementation 24 as input(s) to the operation ofsubsystem model implementation 22. - Other commands are processed by the models at
block 160, and it is determined atdecision block 170 whether thesystem 20 should continue operation. If so,process 100 returns to the beginning of the command processing loop atblock 120. Ifsystem 20 is not to continue operation (negative result) atdecision block 170, theprocess 100 is ended atEND point 199. - While
process 100 is illustrated inFIG. 4 as a linear, single-threaded task, it may be implemented in a multi-threaded form, on multiple computing devices, or with an alternative control flow, as would occur to one skilled in the art. - In this exemplary embodiment, distributed
simulation interfaces subsystem model implementations -
TABLE 1 Function Arguments Description COM_INIT (MIN) MIN—model index number Initialize a model for distributed processing. ADD_PORT (name, desc., name—string name for the Declares a channel to be used status) port for input and/or output desc—string that provides a variables/messages. description status—connection status variable ADD_PORT_VAR_IN (PIN, PIN—port index number Associates an input variable var) var—variable name for input with a port. from port ADD_PORT_VAR_OUT PIN—port index number Associates an output variable (PIN, var) var—variable name for output with a port. to port ADD_PARAM (name, value) name—parameter name Declares a simulation variable value—initial value that can be set by system monitor 31 and/or control panel 32, 35, 37 when this subsystem simulation is initialized or started. A default value is provided. OSCOPE (OIN, t_interval, OIN—oscope index number Defines a set of variables for var1, . . . , varN) t_interval—communication export to an OSCOPE interval application and the var1, . . . , varN—variable (simulation) time interval names between samples. EXCHANGE (PIN, t_interval) PIN—port index number Sets the rate of data exchange t_interval—communication for a given port. interval COM_LISTEN (t_interval) t_interval—communication Defines the frequency with interval which the model will check for new control panel, system monitor, and remote model data connections. COM_CLOSE No Arguments Stops the model from listening for connections and exchanging data; frees computing resources allocated to inter-model communication.
In this exemplary embodiment, port index numbers (PINs) and OSCOPE index numbers (OINs) are sequentially assigned, beginning with zero, each time the ADD_PORT or OSCOPE functions, respectively, are called. Then, when an OSCOPE requests a connection to a particular model, the model connects the requesting application (or applet) to the next available OSCOPE index number, if another exists. - Thus, in the illustrated embodiment, the interval between exchanges of data is set by the programmer of the model using the commands shown in Table 1 before the simulation is executed. Exchanges for a given port occur at regular intervals (which may be the same as or different from the intervals used for other ports) in simulation time, using the model time as a frame of reference. In some alternative embodiments, a real-time or other external frame of reference is used, while in other embodiments, the intervals are dynamically controlled as discussed herein.
- The functions shown in Table 1 are provided in various forms to accommodate the various simulation environments that may be available within
system 20. For example, the functions may be implemented in a dynamically linked library (.DLL), source code library, device driver, operating system API or other format as would occur to one skilled in the art and be acceptable given the constraints of its implementation environment. - A message-handling loop for processing simulation control messages appears in
FIGS. 7A-7C . This example may easily be modified by those skilled in the art to include additional message processing tasks or other events that may occur in a given implementation of the invention. Furthermore, non-message-based control mechanisms may be used in various embodiments of the invention. - A
message handling loop 300 for a given model will now be described in relation toFIGS. 7A-7C . To summarize,loop 300 begins atSTART point 301, handles system monitor connection activity inpart 310, handles control panel activity inpart 320, handles commands from the control panel inpart 330, handles incoming model connection requests in part 350, handles incoming OSCOPE connection activity inpart 360, handles system monitor commands inpart 370, and ends atEND point 399. - In
part 310 ofloop 300, the model confirms atblock 312 that it is listening for incoming connection requests from system monitor programs. If it is determined atdecision block 314 that a system monitor connection request is pending (positive result), then atblock 316 the system monitor attempting to connect is established as the active system monitor for the local model(s). Then, or if no such connection is pending (negative result at decision block 314), processing inpart 310 ends andloop 300 proceeds topart 320. -
Loop 300 handles incoming control panel connection activity inpart 320 by first confirming inblock 321 that the system is listening for incoming control panel connections. If it is determined atdecision block 323 that an incoming connection is pending from a control panel application (positive result), the control panel application is established atblock 325 as the active control panel. Current parameter and port information for the local model is then sent to that control panel atblock 327, and if a system monitor is active, it is notified of the new connection atblock 329. At that point, or if it is determined atblock 323 that no connection from an external control panel is waiting (negative result),loop 300 proceeds beyondpart 320 intopart 330. -
Loop 300 handles any pending control panel commands atpart 330. It is determined atdecision block 331 whether a control panel is currently connected to the local model. If not (negative result),loop 300 proceeds beyond part 330 (via placeholder A) to part 350. If it is determined that a control panel is connected (positive result at decision block 331), it is determined at decision block 333 whether a command from that control panel is waiting. If not (negative result at decision block 333),loop 300 proceeds to part 350 (via placeholder A). - If it is determined at decision block 333 that a command is waiting (positive result), the command is read at
block 335, and the relevant parameter name and value for a “set parameter” are read atblock 337. The given parameter is updated to reflect the new value atblock 339, and if a system monitor is connected, it is notified atblock 341 of the update. -
Decision block 343 implements an optional method for connecting/disconnecting remote models via control panel commands. If the parameter read atblock 337 is not a valid port index number (“X” result at decision block 343),loop 300 proceeds to part 350 (via placeholder A). If the parameter name is a valid and the corresponding port status value is not one (negative result at decision block 343), the connection through that port is closed atblock 345, andloop 300 proceeds to part 350 (via placeholder A). - If the port status value is one (positive result at decision block 343), model connection parameters (including, for example, the IP number of the remote model host, the remote model index number, the remote port index number, and the local model index number) are read from the control panel at
block 347. A connection between the identified local model and the identified remote model is then initiated atblock 349, andloop 300 continues with part 350. -
Loop 300 processes incoming connection requests from other models in part 350. Atblock 351, it is confirmed that the server is listening for model connection requests. If such a request is not waiting (negative result at decision block 353),loop 300 proceeds topart 360. If a model connection request is waiting (positive result at decision block 353), the requested PIN is read atblock 355, and a connection to the remote model is finalized at block 357. The internal port status is then updated at block 359, andloop 300 proceeds topart 360. - In
part 360,loop 300 handles incoming requests for connections from OSCOPE applications or applets. First, it is confirmed atblock 361 that the model is listening for such connections. Then, if no OSCOPE connection request is waiting (negative result at decision block 363),loop 300 proceeds topart 370. If such a request is waiting (positive result at decision block 363), the next available OSCOPE identifier is determined atblock 365, and the metadata (the number of variables available via the requested port, the names of those variables, and the name of the model, for example) for that OSCOPE identifier is sent to the OSCOPE application or applet atblock 367. At block 369, the active system monitor (if one is connected) is notified of the activity.Loop 300 continues withpart 370. - Commands from the system monitor (if one is connected) are processed in
part 370 ofloop 300. First, it is checked atblock 371 whether a system monitor is, indeed, connected. If not (negative result),loop 300 ends atEND point 399. If a system monitor is connected (positive result at decision block 371), it is determined atdecision block 373 whether a command from that system monitor is waiting to be processed. If no system monitor command is waiting (negative result at decision block 373),loop 300 terminates atEND point 399. If a command is waiting (positive result at decision block 373),loop 300 proceeds (via placeholder B) topart 400, shown inFIG. 7C . When processing inpart 400 is complete,loop 300 reachesEND point 399 and terminates, or repeats by beginning again atSTART point 301. - At
block 401 inloop 400 shown inFIG. 7C , the requested command is read from the system monitor. Atdecision block 411, it is determined whether the system monitor is requesting display of parameter and/or port data. If so, the name of the item being requested is read atblock 413. If that name is “PARAMS” or “ALL” (positive result decision block 415), the names and corresponding values of each parameter of the model are sent atblock 417 to the system monitor. Then (or upon a negative result at decision block 415) it is determined atdecision block 419 whether the name that was read atblock 413 is “PORTS” or “ALL.” If so (positive result at decision block 419), the name and status of each port of the model are sent to the system monitor at block 421. If, however, the result atdecision block 419 is negative, the name and value of the specified (at block 413) parameter are sent to the system monitor atblock 423. After the actions of either block 421 or 423,loop 300 returns (via placeholder C) to theEND point 399. - If the command read at
block 401 is not a request for display of one or more parameters (i.e., a negative result at block 411), it is determined atdecision block 431 whether the command is for the registration of a model. If so, the model name is read atblock 433 and the model is registered atblock 435.Loop 300 then returns (via placeholder C) toEND point 399. - If the command read at
block 401 is also not for registration of a model (negative result at decision block 431), it is determined atdecision block 441 whether the command was a request to set a parameter value. If so (positive result), the name and new value are read atblock 443, and the value of the specified parameter is updated atblock 445. Then, for logging, debugging, or other purposes, the names and values of all parameters and ports are sent to the control panel at block 447.Loop 300 then returns (via placeholder C) toEND point 399. - If the command read at
block 401 is also not a request to set a model parameter (negative result at decision block 441), it is determined atdecision block 451 whether the command is a request to connect a local model to a remote model. If so (positive result), the parameters for establishing that connection (see above discussion in relation to block 347) are read atblock 453. The requested connection between the remote model and the local model is then initiated and established at block 455.Loop 300 continues at block 447 by sending the values and status of the parameters and ports to the control panel as discussed above, and returns (via placeholder C) toEND point 399. - If the command read at
block 401 is not a request to connect a model (negative result at decision block 451), it is determined atblock 461 whether the command is to disconnect a model. If so (positive result), the port to disconnect is read atblock 463. It is then determined atdecision block 465 whether all ports have been requested to be disconnected. If so (positive result), all ports are closed atblock 467 andloop 300 proceeds with a report to the control panel of parameter and port information at block 447, discussed above. If a specific port was requested to be closed (negative result at decision block 465), that specific port is closed atblock 469, andloop 300 continues with the report of parameter and port information at block 447, discussed above. - If the command read at
block 401 is determined atdecision block 461 not to be a disconnect request, the command is ignored, andloop 300 proceeds (via placeholder C) toEND point 399. It should be noted that various embodiments of the present invention may process different, additional, or fewer commands than those discussed in relation topart 400, as would be understood by those skilled in the art. It should also be noted that those skilled in the art will understand other commands to be available via the control panel other than the “set parameter” command described in relation toFIGS. 7A-7C . - It may also be observed that
loop 300 illustrates the simultaneous connection of at most one system monitor and one control panel to a given model. While some embodiments of the present invention may operate with both types of control applications being connected, others may prevent the simultaneous connection of both types of control applications, and others may require both to be connected for certain functionality. Still others may allow multiple instances of one or both types of control applications to a given model. - It should also be noted that the discussion of
loop 300 has been simplified for easier understanding by omitting details relating to communication protocols being used, acknowledgements being sent and/or expected, and error handling. For example, it is preferred that model, port, OSCOPE, and other identification numbers and handles be validated by distributedsimulation interfaces - An exemplary embodiment of an OSCOPE application according to one form of the present invention will now be discussed with reference to
FIG. 5 . The OSCOPE application facilitates access to particular state-related information of thevarious models system 20. A graphical user interface (GUI) 200, comprisingcontrol elements 202, output formatting elements 204, andgraph elements 206, facilitates user interaction with the OSCOPE application.Control elements 202 accept the user's selection of a model host (IP address), model index number (MIN), and output format for the display. When the user selects the “connect” check box, the OSCOPE application attempts to connect to the selected model. - As the simulation data is received from the selected model, it is displayed in
output graphs 206. Various user interface components 204 allow the user to select a wide variety of formats for display, including selecting the variable to graph, scaling the graph in one or more dimensions, automatically scaling the graph using the ranges of data points acquired, displaying repeated traces based on one or more trigger points in one or more signals being graphed, connecting the sample points in the display, and/or transforming the signal through a FFT (fast Fourier transform) to name just a few nonlimiting examples. In this illustration, the output is graphed ingraphs 206, which can be saved on any appropriate medium in any appropriate format, including for example a graphics file on a magnetic disk. It will be understood by those skilled in the art that alternative selection, control, and output forms and techniques may be used as required or desired in a particular embodiment. For example, signal data may be printed in the form of a page, plot, or strip chart by a printer that comprises an “output device” 67 inFIG. 2 . - A GUI for use with
system 20 is illustrated inFIG. 8 . Checkbox 221 establishes or breaks a connection with a particular model based on user input.Model information area 223 reflects the values of the connected model's parameters and the status of the model's ports. The “parameter” and “value” fields can be used to change the parameters of the model to which the control panel is connected, while the “Local I/O Port” and “Port Status” elements can be used to connect/disconnect models to/from the model being controlled. When it is desired to connect to a remote model, the IP address, port identification number, and model identification number are entered inarea 225 ofGUI 220. In this embodiment, each time the user desires to submit information to the model, the “submit”button 227 is selected, and the information is transmitted to the model using methods, techniques and protocols known in the art. Messages received from the connected model as well as any error messages are shown to the user intext box 229. - As will be apparent to those skilled in the art, traditional and/or alternative components may exist in or be attached to any of the computing devices discussed in this description. Similarly, the networks shown may also connect devices not shown herein, including but not limited to devices that have no role in the distributed simulation.
- In one alternative embodiment of the invention,
subsystem model implementations - In another alternative embodiment, a plurality of simulation programs together simulate a system, each simulation program simulating a different subsystem of the system. In yet another embodiment, different persons specify the parameters and data of the various subsystem models that can be viewed and/or controlled by or through other computers in the network.
- A portion of still another embodiment is shown in
FIG. 6 . A plurality ofcomputers 251 form asubnetwork 261 in communication withnetwork 21. Eachcomputer 251 models part of a subsystem, while agateway computer 251 a in thesubnetwork 261 serves as a communication gateway for state-related messages sent between the computers in thesubnetwork 261 and the rest of thenetwork 21.Gateway computer 251 a may or may not also host one or more models. In some embodiments of this configuration, the simulations taking place on thenon-gateway computers 251 occur independently (i.e., without reliance on state information from any other model). In these cases,gateway computer 251 a collects the results of those subsystem simulations, and may aggregate them or pass along the raw data to other models or other components insystem 20. - In another form of the present invention, a plurality of interrelated simulation programs are executed on a plurality of computers in a network. The plurality of interrelated simulation programs operate in parallel and exchange data with each other. In some embodiments of this form, the various simulation programs are each executed on the same software package (such as ACSL (published by The Aegis Technologies Group, Inc., of Huntsville, Ala., U.S.A.), Saber (published by Avant! Corporation of Fremont, Calif., U.S.A.), MATLAB/SIMULINK, or EASY 5 (published by The Boeing Company of Chicago, Ill., U.S.A.)). In other embodiments of this form, the various subsystem simulations are executed by a heterogeneous group of software packages (such as an ACSL model on one computer and two MATLAB/SIMULINK models, each on another separate computer).
- In one embodiment of this form, the plurality of simulation programs together simulate a real system, wherein each simulation program simulates a different real subsystem of the real system. In another embodiment of this form, different persons specify the parameters and data of the various simulation programs that can be viewed and/or controlled by or through other computers in the
system 20. - In another form of the present invention, a computer-readable medium is encoded with programming instructions executable by a first processor to (a) implement a first simulation model having a first state variable, (b) accept a first command signal from a program being executed by another processor, and (c) manage the first simulation model based on the first command signal; likewise, second computer-readable medium is encoded with programming instructions executable by a second processor in communication with an output device to (1) send the first command signal to the first processor, (2) cause the output device to make a first output reflecting information relating to the first state variable over a period of simulation time. In one embodiment of this form of the invention, information relating to the value of one or more state variables in the first simulation are passed to (or received from) the second simulation at regular intervals of real time. In another embodiment of this form, information relating to the values of one or more state variables in the first simulation are passed to (or received from) the second simulation at regular intervals of simulation time. In yet another embodiment of this form, information relating to the values of one or more state variables in the first simulation are passed to (or received from) the second simulation at intervals of simulation time that vary according to the state(s) of one or more models in the system. In still another embodiment of this form, information relating to the values of two or more state variables in the first simulation are passed to (or received from) the second simulation. In a further embodiment, information relating to the values of four or more state variables in the first simulation are passed to (or received from) the second simulation. In a still further embodiment of this form, information relating to the values of n≧2 state variables in the first simulation are passed to (or received from) the second simulation, and at least one message in a series of state-related messages sent by the first simulation contains information relating to the value of each of the n≧2 state variables. In a yet further embodiment, information relating to the values of n≧2 state variables in the first simulation are passed to (or received from) the second simulation, and at least one message in a series of state-related messages sent by the first simulation contains information relating to the value of exactly one of the n state variables. In other embodiments of this form, one process makes the request, but the first simulation directs the series of state-related messages to a different process. In yet another embodiment, a process receives the series of state-related messages and displays (e.g., a graph of a function of a state variable versus [simulation] time) on an output device (e.g., a monitor or printer) information carried by a plurality of the messages in that series.
- Yet another form of the present invention comprises a plurality of simulations operating on a plurality of computers. A system monitor communicates with each simulation, and is capable of configuring, controlling, and/or coordinating each simulation. In one embodiment of this form, a local control panel applet is also provided for each simulation and is capable of configuring, controlling, and/or coordinating that particular simulation.
- In some embodiments, different
subsystem model implementations - In some embodiments, plug-in components are provided for simulation development, wherein a “black box” element is placed in a subsystem model implementation design to represent one or more other subsystems in the simulation. Parameters are programmed for the “black box” that define the inputs and outputs of the subsystem that will be provided by and to (respectively) the neighboring subsystem. In some of these embodiments, the “black box” is represented by a block in a GUI simulation design tool. Fields associated with the “black box” in the subsystem model implementation indicate the networking (e.g., IP address and TCP port number) and signaling (e.g., messaging frequency and availability of variables) parameters for that connection.
- It will be understood by those skilled in the art that
computers FIGS. 1 and 6 ) without departing from the spirit of this invention. - All publications, prior applications, and other documents cited herein are hereby incorporated by reference in their entirety as if each had been individually incorporated by reference and fully set forth.
- While the invention has been illustrated and described in detail in the drawings and foregoing description, the same is to be considered as illustrative and not restrictive in character, it being understood that only the preferred embodiments have been shown and described and that all changes and modifications that would occur to one skilled in the relevant art are desired to be protected.
Claims (5)
1. A computer-implemented method for simulating operation of a physical system having a plurality of physical subsystems, comprising:
simulating a first physical subsystem with a first continuous-time simulation on a first physical computing device;
accepting a request for export of information relating to a number n of state-related variables that characterize the state of the first physical subsystem in said simulating;
sending a first series of state-related messages, each message containing information relating to the value of at least one of the n state-related variables;
simulating a second physical subsystem with a second continuous-time simulation on a second physical computing device;
receiving in said second continuous-time simulation said first series of state-related messages from said first continuous-time simulation without said first series of state-related messages passing through a central communication process;
outputing data representative of a state of the second continuous-time simulation; wherein:
the first physical subsystem interacts with the second physical subsystem;
the at least one state-related variable characterizes at least a portion of the interaction between the first physical subsystem and the second physical subsystem; and
the number n is at least two; and
sending a third series of state-related numerical values, wherein:
at least one numerical value in the first series of state-related numerical values contains information relating to the values of a first proper subset of the set containing all n state-related variables;
at least one numerical value in the third series of state-related numerical values contains information relating to the values of a second proper subset of the set containing all n state variables, and
the second proper subset is different from the first proper subset;
wherein:
the messages in the first series of state-related numerical values are sampled at a first rate in simulation time in the first simulation;
the numerical values in the third series of state-related numerical values are sampled at a second rate in simulation time in the first simulation; and
the first rate and the second rate are not equal.
2. A computer-implemented method for simulating operation of a physical system having a plurality of physical subsystems, comprising:
simulating a first physical subsystem with a first continuous-time simulation on a first physical computing device;
accepting a request for export of information relating to a number n of state-related variables that characterize the state of the first physical subsystem in said simulating;
sending a first series of state-related messages, each message containing information relating to the value of at least one of the n state-related variables;
simulating a second physical subsystem with a second continuous-time simulation on a second physical computing device;
receiving in said second continuous-time simulation said first series of state-related messages from said first continuous-time simulation without said first series of state-related messages passing through a central communication process;
outputing data representative of a state of the second continuous-time simulation; wherein:
the first physical subsystem interacts with the second physical subsystem;
the at least one state-related variable characterizes at least a portion of the interaction between the first physical subsystem and the second physical subsystem; and
the number n is at least two; and
sending a third series of state-related numerical values, wherein:
at least one numerical value in the first series of state-related numerical values contains information relating to the values of a first proper subset of the set containing all n state-related variables;
at least one numerical value in the third series of state-related numerical values contains information relating to the values of a second proper subset of the set containing all n state variables, and
the second proper subset is different from the first proper subset;
wherein:
the numerical values in the first series of state-related numerical values are sampled at a first rate in simulation time in the first simulation;
the numerical values in the third series of state-related numerical values are sampled at a second rate in simulation time in the first simulation; and
the first rate and the second rate are equal.
3. A computer-implemented method for simulating operation of a physical system having a plurality of physical subsystems, comprising:
simulating a first physical subsystem with a first continuous-time simulation on a first physical computing device;
accepting a request for export of information relating to a number n of state-related variables that characterize the state of the first physical subsystem in said simulating;
sending a first series of state-related messages, each message containing information relating to the value of at least one of the n state-related variables;
simulating a second physical subsystem with a second continuous-time simulation on a second physical computing device;
receiving in said second continuous-time simulation said first series of state-related messages from said first continuous-time simulation without said first series of state-related messages passing through a central communication process;
outputing data representative of a state of the second continuous-time simulation; wherein:
the first physical subsystem interacts with the second physical subsystem; and
the at least one state-related variable characterizes at least a portion of the interaction between the first physical subsystem and the second physical subsystem;
receiving the first series of state-related numerical values in a first output process in communication with a first output device; and
sending to the first output device a first set of information carried by a plurality of numerical values in the first series of state-related numerical values;
wherein the first output device is in communication with the first output process;
wherein said displaying comprises graphing a function of the first state-related variable versus an independent variable;
wherein the independent variable is time.
4. A computer-implemented method for simulating operation of a physical system having a plurality of physical subsystems, comprising:
simulating a first physical subsystem with a first continuous-time simulation on a first physical computing device;
accepting a request for export of information relating to a number n of state-related variables that characterize the state of the first physical subsystem in said simulating;
sending a first series of state-related messages, each message containing information relating to the value of at least one of the n state-related variables;
simulating a second physical subsystem with a second continuous-time simulation on a second physical computing device;
receiving in said second continuous-time simulation said first series of state-related messages from said first continuous-time simulation without said first series of state-related messages passing through a central communication process;
outputing data representative of a state of the second continuous-time simulation; wherein:
the first physical subsystem interacts with the second physical subsystem; and
the at least one state-related variable characterizes at least a portion of the interaction between the first physical subsystem and the second physical subsystem;
receiving the first series of state-related numerical values in a first output process in communication with a first output device; and
sending to the first output device a first set of information carried by a plurality of numerical values in the first series of state-related numerical values;
wherein the first output device is in communication with the first output process;
wherein said displaying comprises graphing a function of the first state-related variable versus an independent variable;
wherein the independent variable is one of the n state-related variables.
5. A computer-implemented method for simulating operation of a physical system having a plurality of physical subsystems, comprising:
simulating a first physical subsystem with a first continuous-time simulation on a first physical computing device;
accepting a request for export of information relating to a number n of state-related variables that characterize the state of the first physical subsystem in said simulating;
sending a first series of state-related messages, each message containing information relating to the value of at least one of the n state-related variables;
simulating a second physical subsystem with a second continuous-time simulation on a second physical computing device;
receiving in said second continuous-time simulation said first series of state-related messages from said first continuous-time simulation without said first series of state-related messages passing through a central communication process;
outputing data representative of a state of the second continuous-time simulation; wherein:
the first physical subsystem interacts with the second physical subsystem; and
the at least one state-related variable characterizes at least a portion of the interaction between the first physical subsystem and the second physical subsystem;
receiving the first series of state-related numerical values in a first output process in communication with a first output device; and
sending to the first output device a first set of information carried by a plurality of numerical values in the first series of state-related numerical values;
wherein the first output device is in communication with the first output process;
wherein said displaying comprises graphing a function of the first state-related variable versus an independent variable;
wherein the independent variable is a state-related variable in the simulation of the second physical subsystem.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/332,073 US20090164200A1 (en) | 2000-06-19 | 2008-12-10 | Distributed simulation |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US21269500P | 2000-06-19 | 2000-06-19 | |
US09/884,528 US7490029B2 (en) | 2000-06-19 | 2001-06-19 | Distributed simulation |
US12/332,073 US20090164200A1 (en) | 2000-06-19 | 2008-12-10 | Distributed simulation |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/884,528 Continuation US7490029B2 (en) | 2000-06-19 | 2001-06-19 | Distributed simulation |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090164200A1 true US20090164200A1 (en) | 2009-06-25 |
Family
ID=22792086
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/884,528 Expired - Lifetime US7490029B2 (en) | 2000-06-19 | 2001-06-19 | Distributed simulation |
US12/332,073 Abandoned US20090164200A1 (en) | 2000-06-19 | 2008-12-10 | Distributed simulation |
US12/332,066 Abandoned US20100017179A1 (en) | 2000-06-19 | 2008-12-10 | Distributed simulation |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/884,528 Expired - Lifetime US7490029B2 (en) | 2000-06-19 | 2001-06-19 | Distributed simulation |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/332,066 Abandoned US20100017179A1 (en) | 2000-06-19 | 2008-12-10 | Distributed simulation |
Country Status (8)
Country | Link |
---|---|
US (3) | US7490029B2 (en) |
EP (1) | EP1301846A4 (en) |
JP (1) | JP2004510219A (en) |
CN (1) | CN100520720C (en) |
AU (1) | AU2001272014A1 (en) |
CA (1) | CA2412816C (en) |
DE (1) | DE01951081T1 (en) |
WO (1) | WO2001098871A2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126338A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1301846A4 (en) * | 2000-06-19 | 2006-03-22 | P C Krause And Associates Inc | Distributed simulation |
US7062749B2 (en) * | 2000-12-15 | 2006-06-13 | Promenix, Inc. | Measuring, monitoring and tracking enterprise communications and processes |
US7865349B2 (en) * | 2001-01-19 | 2011-01-04 | National Instruments Corporation | Simulation, measurement and/or control system and method with coordinated timing |
CA2477187C (en) | 2002-02-25 | 2011-08-02 | Loma Linda University | System for building interactive calculations on web pages |
JP2003308471A (en) * | 2002-04-15 | 2003-10-31 | Hitachi Ltd | Simulation method and system |
US7158925B2 (en) * | 2002-04-18 | 2007-01-02 | International Business Machines Corporation | Facilitating simulation of a model within a distributed environment |
US7379857B2 (en) * | 2002-05-10 | 2008-05-27 | Lockheed Martin Corporation | Method and system for simulating computer networks to facilitate testing of computer network security |
JP2004094738A (en) * | 2002-09-02 | 2004-03-25 | Toshiba Corp | Distributed simulation system |
US8726278B1 (en) | 2004-07-21 | 2014-05-13 | The Mathworks, Inc. | Methods and system for registering callbacks and distributing tasks to technical computing works |
US7620537B2 (en) | 2004-06-14 | 2009-11-17 | Raytheon Company | Distributed communications effects module |
DE102004033593A1 (en) * | 2004-07-07 | 2006-02-02 | Siemens Ag | Method for simulating a technical plant |
US7908313B2 (en) * | 2004-07-21 | 2011-03-15 | The Mathworks, Inc. | Instrument-based distributed computing systems |
US7743361B2 (en) * | 2004-09-20 | 2010-06-22 | The Mathworks, Inc. | Providing block state information for a model based development process |
US8812269B1 (en) * | 2004-12-13 | 2014-08-19 | The Mathworks, Inc. | Dynamic range assessment in block diagram systems |
US8855981B2 (en) * | 2004-12-13 | 2014-10-07 | The Mathworks, Inc. | Tools for system-level design environments |
FR2880150B1 (en) * | 2004-12-23 | 2007-04-27 | Thales Sa | DEVICE AND METHOD FOR FEDERING AND INTEGRATING REAL OR SIMULATED SYSTEMS TO SIMULATE THE BEHAVIOR OF THE SYSTEMS SYSTEM OR A GENERATED SYSTEM THUS CREATED |
CN100384159C (en) * | 2005-04-02 | 2008-04-23 | 华为技术有限公司 | Emulation method for evaluating system treatment ability |
US20060235665A1 (en) * | 2005-04-19 | 2006-10-19 | General Electric Company | Methods and systems for operating engine cycle models |
DE102005026040B4 (en) * | 2005-06-03 | 2014-11-06 | Dspace Digital Signal Processing And Control Engineering Gmbh | Parameterization of a simulation working model |
JP2006343942A (en) * | 2005-06-08 | 2006-12-21 | Nec Electronics Corp | Bus system design method and device |
US8127311B2 (en) * | 2005-11-09 | 2012-02-28 | The Mathworks, Inc. | Abstract interface for unified communications with dynamic models |
WO2007079984A1 (en) * | 2006-01-09 | 2007-07-19 | Thales | Device and method for federating and integrating real or simulated systems in order to simulate the behaviour of the thus developed system |
HU0600034D0 (en) * | 2006-01-16 | 2006-03-28 | Kaposvari Egyetem | Process simulation software and hardware architecture and method |
US8323024B2 (en) * | 2006-02-13 | 2012-12-04 | The Boeing Company | System for trouble shooting and controlling signals to and from an aircraft simulator |
IL173711A (en) * | 2006-02-13 | 2010-11-30 | Rafael Advanced Defense Sys | Real time simulating method and system |
CN100373351C (en) * | 2006-04-13 | 2008-03-05 | 电子科技大学 | High speed synergy emulation method for transaction-grade software and hardware |
WO2007130933A2 (en) * | 2006-05-01 | 2007-11-15 | Jeffrey W Bezanson | Apparatuses, methods and systems for vector operations and storage in matrix models |
JP4987382B2 (en) * | 2006-08-09 | 2012-07-25 | 富士通テン株式会社 | Distributed simulation system, simulator identification method, and distributed simulation system management apparatus |
CN100410887C (en) * | 2006-09-18 | 2008-08-13 | 中国航天时代电子公司第七七一研究所 | Structuring method of distributed type simulated testing system series based on signal classification |
US7974827B2 (en) | 2007-04-23 | 2011-07-05 | Microsoft Corporation | Resource model training |
US7996204B2 (en) * | 2007-04-23 | 2011-08-09 | Microsoft Corporation | Simulation using resource models |
US7877250B2 (en) | 2007-04-23 | 2011-01-25 | John M Oslake | Creation of resource models |
US20090006448A1 (en) * | 2007-06-28 | 2009-01-01 | Microsoft Corporation | Automated model generator |
US8296490B2 (en) | 2007-06-29 | 2012-10-23 | Intel Corporation | Method and apparatus for improving the efficiency of interrupt delivery at runtime in a network system |
CN100530103C (en) * | 2007-12-29 | 2009-08-19 | 中国科学院计算技术研究所 | Simulator and method |
US8364456B2 (en) * | 2008-01-10 | 2013-01-29 | The Mathworks, Inc. | Conditionally executed states |
US20090254319A1 (en) * | 2008-04-03 | 2009-10-08 | Siemens Aktiengesellschaft | Method and system for numerical simulation of a multiple-equation system of equations on a multi-processor core system |
US8694293B2 (en) * | 2008-06-30 | 2014-04-08 | Toyota Technical Development Corporation | Simulation support method, computer-readable storage medium storing simulation support program, and simulation support apparatus |
US20100063786A1 (en) * | 2008-09-11 | 2010-03-11 | Harke Michael C | Co-Simulation Process |
US8260587B2 (en) * | 2008-09-16 | 2012-09-04 | Raytheon Company | Method and system for simulating complex systems by integrating system dynamics models |
US8589133B1 (en) * | 2009-07-17 | 2013-11-19 | The United States Of America As Represented By The Secretary Of The Navy | Dynamic simulation of a system of interdependent systems |
US9158295B2 (en) * | 2010-05-21 | 2015-10-13 | Fisher-Rosemount Systems, Inc. | Multi-stage process modeling method |
US20120197617A1 (en) * | 2011-01-31 | 2012-08-02 | Muris Mujagic | Co-Simulation with Peer Negotiated Time Steps |
US8972083B2 (en) * | 2011-08-18 | 2015-03-03 | Pc Krause And Associates, Inc. | System and method for aircraft thermal capacity prediction |
US8660829B2 (en) | 2011-09-13 | 2014-02-25 | The Procter & Gamble Company | Machine emulator machines |
US8600714B2 (en) | 2011-09-13 | 2013-12-03 | The Procter & Gamble Company | Systems for machine emulation and process response prediction |
US8660830B2 (en) | 2011-09-13 | 2014-02-25 | The Procter & Gamble Company | Machine emulator methods |
US8600715B2 (en) | 2011-09-13 | 2013-12-03 | The Procter & Gamble Company | Methods for machine emulation and process response prediction |
US8670965B2 (en) | 2011-09-13 | 2014-03-11 | The Procter & Gamble Company | Machine emulator products |
US20130116989A1 (en) | 2011-11-08 | 2013-05-09 | Fu Zhang | Parameter tuning |
US8914262B2 (en) | 2011-11-08 | 2014-12-16 | The Mathworks, Inc. | Visualization of data dependency in graphical models |
US9354846B2 (en) | 2011-11-08 | 2016-05-31 | The Mathworks, Inc. | Bidomain simulator |
US8935137B1 (en) * | 2011-11-08 | 2015-01-13 | The Mathworks, Inc. | Graphic theoretic linearization of sensitivity analysis |
US20130116988A1 (en) | 2011-11-08 | 2013-05-09 | Fu Zhang | Automatic solver selection |
US9377998B2 (en) * | 2011-11-08 | 2016-06-28 | The Mathworks, Inc. | Code generation for control design |
KR20140021389A (en) * | 2012-08-10 | 2014-02-20 | 한국전자통신연구원 | Apparatus and method for separable simulation by model design and execution |
KR102006151B1 (en) | 2012-11-27 | 2019-10-10 | 삼성디스플레이 주식회사 | Display apparatus sensing touch and providing electro-tactile feeling and driving method thereof |
US9215138B2 (en) | 2012-12-06 | 2015-12-15 | International Business Machines Corporation | Determining a system configuration for performing a collective operation on a parallel computer |
WO2014146686A1 (en) * | 2013-03-19 | 2014-09-25 | Siemens Aktiengesellschaft | Tool and method for simulating a technical installation |
CN103454927B (en) * | 2013-08-22 | 2016-06-08 | 哈尔滨工业大学 | The full physics ground simulating device of aircraft distributed networked |
US9871889B1 (en) * | 2014-03-18 | 2018-01-16 | EMC IP Holing Company LLC | Techniques for automated capture of configuration data for simulation |
CN104570760B (en) * | 2014-09-03 | 2017-04-19 | 北京航空航天大学 | Distributed simulation method for continuous control system in unit operation |
CN104821858A (en) * | 2015-03-30 | 2015-08-05 | 北京仿真中心 | Cross-wide area network integrated cell and method for distributed simulation system |
EP3141970B1 (en) * | 2015-09-09 | 2017-11-15 | Siemens Aktiengesellschaft | Decentralized periphery |
CN106647323B (en) * | 2015-10-30 | 2021-04-09 | 北京北方华创微电子装备有限公司 | Equipment simulation operation control method and device |
IT201700045152A1 (en) | 2017-04-26 | 2018-10-26 | Nuovo Pignone Tecnologie Srl | METHOD AND SYSTEM FOR MODELING OPERATIONS OF A PHYSICAL PLANT |
WO2020092777A1 (en) * | 2018-11-02 | 2020-05-07 | MyCollected, Inc. | Computer-implemented, user-controlled method of automatically organizing, storing, and sharing personal information |
JP7225064B2 (en) * | 2019-09-12 | 2023-02-20 | 株式会社日立ソリューションズ | Simulation method and simulation program |
US11734475B2 (en) * | 2021-05-17 | 2023-08-22 | Hitachi, Ltd. | Performance measurement methodology for co-simulation |
Citations (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4456994A (en) * | 1979-01-31 | 1984-06-26 | U.S. Philips Corporation | Remote simulation by remote control from a computer desk |
US4506324A (en) * | 1982-03-08 | 1985-03-19 | The United States Of America As Represented By The Secretary Of The Navy | Simulator interface system |
US5251159A (en) * | 1991-03-20 | 1993-10-05 | Vlsi Technology, Inc. | Circuit simulation interface methods |
US5519848A (en) * | 1993-11-18 | 1996-05-21 | Motorola, Inc. | Method of cell characterization in a distributed simulation system |
US5623413A (en) * | 1994-09-01 | 1997-04-22 | Harris Corporation | Scheduling system and method |
US5640504A (en) * | 1994-01-24 | 1997-06-17 | Advanced Computer Applications, Inc. | Distributed computing network |
US5680551A (en) * | 1993-10-21 | 1997-10-21 | Sybase, Inc. | Electronic messaging method of and system for heterogeneous connectivity and universal and generic interfacing for distributed applications and processes residing in wide variety of computing platforms and communication transport facilities |
US5701439A (en) * | 1992-03-30 | 1997-12-23 | Boeing North American, Inc. | Combined discrete-event and continuous model simulation and analysis tool |
US5715184A (en) * | 1995-01-23 | 1998-02-03 | Motorola, Inc. | Method of parallel simulation of standard cells on a distributed computer system |
US5768160A (en) * | 1996-01-22 | 1998-06-16 | Fujitsu Limited | Logical simulator with event load measuring and model recreating units for parallel processing elements |
US5774693A (en) * | 1996-02-28 | 1998-06-30 | Kaimei Electronic Corp. | Multiprocessor parallel computing device for application to the execution of a numerical simulation software program |
US5784612A (en) * | 1995-05-03 | 1998-07-21 | International Business Machines Corporation | Configuration and unconfiguration of distributed computing environment components |
US5794005A (en) * | 1992-01-21 | 1998-08-11 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Synchronous parallel emulation and discrete event simulation system with self-contained simulation objects and active event objects |
US5793968A (en) * | 1994-08-19 | 1998-08-11 | Peerlogic, Inc. | Scalable distributed computing environment |
US5801938A (en) * | 1994-10-03 | 1998-09-01 | Nasser Kalantery | Data processing method and apparatus for parallel discrete event simulation |
US5826060A (en) * | 1996-04-04 | 1998-10-20 | Westinghouse Electric Corporation | Stimulated simulator for a distributed process control system |
US5845116A (en) * | 1994-04-14 | 1998-12-01 | Hitachi, Ltd. | Distributed computing system |
US5850345A (en) * | 1996-01-29 | 1998-12-15 | Fuji Xerox Co., Ltd. | Synchronous distributed simulation apparatus and method |
US5862366A (en) * | 1996-09-12 | 1999-01-19 | Advanced Micro Devices, Inc. | System and method for simulating a multiprocessor environment for testing a multiprocessing interrupt controller |
US5881267A (en) * | 1996-03-22 | 1999-03-09 | Sun Microsystems, Inc. | Virtual bus for distributed hardware simulation |
US5909542A (en) * | 1996-11-20 | 1999-06-01 | Cfi Proservices, Inc. | Distributed computing system for executing intercommunicating applications programs |
US5910903A (en) * | 1997-07-31 | 1999-06-08 | Prc Inc. | Method and apparatus for verifying, analyzing and optimizing a distributed simulation |
US5999734A (en) * | 1997-10-21 | 1999-12-07 | Ftl Systems, Inc. | Compiler-oriented apparatus for parallel compilation, simulation and execution of computer programs and hardware models |
US6031987A (en) * | 1997-05-06 | 2000-02-29 | At&T | Optimistic distributed simulation based on transitive dependency tracking |
US6053947A (en) * | 1997-05-31 | 2000-04-25 | Lucent Technologies, Inc. | Simulation model using object-oriented programming |
US6106297A (en) * | 1996-11-12 | 2000-08-22 | Lockheed Martin Corporation | Distributed interactive simulation exercise manager system and method |
US6134514A (en) * | 1998-06-25 | 2000-10-17 | Itt Manufacturing Enterprises, Inc. | Large-scale network simulation method and apparatus |
US6163801A (en) * | 1998-10-30 | 2000-12-19 | Advanced Micro Devices, Inc. | Dynamic communication between computer processes |
US6324495B1 (en) * | 1992-01-21 | 2001-11-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Synchronous parallel system for emulation and discrete event simulation |
US6937969B1 (en) * | 1999-06-10 | 2005-08-30 | Interuniversitair Microelektronica Centrum (Imec) | Method for determining signals in mixed signal systems |
US7490029B2 (en) * | 2000-06-19 | 2009-02-10 | P.C. Krause & Associates, Inc. | Distributed simulation |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4506321A (en) * | 1982-09-08 | 1985-03-19 | Imec Corporation | Motion control system with adaptive deceleration |
US5247650A (en) * | 1989-08-30 | 1993-09-21 | Industrial Technology Institute | System for combining originally software incompatible control, kinematic, and discrete event simulation systems into a single integrated simulation system |
JP3684579B2 (en) * | 1993-04-27 | 2005-08-17 | 富士通株式会社 | Processor element of distributed parallel computer |
JPH10154136A (en) * | 1995-12-25 | 1998-06-09 | Hitachi Ltd | Execution supporting method for simulation program and program assigning method |
US5963731A (en) * | 1995-12-25 | 1999-10-05 | Hitachi, Ltd. | Method of assisting execution of plural simulation programs for coupled simulation |
JP3000941B2 (en) * | 1996-09-11 | 2000-01-17 | 日本電気株式会社 | Distributed logic simulator |
JPH10198651A (en) * | 1997-01-09 | 1998-07-31 | Mitsubishi Electric Corp | Method for distributed simulation |
JPH10240333A (en) * | 1997-02-25 | 1998-09-11 | Mitsubishi Electric Corp | Plant simulator |
JPH10312369A (en) * | 1997-05-14 | 1998-11-24 | Mitsubishi Electric Corp | Decentralized simulation system |
US6110217A (en) * | 1997-10-03 | 2000-08-29 | International Business Machines Corporation | System and method for synchronization of multiple analog servers on a simulation backplane |
JP3462064B2 (en) * | 1998-01-23 | 2003-11-05 | 三菱電機株式会社 | Distributed simulation system |
JPH11238042A (en) * | 1998-02-23 | 1999-08-31 | Mitsubishi Electric Corp | Decentralized simulation control unit |
JPH11272621A (en) * | 1998-03-23 | 1999-10-08 | Mitsubishi Electric Corp | Distributed simulation controller |
JP3471637B2 (en) * | 1998-11-30 | 2003-12-02 | 三菱電機株式会社 | Parallel distributed simulation system, simulation manager, and parallel distributed simulator control method |
-
2001
- 2001-06-19 EP EP01951081A patent/EP1301846A4/en not_active Withdrawn
- 2001-06-19 WO PCT/US2001/041039 patent/WO2001098871A2/en active Application Filing
- 2001-06-19 JP JP2002504566A patent/JP2004510219A/en active Pending
- 2001-06-19 CA CA2412816A patent/CA2412816C/en not_active Expired - Lifetime
- 2001-06-19 CN CNB018143350A patent/CN100520720C/en not_active Expired - Fee Related
- 2001-06-19 US US09/884,528 patent/US7490029B2/en not_active Expired - Lifetime
- 2001-06-19 AU AU2001272014A patent/AU2001272014A1/en not_active Abandoned
- 2001-06-19 DE DE0001301846T patent/DE01951081T1/en active Pending
-
2008
- 2008-12-10 US US12/332,073 patent/US20090164200A1/en not_active Abandoned
- 2008-12-10 US US12/332,066 patent/US20100017179A1/en not_active Abandoned
Patent Citations (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4456994A (en) * | 1979-01-31 | 1984-06-26 | U.S. Philips Corporation | Remote simulation by remote control from a computer desk |
US4506324A (en) * | 1982-03-08 | 1985-03-19 | The United States Of America As Represented By The Secretary Of The Navy | Simulator interface system |
US5251159A (en) * | 1991-03-20 | 1993-10-05 | Vlsi Technology, Inc. | Circuit simulation interface methods |
US5794005A (en) * | 1992-01-21 | 1998-08-11 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Synchronous parallel emulation and discrete event simulation system with self-contained simulation objects and active event objects |
US6324495B1 (en) * | 1992-01-21 | 2001-11-27 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Synchronous parallel system for emulation and discrete event simulation |
US5701439A (en) * | 1992-03-30 | 1997-12-23 | Boeing North American, Inc. | Combined discrete-event and continuous model simulation and analysis tool |
US5680551A (en) * | 1993-10-21 | 1997-10-21 | Sybase, Inc. | Electronic messaging method of and system for heterogeneous connectivity and universal and generic interfacing for distributed applications and processes residing in wide variety of computing platforms and communication transport facilities |
US5983265A (en) * | 1993-10-21 | 1999-11-09 | Paradigm4, Inc. | System for controlling electronic messaging protocol between plurality of computer system by using identical electronic messaging system |
US5519848A (en) * | 1993-11-18 | 1996-05-21 | Motorola, Inc. | Method of cell characterization in a distributed simulation system |
US5640504A (en) * | 1994-01-24 | 1997-06-17 | Advanced Computer Applications, Inc. | Distributed computing network |
US5845116A (en) * | 1994-04-14 | 1998-12-01 | Hitachi, Ltd. | Distributed computing system |
US5793968A (en) * | 1994-08-19 | 1998-08-11 | Peerlogic, Inc. | Scalable distributed computing environment |
US5623413A (en) * | 1994-09-01 | 1997-04-22 | Harris Corporation | Scheduling system and method |
US6154735A (en) * | 1994-09-01 | 2000-11-28 | Harris Corporation | Resource scheduler for scheduling railway train resources |
US5801938A (en) * | 1994-10-03 | 1998-09-01 | Nasser Kalantery | Data processing method and apparatus for parallel discrete event simulation |
US5715184A (en) * | 1995-01-23 | 1998-02-03 | Motorola, Inc. | Method of parallel simulation of standard cells on a distributed computer system |
US5784612A (en) * | 1995-05-03 | 1998-07-21 | International Business Machines Corporation | Configuration and unconfiguration of distributed computing environment components |
US5768160A (en) * | 1996-01-22 | 1998-06-16 | Fujitsu Limited | Logical simulator with event load measuring and model recreating units for parallel processing elements |
US5850345A (en) * | 1996-01-29 | 1998-12-15 | Fuji Xerox Co., Ltd. | Synchronous distributed simulation apparatus and method |
US5774693A (en) * | 1996-02-28 | 1998-06-30 | Kaimei Electronic Corp. | Multiprocessor parallel computing device for application to the execution of a numerical simulation software program |
US5881267A (en) * | 1996-03-22 | 1999-03-09 | Sun Microsystems, Inc. | Virtual bus for distributed hardware simulation |
US5826060A (en) * | 1996-04-04 | 1998-10-20 | Westinghouse Electric Corporation | Stimulated simulator for a distributed process control system |
US5862366A (en) * | 1996-09-12 | 1999-01-19 | Advanced Micro Devices, Inc. | System and method for simulating a multiprocessor environment for testing a multiprocessing interrupt controller |
US6106297A (en) * | 1996-11-12 | 2000-08-22 | Lockheed Martin Corporation | Distributed interactive simulation exercise manager system and method |
US5909542A (en) * | 1996-11-20 | 1999-06-01 | Cfi Proservices, Inc. | Distributed computing system for executing intercommunicating applications programs |
US6031987A (en) * | 1997-05-06 | 2000-02-29 | At&T | Optimistic distributed simulation based on transitive dependency tracking |
US6053947A (en) * | 1997-05-31 | 2000-04-25 | Lucent Technologies, Inc. | Simulation model using object-oriented programming |
US5910903A (en) * | 1997-07-31 | 1999-06-08 | Prc Inc. | Method and apparatus for verifying, analyzing and optimizing a distributed simulation |
US5999734A (en) * | 1997-10-21 | 1999-12-07 | Ftl Systems, Inc. | Compiler-oriented apparatus for parallel compilation, simulation and execution of computer programs and hardware models |
US6134514A (en) * | 1998-06-25 | 2000-10-17 | Itt Manufacturing Enterprises, Inc. | Large-scale network simulation method and apparatus |
US6163801A (en) * | 1998-10-30 | 2000-12-19 | Advanced Micro Devices, Inc. | Dynamic communication between computer processes |
US6937969B1 (en) * | 1999-06-10 | 2005-08-30 | Interuniversitair Microelektronica Centrum (Imec) | Method for determining signals in mixed signal systems |
US7490029B2 (en) * | 2000-06-19 | 2009-02-10 | P.C. Krause & Associates, Inc. | Distributed simulation |
Non-Patent Citations (9)
Title |
---|
B. Earl Wells et al., "Parallel simulation of a large-scale aerospace system in a multicomputer environment," 1997, IEEE Transactions on Aerospace and Electronic Systems, volume 33, number 2, pages 507 - 522 * |
Coleman B. Brosilow et al., "Modular integration methods for simulation of large scale dynamic systems," 1985, Modeling, Identification and Control, volume 6, number 3, pages 153 - 179 * |
Djalma M. Falcao et al., "Application of parallel processing techniques to the simulation of power system electromagnetic transients," 1993, IEEE Transactions on Power Systems, volume 8, number 1, pages 90 - 96 * |
J.F. Andrus, "Formulas for modular integration of systems of ode's," 1991, Computers & Mathematics with Applications, volume 21, issue 8, pages 47 - 56 * |
Michael D. Lukas et al., "An interactive distributed simulator for commercial power plant," 1997, IEEE Transactions on Energy Conversion, volume 12, number 3, pages 259 - 265 * |
Nabil Abdel-Jabber et al., "A multirate parallel-modular algorithm for dynamic process simulation using distributed memory multicomputers," June 1999 (available online May 19, 1999), Computers & Chemical Engineering, volume 23, pages 733 - 761 * |
Norbert Frolich et al., "A new approach for parallel simulation of VLSI circuits on a transistor level," 1998, IEEE Transactions on Circuits and Systems-I: Fundamental Theory and Applications, volume 45, number 6, pages 601 - 613 * |
P. Linardis et al., "PARCIS: a robust parallel VLSI circuit simulator," 1999, Simulation Practice and Theory, volume 7, pages 91 - 103 * |
Vijay Menon et al., MultiMATLAB: Integrating MATLAB with High-Performance Parallel Computing," 1997, Proceedings of the ACM/IEEE 1997 Supercomputing Conference, pages 1 - 18 * |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126338A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126055A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126034A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126312A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126030A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126341A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126057A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126032A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126058A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126342A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126296A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126340A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Serivces Company, Inc. | System and method for managing simulation models |
US20080126313A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126394A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US20080126156A1 (en) * | 2006-11-29 | 2008-05-29 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US7809770B2 (en) * | 2006-11-29 | 2010-10-05 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US8150662B2 (en) | 2006-11-29 | 2012-04-03 | American Express Travel Related Services Company, Inc. | Method and computer readable medium for visualizing dependencies of simulation models |
US8155937B2 (en) | 2006-11-29 | 2012-04-10 | American Express Travel Related Services Company, Inc. | System and method for summarizing analysis of models in a modeling environment |
US8155936B2 (en) | 2006-11-29 | 2012-04-10 | American Express Travel Related Services Company, Inc. | System and method for managing simulation models |
US8160849B2 (en) | 2006-11-29 | 2012-04-17 | American Express Travel Related Services Company, Inc. | System, method and computer readable medium for visualizing metadata dependencies of simulation models |
US8160850B2 (en) | 2006-11-29 | 2012-04-17 | American Express Travel Related Services Company, Inc. | System and method for evaluating simulation model performance |
US8165858B2 (en) | 2006-11-29 | 2012-04-24 | American Express Travel Related Services Company, Inc. | System and method for providing a model usage report for simulation models |
US8165857B2 (en) | 2006-11-29 | 2012-04-24 | American Express Travel Related Services Company, Inc. | System and method for evaluating human resource allocation for simulation models |
US8170847B2 (en) | 2006-11-29 | 2012-05-01 | American Express Travel Related Services Company, Inc. | System and method for evaluating simulation model penetration |
US8170848B2 (en) | 2006-11-29 | 2012-05-01 | American Express Travel Related Services Company, Inc. | System and method for providing simulation model penetration presentation |
US8175857B2 (en) | 2006-11-29 | 2012-05-08 | American Express Travel Related Services Company, Inc. | System and method for analysis and maintenance of simulation models |
US8180611B2 (en) | 2006-11-29 | 2012-05-15 | American Express Travel Related Services Company, Inc. | System and method for determining resource allocation among simulation models |
US8190410B2 (en) | 2006-11-29 | 2012-05-29 | American Express Travel Related Services Company, Inc. | System and method for evaluation decision sciences of simulation models |
US8700367B2 (en) | 2006-11-29 | 2014-04-15 | American Express Travel Related Services Company, Inc. | System and method for evaluation decision sciences of simulation models |
Also Published As
Publication number | Publication date |
---|---|
CA2412816A1 (en) | 2001-12-27 |
CA2412816C (en) | 2012-01-17 |
US7490029B2 (en) | 2009-02-10 |
WO2001098871A3 (en) | 2002-06-06 |
CN1582432A (en) | 2005-02-16 |
WO2001098871A2 (en) | 2001-12-27 |
DE01951081T1 (en) | 2004-04-15 |
EP1301846A4 (en) | 2006-03-22 |
US20100017179A1 (en) | 2010-01-21 |
US20020052725A1 (en) | 2002-05-02 |
JP2004510219A (en) | 2004-04-02 |
EP1301846A2 (en) | 2003-04-16 |
AU2001272014A1 (en) | 2002-01-02 |
CN100520720C (en) | 2009-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7490029B2 (en) | Distributed simulation | |
Shapiro | Structure and encapsulation in distributed systems: The proxy principle | |
Miller et al. | A distributed programs monitor for Berkeley UNIX | |
Lantz et al. | Rochester's intelligent gateway | |
US20080059436A1 (en) | Providing a visual representation of a sub-set of a visual program | |
CN108416657B (en) | Order generation method and equipment based on consultation service | |
KR20020061059A (en) | System for offering software package make information and supporting test a system utilizing the software package | |
JPH06301436A (en) | Operation control system of computer system | |
US20110224954A1 (en) | Modelling of systems | |
JPH07244644A (en) | Agent management system | |
EP0770958A1 (en) | WinSock network socket driver subsystem and method for windows emulator running under unix operating system | |
EP1061445A2 (en) | Web-based enterprise management with transport neutral client interface | |
KR101901310B1 (en) | System for providing user-oriented interconnection application integration | |
JP2953946B2 (en) | Test processing system | |
KR20010057771A (en) | Method for managing object retrieval and related object manipulation in virtual reality space | |
Unger et al. | The design and simulation of a multi-computer network message processor | |
HEIM | Integrating distributed models: the architecture of ENVISION | |
Miller et al. | A Distributed Programs Monitor for Berkeley UNIX | |
Curran et al. | An approach to verifying concurrent systems-a medical information bus (MIB) case study | |
JPH01319836A (en) | On-line system performance evaluating control system by terminal simulation | |
Van Katwijk et al. | SOFTVVARE DEVELOPMENT AND VERIFICATION OF DYNAMIC REAL-TIME DISTRIBUTED) SYSTEMS P3ASED) ON THE RADIO) E ROADCAST PARADIGM | |
CN117118981A (en) | Industrial cloud platform communication method based on CODESYS programming environment | |
ESPRIT Consortium CCE-CNMA | The CIME Computing Environment (CCE) | |
ARA | PROCESS MONITORING IN UNIX | |
Macrander | A Distributed Programs Monitor for Berkeley UNDK |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: P.C. KRAUSE & ASSOCIATES, INC.,INDIANA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WASYNCZUK, OLEG;LUCAS, CHARLES E.;WALTERS, ERIC A.;AND OTHERS;SIGNING DATES FROM 20081204 TO 20081205;REEL/FRAME:022289/0718 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |