基于计算机控制中模糊调度设计的仿真研究
2011-04-10许元飞
许元飞
XU Yuan-fei
(西安科技大学 计算机学院,西安 710054)
0 引言
计算机控制系统中关于实时调度的问题,传统上是由控制系统工程师与实时系统工程师通过各自理解进行调度设计的,这种设计思想在计算机资源富足时其计算机控制系统的运行效果是良好的,而在资源有限时会出现资源共享问题[1]。在计算机控制中,由于控制任务的并行性,我们需要考虑控制性与计算机资源的均衡,同时由于实时系统工程师根据控制系统工程师提供的相关数据信息进行调度设计,而控制系统工程师所提供的数据信息本身就含有很大的不精确性,这将导致计算机资源利用率大大降低,从而影响整个控制系统[2]。计算机控制系统中,某些任务通常是模糊不定的,具有小范围的随机波动,例如由时钟的精确性引起的采样期误差等,这些因素导致计算机在进行控制执行时产生延迟和抖动[3],从而影响整个系统的性能和稳定。基于解决以上问题,本文提出了一种基于计算机控制中模糊调度设计的方案,并进行了仿真研究。
1 计算机控制系统任务调度设计
1.1 计算机控制回路
计算机控制器在每个采样周期都会对系统的输入输出参数进行对比,对控制量进行权衡,将新的控制量作为输入参数来控制系统,使系统的输出在满足条件的情况下,尽可能的与实时需求相接近,且控制量更新与系统运算过程组成计算机控制回路。在这个回路中涉及到模拟信号与数字信号的相互转换及其相应的控制算法。
1.2 计算机控制任务
在整个计算机系统中,计算机控制任务主要是控制算法程序调度,具有周期性、反复性,而模态量的转换对计算机控制任务影响不太大,因此本文仅对计算机控制任务的算法调度问题进行研究,并约束假设计算机系统输出算法对整个计算机控制系统的影响远小于控制调度算法。
1.3 调度步骤
假设现由N个系统G构成了多任务控制系统,并且每个控制器控制各自所属对象,n个控制器任务参与计算机资源的竞争。设Q为控制器任务按照优先级大小排列的队列。调度过程如下:
1)对于新接收到的控制任务,首先对其优先级进行配置,并将其任务插入到Q队列中,对于优先级越高的任务T优先获取CPU的资源进行执行。
2)对于完全抢占式调度,其Q队列等待执行任务与CPU正在执行任务T进行资源竞争,若某个等待执行的任务的优先级高于CPU正在执行的任务,则该任务抢占CPU资源进行调度执行,正在CPU执行的任务退出,并按照优先级顺序插回Q队列。
3)由于调度器本身不知道任务的实际截止期,它将会按照任务的最晚截止期判断任务是否错失截止期,当任务T未错失自身的最晚截止期时仍可继续对CPU资源进行竞争,或者按照优先级排序于队列Q中等待调度;当任务T或Q中某些任务错失自身的最晚截止期时,调度器将终止该任务的执行或等待。
4)所有CPU执行完成的任务或者错失最晚截止期而被终止的任务由调度器发送到相应队列中,任务被执行的实例控制量进行更新,错失昨晚截止期的任务实例不再执行更新。
1.4 计算机控制环的计算
基于模糊调度设计的计算机控制环计算方法中,假设以下情况:1)计算机控制任务的采样周期是稳定的;2)在每个采样循环中判断当前任务是否得到执行或因错失最晚截止期而放弃执行。若当前任务执行已经完成,则说明当前采样环内控制算法计算时间早于最晚截止期完成,此时对任务控制量进行更新;若当前任务错失最晚截止期而放弃执行,则说明当前采样控制算法计算不能在截止期完成前结束计算,此时维持控制量不变。
2 基于抢占阈值的最大奉献优先调度策略
2.1 奉献度
奉献度是指在计算机控制任务集中每个任务尽可能的在各自任务执行的许可范围内进行延迟调度,以便更加紧急的任务被优先调度,从而提高整个计算机控制系统的执行效率。奉献度的前提是每个任务确保即使在最坏情况下自身仍然能够被调度执行,事实上,计算机控制系统在进行任务调度时本身具有一定的延迟性,该性质确保了任务进程可以实现奉献精神,以确保计算机系统控制调度过程中可以进行更加有效的优先级任务配置。
2.2 抢占阀值
在计算机控制系统中,每个任务的奉献度是逐渐递增的,因此一旦在某个时刻ti,某个等待执行的任务Ti的奉献度就会大于正在执行的任务Tj的奉献度,等待执行的任务Ti将抢占正在执行的任务Tj的资源,等待执行的任务Ti被执行时,其奉献度不变,但原来正在执行的任务Tj由于出现了等待,它的奉献度将递增。一直都某个时刻tj,任务Tj的奉献度大于Ti,其又开始抢占Ti的资源,造成任务间的不断切换形成颠簸现象,因此为了节约CPU的资源,我们提出了抢占阀值的最大奉献优先调度策略。由于优先级P[0,1],设h[p,1],任务的完成率定义为任务完成时间与任务总执行时间之比,对于某个给定的任务完成率a,当任务完成率小于a时,抢占阀值为h=p,此时执行完全抢占CPU资源,否则,h=1,即非抢占方式。
基于此,基于抢占阈值的最大奉献优先调度策略其调度步骤需要对1.3 调度步骤中的2)进行修改:
对于等待的任务是否抢占当前CPU正在执行任务的资源,其判别条件是p>h,即当h=p时,等待任务完全抢占CPU资源进行任务的执行,而当h=1时,Q队列中的等待任务只有在当前任务执行完成后才有机会竞争CPU资源。
3 仿真
3.1 仿真条件
表1给出了计算机系统控制参数值,同时约定控制器进行计算机资源竞争时, TS=2000,控制系统的输入设为阶跃函数,当T≤500或者1000≤T≤1500时,R (T)=1,其余时间段内R(T)=-1。单位为ms。
表1 计算机系统控制参数
3.2 计算机控制性能比较
在进行计算机控制性能比较时,我们参考文献[4]中的控制性能损失指标来衡量。根据表1中所给的数据,T1、T2所有的任务实例分别为166、200,任务的截止期为模糊量,考虑到可行性问题,我们使用最晚截止期B来代替模糊截止期D,则利用率的下界为
因此,计算机控制系统仍然会发生过载现象。
计算机控制系统在基于抢占阈值的调度策略的计算机控制性能如图1所示:
其中X轴是时间变化,图1(a)和(c)为两个子系统的测量比较,控制参考输入信号为虚线,实际测量为实线,理想测量为点线;图1(b)和(d)为两个子系统控制信号的比较,其中,实际控制量为实线,理想控制量为虚线。
仿真结果表明:
1)计算机总系统过载时产生额外调度的损失与任务进程完成情况具有无关性,但与子系统的控制性能变化呈相关性。子系统1的控制性能随着任务的完成率单调递增,而子系统2则相反。
2)对于完全抢占或较大的任务完成率,子系统2的控制性能影响较小,T2的所有实例都完成了进程调度,但子系统1的系统过载时产生额外调度的损失与截止期错失率都达到峰值。
3)CPU的有效利用率是随着系统的任务完成率递减的,而系统任务未完成但被抢占的次数随着系统完成率递增的。
4)对于任何一个控制系统,总的截止期错失率是一定的,与子系统的截止期错失率变化无关。
可以看出,通过抢占阈值的最大奉献优先调度策略,系统任务的切换次数减少了,抢占权限被有条件抢占调度得到控制。
4 结束语
截止期的模糊调度问题是计算机控制系统中影响系统控制性能损失的重要问题之一,对于不确定截止期的任务实现调度在实时系统处理中会影响运算控制效率,从而造成负载过重现象,在计算机计算资源有限的条件下,对任务进程之间实现可控调度和控制任务的模糊调度策略研究,有利于提高计算机的资源利用率。本文通过基于抢占阈值的最大奉献优先调度策略对这一问题进行仿真模拟,实验表明,该方案有效的提高了计算机的利用率,均衡了子系统控制性能,减少了总系统的开销。
[1] Potkonjak M.,Wolf W. . A methodology and algorithms for the design of hard real-time multitasking Asics. ACM Transactions on Design Automation of Electronic Systems,1999,4(4): 430-459.
[2] Marti P.,Fuertes J. M. ,Fohler G.,Ramamritham K..Improving quality—of-control using flexible timing constraints: Metric and scheduling. In: Proceedings of the 23rd IEEE Real-Time Systems Symposium,Texas,USA,2002,91-100.
[3] Lopez J. ,Marti P. ,Fuertes J. M. . Control loop scheduling paradigm in distributed control systems. In: Proceedings of the 29th IEEE Annual Conference on Industrial Electronics Society,Virginia,USA,2003,2: 1441-1446.
[4] Jin H,Wang H A,Wang H,Wang D. Scheduling design of controllers with fuzzy deadline. Wang L.,Jin H. eds..Lecture Notes in Artificial Intelligence 3613,Berlin Heidelberg: Springer-Vela,2005,861-864.