WO2014038030A1 - 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 - Google Patents

協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 Download PDF

Info

Publication number
WO2014038030A1
WO2014038030A1 PCT/JP2012/072676 JP2012072676W WO2014038030A1 WO 2014038030 A1 WO2014038030 A1 WO 2014038030A1 JP 2012072676 W JP2012072676 W JP 2012072676W WO 2014038030 A1 WO2014038030 A1 WO 2014038030A1
Authority
WO
WIPO (PCT)
Prior art keywords
input
output
simulation
simulator
model
Prior art date
Application number
PCT/JP2012/072676
Other languages
English (en)
French (fr)
Inventor
康宏 伊藤
Original Assignee
株式会社日立製作所
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to JP2014534096A priority Critical patent/JP5926807B2/ja
Priority to PCT/JP2012/072676 priority patent/WO2014038030A1/ja
Publication of WO2014038030A1 publication Critical patent/WO2014038030A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning

Definitions

  • the present invention relates to a computer system for co-simulation and a verification method for an embedded system, and more particularly to a technology of a co-simulator suitable for development of an embedded system composed of a mechanism, hardware, and software.
  • An embedded system consists of a mechanism that configures the control target, hardware that performs control calculations based on physical quantities received from this mechanism, and outputs control values to this mechanism, and software that runs on this hardware System.
  • an embedded system for controlling an automobile engine includes a mechanism such as an engine to be controlled, an electronic device such as a microcomputer that performs control calculation and controls the engine, and software that operates on the microcomputer. Has been.
  • simulation models In performing the performance evaluation and operation verification by the above simulation, it is necessary to describe the operation of each element constituting the target embedded system as software that can be executed on the simulator as a simulation model.
  • These simulation models generally take the form of being provided by a company or department in charge of designing and manufacturing the components of each mechanism and hardware.
  • each of the above models to be used is created in order to assist the design provider itself, so that it is a model that describes all the internal operations of the object.
  • these internal operations there are actually internal operations that are not referred to in the simulation of the entire system level.
  • Patent Document 1 discloses a technique for improving the speed of simulation by deleting a useless calculation process by rewriting a predetermined model.
  • a system that connects a high-accuracy model that updates the internal state frequently and a low-accuracy model that updates the internal state frequently does not perform the required system operation. It is required to reduce the calculation load to be reproduced as much as possible.
  • An object of the present invention is to provide a computer system for cooperative simulation in which calculation processing that is not referred to in the cooperative simulation is limited and the waste of calculation load can be reduced without the user changing the implementation for each model. It is in.
  • An example of a representative example of the present invention is as follows.
  • a computer system for co-simulation in which a plurality of simulators operate in cooperation with each other, the plurality of simulators including a plurality of simulators having different accuracy and speed, and the input side and the output side of the simulator to be verified An input buffer and an output buffer provided in correspondence with each other, and a dynamic speed adjustment unit for controlling input / output of data to / from the input buffer and the output buffer, the dynamic speed adjustment unit including the simulator to be verified
  • the operation speed of the plurality of simulators operating in cooperation with each other is adjusted by controlling the change frequency of the input of the data or the change frequency of the output of the data from the simulator to be verified.
  • FIG. 1 It is a functional block diagram which shows the example of a whole structure of the computer system for cooperative simulation which becomes a 1st Example of this invention. It is a figure which shows the structural example of the cooperative simulation environment to which this invention is applied. It is a figure which shows the model structural example (motor control) of the cooperative simulation environment to which this invention is applied. It is a figure which shows the model structural example (vehicle control) of the cooperative simulation environment to which this invention is applied. It is a figure explaining the input / output ratio R processed by the input / output ratio calculation part of a 1st Example. It is a figure which shows the structural example of the output opening part module and input opening part which are contained in the computer system for co-simulation of a 1st Example.
  • the present invention uses the property that calculation processing of a corresponding model is not required when the input / output signal to the simulation model does not change, and dynamically inputs / outputs data to / from the simulation model generating a useless calculation load.
  • the high-accuracy model means a simulation model that updates the internal state at a high frequency and a simulation model that updates the internal state at a low frequency.
  • the representative embodiment of the present invention it is possible to optimize the load on the calculation load in the collaborative simulation environment without the user changing the implementation for each model. Also, by changing these adjustment parameters from outside the co-simulation environment, it is possible to dynamically change the accuracy during the simulation.
  • the present invention can be widely applied to a computer system or a development system program in which a plurality of softwares operate in conjunction with each other.
  • FIG. 1 is a functional block diagram showing an example of the overall configuration of a co-simulation computer system according to the first embodiment of the present invention.
  • the computer system for cooperative simulation according to the present invention includes a dynamic speed adjustment block 100 connected to a target simulation model 110 via an I / O unit. That is, the dynamic speed adjustment block 100 which is the main component of the present invention includes a dynamic buffer control unit 122, a model input I / O unit 111, and a model output I / O unit 103.
  • the Dell input I / O unit 111 and the model output I / O unit 103 are respectively connected to part or all of the input port 109 and the output port 108 of the target simulation model 110.
  • the dynamic buffer control unit 122 is For example, it can be configured by a program held in a memory and causing a computer to realize various functions.
  • the dynamic speed adjustment block 100 further includes an original model input I / O unit 113 and an original model output I / O unit 101, which are connected to the input port 109 and the output port 108 before the present invention is applied. It is connected to a part or all of the ports that were connected to the simulator located in the preceding / following stage of the model 110 to be processed. That is, the model input I / O unit 111 of the dynamic speed adjustment block 100 is connected to the simulator located in the preceding stage via the input buffer 112, the input opening 117, and the original model input I / O unit 113, and the model output The I / O unit 103 is connected to a simulator located at the subsequent stage via the output buffer 102, the output opening 105, and the original model output I / O unit 11.
  • FIG. 2A shows a configuration example of a collaborative simulation environment to which the present invention is applied.
  • the target simulation model is, for example, the first high-precision simulation model 110
  • the first low-precision simulation model 200 and the second low-level simulation model 100 are input to the input side via the dynamic speed adjustment block 100.
  • An accuracy simulation model 201 is connected, and a third low accuracy simulation model 202 and a fourth low accuracy simulation model 203 are connected on the output side.
  • the first low-precision simulation model 200 and the second low-precision simulation model 201 in the previous stage are respectively connected to the original model input I / O unit 113, and the third low-precision simulation model 202 and the fourth low-precision simulation model 203 in the subsequent stage.
  • a display unit 204 functions as a user interface of the dynamic speed adjustment block 100.
  • the display unit 204 displays user input information, cooperative simulation environment, input / output values of each model at the time of simulation execution, information on operation states, and the like.
  • the user can perform various settings from the display unit 204 at the time of initialization of the simulator and input various data such as parameters related to speed adjustment during the simulation while referring to the display unit 204 as an output monitor. it can.
  • the display unit 204 confirms that only a specific accuracy is obtained as a result of the cooperative simulation, the user repeatedly executes the cooperative simulation again by changing a constant ⁇ described later, for example. , You can get the target accuracy. Needless to say, this display unit is provided in each embodiment of the present invention.
  • the input opening 117 connected to the input buffer 112 and the output opening 105 connected to the output buffer 102 are respectively controlled by the dynamic buffer control unit 122.
  • the dynamic buffer control unit 122 reads data from the buffers (the input buffer 112 and the output buffer 102) connected to the input opening 117 and the output opening 105, deletes data, and blocks data for the next module. It has a function that can control the flag to be determined from another module.
  • an opening module having the same form can be used for the input opening 117 and the output opening 105. The configuration of the opening module will be described later in detail with reference to FIG.
  • the dynamic buffer control unit 122 includes an input change trigger calculation unit 120 and an output change trigger calculation unit 106 connected to the input buffer 112 and the output buffer 102, respectively.
  • the input change trigger calculation unit 120 and the output change trigger calculation unit 106 are further connected to the inter-process communication IF unit 104.
  • the input change trigger calculation unit 120 and the output change trigger calculation unit 106 further receive a speed during initialization of the simulator and during the simulation from the speed adjustment script 107 operating outside the cooperative simulation via the inter-process communication IF unit IF 104.
  • a threshold value for determining that the value has changed can be received when the difference from the previous value becomes more than one.
  • the same type of module can be used for the input change trigger calculation unit 120 and the output change trigger calculation unit 106.
  • the configuration of the change trigger calculation module will be described in detail with reference to FIG.
  • the input change trigger calculation unit 120 and the output change trigger calculation unit 106 are connected to an input change frequency calculation unit 119 and an output change frequency calculation unit 115, respectively.
  • the same type of module can be used for the input change frequency calculation unit 119 and the output change frequency calculation unit 115.
  • the configuration of this change frequency calculation module will be described in detail with reference to FIG.
  • Both the input change frequency calculation unit 119 and the output change frequency calculation unit 115 are connected to a real time clock 114 that outputs the execution time of the simulator and a virtual environment clock 118 that outputs the time simulated by the simulator.
  • the change frequency of the variable input to the input change frequency calculation unit 119 and the output change frequency calculation unit 115 is expressed as (1) per simulator execution time and (2) per simulated time, It can be calculated from the following two viewpoints.
  • Both the input change trigger calculation unit 120 and the output change trigger calculation unit 106 are connected to the input / output ratio calculation unit 116.
  • the input / output ratio calculation unit 116 is connected to the inter-process communication IF unit 104, and from the speed adjustment script 107 that operates outside the co-simulation via the inter-process communication IF unit during the initialization of the simulator and during the simulation.
  • an input / output change frequency ratio value, an input change frequency ratio threshold value, and an output change frequency ratio threshold value can be received.
  • the input / output ratio calculation unit 116 is connected to both the input opening 117 and the output opening 105, and for these, the input buffer 112 to the model input I / O unit 111 and the output buffer 102 to the original model output I, respectively.
  • a function for instructing data flow interruption or data flow resumption to the / O unit 101 is provided.
  • FIG. 2 The model configuration of the co-simulation environment to which the present invention is applied is outlined in FIG. 2 (2A, 2B, 2C).
  • the behavior of the entire system is simulated by connecting multiple models of different physical layers.
  • Different physical layer models have different time accuracy and different data update frequencies per unit simulation time.
  • a highly accurate model updates the internal state frequently and updates the value of the external output frequently.
  • the high frequency of the first high accuracy model 110 is high. All the outputs are not used for the state simulation of the third low-precision simulation model 202 and the fourth low-precision simulation model 203 in the subsequent stage (see FIG. 12). For this reason, the calculation load in the first high-accuracy model 110 is wasted.
  • the dynamic speed adjustment block 100 of the present invention is applied in the form of intercepting part or all of the input / output of the high-precision model 110.
  • the low-accuracy model (200-203) on the input / output side is connected to at least one high-accuracy model.
  • 2B and 2C show an example of a co-simulation environment of an embedded system suitable for applying the present invention.
  • FIG. 2B is a model configuration example of a collaborative simulation environment for controlling a motor of an embedded system. The control of the AC motor in the embedded system will be described in a simplified manner. Based on the speed command value from the controller model 200, the inverter model 110 outputs an AC signal, and the motor model 202 rotates.
  • FIG. 2C is a model configuration example of the simulation environment of the entire vehicle system.
  • Embedded systems for automobile engine control are based on mechanisms such as the engine to be controlled and drive motors, electronic devices such as microcomputers that perform control calculations and control the engine and drive motors, etc. It consists of operating software.
  • input from a low-accuracy model in this example, data is received from the sensor model 200 and the communication model 201, the input is processed by the microcomputer model 110, and the actuators such as the engine model 203 and the brake model 204 are processed.
  • the control content is transmitted.
  • the sensor model 200 detects, for example, the amount of depression of the accelerator, the output changes greatly during acceleration and hardly changes when running on a flat road.
  • the dynamic speed adjustment block 100 of the present invention has a function of dynamically adjusting input / output to / from each model in response to changes in driving conditions.
  • the input / output ratio R is represented by the following equation, for example.
  • R ⁇ ⁇ N2 / N1 (N1: input change frequency, N2: output change frequency, ⁇ : constant)
  • N1 input change frequency
  • N2 output change frequency
  • constant
  • the input / output ratio calculation unit 116 calculates the value of the input / output ratio R from N1 and N2 based on the characteristic ⁇ set by the user.
  • the dynamic speed adjustment block 100 blocks (decimates) data input to the simulation model, or The data output from the simulation model is blocked (decimated).
  • FIG. 4 shows a configuration example of the opening module 500 that can be used in common for the input opening 117 and the output opening 105.
  • the opening module 500 is connected to the buffers (102, 112) serving as inputs and the model I / O units (103, 111) serving as outputs.
  • the buffer and the model I / O unit are not directly connected, and the data transfer flag 505 is interposed between them, and data is transferred between the buffer and the model I / O unit only when the data transfer flag 505 is enabled. Is flowing.
  • the data transfer flag 505 is connected to the input / output ratio calculation unit 115, and whether the data transfer flag 505 is valid or invalid as a result of the input / output ratio calculation unit 115 determining the input / output change frequency ratio or the magnitude of the input change frequency. Is determined.
  • the data delivery flag 505 includes a data deletion instruction 504 that requests the buffer to delete the oldest data in the buffer, and a data request that requests the buffer to transmit the oldest data in the buffer.
  • An instruction 503 can be requested from the buffer (102, 112).
  • FIG. 5 shows a configuration example of a change trigger calculation module 600 that can be used in common by the input change trigger calculation unit 120 and the output change trigger calculation unit 106.
  • This module 600 is connected to a buffer (102, 112) that is a data input and a change frequency calculation unit 700 (an input change frequency calculation unit 119, an output change frequency calculation unit 115) that is an output destination of the calculated trigger. Yes. Further, it is connected to the inter-process communication IF unit 104, and the value of the register 609 that stores the input value threshold value ( ⁇ 1) can be updated.
  • the values input from the buffers (102, 112) are first stored in the buffer latest value register 601.
  • the pulse generator 607 outputs a pulse to the change frequency calculation unit 608.
  • the data copy processing unit 602 connected to the buffer latest value register 601 and the register 603 receives the positive logical value output from the comparator 606 and copies the data from the buffer latest value register 601 to the register 603.
  • FIG. 6 shows a configuration example of a change frequency calculation module 700 that can be commonly used by the input change frequency calculation unit 119 and the output change frequency calculation unit 115.
  • the change frequency calculation module 700 is connected to the change trigger calculation unit 600 (106, 120), the real time clock module 114, and the virtual environment clock module 118 on the input side, and connected to the input / output ratio calculation unit 116 on the output side. ing.
  • the input from the change trigger calculation module 600 is received by the trigger input module 701.
  • the output values of the real time clock module 114 and the virtual environment clock module 118 at this moment are stored in the real time time stamp current value register 702 and the virtual environment time stamp current value register 706, respectively.
  • the subtraction processing unit 704 receives the real time time stamp current value register 702 and the real time time stamp saving value register 703 as inputs, and the processing result in the subtraction processing unit 704 is stored in the real time change frequency register 705.
  • the subtraction processing unit 708 receives the virtual environment time stamp current value register 706 and the virtual environment time stamp saving value register 707 as inputs, and the processing result in the subtraction processing unit 708 is stored in the virtual environment change frequency register 709.
  • the values of the real-time timestamp current value register 702 and the virtual environment time stamp current value register 706 are the real-time timestamp saving value register 703 and the virtual environment It is stored in the time stamp saving value register 707.
  • the change frequency (R) stored in the real-time change frequency register 705 and the virtual environment change frequency register 709 is output to the input / output ratio calculation unit 116 as a set.
  • FIG. 7 shows a configuration example of the input / output ratio calculation unit 116.
  • the input / output ratio calculation unit 116 receives the variable change frequency information (N2) from the output change frequency calculation unit 115 and the variable change frequency information (N1) from the input change frequency calculation unit 119 as inputs.
  • the input / output ratio calculation unit 116 is connected to the inter-process communication IF unit 104, and the value ⁇ 3 of the output change ratio threshold register 805, the value ⁇ 2 of the input change ratio threshold register 804, and the output change ratio register
  • the value ⁇ of 808 can be updated.
  • the division processing unit 806 is connected to the value of the output change frequency register 800 and the input change frequency register 801.
  • the output value (A2 / A1) of the division processing unit 806 and the value ⁇ of the output change rate register 808 are compared. This is input to the arithmetic processing 807.
  • the logical sum 809 of the output of the comparison processing unit 803 and the output of the comparison processing unit 807 is provided. Is input to the input opening 117.
  • comparison processing unit 802 for inputting the value A2 of the output change frequency register 800 and the value ⁇ 3 of the input change rate threshold value register 805.
  • the logical sum 809 of the output of the comparison processing unit 802 and the output of the comparison processing unit 807 is provided. Is input to the output opening 105.
  • FIG. 8 is a diagram illustrating an overall operation flow of the computer system for cooperative simulation according to the first embodiment.
  • initialization of the simulator is executed by the user, and necessary parameters are set.
  • the dynamic speed adjustment block 100 is initialized in parallel with the initialization of the simulation model included in the co-simulation environment and the simulation interface connecting them (S400).
  • initialization of socket communication of the inter-process communication IF unit 104 is executed, and the speed adjustment script 107 is connected to the inter-process communication IF unit 104 (S401).
  • the input / output trigger interval ratio threshold value ⁇ of the input / output ratio calculation unit 116 is initially set (S402), and the input value of the output / input change trigger calculation unit is set.
  • Initial setting of threshold value ⁇ 1 (S403) and initial setting of input filter threshold value ⁇ 2 and output filter threshold value ⁇ 3 of the input / output ratio calculation unit (S404) are executed. Even after these initialization processes, the communication socket between the inter-process communication IF unit and the speed adjustment script remains enabled and continues to send communication packets periodically.
  • a simulation is started (S405).
  • input data enters the dynamic speed adjustment block 100 from the connected simulation model 110 and passes through the input buffer 112, the input opening 117, the output opening 105, and the output buffer 102 as it is.
  • the simulation model 110 is passed (S406).
  • the speed adjustment script and the inter-process communication IF unit affect the operation of the simulator itself. There is no asynchronous communication packet exchange.
  • the speed adjustment script 107 sends a communication packet to the inter-process communication IF unit (S420).
  • the operation parameter of the dynamic speed adjustment block 100 can be set by the communication packet described above, and when a valid value is set in the corresponding field on the communication packet, The target operation parameter is updated.
  • the input / output trigger interval ratio threshold value ⁇ of the input / output ratio calculation unit 116 is updated (S421)
  • the input value threshold value ⁇ 1 of the output / input change trigger calculation unit is updated (S424)
  • the input / output ratio calculation unit is updated (S423).
  • the inter-process communication IF unit enters the communication waiting state again, and the dynamic speed adjustment block performs data input control to the model using the updated operation parameter. In this way, the simulation speed and accuracy can be adjusted even during the simulation operation.
  • the input change trigger calculation unit 120 and the output change trigger calculation unit 106 calculate a change trigger of the value of the input / output port (S407). That is, a subtraction process is performed in which the latest value stored in the buffer latest value register 601 and the previous value stored in the register 603 when the previous trigger is established are input, and the absolute value
  • the pulse generator 607 outputs a pulse to the change frequency calculation unit 608 (S425).
  • of the difference from the previous value when the trigger was previously established exceeds the aforementioned threshold value ⁇ 1 by using the input value threshold value ⁇ 1 updated by the parameter update step from S419 to S422.
  • the trigger is transmitted, the trigger is transmitted to the input change frequency calculation unit and the output change frequency calculation unit.
  • the input / output values when the trigger is established are stored in a register for use in the next trigger evaluation.
  • the change frequency calculation module 700 has a register that acquires and saves the time stamp that received the trigger, and can calculate the interval from the time stamp that received the trigger immediately before.
  • the time stamp of the trigger is calculated by both the simulated time and the simulation execution time, and both are stored in the change frequency calculation unit.
  • the calculated interval between both time stamps is sent to the input / output ratio calculation unit (S408).
  • the input time stamp interval and output time stamp interval sent to the input / output ratio calculation unit 116 are divided and stored as a trigger interval ratio (N2 / N1) (S409).
  • the trigger interval ratio (N2 / N1) is compared with a threshold value ⁇ of the input / output trigger interval ratio that is given in advance or updated by the parameter update steps from S419 to S422.
  • the dynamic speed adjustment block 100 inputs at this time. It is determined that the data update frequency is excessive (S412).
  • the dynamic speed adjustment block determines that the update frequency of the input data is excessive (S412).
  • the dynamic speed adjustment block 100 invalidates the data transfer setting of the input opening 117 (S413). As a result, data input to the target simulation model 110 is blocked (S414), and as a result, the execution load of the target simulation model 110 is reduced (S415).
  • the output data update frequency (N2) Is determined to be excessive, and in parallel with the input opening 117, the data transfer setting of the output opening 105 is also invalidated (S416).
  • data input to the low-accuracy model connected to the output side (subsequent stage) of the target simulation model 110 is blocked (S417), and as a result, the execution load of the low-accuracy model connected to the output side is reduced (S417). S418).
  • the dynamic speed adjustment block 100 updates the input data The frequency (N1) is determined to be appropriate. Then, the dynamic speed adjustment block 100 validates the data transfer setting of the input opening 117 (S433). Thereby, data input to the target simulation model 110 is resumed (S434), and as a result, the execution load of the target simulation model increases (S435).
  • the output data update frequency (N2) Is determined to be appropriate, and the data transfer setting of the output opening 105 is validated (S436).
  • data from the target simulation model 110 is generated (S437), and as a result, the execution load of the low-accuracy model connected to the subsequent stage of the target simulation model increases (S438).
  • the dynamic speed adjustment block 100 enables the dynamic execution load of the high-precision model and the low-precision model in the co-simulation environment, that is, adjustment of the simulation speed and accuracy.
  • FIG. 9 shows an example of the relationship between the model operation and the calculation load when the embodiment of the present invention is applied.
  • the horizontal axis shows the internal time of the simulator and the real time, that is, the execution time of the simulation, and the time series change is illustrated.
  • input data A (910 (1) to 910 (n)) and data B (912 (1) to 912 (n)) from the low-precision simulation model to the high-precision simulation model are dynamically displayed.
  • a ′, A ′, (911 (1) to 911 (2)), B ′, B ′ (913 (1 ) To 913 (2)) are adjusted examples.
  • Reference numeral 918 denotes an output of the low-accuracy model that is not input to the high-accuracy model due to interruption of the input signal.
  • Reference numeral 919 denotes a calculation load of the high-accuracy model reduced by blocking the input signal.
  • the dynamic speed adjustment block 100 can block a part of A and B of the input data to the high-accuracy model based on the input and output change frequency of the target model (918, 919). By this control, the input of the low-accuracy simulation model is blocked (918, 919), and the update of the internal state is stopped in the high-accuracy model.
  • the input of the high-accuracy model is cut off (918, 919), and as a result, the calculation process of the high-accuracy model is reduced by the interval (918, 919) in which the internal state has stopped.
  • FIG. 10 shows another example of the relationship between the model operation and the calculation load when the embodiment of the present invention is applied.
  • input data 918 and calculation load 919 from the low-precision simulation model to the high-precision simulation model are further reduced.
  • the calculation processing of the high-accuracy model is further reduced.
  • FIG. 11 is a diagram illustrating another example of the relationship between the data flow and the processing load in the cooperative simulation environment after the application of this embodiment.
  • Reference numeral 928 denotes an output that is not input to the high-precision model or the low-accuracy model due to the interruption of the input signal.
  • the dynamic speed adjustment block 100 controls the input / output data (920 to 927) of the low-accuracy simulation model from the high-accuracy simulation model. By this control, the input of the subsequent low-accuracy simulation model is blocked (929), and the low-accuracy simulation model The internal state update is stopped in the simulation. As a result, the calculation process of the subsequent low-precision simulation model is further reduced.
  • FIG. 12 is a diagram showing an example of a data flow and a processing load in a collaborative simulation environment before application of the present invention as a comparative example.
  • Input data A (900 (1) to 900 (n)) and data B (902 (1) to 902 (n)) from the low accuracy simulation model to the high accuracy simulation model are all input to the target simulation model.
  • output ( input of a low-accuracy model in the subsequent stage) A ′, A, (901 (1) to 911 (n)), B ′, B (903 (1) to 903 (n)) is output.
  • the high-accuracy model calculates data that cannot be received by the subsequent low-accuracy model, resulting in a waste of calculation load.
  • the high accuracy model A generally updates the output signal more frequently than the low accuracy model B.
  • the time taken to execute the simulation at this time is plotted in the lower part. Since there is a dependency between the output of model B and the input of model A, it is impossible to execute both models at the same time, and the timing chart shown in the figure is obtained.
  • the calculation process of the high-precision model A in which the output has not changed that is, the calculation process between the processes 901 (2) to 901 (n), 905 (2) to 905 (n), etc. Since it is not used for state calculation, it can be regarded as useless calculation processing.
  • the dynamic speed adjustment block blocks or restarts a part of input data and output data to the high-accuracy model based on the input and output change frequency of the target model.
  • the load of the simulation model in the cooperative simulation environment is appropriately controlled, useless calculation processing can be reduced.
  • the accuracy can be dynamically changed during the simulation by changing the adjustment parameter from the outside of the co-simulation environment by the speed adjustment script.
  • the operation cycle of the low-precision motor model 202 and the controller model 200 is a cycle of several milliseconds.
  • the operation cycle of the inverter model 110 which is a high accuracy model may reach several tens of microseconds. Therefore, the problem is that the calculation load of the inverter model is high.
  • by suppressing the input value to the inverter model 110 from the controller model side it is possible to reduce the calculation load by reducing the simulated operation of the inverter model.
  • the microcomputer model 110 which is a high-precision model has an operation cycle of several nanometers.
  • the second cycle and the state are updated with high accuracy and high frequency.
  • the sensor model and the actuator model which are other low-precision models, have a large difference in the operation cycle of several milliseconds and the operation cycle. Therefore, the waste of calculation load of the microcomputer model 110 becomes a problem. Also in this case, it is possible to reduce the calculation load by reducing the simulation operation of the inverter model by suppressing the input from the sensor model to the microcomputer model and further the output from the microcomputer model to the actuator model.
  • the dynamic speed adjustment block 100 described in the first embodiment includes both the input opening 117 and the output opening 105, but only one of them may be employed. That is, a method of dynamically blocking / opening only input data for a target simulation model, or a method of dynamically blocking / opening only output data for a simulation model may be used.
  • examples of the co-simulation environment suitable for applying the present invention include, for example, a type in which a plurality of high-accuracy models receive input from a common low-accuracy model (sensor model or communication model), and a high-accuracy model is low.
  • Various types such as a type that outputs to an accurate model, a type that inputs and outputs low-precision and high-accuracy models bidirectionally, and a type that inputs the output of a low-accuracy model received from a high-accuracy model to other high-accuracy models Possible types.

Abstract

 複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、該動的速度調整ユニットは、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整する。

Description

協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法
 本発明は、協調シミュレーション用計算機システム、組込みシステムの検証方法に係り、特に、メカニズム、ハードウェア、及びソフトウェアで構成される組込みシステムの開発に適した、協調シミュレータの技術に関するものである。
 組込みシステムとは、制御対象を構成するメカニズムと、このメカニズムから受け取った物理量を元に制御演算を行いこのメカニズムに制御値の出力を行なうハードウェアと、このハードウェア上で動作するソフトウェアとで構成されるシステムである。
 例えば、自動車エンジン制御向けの組込みシステムは、制御対象であるエンジン等のメカニズムと、制御演算を行いこのエンジン等を制御するマイコン等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。
 組込みシステムに含まれるソフトウェアの挙動は、制御対象のメカニズムとハードウェアの構成に強く依存するため、メカニズム、ハードウェア、ソフトウェアを併せた挙動の解析が必要である。
 近年、自動車、電気機器等の高信頼化、高機能化により組込みシステムが複雑化しており、作業期間短縮のためハードウェア、ソフトウェアの各部品を細分化して分業化が行なわれ、複数拠点での同時開発が行われている。
 分業化が進むにあたり、部品毎の動作確認だけではなく、部品の組み立て時に判明する性能不足、仕様の不具合が増加し、製品出荷前の最終段階での手戻りによる開発期間の遅延が多発しており、開発効率の悪化が問題となっている。
 この問題を解決するため、設計時点でのメカニズム・ハードウェア・ソフトウェアを協調させたシミュレーションによる性能評価、検証手法が用いられ始めている。
 上記のシミュレーションによる性能評価・動作検証を行うにあたり、対象となる組込みシステムを構成する各要素の動作を、シミュレーションモデルとしてシミュレータ上で実行可能なソフトウェアとなるように記述する必要がある。これらのシミュレーションモデルは、メカニズム・ハードウェア各々の構成要素の設計・製造を担当する会社または部署から提供を受ける形態を取るのが一般的である。
 しかし、これらの異なる物理階層のモデルをそのまま組合わせる手法は、求められるシステム動作を再現する計算負荷が高くなるという問題がある。
 すなわち、使用される上記の各モデルはモデルの提供者の設計自体を助けるために作成されるので、対象物の内部動作をすべて記述したモデルとなる。ただし、これらの内部動作の中では実際にシステム全体レベルのシミュレーションでは参照されない内部動作も存在している。
 例えば、上記のエンジンの制御シミュレーションを対象とした時に、制御マイコンにおいて、エンジンの制御とは関係のない計算の値などは協調シミュレーションで参照されることはなく、この計算処理に費やされる計算負荷は無駄なものとなる。
 このような計算負荷の無駄が積み重なることによって、求められるシステム動作を再現するのに必要な計算負荷が高くなる。
 これに対し、特許文献1には、所定のモデルを書き換える事によって、無駄な計算処理を削除し、シミュレーションの速度を向上させる手法が開示されている。
 この手法を用いることで、協調シミュレーションに必要な処理のみを適切なデータ更新頻度で出力することが可能であり、無駄な計算処理を最大限削除可能である。
特開2008-152722号公報
 複数のシミュレーションモデルが連携する協調シミュレーション環境であって、高頻度に内部状態を更新する高精度モデルと、低頻度に内部状態を更新する低精度モデルが接続されるシステムでは、求められるシステム動作を再現する計算負荷をできるだけ低減することが求められる。
 しかし特許文献1に記載の前述のモデルの書換え作業は、その書き換え対象モデルに接続された別物理階層のモデルの内部状態を理解した上で、そのモデル間のデータフローとその頻度を考慮する必要があるため、その書き換え対象モデルの知識のみにとどまらず、そのモデルに接続されたすべてのモデルの知識が必要である。そのため、書換え作業を行える人間が非常に限られる事、それに反し、書き換えられたモデルの適切なデータフローとその頻度は対象とする協調シミュレーション環境の構成によって異なるため、エンジン制御など特定分野に限った適用は可能だが、多様な構成の組込みシステム全般には適応が難しい。
 本発明の課題は、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーションで参照されない計算処理を限削し、計算負荷の無駄を軽減できるようにした協調シミュレーション用計算機システムを提供することにある。
 本発明の代表的なものの一例を示すと、次のようになる。  
 複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、該動的速度調整ユニットは、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整することを特徴とする。
 本発明によれば、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。
本発明の第1の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示す機能ブロック図である。 本発明を適用した協調シミュレーション環境の構成例を示す図である。 本発明を適用した協調シミュレーション環境のモデル構成例(モータ制御)を示す図である。 本発明を適用した協調シミュレーション環境のモデル構成例(車両制御)を示す図である。 第1の実施例の入出力割合算出部で処理される入出力割合Rについて、説明する図である。 第1の実施例の協調シミュレーション用計算機システムに含まれる、出力開口部モジュール,入力開口部の構成例を示す図である。 第1の実施例の協調シミュレーション用計算機システムに含まれる、出力変化トリガ算出部,入力変化トリガ算出部の構成例を示す図である。 第1の実施例の協調シミュレーション用計算機システムに含まれる、出力変化頻度算出部、入力変化頻度算出部の構成例を示す図である。 第1の実施例における協調シミュレーション用計算機システムに含まれる、入力割合算出部の構成例を示す図である。 第1の実施例の協調シミュレーション用計算機システムの、全体的な動作フローを示す図である。 第1の実施例における協調シミュレーション用計算機システムの、全体的な動作フローを示す図である。 本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の一例を示す図である。 本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の他の例を示す図である。 本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の他の例を示す図である。 比較例として、本発明適用前の協調シミュレーション環境での、データの流れと処理負荷の一例を示す図である。
 上記課題を解決するには、対象モデルへの書き換えをせずに、モデルの無駄な計算負荷を低減する手段を構築する必要がある。そこで、本発明は、シミュレーションモデルに対する入出力信号が変化しないときに、該当モデルの計算処理が不要となる性質を用いて、無駄な計算負荷を発生させているシミュレーションモデルに対する入出力データを動的に遮断・開通することによって、当該シミュレーションモデルの計算負荷を低減する仕組みを提案するものである。
 本発明の代表的な実施形態によれば、高精度モデルと低精度モデルを含む複数のシミュレーションモデルが連携する協調シミュレーション環境において、対象となる高精度モデルの入出力ポートの一部を本発明の動的速度調整ブロックで介入させ、そのデータ通信頻度を動的に変更させる仕組みを追加する。これにより、対象となる高精度モデルが計算処理をする頻度が低下し、協調シミュレーション環境全体の計算負荷の低減が可能である。  
 なお、本発明において、高精度モデルとは、高頻度に内部状態を更新するシミュレーションモデル、低精度モデル低頻度に内部状態を更新するシミュレーションモデルを意味する。
 本発明の代表的な実施形態によれば、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。また、協調シミュレーション環境の外部からこれらの調整パラメータを変更させることにより、シミュレーション中に動的にその精度を変更させることが可能である。
 本発明は、複数のソフトウェアが連動して動作する計算機システム、または開発システムのプログラムに広く適用することができる。 
 以下、本発明の第1の実施例について、説明する。  
 図1は、本発明の第1の実施例になる協調シミュレーション用計算機システムの全体的な構成例を示す機能ブロック図である。本発明の協調シミュレーション用計算機システムは、対象とするシミュレーションモデル110にI/O部を介して接続される動的速度調整ブロック100を備えている。すなわち、本発明の主たる部品である動的速度調整ブロック100は、動的バッファ制御部122と、モデル入力I/O部111とモデル出力I/O部103とを備えている。デル入力I/O部111とモデル出力I/O部103は、対象とするシミュレーションモデル110の入力ポート109及び出力ポート108の、一部または全体とそれぞれ接続される、動的バッファ制御部122は、例えば、メモリに保持され、コンピュータに各種の機能を実現させるプログラムによって構成することができる。
 動的速度調整ブロック100は、さらに、元モデル入力I/O部113と元モデル出力I/O部101を備えており、これらは、本発明適用前に入力ポート109と出力ポート108が接続されるはずであった、対象とするモデル110の前段/後段に位置するシミュレータと接続されていたポートの一部または全体とそれぞれ接続されている。すなわち、動的速度調整ブロック100のモデル入力I/O部111は、入力バッファ112と入力開口部117、元モデル入力I/O部113を介して、前段に位置するシミュレータと接続され、モデル出力I/O部103は、出力バッファ102と出力開口部105、元モデル出力I/O部11を介して、後段に位置するシミュレータと接続される。
 図2Aに、本発明を適用した協調シミュレーション環境の構成例を示す。図2Aの例では、対象とするシミュレーションモデルは、例えば、第1高精度のシミュレーションモデル110であり、動的速度調整ブロック100を介してその入力側に第1低精度シミュレーションモデル200及び第2低精度シミュレーションモデル201が接続され、出力側に第3低精度シミュレーションモデル202及び第4低精度シミュレーションモデル203が接続されている。前段の第1低精度シミュレーションモデル200及び第2低精度シミュレーションモデル201は、各々、元モデル入力I/O部113に接続され、後段の第3低精度シミュレーションモデル202及び第4低精度シミュレーションモデル203は、各々、元モデル出力I/O部101に接続される。204は動的速度調整ブロック100のユーザインタフェースとして機能する表示部である。この表示部204には、ユーザ入力情報、協調シミュレーション環境、シミュレーション実行時の各モデルの入出力値や動作状態の情報等が表示される。ユーザは、表示部204から、シミュレータの初期化時に各種設定を行うと共に、表示部204を出力モニタとして参照しながら、シミュレーション中に、速度調整に関わるパラメータ等、各種のデータの入力を行うこともできる。例えば、協調シミュレーション実行の結果、特定の精度しか得られなかったことが表示部204で確認された場合、ユーザは、例えば、後で述べる定数αを変更して再度協調シミュレーションを実行することを繰り返し、目標の精度を得るようにすることができる。なお、この表示部は、本発明の各実施例が具備していることは言うまでもない。
 図1に戻って、入力バッファ112に接続された入力開口部117と出力バッファ102に接続された出力開口部105は、各々、動的バッファ制御部122で制御される。動的バッファ制御部122は、入力開口部117と出力開口部105にそれぞれ接続されるバッファ(入力バッファ112、出力バッファ102)へのデータ読み出し、データ削除、次段モジュールに対しデータ遮断をするか決定するフラグを別モジュールから制御可能な機能を備えている。なお、入力開口部117と出力開口部105に対しては同じ形態の開口部モジュールを用いる事ができる。この開口部モジュールの構成に関しては、図4を参照しながら後で詳解する。
 動的バッファ制御部122は、入力バッファ112、出力バッファ102とそれぞれ接続された、入力変化トリガ算出部120及び出力変化トリガ算出部106を備えている。これら入力変化トリガ算出部120と出力変化トリガ算出部106は、さらに、プロセス間通信IF部104と接続されている。
 入力変化トリガ算出部120と出力変化トリガ算出部106は、さらに、プロセス間通信IF部 IF104を介して、協調シミュレーションの外部で動作する速度調整スクリプト107から、シミュレータの初期化時とシミュレーション中に速度調整に関わるパラメータのうち、直前の値との差分が幾つ以上になったら値が変化したと判定するためのしきい値を受け取ることができる。
 入力変化トリガ算出部120と出力変化トリガ算出部106に対しては、同じ形態のモジュールを用いる事ができる。この変化トリガ算出モジュールの構成に関しては、図5で詳解する。
 入力変化トリガ算出部120と出力変化トリガ算出部106はそれぞれ、入力変化頻度算出部119、出力変化頻度算出部115と接続されている。
 入力変化頻度算出部119と出力変化頻度算出部115に対しては同じ形態のモジュールを用いる事ができる。この変化頻度算出モジュールの構成に関しては、図6で詳解する。
 入力変化頻度算出部119と出力変化頻度算出部115は、両方共、シミュレータの実行時間を出力する実時間クロック114と、シミュレータによって模擬されている時間を出力する仮想環境内クロック118と接続されており、これを用いて入力変化頻度算出部119と出力変化頻度算出部115に入力される変数の変化頻度を、(1)シミュレータの実行時間あたりと、(2)シミュレートされている時間あたり、の2つの観点で算出することができる。
 入力変化トリガ算出部120と出力変化トリガ算出部106は、両方共、入出力割合算出部116と接続されている。  
 入出力割合算出部116は、プロセス間通信IF部104と接続されており、シミュレータの初期化時とシミュレーション中にプロセス間通信IF部を介して、協調シミュレーションの外部で動作する速度調整スクリプト107から速度調整に関わるパラメータのうち、入出力変化頻度割合値と入力変化頻度割合しきい値、出力変化頻度割合しきい値を受け取ることができる。
 入出力割合算出部116の構成の詳細に関しては、図7で詳解する。  
 入出力割合算出部116は、入力開口部117と出力開口部105の両方と接続されており、これらに対しそれぞれ、入力バッファ112からモデル入力I/O部111、出力バッファ102から元モデル出力I/O部101へのデータ流遮断またはデータ流再開を指示する機能を備える。
 本発明を適用した協調シミュレーション環境のモデル構成を、図2(2A,2B,2C)で概説する。
 協調シミュレーション環境では、異なる物理階層のモデルが複数個接続されることでシステム全体の挙動を模擬する。異なる物理階層のモデルは、それぞれ異なる時間精度を持ち、単位シミュレーション時間あたりのデータ更新頻度がそれぞれ異なる。  
 高精度なモデルは、高頻度で内部状態を更新し、また高頻度で外部出力の値を更新することになる。
 例えば、図2Aで示した構成の様に、第1低精度モデル200、第2低精度モデル201と第1高精度モデル110とが接続されていた場合、第1高精度モデル110の高頻度な出力が全て、後段の第3低精度シミュレーションモデル202及び第4低精度シミュレーションモデル203の状態模擬に使われるのでは無い(図12参照)。このため、第1高精度モデル110における計算負荷の無駄が発生する。
 本発明の動的速度調整ブロック100は、この高精度モデル110の入出力の一部または全部をインターセプトする形で適用される。この時、入出力側の低精度モデル(200-203)は少なくとも1つ以上の高精度モデルと接続されることとなる。この構成をとることによって、各高精度モデルの入力ポート109及び出力ポート108に関して、速度調整をしたいポートとそのまま入力値を入れて精度を保ちたいポートを使い分けることが可能である。
 図2B,図2Cは、本発明を適用するのに適した組込みシステムの協調シミュレーション環境の例を示している。
 図2Bは、組込みシステムのモータ制御をするための協調シミュレーション環境のモデル構成例である。組込みシステムの交流モータの制御は簡易化して説明すると、コントローラモデル200からの速度指令値に基づいて、インバータモデル110が交流信号を出し、モータモデル202が回転する形となる。
 図2Cは、自動車全体システムのシミュレーション環境のモデル構成例である。自動車エンジン制御向けの組込みシステムは、制御対象であるエンジンや駆動用電動機等のメカニズムと、制御演算を行いこのエンジンや駆動用電動機等を制御するマイコン等の電子機器と、このマイコン等の上で動作するソフトウェアとで構成されている。図2Cの例は、低精度のモデルからの入力、この例ではセンサモデル200と通信モデル201からデータを受け取り、マイコンモデル110によってその入力を処理し、エンジンモデル203、ブレーキモデル204等のアクチュエータに制御内容を伝達する構成となっている。センサモデル200が例えばアクセルの踏み込み量を検出するものである場合、その出力は、加速時には変化が多く、平坦路走行時には殆ど変化がないものとなる。このように、自動車の運転状況の変化に応じて、マイコンで処理すべきデータの量も変化する。本発明の動的速度調整ブロック100は、運転状況の変化に応答して、各モデルへの入出力を動的に調整する機能を有している。
 次に、図3を参照して、入出力割合算出部116で演算処理される入出力割合Rについて、説明する。入出力割合Rは、例えば、次式で表わされる。
 R=α・N2/N1(但し、N1:入力変化頻度、N2:出力変化頻度、α:定数)
 αの設定値を、α1、α2のように変えることで、図3に示したように、入出力割合Rの特性は変化する。N2/N1の値が1を超えることは、出力N2が間引かれ、1未満の場合は入力N1が間引かれることを意味する。Rを調整することで、第1高精度のシミュレーションモデル110等の計算負荷量が調整される。
 入出力割合算出部116は、ユーザにより設定された特性αに基づいて、N1、N2から、入出力割合Rの値を算出する。シミュレーションモデル110への入力データの更新頻度、あるいは、シミュレーションモデル110からの出力データの更新頻度が過剰な場合、動的速度調整ブロック100において、シミュレーションモデルへのデータ入力の遮断(間引き)、あるいは、シミュレーションモデルからのデータ出力の遮断(間引き)が行われる。
 図4は、入力開口部117と出力開口部105に共通して利用できる、開口部モジュール500の構成例を示す。開口部モジュール500は、入力となるバッファ(102、112)と出力となるモデルI/O部(103、111)と接続されている。バッファとモデルI/O部は直接つながっておらず、その間にはデータ引渡しフラグ505が介入しており、データ引渡しフラグ505が有効化されているときのみ、バッファとモデルI/O部間でデータが流れるようになっている。
 データ引渡しフラグ505は入出力割合算出部115と接続されており、入出力割合算出部115による入出力変化頻度割合または、入力変化頻度の大小判定の結果、データ引渡しフラグ505が有効か、無効かが決定される。
この他にも、データ引渡しフラグ505はバッファ中の最古のデータの削除をバッファに対して要求するデータ削除命令504と、バッファ中の最古のデータの送信をバッファに対して要求するデータ要求命令503をバッファ(102、112)に対し要求することが可能である。
 図5は、入力変化トリガ算出部120と出力変化トリガ算出部106に共通して利用できる、変化トリガ算出モジュール600の構成例を示す。  
 本モジュール600は、データの入力となるバッファ(102、112)と、算出したトリガの出力先となる変化頻度算出部700(入力変化頻度算出部119,出力変化頻度算出部115)と接続されている。またプロセス間通信IF部104と接続されており、入力値しきい値(β1)を保存したレジスタ609の値を更新することが可能である。
 バッファ(102、112)より入力された値はまずバッファ最新値レジスタ601に保存される。この最新値とレジスタ603に保存されている、前回トリガが成立した時の入力値(前回値)を入力とする減算処理部604があり、更にその減算結果の絶対値|A|を取得する絶対値取得部605に接続されている。さらに、絶対値取得部605で取得された絶対値|A|と、入力値しきい値レジスタ609に保存されているしきい値(β1)を入力とする比較処理部606があり、ここで絶対値取得部605によって算出された値Aが大きいと判断された場合(A>β1)、パルス発生器607がパルスを変化頻度算出部608に出力する。
 同時に、バッファ最新値レジスタ601とレジスタ603に接続されているデータコピー処理部602は、比較器606が出力する正の論理値を受け取ると、バッファ最新値レジスタ601からレジスタ603にデータをコピーする。
 図6に、入力変化頻度算出部119と出力変化頻度算出部115とに共通して利用できる、変化頻度算出モジュール700の構成例を示す。  
 変化頻度算出モジュール700は、入力側が、変化トリガ算出部600(106,120)、実時間クロックモジュール114、仮想環境内クロックモジュール118と接続されており、出力側が入出力割合算出部116と接続されている。
 変化トリガ算出モジュール600からの入力はトリガ入力モジュール701で受信される。この瞬間の実時間クロックモジュール114と仮想環境内クロックモジュール118の出力値をそれぞれ、実時間タイムスタンプ現在値レジスタ702、仮想環境内タイムスタンプ現在値レジスタ706に保存する。
 減算処理部704が、実時間タイムスタンプ現在値レジスタ702と実時間タイムスタンプ貯蓄値レジスタ703を入力とし、この減算処理部704における処理結果が実時間変化頻度レジスタ705に保存される。
 また、減算処理部708が、仮想環境内タイムスタンプ現在値レジスタ706と仮想環境内タイムスタンプ貯蓄値レジスタ707を入力とし、この減算処理部708における処理結果が仮想環境内変化頻度レジスタ709に保存される。
 上記の2つの減算処理部704、708の処理の後、実時間タイムスタンプ現在値レジスタ702、仮想環境内タイムスタンプ現在値レジスタ706の値がそれぞれ実時間タイムスタンプ貯蓄値レジスタ703と、仮想環境内タイムスタンプ貯蓄値レジスタ707に保存される。実時間変化頻度レジスタ705と、仮想環境内変化頻度レジスタ709に保存された変化頻度(R)は、セットとなって入出力割合算出部116に出力される。
 図7は、入出力割合算出部116の構成例を示すものである。  
 入出力割合算出部116は、出力変化頻度算出部115からの変数変化頻度情報(N2)と入力変化頻度算出部119からの変数変化頻度情報(N1)を入力とする。また、入出力割合算出部116は、プロセス間通信IF部104と接続されており、出力変化割合しきい値レジスタ805の値β3、入力変化割合しきい値レジスタ804の値β2、出力変化割合レジスタ808の値αを更新可能である。
 入力変化頻度算出部119の割合出力値(N1=A1)は、まず入力変化頻度レジスタ801に、出力変化頻度算出部115の割合出力値(N2=A2)はまず出力変化頻度レジスタ800に保存される。除算処理部806には、出力変化頻度レジスタ800の値と入力変化頻度レジスタ801が接続されており、この除算処理部806の出力値(A2/A1)と出力変化割合レジスタ808の値αが比較演算処理807に入力される。また、入力変化頻度レジスタ801の値A1と入力変化割合しきい値レジスタ804の値β2を入力する比較処理部803があり、この比較処理部803の出力と比較処理部807の出力の論理和809の出力が入力開口部117に入力される。
 また、出力変化頻度レジスタ800の値A2と入力変化割合しきい値レジスタ805の値β3を入力する比較処理部802があり、この比較処理部802の出力と比較処理部807の出力の論理和809が出力開口部105に入力される。
 図8(図8A、図8B)は、第1の実施例の協調シミュレーション用計算機システムの、全体的な動作フローを示す図である。  
 まず、ユーザによりシミュレータの初期化が実行され、かつ、必要なパラメータの設定がなされる。すると、協調シミュレーション環境に含まれるシミュレーションモデルや、それらを接続するシミュレーションインターフェイスの初期化と並行して、動的速度調整ブロック100の初期化が行われる(S400)。その中で、プロセス間通信IF部104のソケット通信の初期化が実行され、速度調整スクリプト107がプロセス間通信IF部104と接続される(S401)。
 すると、速度調整スクリプト107から送られる初期化データに基づいて、入出力割合算出部116の入出力トリガ間隔比率しきい値αの初期設定(S402)、出力/入力変化トリガ算出部の入力値しきい値β1の初期設定(S403)、入出力割合算出部の入力フィルタしきい値β2、出力フィルタしきい値β3の初期設定(S404)が実行される。これらの初期化処理後も、プロセス間通信IF部と速度調整スクリプト間の通信ソケットは有効化されたままにとなっていて、定期的に通信パケットを送り続ける。
 全てのシミュレーションモデル及び動的速度調整ブロック100の初期化が完了すると、シミュレーションが開始されるステップ(S405)。このとき、動的速度調整ブロック100に対し、接続されたシミュレーションモデル110から入力データが入ってきて、そのまま入力バッファ112、入力開口部117、出力開口部105、出力バッファ102を通り、データが対象シミュレーションモデル110を通過するようになる(S406)。
 シミュレーションの実行と並行し、S401で確立した速度調整スクリプト107とプロセス間通信IF部104間のソケット通信を用いて、速度調整スクリプトとプロセス間通信IF部間は、シミュレータ自体の動作に影響を与えない、非同期な通信パケットの交換を行なっている。
 プロセス間通信IF部104が受信待ち状態になると(S419)、速度調整スクリプト107がプロセス間通信IF部に対して通信パケットを送る(S420)。前述の通信パケットにより、動的速度調整ブロック100の動作パラメータを設定することが可能であり、通信パケット上の該当するフィールドに有効な値が設定されていた場合、動的速度調整ブロック100内の対象とする動作パラメータが更新される。
 そこでは、入出力割合算出部116の入出力トリガ間隔比率しきい値αの更新(S421)、出力/入力変化トリガ算出部の入力値しきい値β1の更新(S424)、入出力割合算出部の入力フィルタしきい値β2、出力フィルタしきい値β3の更新(S423)が実行される。
 通信が終了すると再度、プロセス間通信IF部は通信待ち状態に入り、動的速度調整ブロックは更新された動作パラメータを用いて、モデルへのデータ入力制御を行う。このようにして、シミュレーション動作中であってもシミュレーション速度と精度の調整が可能となっている。
 前記対象シミュレーションモデル110へのデータの入出力(S406)と並行し、入力変化トリガ算出部120と出力変化トリガ算出部106が、入出力ポートの値の変化トリガを算出する(S407)。すなわち、バッファ最新値レジスタ601に保存された最新値とレジスタ603に保存されている前回トリガが成立した時の前回値とを入力とする減算処理を行い、更にこの減算結果の絶対値|A|を取得する。さらに、この取得された絶対値と、入力値しきい値レジスタ609に保存されている値(β1)とを比較処理し、ここで絶対値取得処理部605によって算出された値がしきい値よりも大きいと判断された場合(A>β1)、パルス発生器607がパルスを変化頻度算出部608に出力する(S425)。または、S419からS422のパラメータ更新ステップによって更新される入力値しきい値β1を用い、前にトリガが成立した際の前回値との差異の絶対値|A|が前述のしきい値β1を超えた時に、トリガが成立したとして入力変化頻度算出部、出力変化頻度算出部にトリガを送信する。また同時に、トリガ成立時の入出力の値を、次のトリガ評価に使用するためにレジスタに保存する。
 変化頻度算出モジュール700では、トリガを受信したタイムスタンプを取得して保存するレジスタがあり、直前にトリガを受信したタイムスタンプとの間隔を計算することが可能である。トリガのタイムスタンプは、シミュレートされた時間、シミュレーション実行時間の双方で計算され、両方共、変化頻度算出部で保存される。計算された両タイムスタンプの間隔は入出力割合算出部へと送られる(S408)。
 入出力割合算出部116へ送られた入力タイムスタンプ間隔と出力タイムスタンプ間隔は、除算されトリガ間隔比率(N2/N1)として保存される(S409)。トリガ間隔比率(N2/N1)は、予め与えられた、またはS419からS422のパラメータ更新ステップによって更新される入出力トリガ間隔比率の閾値αと比較される。
 そして、シミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらかが入出力トリガ間隔比率閾値αを上回ったか評価する(S410)。
 S410でシミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらかが入出力トリガ間隔比率閾値αを上回った場合、この時、動的速度調整ブロック100は入力データの更新頻度が過剰であると判断される(S412)。
 または、S408で算出した入力変化頻度N1が、予め与えられた、またはS419からS422のパラメータ更新ステップによって更新される、入力フィルタ閾値β2よりも大きかった(N1>β2)場合(S411)、この時動的速度調整ブロックは入力データの更新頻度が過剰であると判断する(S412)。
 S412で動的速度調整ブロックが入力データの更新頻度(N1)が過剰であると判断された場合、動的速度調整ブロック100は入力開口部117のデータ転送設定を無効化する(S413)。これにより、対象シミュレーションモデルへ110のデータ入力が遮断され(S414)、結果として対象シミュレーションモデル110の実行負荷が低下する(S415)。
 同様に、ステップ412で、入力変化頻度N2が、予め与えられた、またはパラメータ更新ステップによって更新される、入力フィルタ閾値β3よりも大きかった(N2>β3)場合、出力データの更新頻度(N2)が過剰であると判断され、入力開口部117と並行して、出力開口部105のデータ転送設定も無効化される(S416)。これにより、対象シミュレーションモデルへ110の出力側(後段)に接続された低精度モデルへのデータ入力が遮断され(S417)、結果として出力側に接続された低精度モデルの実行負荷が低下する(S418)。
 また、S410でシミュレートされた時間ベースの入出力トリガ比率、シミュレーション実行時間ベースの入出力トリガ比率のどちらも入出力トリガ間隔比率閾値αを上回らず、かつ、S408で算出した入力変化頻度(N1)が、予め与えられた、またはS419からS422のパラメータ更新ステップによって更新される、入力フィルタ閾値β2以下であった場合(N1≦β2)、この時、動的速度調整ブロック100は入力データの更新頻度(N1)が適正と判断される。すると、動的速度調整ブロック100は入力開口部117のデータ転送設定を有効化する(S433)。これにより、対象シミュレーションモデル110へのデータ入力が再開され(S434)、結果として対象シミュレーションモデルの実行負荷が上昇する(S435)。
 同様に、ステップ412で、入力変化頻度N2が、予め与えられた、またはパラメータ更新ステップによって更新される、入力フィルタ閾値β3以下であった場合(N2≦β2)、出力データの更新頻度(N2)が適正と判断され、出力開口部105のデータ転送設定が有効化される(S436)。これにより、対象シミュレーションモデル110からのデータが発生するようになり(S437)、結果として対象シミュレーションモデルの後段に接続された低精度モデルの実行負荷が上昇する(S438)。
 このような一連のステップにより、動的速度調整ブロック100は、協調シミュレーション環境にある、高精度モデルと低精度モデルの、動的な実行負荷すなわちシミュレーション速度と精度の調整を可能にする。
 図9は、本発明の実施例を適用した場合のモデルの動作とその計算負荷の関係の一例を示す。横軸に、シミュレータの内部時間と、実時間すなわちシミュレーションの実行時間をとり、時系列変化を図示した。図9の上の段は、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データA(910(1)~910(n))、データB(912(1)~912(n))を動的速度調整ブロック100が制御し、対象シミュレーションモデルの出力(=後段の低精度モデルの入力)A’,A’,(911(1)~911(2)),B’,B’(913(1)~913(2))が調整されている例である。918は、入力信号の遮断によって、高精度モデルに入力されなくなった低精度モデルの出力である。
 図9の下の段は、上の段と同じ制御について、横軸を実時間で示したものであり、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データA(914(1)~914(n))、データB(916(1)~916(n))を動的速度調整ブロック100が制御し、対象シミュレーションモデルの出力(=後段の低精度モデルの入力)A’,A’,(915(1)~915(2)),B’,B’(917(1)~917(2))が調整されている。919は、入力信号の遮断によって削減された高精度モデルの計算負荷である。
 動的速度調整ブロック100は、対象モデルの入力、出力の変化頻度に基づいて高精度モデルへの入力データをA,Bの一部を遮断する(918、919)ことができる。この制御によって、低精度シミュレーションモデルの入力が遮断され(918、919)、高精度モデルで内部状態の更新が停止することになる。
 すなわち、高精度モデルの入力が遮断され(918、919)、その結果、内部状態の停止していた間隔(918、919)の分、高精度モデルの計算処理が削減される事になる。
 図10は、本発明の実施例を適用した場合のモデルの動作とその計算負荷の関係の他の例を示す。図9の例に比較して、低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データ918、計算負荷919が、さらに絞られている。その結果、高精度モデルの計算処理がより多く削減される事になる。
 次に、図11は、本実施例の適用後の協調シミュレーション環境での、データの流れと処理負荷の関係の他の例を示す図である。928は、入力信号の遮断によって、高精度モデルか低精度モデルに入力されなくなった出力である。高精度シミュレーションモデルから低精度シミュレーションモデルの出入力データ(920~927)を動的速度調整ブロック100が制御し、この制御によって、後段の低精度シミュレーションモデルの入力が遮断され(929)、低精度シミュレーションで内部状態の更新が停止することになる。これにより、後段の低精度シミュレーションモデルの計算処理がより減される事になる。
 図12は、比較例として、本発明適用前の協調シミュレーション環境での、データの流れと処理負荷の一例を示す図である。低精度シミュレーションモデルから高精度シミュレーションモデルへの入力データA(900(1)~900(n))、データB(902(1)~902(n))の全てが対象シミュレーションモデルに入力され、その出力(=後段の低精度モデルの入力)A’,A,(901(1)~911(n)),B’,B(903(1)~903(n))が出力されている例である。後段の低精度モデルが受信しきらないデータを高精度モデルが算出することになり、計算負荷に無駄が生じている。
 高精度モデルAは一般的に低精度モデルBよりも高い頻度で出力信号を更新する。この時のシミュレーションの実行にかかる時間を下段にプロットしてある。モデルBの出力とモデルAの入力には依存関係があるため、両モデルの実行は同時に行うことが不可能であって、図示したようなタイミングチャートになる。このとき出力が変化していない高精度モデルAの計算処理、すなわち処理901(2)から901(n)、905(2)から905(n)の間等の計算処理は、次段のモデルの状態計算には用いられないため、無駄な計算処理とみなすことができる。
 本発明によれば、動的速度調整ブロックが対象モデルの入力、出力の変化頻度に基づいて高精度モデルへの入力データや出力データの一部を遮断したり、再開したりすることで、図9~図11で述べたように、協調シミュレーション環境にあるシミュレーションモデルの負荷を適切に制御するので、無駄な計算処理を削減できる。しかも、ユーザが各モデルに対する実装の変更をすることなく、協調シミュレーション環境における計算負荷の偏重を適正化することが可能である。また、協調シミュレーション環境の外部から、速度調整スクリプトにより、調整パラメータを変更させることにより、シミュレーション中に動的にその精度を変更させることが可能である。
 より具体的に述べると、先に述べた図2Bのモータ制御をするための協調シミュレーション環境のモデル構成例において、低精度のモータモデル202やコントローラモデル200の動作周期は数ミリ秒周期であるのに対し、高精度モデルであるインバータモデル110の動作周期は数10マイクロ秒に達することがある。そのため、インバータモデルの計算負荷が高いことが問題となっている。これに対し、コントローラモデル側からインバータモデル110への入力値を抑えることによって、インバータモデルの模擬動作を軽減することで、計算負荷を減らすことが可能となる。
 また、先に述べた図2Cの自動車全体システムのシミュレーション環境のモデル例では、マイコンに搭載されるCPUの内部動作まで模擬していた場合、高精度モデルであるマイコンモデル110は動作周期が数ナノ秒周期と、非常に高精度であり高頻度に状態を更新する事となる。これに対してそれ以外の低精度のモデルであるセンサモデル、アクチュエータモデルは数ミリ秒の動作周期と、その動作周期に大きな差がある。そためにマイコンモデル110の計算負荷の無駄が問題となる。この場合も、センサモデルからマイコンモデルへの入力、さらには、マイコンモデルからアクチュエータモデルへの出力を抑えることによって、インバータモデルの模擬動作を軽減することで、計算負荷を減らすことが可能となる。
 実施例1で述べた動的速度調整ブロック100は、入力開口部117と出力開口部105の双方を備えているが、何れか一方のみを採用しても良い。すなわち、対象となるシミュレーションモデルに対する入力データのみを動的に遮断・開通する方式、あるいは、シミュレーションモデルに対する出力データのみを動的に遮断・開通する方式としても良い。
 また、本発明を適用するのに適した協調シミュレーション環境の例としては、例えば、複数の高精度モデルが共通の低精度モデル(センサモデルや通信モデル)から入力を受けるタイプ、高精度モデルが低精度モデルに出力するタイプ、低精度と高精度モデルが双方向に入出力を行うタイプ、高精度モデルから入力を受けた低精度モデルの出力を他の高精度モデルに入力するタイプ等、種々のタイプが考えられる。
 100:動的速度調整ブロック
 101:元モデル出力I/O部
 102:出力バッファ
 103:モデル出力I/O部
 104:プロセス間通信IF部
 105:出力開口部
 106:出力変化トリガ算出部
 107:速度調整スクリプト
 108:出力ポート
 109:入力ポート
 110:対象となるシミュレーションモデル
 111:モデル入力I/O部
 112:入力バッファ
 113:元モデル入力I/O部
 114:実時間クロックモジュール
 115:出力変化頻度算出部
 116:入出力割合算出部
 117:入力開口部
 118:仮想環境内クロック
 119:入力変化頻度算出部
 120:入力変化トリガ算出部
 122:動的バッファ制御部
 900,902:比較例の低制度モデルBの出力動作
 901,903:比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作
 904,906:比較例の低制度モデルBの出力動作に関わる計算負荷
 905,907:比較例の低精度モデルBの出力を受けた場合の高精度モデルAの出力動作に関わる計算負荷
 918:実施例1において、入力信号の遮断によって、高精度モデルに入力されなくなった低精度モデルBの出力
 919:実施例1において、入力信号の遮断によって削減された高精度モデルAの計算負荷。

Claims (15)

  1.  複数のシミュレータが相互に協調して動作する協調シミュレーション用計算機システムであって、
     前記複数のシミュレータは、精度及び速度の異なる複数のシミュレータを含んでおり、
     検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
     前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
     該動的速度調整ユニットは、
     前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を制御して、前記協調して動作する複数のシミュレータの動作速度を調整する
    ことを特徴とする協調シミュレーション用計算機システム。
  2.  請求項1において、
     前記入力バッファは、前記検証対象のシミュレータの入力ポートの値を一時的に貯蔵する機能を有し、
     前記出力バッファは、前記検証対象のシミュレータの出力ポートの値を一時的に貯蔵する機能を有し、
     前記動的速度調整ユニットは、
     前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
    ことを特徴とする協調シミュレーション用計算機システム。
  3.  請求項2において、
     前記精度及び速度の異なる複数のシミュレータは、前記検証対象であって高頻度に内部状態を更新する高精度モデルのシミュレータと、前記検証対象シミュレータの模擬動作に関わり、低頻度に内部状態を更新する低精度モデルのシミュレータとを含んでおり、
     前記動的速度調整ユニットは、前記検証対象となるシミュレータに対する入出力データの更新頻度を調整する
    ことを特徴とする協調シミュレーション用計算機システム。
  4.  請求項3において、
     前記動的速度調整ユニットに対してユーザインタフェース機能を有する表示部を備え、前記協調シミュレーション環境、及び、前記シミュレーション実行時の各モデルの入出力値や動作状態の情報が表示される
    ことを特徴とする協調シミュレーション用計算機システム。
  5.  請求項3において、
     前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部を備えており、
     前記入力値変化頻度が所定の閾値を超えている場合には、前記入力開口部のデータ転送設定を無効化する
    ことを特徴とする協調シミュレーション用計算機システム。
  6.  請求項3において、
     前記動的速度調整ユニットは、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口部を備えており、
     前記出力値変化頻度が所定の閾値を超えている場合には、前記出力開口部のデータ転送設定を無効化する
    ことを特徴とする協調シミュレーション用計算機システム。
  7.  請求項3において、
     前記動的速度調整ユニットは、変化トリガ算出部を備えており、
     該変化トリガ算出部は、前記対象シミュレーションモデルへ入出力ポートの入力値若しくは出力値の変化トリガを算出し、入力/出力の最新値と前回値との差の絶対値と、予め与えられたしきい値β1とを比較処理し、前記絶対値が前記しきい値よりも大きいとき、パルス発生器からパルスを出力する
    ことを特徴とする協調シミュレーション用計算機システム。
  8.  請求項7において、
     前記動的速度調整ユニットは、前記入力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する入力開口部、前記出力バッファと前記検証対象となるシミュレータ間のデータ転送を制御する出力開口、及び、変化頻度算出部を備えており、
     該変化頻度算出部は、前記パルス発生器からのパルスによって起動され、
     入力/出力変化トリガの間隔が所定の比率しきい値αを超えた時に、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
    ことを特徴とする協調シミュレーション用計算機システム。
  9.  請求項8において、
     前記動的速度調整ユニットは、入力/出力割合算出部を備えており、入力変化頻度N1が、予め与えられた閾値β2よりも大きかった場合、前記入力データの更新頻度が過剰であると判断し、前記入力開口部若しくは前記出力開口のデータ転送設定を無効化する
    ことを特徴とする協調シミュレーション用計算機システム。
  10.  請求項3において、
     前記動的速度調整ユニットは、
     検証対象の入出力ポートの値の変化の頻度に基づいて、前記入/出力バッファからのデータの削除を行うか、前記検証対象となるシミュレータへのデータ供給を行うかを制御する機能を持っており、該機能により、動的に対象となるシミュレータに対する前記入力データの供給速度を調整することによって、前記対象となるシミュレータの模擬動作に関わる計算処理を削減することを特徴とする協調シミュレーション用計算機システム。
  11.  メカニズム、ハードウェア、及びソフトウェアを模擬した組込みシステムの検証システムであって、
     前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作する協調シミュレーション用計算機システムを構成するものにおいて、
     検証対象のシミュレータの入力側及び出力側に各々対応して設けられた入力バッファ及び出力バッファと、
     前記入力バッファ及び出力バッファに対するデータの入出力を制御する動的速度調整ユニットとを備え、
     該動的速度調整ユニットは、
     前記検証対象のシミュレータへのデータ供給を行うかの判断基準として、
     前記シミュレータの実行時間あたりの変数変化頻度が一定値を超えた時、前記検証対象のシミュレータによって模擬されている時間あたりの変数変化頻度が一定値を超えた時、入出力の変数変化頻度の割合が一定値を超えた時、のいずれかが成立した場合を判定し、
     前記判断基準が成立した場合、前記検証対象のシミュレータに対する前記データの入力の変更頻度若しくは該検証対象のシミュレータからの前記データの出力の変更頻度を動的に制御して前記協調動作する複数のシミュレータの動作速度を調整する
    ことを特徴とする組込みシステムの検証システム。
  12.  請求項11において、
     前記動的速度調整ユニットは、
     前記協調して動作する複数のシミュレータの外部に存在する速度調整スプリクトと通信する機能と、
     前記検証対象のシミュレータへのデータ供給を行うかの判断基準を、前記速度調整スプリクトとの通信結果に基づいて変更する機能とを有し、
     前記検証対象のシミュレータの動作精度・速度を、該検証対象のシミュレータの動作中に変更可能である
    ことを特徴とする組込みシステムの検証システム。
  13.  請求項11において、
     前記精度及び速度の異なる複数のシミュレータは、センサやアクチュエータを模擬する低精度のモデルと、前記センサの入力を処理し前記アクチュエータに制御内容を伝達するマイコンを模擬する高精度のモデルによって構成されており、
     前記動的速度調整ユニットは、前記判断基準が成立した場合に、前記高精度のモデルに対する入出力データの更新頻度を調整する
    ことを特徴とする組込みシステムの検証システム。
  14.  協調シミュレーション用計算機システムを用いた組込みシステムの検証方法であって、
     前記組込みシステムは、メカニズム、ハードウェア、及びソフトウェアで構成され、
     前記協調シミュレーション用計算機システムは、前記メカニズム、前記ハードウェア、及び前記ソフトウェアを模擬する精度及び速度の異なる複数のシミュレータが、相互に協調して動作するものにおいて、
     検証対象の入出力ポートの値を一時的にバッファに貯蔵し、
     前記入力ポートの入力値の変化の頻度及び前記出力ポートの出力値の変化の頻度の少なくとも一方を計測し、前記入力値変化頻度若しくは前記入力値変化頻度が各々所定の閾値を超えている場合には、前記検証対象のシミュレータと前記閾値を超えている側の前記入力バッファ若しくは前記出力バッファと間のデータの供給を制限若しくは遮断する
    ことを特徴とする組込みシステムの検証方法。
  15.  請求項14において、
     前記協調シミュレーション用計算機システムは、ユーザインタフェース機能を有する表示部を備え、
     前記表示部に、前記協調シミュレーション環境、及び、前記シミュレーション実行時の各モデルの入出力値や動作状態の情報を表示する
    ことを特徴とする組込みシステムの検証方法。
PCT/JP2012/072676 2012-09-06 2012-09-06 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法 WO2014038030A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014534096A JP5926807B2 (ja) 2012-09-06 2012-09-06 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法
PCT/JP2012/072676 WO2014038030A1 (ja) 2012-09-06 2012-09-06 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/072676 WO2014038030A1 (ja) 2012-09-06 2012-09-06 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法

Publications (1)

Publication Number Publication Date
WO2014038030A1 true WO2014038030A1 (ja) 2014-03-13

Family

ID=50236681

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/072676 WO2014038030A1 (ja) 2012-09-06 2012-09-06 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法

Country Status (2)

Country Link
JP (1) JP5926807B2 (ja)
WO (1) WO2014038030A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170371988A1 (en) * 2016-06-27 2017-12-28 Fanuc Corporation Simulation system
CN107728491A (zh) * 2017-09-27 2018-02-23 重庆邮电大学 一种v2x车联网在环仿真系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074184A (ja) * 1996-08-30 1998-03-17 Fujitsu Ltd 分散型コンピュータシステムにおける最適負荷制御方法
JP2005332162A (ja) * 2004-05-19 2005-12-02 Nec Corp ハードウェア/ソフトウェア協調シミュレーション方式及びその方法
JP2006331269A (ja) * 2005-05-30 2006-12-07 Nec Corp ハードウェア/ソフトウェア協調シミュレーション装置及び方法
JP2008065640A (ja) * 2006-09-07 2008-03-21 Toshiba Corp シミュレーション装置およびそのシミュレーション制御方法
JP2009223762A (ja) * 2008-03-18 2009-10-01 Toshiba Corp 協調検証装置
JP2009295014A (ja) * 2008-06-06 2009-12-17 Mitsubishi Electric Corp 統合シミュレーション装置
JP2010134722A (ja) * 2008-12-04 2010-06-17 Mitsubishi Electric Corp 統合シミュレーションシステムおよび同期制御方法
JP2011039781A (ja) * 2009-08-11 2011-02-24 Fujitsu Semiconductor Ltd 協調シミュレーション装置及びシミュレーション方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060117274A1 (en) * 1998-08-31 2006-06-01 Tseng Ping-Sheng Behavior processor system and method
IL154481A0 (en) * 2001-08-14 2003-09-17 Axis Systems Inc Vcd-on-demand system and method

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1074184A (ja) * 1996-08-30 1998-03-17 Fujitsu Ltd 分散型コンピュータシステムにおける最適負荷制御方法
JP2005332162A (ja) * 2004-05-19 2005-12-02 Nec Corp ハードウェア/ソフトウェア協調シミュレーション方式及びその方法
JP2006331269A (ja) * 2005-05-30 2006-12-07 Nec Corp ハードウェア/ソフトウェア協調シミュレーション装置及び方法
JP2008065640A (ja) * 2006-09-07 2008-03-21 Toshiba Corp シミュレーション装置およびそのシミュレーション制御方法
JP2009223762A (ja) * 2008-03-18 2009-10-01 Toshiba Corp 協調検証装置
JP2009295014A (ja) * 2008-06-06 2009-12-17 Mitsubishi Electric Corp 統合シミュレーション装置
JP2010134722A (ja) * 2008-12-04 2010-06-17 Mitsubishi Electric Corp 統合シミュレーションシステムおよび同期制御方法
JP2011039781A (ja) * 2009-08-11 2011-02-24 Fujitsu Semiconductor Ltd 協調シミュレーション装置及びシミュレーション方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170371988A1 (en) * 2016-06-27 2017-12-28 Fanuc Corporation Simulation system
CN107728491A (zh) * 2017-09-27 2018-02-23 重庆邮电大学 一种v2x车联网在环仿真系统

Also Published As

Publication number Publication date
JPWO2014038030A1 (ja) 2016-08-08
JP5926807B2 (ja) 2016-05-25

Similar Documents

Publication Publication Date Title
JP5395397B2 (ja) シミュレーションシステム
Van der Auweraer et al. Virtual engineering at work: the challenges for designing mechatronic products
JP5153465B2 (ja) シミュレーション方法、システム及びプログラム
CN102124448B (zh) 控制嵌入式系统开发期间的实时性
US20210081585A1 (en) Method for event-based simulation of a system
US20080077382A1 (en) Simulation System and Computer-Implemented Method for Simulation and Verifying a Control System
KR20130105609A (ko) 시뮬레이션 방법, 시스템 및 프로그램
JP2008070368A (ja) 電子制御システムをテストする方法
JP2008090489A (ja) シミュレーションシステム
JP2008084121A (ja) シミュレーションシステム及びシミュレーション方法
KR20130091096A (ko) 하이브리드 시스템을 검증하기 위한 시뮬레이션 장치 및 방법
JP2011022702A (ja) シミュレーション方法、システム及びプログラム
Sakairi et al. Model based control system design using sysML, simulink, and computer algebra system
CN103069462A (zh) 用于控制设备的方法和装置
JP6802208B2 (ja) 熱変位補正システム及び計算機
JP5926807B2 (ja) 協調シミュレーション用計算機システム、組込みシステムの検証システム及び組込みシステムの検証方法
JP2012093899A (ja) 計算機システム、シミュレーション方法、及びプログラム
JP2010033130A (ja) シミュレーション方法、システム及びプログラム
US7477250B2 (en) Method and system for hapto-visual scene development and deployment
US20220004159A1 (en) Method and a system for synchronizing a first and a second simulation system
JP5460010B2 (ja) シミュレーション方法、システム及びプログラム
EP4036705A1 (en) Design assistance tool
Ishikawa et al. CPU model-based hardware/software co-design for real-time embedded control systems
KR20160065641A (ko) Hsil 기반 가상 엔진 검증 장치 및 방법
Oral An effective modeling architecture for mil, hil and vdil testing

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12884146

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014534096

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12884146

Country of ref document: EP

Kind code of ref document: A1