Virtual Real-Time Hardware-in-Loop Simulation on Non-Real-Time Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Achieving hard real-time in hardware-in-loop simulations typically requires a real-time system, which is costly and limits local observation and modification of simulation signals, as it necessitates remote deployment and increased hardware investment.
Innovation Solution
A method for a non-real-time system to achieve hard real-time by creating a real-time model task and determining the appropriate thread number based on the number of processor kernels, allowing for local execution without a real-time system, by setting the thread number to 1 when kernels are fewer than X and to (Z−X)/Y when greater, enabling multi-thread simulation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a real-time system is used to execute hardware-in-loop simulation tasks, then real-time performance is guaranteed, but hardware cost increases and local observation capability is lost
Solution Approach 1:
The patent creates a virtual real-time system by copying the real-time execution environment into a non-real-time operating system through virtualization technology. The simulation task is executed in a virtualized environment that mimics real-time characteristics without requiring actual real-time hardware, thus reducing hardware costs while maintaining real-time performance guarantees.
Solution Approach 2:
The patent introduces a virtualization layer as an intermediary between the simulation task and the physical hardware. This virtualization layer acts as a mediator that provides real-time scheduling and resource management capabilities to the simulation task while running on a standard non-real-time operating system, eliminating the need for expensive dedicated real-time hardware.
2Reliability
If a real-time system is deployed remotely, then real-time execution is achieved, but local observation and modification of simulation signals becomes impossible
Solution Approach 1:
The patent merges the real-time execution capability with the local development environment by virtualizing the real-time system within the host computer. This allows the simulation task to execute with real-time guarantees while simultaneously enabling direct local observation and modification of simulation signals through the host operating system's interfaces, eliminating the need for remote deployment.
3Productivity
If thread number is increased to utilize more processor kernels, then simulation speed increases, but system complexity and scheduling difficulty increase
Solution Approach 1:
The patent segments the simulation task into multiple independent sub-tasks that can be executed in parallel on different processor kernels. Each sub-task is self-contained and can be scheduled independently, which simplifies the overall scheduling complexity while utilizing multiple cores to increase simulation speed. The virtualization layer manages these segmented tasks efficiently.
Solution Approach 2:
The patent implements dynamic thread management where the number of threads is adjusted based on the current simulation workload and available processor resources. The system can dynamically create or terminate threads as needed, optimizing simulation speed while adapting to changing system conditions without requiring complex static scheduling configurations.
Data Source
AI summary
A system for achieving hard real-time by a non-real-time system in a hardware-in-loop simulation includes: a computer device, and the computer device being configured to execute a task creating module and a task thread setting module, wherein, the task creating module is configured to create a real-time model task and form a task program; the task thread setting module is configured to: enable the task program to automatically read computer configuration and determine a number Z of processor kernels of a current computer device; when the number Z of the kernels is not greater than X, set a thread number to n=1 to execute the real-time model task, and otherwise, set the thread number to n=(Z−X)/Y to execute the real-time model task, wherein Y represents a thread number of one physical core of the processor.

