CN110297703A - 一种在实时仿真系统中模拟硬件任务调度的方法及装置 - Google Patents
一种在实时仿真系统中模拟硬件任务调度的方法及装置 Download PDFInfo
- Publication number
- CN110297703A CN110297703A CN201910501855.5A CN201910501855A CN110297703A CN 110297703 A CN110297703 A CN 110297703A CN 201910501855 A CN201910501855 A CN 201910501855A CN 110297703 A CN110297703 A CN 110297703A
- Authority
- CN
- China
- Prior art keywords
- time
- hardware task
- subtask
- real
- running
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种在实时仿真系统中模拟硬件任务调度的方法及装置,首先将待模拟的硬件任务进行拆分;然后根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;最后按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。对于在实时仿真系统中的复杂硬件任务的建模,确保模型可以实时运行,同时保证模型可以准确反映硬件任务的特性,实现了在仿真系统中实现控制保护逻辑的实时运行。
Description
技术领域
本发明属于电力系统数字仿真技术领域,特别涉及一种在实时仿真系统中模拟硬件任务调度的方法及装置。
背景技术
目前,我国已有三十余个直流输电工程陆续建成投运,直流换流站的运维工作量日益加重。直流控制保护系统是换流站整个二次系统的核心,规模庞大、逻辑复杂。在换流站,无法对控制保护功能进行实时闭环测试,这给运维工作带来了极大安全风险,不利于直流系统的安全稳定运行。为了提升运维水平,确保直流工程的安全稳定运行,需要在实时仿真系统中搭建可以准确模拟直流控制保护系统的仿真模型,以便于工程现场出现的问题进行分析和验证。这就需要对实际硬件装置中运行程序的特性进行等效模拟,确保实时仿真结果与实际硬件一致。
在实际硬件装置中,所运行的程序都由任务调度器按照固定的执行周期执行。为了确保任务的实时性,在执行周期内所执行程序消耗的最大时间必须小于执行周期。任务调度器往往配置有多个任务执行周期,按照不同的优先级执行,已适应不同类型任务的需要。
在电力系统电磁暂态数字仿真软件中,所搭建仿真模型的为离散系统模型,都按照一个固定的步长(执行周期)执行,通常为50us。在离线仿真应用中,每个仿真计算步长,只有当该步长所有仿真计算完成后,仿真系统中的时间才会前进,可以认为计算能力是无限大的。在实时仿真应用中,每个仿真步长留给模型的执行时间即仿真步长时间。仿真模型运行消耗的时间必须小于仿真步长,才能保证仿真的实时性。
在直流输电控制保护系统中,硬件中运行程序按照优先级不同有多个执行周期,单个执行周期大于仿真系统的仿真步长。为了模拟控制保护系统中实际程序的特性,在仿真系统中,我们通常在特定的仿真步长执行控制保护逻辑,在其它仿真步长则不执行。
在这种情况下,大部分时间实时仿真系统的处理器都在空闲状态,留给控制保护逻辑的执行时间只有一个步长,而实际控制保护程序的执行时间往往超过一个步长。这将导致一方面实时仿真系统处理器处于较多的空闲状态,一方面控制保护逻辑不可能在一个仿真步长内完成。
发明内容
本发明的目的在于提供一种在实时仿真系统中模拟硬件任务调度的方法及装置,用于解决目前实时仿真系统中硬件任务调度模拟效率低、无法在一个仿真步长内完成的问题。
为实现上述目的,本发明提供了一种在实时仿真系统中模拟硬件任务调度的方法,该方法包括以下步骤:
1)将待模拟的硬件任务进行拆分,得到相应个数的子任务;
2)根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;
3)按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。
本发明首先将待模拟的硬件任务进行拆分;然后根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;最后按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。对于在实时仿真系统中的复杂硬件任务的建模,确保模型可以实时运行,同时保证模型可以准确反映硬件任务的特性,实现了在仿真系统中实现控制保护逻辑的实时运行。
为了得到相应个数的子任务,步骤1)中,根据保护系统的执行周期和仿真步长将控制保护任务函数拆分为相应个数的子任务。
为了控制各子任务的控制程序,步骤3)中,当各子任务的运行时刻达到后,启动计数器,根据计数器的计数值执行对应子任务的控制程序。
为了得到各子任务的运行时刻,步骤2)中,所述运行时刻的计算公式为:
Trun=ceil(n*Tc/DELT)*DELT
其中,Tc为待模拟的硬件任务的执行周期,DELT为仿真系统的仿真步长,ceil为取整函数,n为运行次数计数。
为了减少运算量,所述仿真系统的仿真步长为50us。
本发明还提供了一种在实时仿真系统中模拟硬件任务调度的装置,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
1)将待模拟的硬件任务进行拆分,得到相应个数的子任务;
2)根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;
3)按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。
首先将待模拟的硬件任务进行拆分;然后根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;最后按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。对于在实时仿真系统中的复杂硬件任务的建模,确保模型可以实时运行,同时保证模型可以准确反映硬件任务的特性,实现了在仿真系统中实现控制保护逻辑的实时运行。
为了得到相应个数的子任务,步骤1)中,根据待模拟的硬件任务的执行周期和仿真步长将控制保护任务函数拆分为相应个数的子任务。
为了控制各子任务的控制程序,步骤3)中,当各子任务的运行时刻达到后,启动计数器,根据计数器的计数值执行对应子任务的控制程序。
为了得到各子任务的运行时刻,步骤2)中,所述运行时刻的计算公式为:
Trun=ceil(n*Tc/DELT)*DELT
其中,Tc为待模拟的硬件任务的执行周期,DELT为仿真系统的仿真步长,ceil为取整函数,n为运行次数计数。
为了减少运算量,所述仿真系统的仿真步长为50us。
附图说明
图1为本发明的实时仿真系统中单个步长任务调度实现方法流程图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步的说明:
方法实施例:
本发明提供了一种在实时仿真系统中模拟硬件任务调度的方法,首先将待模拟的硬件任务进行拆分,得到相应个数的子任务;然后根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;最后按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。上述子任务的个数可根据待模拟的硬件任务的执行周期和仿真步长将控制保护任务函数进行拆分得到。
具体的,以控制保护系统作为待模拟的硬件任务,如图1所示,本实施例的在实时仿真系统中模拟硬件任务的调度方法,包括如下步骤:
步骤1:根据控制保护系统的执行周期和仿真步长把控制保护任务函数Task拆分为几个子任务函数,子任务函数分别表示为:SubTask1、SubTask2、…SubTaskN。
步骤2:根据控制保护系统的执行周期和仿真步长确定仿真系统中需要执行控制保护逻辑的运行时刻Trun。运行时刻的计算公式表示为:
Trun=ceil(n*Tc/DELT)*DELT
其中,Tc为控制保护系统的执行周期,DELT为仿真系统的仿真步长,ceil为取整函数,n为运行次数计数(初始值为0,控制保护逻辑执行一次后加1)。
步骤3:根据步骤2计算得到的运行时刻Trun判断当前步长是否开始调用控制保护逻辑。
步骤4:在运行时刻Trun启动计数器,初值置为1。
步骤5:当计数器的计数值达到(N+1)时,复位为0,并停止计数器。
步骤6:根据计数值,分别执行步骤1中的子函数SubTask1、SubTask2、…SubTaskN。
步骤7:计数值加1。
假定实时仿真系统的步长DELT设定为50us,实际控制保护装置中某部分逻辑执行周期Tc为625us,控制保护任务函数为CP_TASK()。利用上述的方法对该实时仿真系统中模拟控制保护系统调度时的过程为:
1)运行次数n置为0。将原有的控制保护任务函数拆分为12个子函数:CP_TASK_1()、CP_TASK_2()…CP_TASK_12()。拆分个数Ntask由Tc/DELT得出。
2)判断仿真时刻t是否等于ceil(n*Tc/DELT)*DELT。若相等启动计数器,计数值N置为1。若不相等,在N等于(Ntask+1)时,计数值N置为0。
3)根据计数值N调用步骤1中的子函数。
4)计数值N加1,运行次数n加1。
本发明对于在实时仿真系统中的复杂直流控制保护系统的建模,确保模型可以实时运行,同时保证模型可以准确反映控制保护系统的特性,实现了在仿真系统中控制保护逻辑的实时运行。
装置实施例:
本发明还提供了一种在实时仿真系统中模拟硬件任务调度的装置,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:
1)将待模拟的硬件任务进行拆分,得到相应个数的子任务;
2)根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;
3)按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。
该装置是与上述方法对应的进程或程序,由于方法的具体实施方式已经在上述实施例中进行了详细的说明,因此,装置的具体实施方式不再阐述。
以上给出了具体的实施方式,但本发明不局限于以上所描述的实施方式。本发明的基本思路在于上述基本方案,对本领域普通技术人员而言,根据本发明的教导,设计出各种变形的模型、公式、参数并不需要花费创造性劳动。在不脱离本发明的原理和精神的情况下对实施方式进行的变化、修改、替换和变形仍落入本发明的保护范围内。
Claims (10)
1.一种在实时仿真系统中模拟硬件任务调度的方法,其特征在于,该方法包括以下步骤:
1)将待模拟的硬件任务进行拆分,得到相应个数的子任务;
2)根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;
3)按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。
2.根据权利要求1所述的在实时仿真系统中模拟硬件任务调度的方法,其特征在于,步骤1)中,根据待模拟的硬件任务的执行周期和仿真步长将控制保护任务函数拆分为相应个数的子任务。
3.根据权利要求1所述的在实时仿真系统中模拟硬件任务调度的方法,其特征在于,步骤3)中,当各子任务的运行时刻达到后,启动计数器,根据计数器的计数值执行对应子任务的控制程序。
4.根据权利要求1-3任一项所述的在实时仿真系统中模拟硬件任务调度的方法,其特征在于,步骤2)中,所述运行时刻的计算公式为:
Trun=ceil(n*Tc/DELT)*DELT
其中,Tc为待模拟的硬件任务的执行周期,DELT为仿真系统的仿真步长,ceil为取整函数,n为运行次数计数。
5.根据权利要求4所述的在实时仿真系统中模拟硬件任务调度的方法,其特征在于,所述仿真系统的仿真步长为50us。
6.一种在实时仿真系统中模拟硬件任务调度的装置,包括存储器、处理器以及存储在存储器上并可在处理器上运行时的计算机程序,其特征在于,所述处理器执行所述程序时实现以下步骤:
1)将待模拟的硬件任务进行拆分,得到相应个数的子任务;
2)根据硬件任务的执行周期和仿真步长确定各子任务的运行时刻;
3)按照所确定的各子任务的运行时刻在仿真系统中调用对应子任务的控制程序进行运行。
7.根据权利要求6所述的在实时仿真系统中模拟硬件任务调度的装置,其特征在于,步骤1)中,根据待模拟的硬件任务的执行周期和仿真步长将控制保护任务函数拆分为相应个数的子任务。
8.根据权利要求6所述的在实时仿真系统中模拟硬件任务调度的装置,其特征在于,步骤3)中,当各子任务的运行时刻达到后,启动计数器,根据计数器的计数值执行对应子任务的控制程序。
9.根据权利要求6-8任一项所述的在实时仿真系统中模拟硬件任务调度的装置,其特征在于,步骤2)中,所述运行时刻的计算公式为:
Trun=ceil(n*Tc/DELT)*DELT
其中,Tc为待模拟的硬件任务的执行周期,DELT为仿真系统的仿真步长,ceil为取整函数,n为运行次数计数。
10.根据权利要求9所述的在实时仿真系统中模拟硬件任务调度的装置,其特征在于,所述仿真系统的仿真步长为50us。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910501855.5A CN110297703B (zh) | 2019-06-11 | 2019-06-11 | 一种在实时仿真系统中模拟硬件任务调度的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910501855.5A CN110297703B (zh) | 2019-06-11 | 2019-06-11 | 一种在实时仿真系统中模拟硬件任务调度的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110297703A true CN110297703A (zh) | 2019-10-01 |
CN110297703B CN110297703B (zh) | 2021-11-05 |
Family
ID=68027901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910501855.5A Active CN110297703B (zh) | 2019-06-11 | 2019-06-11 | 一种在实时仿真系统中模拟硬件任务调度的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110297703B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764750A (zh) * | 2019-10-30 | 2020-02-07 | 华南理工大学 | 一种基于个体模型的能源经济仿真系统开发方法 |
CN110990144A (zh) * | 2019-12-17 | 2020-04-10 | 深圳市晨北科技有限公司 | 一种任务确定方法及相关设备 |
CN111638655A (zh) * | 2020-06-01 | 2020-09-08 | 中国南方电网有限责任公司超高压输电公司检修试验中心 | 一种用于紧凑型直流控制保护装置的周期分配方法及系统 |
CN115392063A (zh) * | 2022-10-31 | 2022-11-25 | 西安羚控电子科技有限公司 | 一种多速率仿真方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
US20060070073A1 (en) * | 2004-09-30 | 2006-03-30 | Seiji Maeda | Multiprocessor computer and program |
CN103440372A (zh) * | 2013-08-23 | 2013-12-11 | 南京南瑞继保电气有限公司 | 一种电力电子设备数字仿真建模的方法 |
US20170033892A1 (en) * | 2009-08-19 | 2017-02-02 | Qualcomm Incorporated | Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes |
CN106598884A (zh) * | 2016-11-21 | 2017-04-26 | 黄安祥 | 一种多级仿真平台桥接的时频差补偿方法 |
CN107463357A (zh) * | 2017-08-22 | 2017-12-12 | 中车青岛四方车辆研究所有限公司 | 任务调度系统、调度方法、制动仿真系统及仿真方法 |
CN109784647A (zh) * | 2018-12-14 | 2019-05-21 | 兰州空间技术物理研究所 | 一种用于空间站的主动电位控制系统的任务调度方法 |
-
2019
- 2019-06-11 CN CN201910501855.5A patent/CN110297703B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1382280A (zh) * | 1999-02-05 | 2002-11-27 | 坦斯利卡公司 | 用于设计可配置的处理器的自动处理器产生系统及其方法 |
US20060070073A1 (en) * | 2004-09-30 | 2006-03-30 | Seiji Maeda | Multiprocessor computer and program |
US20170033892A1 (en) * | 2009-08-19 | 2017-02-02 | Qualcomm Incorporated | Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes |
CN103440372A (zh) * | 2013-08-23 | 2013-12-11 | 南京南瑞继保电气有限公司 | 一种电力电子设备数字仿真建模的方法 |
CN106598884A (zh) * | 2016-11-21 | 2017-04-26 | 黄安祥 | 一种多级仿真平台桥接的时频差补偿方法 |
CN107463357A (zh) * | 2017-08-22 | 2017-12-12 | 中车青岛四方车辆研究所有限公司 | 任务调度系统、调度方法、制动仿真系统及仿真方法 |
CN109784647A (zh) * | 2018-12-14 | 2019-05-21 | 兰州空间技术物理研究所 | 一种用于空间站的主动电位控制系统的任务调度方法 |
Non-Patent Citations (2)
Title |
---|
S. DENNETIERE: "Task Separation for Real-Time Simulation of the CIGRE DC Grid Benchmark", 《2018 POWER SYSTEM COMPUTATION CONFERENCE(PSCC)》 * |
姜忠钦: "Linux系统中实时仿真程序时间精确性分析", 《计算机仿真》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764750A (zh) * | 2019-10-30 | 2020-02-07 | 华南理工大学 | 一种基于个体模型的能源经济仿真系统开发方法 |
CN110990144A (zh) * | 2019-12-17 | 2020-04-10 | 深圳市晨北科技有限公司 | 一种任务确定方法及相关设备 |
CN111638655A (zh) * | 2020-06-01 | 2020-09-08 | 中国南方电网有限责任公司超高压输电公司检修试验中心 | 一种用于紧凑型直流控制保护装置的周期分配方法及系统 |
CN111638655B (zh) * | 2020-06-01 | 2022-06-14 | 中国南方电网有限责任公司超高压输电公司检修试验中心 | 一种用于紧凑型直流控制保护装置的周期分配方法及系统 |
CN115392063A (zh) * | 2022-10-31 | 2022-11-25 | 西安羚控电子科技有限公司 | 一种多速率仿真方法及系统 |
CN115392063B (zh) * | 2022-10-31 | 2023-01-31 | 西安羚控电子科技有限公司 | 一种多速率仿真方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110297703B (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297703A (zh) | 一种在实时仿真系统中模拟硬件任务调度的方法及装置 | |
CN108984292A (zh) | 混合关键系统固定优先级周期任务能耗优化方法 | |
CN104536835B (zh) | 一种热备份实时控制系统中自适应任务调度方法 | |
CN103823706B (zh) | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 | |
CN102110015B (zh) | 一种任务进度和任务处理时间的确定方法及装置 | |
CN104537428B (zh) | 一种计及风电接入不确定性的经济运行评估方法 | |
CN104536827A (zh) | 一种数据调度方法和装置 | |
CN104796048A (zh) | 一种交流电机电流环并行数字控制实现方法 | |
CN109739332A (zh) | 一种多任务通用能耗优化方法 | |
CN103150634B (zh) | 一种面向机械车间加工任务的能耗仿真方法 | |
CN105629873A (zh) | 一种适用于数控系统的混合任务调度方法 | |
CN102103649A (zh) | 一种装备rms分析仿真任务的逻辑流程建立方法 | |
Della Vedova et al. | Real-time scheduling for industrial load management | |
CN103440372A (zh) | 一种电力电子设备数字仿真建模的方法 | |
CN105391597A (zh) | 基于多服务器仿真的雪崩测试的方法、装置及系统 | |
CN116993075A (zh) | 一种基于优先级的巡视任务管理方法及巡检机器人 | |
Dileepan et al. | Scheduling rules for a small dynamic job-shop: a simulation approach | |
CN106844812A (zh) | 一种基于emtdc的控制保护仿真建模方法 | |
CN101266551A (zh) | 一个在schedsim中模拟linux调度器的方法 | |
Wang et al. | Multi-agent based simulation system modelling for steelmaking-continuous casting production process | |
CN113961347B (zh) | 提升移动计算平台可靠性的方法 | |
Xie et al. | A hybrid method of heuristic algorithm and constraint programming for no-wait integrated scheduling problem | |
CN109542069A (zh) | 一种基于时间与事件混合驱动的分布式控制系统及方法 | |
Wan et al. | Multitask schedulability simulation research of hydraulic embedded control system | |
Zhang et al. | Research and Test on Software Performance Index of Open CNC System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |