CN105786598B - 任务调度方法及装置 - Google Patents
任务调度方法及装置 Download PDFInfo
- Publication number
- CN105786598B CN105786598B CN201410803227.XA CN201410803227A CN105786598B CN 105786598 B CN105786598 B CN 105786598B CN 201410803227 A CN201410803227 A CN 201410803227A CN 105786598 B CN105786598 B CN 105786598B
- Authority
- CN
- China
- Prior art keywords
- task
- interrupt
- vector calculation
- subtasks
- subtask
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
- Control Of Ac Motors In General (AREA)
Abstract
本发明提供一种任务调度方法及装置,所述方法包括:将所述任务分解为多个子任务;在中断周期开始时,执行一个所述子任务和矢量计算任务,其中一个所述子任务和矢量计算任务所占用的执行时间之和小于所述中断周期。本发明提供的任务调度方法及装置通过在一个中断周期内执行矢量计算任务和其他子任务,使各项子任务分布在不同的中断周期中处理,从而使任务间隔周期保持一致,进而可以有效提高控制器执行各项任务的时序性,提高控制效率和控制精度。
Description
技术领域
本发明涉及程序控制领域,具体涉及一种任务调度方法及装置。
背景技术
控制器通常用于控制执行矢量控制计算任务、占空比输出任务,除此之外控制器还用于控制执行模式转换任务、数据采集任务、通信任务等其他主循环任务。
在控制策略设计中要着重考虑时序性,保证在指定的中断周期内输出占空比。一般的设计常采用一个中断周期内进行一次矢量计算,并输出一次占空比,矢量计算任务被放在中断周期同内进行,此中断处理的优先级最高,在此中断周期之外还需要设计一个无限循环函数,矢量计算以外的其他任务均在此函数内运行。
图1示出了现有的任务执行方式在中断周期内执行矢量计算任务的示意图,如图1所示,其中每个中断周期的时间为Ts,每个中断周期内都有一个对应的矢量计算任务,并且在不同的中断周期内会进行相同的其他主循环任务。由于控制器在不同状态下运行时,矢量算法会有所不同,因此,不同周期内的矢量计算任务的运算时间会有所不同,并且由于控制器在不同状态下进行数据采集、通信等任务时的具体数据内容也有所不同,所以会造成不同周期内相同的主循环任务11、主循环任务12、主循环任务13对应的运行间T11、T12、T13不一致,由此会引起数据采集周期不一致,诊断周期不一致,通信周期不一致等问题,从而影响控制器的工作效率。
发明内容
为此,本发明所要解决的技术问题在于提高控制器的控制效率和控制精度。
本发明提供一种任务调度方法,包括:将所述任务分解为多个子任务;在中断周期开始时,执行一个所述子任务和矢量计算任务,其中一个所述子任务和矢量计算任务所占用的执行时间之和小于所述中断周期。
优选地,每个所述子任务所占用的执行时间基本相等。
优选地,所述执行一个所述子任务和矢量计算任务顺序是先执行所述子任务后执行所述矢量计算任务。
优选地,从所述中断周期的中断点到跳变沿执行所述子任务,从所述跳变沿到下一跳变沿执行矢量计算任务。
优选地,所述中断周期是PWM波周期。
优选地,所述子任务包括工作模式转换任务、CAN通信输入任务、CAN通信输出任务、ADC数据采集任务、诊断任务。
本发明提供另一种任务调度方法,包括:在中断周期开始时,执行所述任务;到中断周期中的跳变沿中断执行所述任务;执行矢量计算任务;到下一跳变沿中断执行所述矢量计算任务。
优选地,所述中断周期是PWM波周期。
相应地,本发明提供一种任务调度装置,包括:分解单元,用于将所述任务分解为多个子任务;执行单元,用于在中断周期开始时,执行一个所述子任务和矢量计算任务,其中一个所述子任务和矢量计算任务所占用的执行时间之和小于所述中断周期。
本发明提供另一种任务调度装置,包括:第一执行单元,用于在中断周期开始时,执行所述任务;第一中断单元,用于到中断周期中的跳变沿中断执行所述任务;第二执行单元,用于执行矢量计算任务;第二中断单元,用于到下一跳变沿中断执行所述矢量计算任务。
与现有技术相比,本发明提供的任务调度方法及装置通过在一个中断周期内执行矢量计算任务和一个其他子任务,使各项子任务分布在不同的中断周期中处理,从而使任务间隔周期保持一致,进而可以有效提高控制器执行各项任务的时序性,提高控制效率和控制精度。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是采用现有技术时的控制器任务执行示意图;
图2是采用本发明第一实施例提供的任务调度方法时的任务执行示意图;
图3是本发明第一实施例中的任务执行流程图;
图4是本发明第二实施例提供的任务调度方法的流程图。
具体实施方式
本发明实施例提供一种任务调度方法,包括如下步骤:
S1:将所述任务分解为多个子任务,该任务是指除矢量计算任务之外的其他任务,优选地所述子任务包括工作模式转换任务、CAN通信输入任务、CAN通信输出任务、数据采集任务、诊断任务等。对任务进行分解时,应当主要以各个可以被分割成子任务所占用的执行时间为依据进行分解。优选地,上述每个子任务所占用的执行时间基本相等。
S2:在中断周期开始时,执行一个所述子任务和矢量计算任务,其中一个所述子任务和矢量计算任务所占用的执行时间之和小于所述中断周期。所述中断周期可以是PWM波周期,即在一个PWM波周期内执行一个子任务和矢量计算任务,其总的执行时间小于PWM波周期。
具体地,如图2所示,一个PWM波周期的起点,即触发点即为应用层软件的中断点,控制器的各项子任务被优化分配到每个中断周期中进行。由于各项子任务与矢量计算任务在一个中断周期内执行,各项子任务的启动间隔基本一致。矢量计算任务完成,占空比送出后,等待下一个触发点的到来,在每个中断周期内执行子任务和矢量计算任务时间T21、T22、T23均小于PWM波周期Ts,即在一个PWM波周期内完成。
本发明实施例提供的任务调度方法采用中断触发执行循环任务,中断函数既可以作为进入循环调度任务的触发器也可以作为循环周期的计时器。由于采用具有固定周期的中断作为主循环调度的触发器,中断点也是个循环任务处理的起点,不同的子任务被分配到不同的中断周期中执行。因此,各循环中其他任务处理间隔时间与中断周期一致。根据本发明提供的任务调度方法可以有效提高控制器各项任务执行的时序性,提高控制效率和控制精度。
优选地,所述执行一个所述子任务和矢量计算任务顺序是先执行所述子任务后执行所述矢量计算任务。
如图2所示,在第一个PWM周期中子任务211在矢量计算任务212之前执行;在第二个PWM周期中子任务221在矢量计算任务222之前执行;在第三个PWM周期中子任务231在矢量计算任务232之前执行;即各项子任务的启动时间点与中断周期的起点一致,由此可以确保各项子任务的启动时间点一致。
本发明可以作为电机控制器的功能调度方法,如图3所示,实际应用时可以设置主循环任务调度函数为电机控制器的主循环功能函数。主循环任务调度函数内第一次循环对应处理时间为T31,第二次循环对应处理时间为T32,第三次循环对应处理时间为T33(以三次循环为例,其它循环省略)。第一中断函数、第二中断函数、第三中断函数分别对应图2中第一中断点(第一个PWM周期起点)、第二中断点(第二个PWM周期起点)、第三中断点(第三个PWM周期起点)。上述中断函数只有中断触发功能,每次中断到来时,给主循环任务调度函数中断信号,中断函数内无其他任务处理。主循环任务函数运行时,上一次任务循环处理完成后会等待中断函数发出中断信号,即只有接收到中断信号后才会进入下一次任务循环处理。
由于其他任务和矢量算法采用了优化分配,可保证T31、T32、T33小于一个PWM波周期Ts。此外,由于主循环任务调度函数采用中断触发后进入循环的调度方法,可将不同的其他任务(子任务)分配到不同循环中执行,但需要保证每次循环内要执行矢量算法任务(矢量计算任务),该方法可以在保证每次循环周期T31、T32、T33不溢出的情况下,固定每次其他任务执行的时间间隔。
更优选地,在一个中断周期中,从所述中断周期的中断点到跳变沿执行所述子任务,从所述跳变沿到下一跳变沿执行矢量计算任务。如图2所示,子任务211的启动时间点是该中断周期的起点,其结束时间点是PWM H和PWML的第一个跳变沿;矢量任务212的启动时间点是PWM H和PWM L的第一个跳变沿,其结束时间点是PWM H和PWM L的第二个跳变沿。由此上述优选方案还可以确保不同的中断周期内执行子任务和矢量计算任务的起止时间点基本一致。
本发明第二实施例还提供一种任务调度方法,如图4所示该方法包括如下步骤:
S1:在中断周期开始时,执行所述任务;
S2:到中断周期中的跳变沿中断执行所述任务;
S3:执行矢量计算任务;
S4:到下一跳变沿完成所述矢量计算任务。
优选地,所述中断周期是PWM波周期。
具体地,上述任务是指除矢量计算任务之外的其他任务,例如工作模式转换任务、CAN通信输入任务、CAN通信输出任务、数据采集任务、诊断任务等,本实施例与第一实施例不同之处在于在开始执行任务之前,不需要对上述各个任务进行分解,而是在进入中断周期后直接开始执行,到达PWM波周期的跳变沿时中断执行,然后开始执行矢量计算任务,并且到下一跳变沿时完成矢量计算任务。
根据本发明提供的任务调度方法可以有效提高控制器各项任务执行的时序性,提高控制效率和控制精度。
本发明第三实施例提供一种任务调度装置,该装置包括:
分解单元,用于将所述任务分解为多个子任务;
执行单元,用于在中断周期开始时,执行一个所述子任务和矢量计算任务,其中一个所述子任务和矢量计算任务所占用的执行时间之和小于所述中断周期。
本发明提供的任务调度装置可以有效提高控制器各项任务执行的时序性,提高控制效率和控制精度。
本发明第四实施例提供一种任务调度装置,该装置包括:
第一执行单元,用于在中断周期开始时,执行所述任务;
第一中断单元,用于到中断周期中的跳变沿中断执行所述任务;
第二执行单元,用于执行矢量计算任务;
第二中断单元,用于到下一跳变沿中断执行所述矢量计算任务。
本发明提供的任务调度装置可以有效提高控制器各项任务执行的时序性,提高控制效率和控制精度。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
Claims (7)
1.一种任务调度方法,其特征在于,包括:
将所述任务分解为多个子任务;所述任务是指除矢量计算任务之外的其他任务;
在中断周期开始时,执行一个所述子任务和矢量计算任务,其中一个所述子任务和矢量计算任务所占用的执行时间之和小于所述中断周期。
2.根据权利要求1所述的方法,其特征在于,每个所述子任务所占用的执行时间相等。
3.根据权利要求1所述的方法,其特征在于,所述执行一个所述子任务和矢量计算任务顺序是先执行所述子任务后执行所述矢量计算任务。
4.根据权利要求1所述的方法,其特征在于,从所述中断周期的中断点到跳变沿执行所述子任务,从所述跳变沿到下一跳变沿执行矢量计算任务。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述中断周期是PWM波周期。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述子任务包括工作模式转换任务、CAN通信输入任务、CAN通信输出任务、ADC数据采集任务、诊断任务。
7.一种任务调度装置,其特征在于,包括:
分解单元,用于将所述任务分解为多个子任务;所述任务是指除矢量计算任务之外的其他任务;
执行单元,用于在中断周期开始时,执行一个所述子任务和矢量计算任务,其中一个所述子任务和矢量计算任务所占用的执行时间之和小于所述中断周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410803227.XA CN105786598B (zh) | 2014-12-19 | 2014-12-19 | 任务调度方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410803227.XA CN105786598B (zh) | 2014-12-19 | 2014-12-19 | 任务调度方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105786598A CN105786598A (zh) | 2016-07-20 |
CN105786598B true CN105786598B (zh) | 2020-02-14 |
Family
ID=56385971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410803227.XA Expired - Fee Related CN105786598B (zh) | 2014-12-19 | 2014-12-19 | 任务调度方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105786598B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111628686B (zh) * | 2020-05-28 | 2023-06-16 | 上海中科深江电动车辆有限公司 | 永磁同步电机时序任务调度和空间状态调度协同控制系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582049A (zh) * | 2008-05-13 | 2009-11-18 | 帝斯贝思数字信号处理和控制工程有限公司 | 用于执行实时计算待仿真信号的任务的方法 |
CN101599663A (zh) * | 2009-07-07 | 2009-12-09 | 厦门士林电机有限公司 | 一种智能控制器的实时控制系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3727382B2 (ja) * | 1994-12-26 | 2005-12-14 | 三菱電機株式会社 | 制御ソフトウェア実行システムの制御方法 |
JP3727637B2 (ja) * | 1994-12-26 | 2005-12-14 | 三菱電機株式会社 | 制御ソフトウェア実行システムの制御方法 |
CN101440748B (zh) * | 2007-04-30 | 2010-06-09 | 哈尔滨工程大学 | 柴油机多功能机旁控制方法 |
JP2011114692A (ja) * | 2009-11-27 | 2011-06-09 | Seiko Instruments Inc | 圧電振動片、圧電振動子、圧電振動子の製造方法、発振器、電子機器および電波時計 |
CN103052924B (zh) * | 2011-01-31 | 2014-09-24 | 丰田自动车株式会社 | 安全控制装置及安全控制方法 |
CN102541643A (zh) * | 2011-12-30 | 2012-07-04 | 上海新时达电气股份有限公司 | 嵌入式系统中逻辑信号的延时处理方法 |
CN103309278B (zh) * | 2013-07-05 | 2015-08-19 | 康力电梯股份有限公司 | 一种提高定周期数字控制系统采样抗干扰能力的方法 |
-
2014
- 2014-12-19 CN CN201410803227.XA patent/CN105786598B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582049A (zh) * | 2008-05-13 | 2009-11-18 | 帝斯贝思数字信号处理和控制工程有限公司 | 用于执行实时计算待仿真信号的任务的方法 |
CN101599663A (zh) * | 2009-07-07 | 2009-12-09 | 厦门士林电机有限公司 | 一种智能控制器的实时控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105786598A (zh) | 2016-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101339521B (zh) | 一种任务优先级动态调度算法 | |
CN104536835B (zh) | 一种热备份实时控制系统中自适应任务调度方法 | |
CN101499041B (zh) | 一种避免主机在访问共享设备造成异常死锁的方法 | |
JP4697805B2 (ja) | データ処理装置 | |
EP2819009A3 (en) | Task scheduling for highly concurrent analytical and transaction workloads | |
CN104021044A (zh) | 一种作业调度方法及装置 | |
CN109684060B (zh) | 一种多类型时间关键任务的混合调度方法 | |
JP2009541848A5 (zh) | ||
CN109558227B (zh) | 一种基于任务执行预算的单调速率任务调度方法 | |
CN113835866B (zh) | 多线程任务调度优化方法 | |
US9104491B2 (en) | Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources | |
CN104915253A (zh) | 一种作业调度的方法及作业处理器 | |
WO2013029513A1 (zh) | 并行模拟多个处理器的方法及系统、调度器 | |
CN109660569B (zh) | 一种多任务并发执行方法、存储介质、设备及系统 | |
CN111209094A (zh) | 请求处理方法、装置、电子设备及计算机可读存储介质 | |
CN111143045A (zh) | 智能家居操作系统的任务调度方法及装置、存储介质 | |
CN105786598B (zh) | 任务调度方法及装置 | |
WO2015188016A2 (en) | Energy-efficient real-time task scheduler | |
KR101311305B1 (ko) | 데드라인 기반 우선순위상속 시스템 및 그 방법 | |
JP2010170320A (ja) | プログラム、及び制御装置 | |
CN106484502B (zh) | 一种调度任务的方法、装置及系统 | |
CN111158875B (zh) | 基于多模块的多任务处理方法、装置及系统 | |
KR101770234B1 (ko) | 소프트웨어 프로그램의 연산 블록을 멀티-프로세서 시스템의 코어에 할당하는 방법 및 시스템 | |
CN106354555B (zh) | 一种操作系统进程调度算法 | |
CN103810037A (zh) | 一种作业调度方法和计算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180418 Address after: No. 188, Miyun District, Miyun District, Beijing, Beijing Applicant after: Beijing treasure Car Co.,Ltd. Address before: 102206 Changping District City, Shahe, Sha Yang Road, Beijing Applicant before: BEIQI FOTON MOTOR Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200214 Termination date: 20211219 |