一种变桨驱动器用时间轮换软件设计方法与流程

文档序号:38399892发布日期:2024-06-21 20:46阅读:8来源:国知局
一种变桨驱动器用时间轮换软件设计方法与流程

本发明属于驱动器软件设计领域,具体为一种变桨驱动器用时间轮换软件设计方法。


背景技术:

1、变桨控制系统因其可靠性、安全性一直是风力发电机长期使用的核心部件,在国内陆上风力发电变桨系统中占据重大市场份额。

2、变桨系统的核心执行机构由变桨电机和变桨驱动器组成。变桨驱动器是变桨电机的控制装置,因此变桨驱动器不仅需匹配变桨电机性能、延伸变桨电机使用工况范围,还需提升可靠性、安全性,是变桨控制系统的关键核心部件之一。变桨驱动器的接口众多、功能复杂、输入输出量庞大,对控制性能的要求也很高。由于变桨系统应用工况特殊,变桨驱动器长期服役在环境恶劣、工作温度范围宽、振动多、电磁环境不佳的条件下,加上变桨驱动器控制量、交互数据信息量大,变桨驱动器的软件可靠性、执行效率至关重要。

3、从现在公开的文献来看,涉及变桨驱动器软件设计方法、设计策略的专利和资料有限,如何最大程度节约变桨驱动器软件程序模块执行时间,降低数字信号处理芯片的内存占有率,提高变桨驱动器软件可靠性更是寥寥无几。

4、目前变桨驱动器的常规软件设计方案,顺序执行架构运用最多;顺序执行架构就是在一个while(1)的大循环内,按顺序执行完程序模块,往复循环,这种架构处理器占有率过高,实时性不佳。


技术实现思路

1、本发明的目的在于提供一种变桨驱动器用时间轮换软件设计方法,以解决上述背景技术中提出的技术问题。

2、为实现上述目的,本发明提供如下技术方案:

3、一种变桨驱动器用时间轮换软件设计方法,包括时间轮换软件设计框架,以及位于所述时间轮换软件设计框架下的如下步骤,变桨驱动器软件程序模块分组步骤、分组程序模块的优先级分类步骤、各类优先级程序模块合理安排执行顺序步骤、定时器中断设计步骤;

4、所述变桨驱动器软件程序模块分组步骤是所述变桨驱动器各个程序模块执行的优先级别的基础,所述变桨驱动器软件程序模块分组步骤包括对程序模块进行设计功能采样,再将所述变桨驱动器的程序模块进行分类,形成:

5、基于各类通信方式的通信模块,包括can通信、串行信号通信和以太网通信;

6、端子功能处理模块,所述端子包括输入/输出功能端子以及编码器端子,所述端子功能处理模块包括由所述输入/输出功能端子产生的数字信号输入/输出和模拟信号输入/输出,由所述编码器端子进行的编码器测速;

7、模拟信号采样模块,用于采集包括温度、速度、电流和电压在内的功能信号;

8、用于控制变桨直流电机的算法单元,包括位置环pid算法、速度环pid算法、电流环pid算法、斩波输出单元;其中, 速度环pid算法的输入变量之一为位置环的输出;电流环pid算法的输入变量之一为速度环的输出,所述位置环、速度环的反馈变量由所述编码器端子提供,电流环的反馈变量则由所述模拟信号采样模块采集得到;所述斩波输出单元提供针对变桨直流电机控制采用的脉冲宽度调节控制方法;

9、人机交互处理单元,包括键盘、触摸屏和上位机。

10、优选的,所述变桨驱动器软件程序模块分组步骤,具体包括如下步骤,

11、采集或计算所述变桨驱动器各个程序模块的各类任务的实时性要求、优先级和程序代码量,

12、判断所述变桨驱动器各个程序模块的各类任务是否具有实时性要求的相同特征,将具有相同特征的任务标记为同组标签。

13、优选的,所述分组程序模块优先级分类步骤具体包括:

14、s1、分组步骤

15、将实时性要求最高的包含电流模拟信号采样、pwm调制、以及电流环pid算法在内的任务执行优先级定义为1;所述优先级定义为1的任务为关系到电机控制算法的实时性的任务;

16、将实时性次之的包含速度环pid算法在内的任务执行优先级定义为2;所述优先级定义为2的任务为优先级1中电流环模块的输入,用于保证电流环的稳定性;

17、将实时性再次之的包含其他模拟信号采样、输入/输出功能端子的信号输入/输出、位置环pid算法,以及所述通信模块的通信在内的任务执行优先级定义为3;所述优先级定义为3的任务为优先级2中速度环模块的输入,用于保证速度环的稳定性;

18、将实时性要求较低的包括人机交互单元处理在内的任务执行优先级定义为4;

19、s2、代码量计算步骤

20、分组完成后,根据程序代码量计算该分组程序模块的任务的执行周期;

21、s3、优先级确定步骤

22、任务执行的优先级以优先实时性从高到低、次之执行周期从短到长为原则进行确定。实时性的高低和优先级的高低相匹配:实时性越高,对软件运行效果越重要,对电机控制性能和精度影响越大,所以优先级越高;执行周期的长短和优先级相匹配:这是因为程序执行时间越短越好,程序执行时间太长,容易被其他事件打断,影响执行效率,因此把执行时间短的优先执行,保证执行的效果。

23、优选的,所述各类优先级程序模块合理安排执行顺序为:

24、优先级1的程序模块的任务在执行过程中优先执行,每次执行后,定时中断周期内空余出t-t1,即产生(n-1)*t1的时间空闲;除优先级1的任务外,其他优先级的任务都是在该(n-1)*t1的空闲时间内执行;其中t为优先级1的任务运行时间t1,t为定时器中断周期;

25、优先级1的任务在执行过程中不能被打断,置于定时中断模块实时执行环节,其余优先级的任务根据其实时性要求频次来决定其选择执行的入口时间;在保证优先级1的任务在执行过程中不被打断后,其余优先级的任务可以被上一级优先级别更高的任务打断;

26、优先级2的任务在优先级1的任务执行m次后执行一次,则优先级2的任务的计时器达到m*t的整数倍后可执行优先级2的任务;

27、依次类推。

28、优选的,所述m的取值计算方法:速度环pid算法与电流环pid算法的执行频次比例范围为1:5到1:20之间,同时考虑优先级2的所述速度环pid算法的执行时间与优先级1的所述电流环pid算法的执行时间的比值,m的取值是执行频次比例以及实际执行时间比值的综合考量结果。

29、优选的,所述m是一个5~20之间的数值。

30、优选的,所述各类优先级程序模块合理安排执行中,优先级为1的程序模块在定时器中断内每次均执行,其他优先级的程序模块实时性依次降低,但程序也置于定时器中断内,在优先级为1的程序模块执行空隙时间依次执行。

31、优选的,所述定时器中断设计步骤具体包括:

32、将所述时间轮换软件设计框架中仅设置一个定时中断模块,具有程序设计中的时间最短的定时中断时间;

33、设计一个检测各个程序模块的各类任务的程序代码的运行时间的时间检测单元,所述时间检测单元基于数字信号处理器的定时器设计;所述时间检测单元在执行任务的同时开始计时,执行结束后停止,根据计时器的差值估算执行时间;具体为当检测各个程序模块的各类任务的程序代码的运行时间时,在代码开始的地方设置计时标志,在代码结束处读取该标志累加值,二者之差就是该代码的执行时间;

34、所述定时中断时间大于优先级最高的分组的执行时间;

35、将优先级1的任务置于所述定时器中断模块内,优先执行,且保证不被其他任何中断或者任务打断;

36、设定优先级1的任务运行时间t1,定时器中断周期t是t1的n次倍,即t=n*t1,n的取值跟t1以及变桨驱动器设置的功率器件开关频率有关,其中t为功率器件开关频率,为固定值,而优先级1的执行时间t1会根据驱动器执行状态而变化,同时为了保证在时间t内,优先级1的程序任务执行完成后,还有时间剩余去执行其他任务,因此n的取值范围为10~2000之间的数值。

37、优选的,所述时间轮换软件设计框架包括各优先级程序模块实时性处理、任务不发生嵌套处理,所述任务不发生嵌套处理的方法为:

38、步骤s1:各优先级任务设置相应的判断标志,先判断该标志为0,则不执行该任务,否则在执行该优先级任务前置0,执行完毕后置1,该标志含义表示本优先级程序组进入执行阶段,执行完毕结果为真,执行完毕后才能进入下一次执行循环,此标志是为了防止优先级1以外的的任务被打断后再次进入执行动作,重复执行上一循环已经执行的部分;

39、步骤s2:当执行优先级2任务的时间入口到达时,按步骤s1执行优先级2任务;当优先级2任务执行完毕,其执行标志置位1后,判断优先级3任务的时间入口是否到达,如果到达,则先判断优先级3的任务执行标志是否为0,为0则不执行该任务,否则将该标志在执行优先级3的任务前置0,执行完毕后置1;

40、步骤s3:优先级4及其以后优先级的任务均按步骤s2进行。

41、与现有技术相比,本发明的有益效果是:

42、1、本发明系统性对变桨驱动器的软件程序模块进行分组,并根据使用工况设计定时器中断,根据控制变桨直流电机的算法的各类优先级程序模块合理安排执行顺序,保证各模块之间平衡运行,平稳过渡,不产生超时运算,不发生程序跑飞,不发生程序嵌套,保障软件的实时性,不仅解决了如何在多任务处理、大数据交互、高响应要求、恶劣工作环境等情况下,变桨驱动器软件不溢出不跑飞,高实时性执行的问题,还解决了变桨驱动器软件程序模块不嵌套的问题,保持数字信号处理器高效率,低内存占有率,提高产品抗干扰能力,保持产品平稳运行,保障风力发电机组可靠安全,适合对可靠性要求较高的风力发电场合应用。

43、2、本发明为保证各优先级程序模块在执行过程中,任务不发生嵌套,优先级顺序有序完成,程序模块实时性达到最大而采用了时间轮换软件设计框架;使得优先级2的程序模块是在优先级1的程序执行完毕后的空闲时间里执行的,优先级3的程序模块是在优先级2的程序执行完毕后的空闲时间里执行的,其余优先级程序以此类推。各优先级程序模块的执行标志位和时间入口准入条件杜绝了各类优先级程序相互嵌套的可能性。同时因为除优先级1外的其他优先级程序模块均在上一级优先级程序模块执行的空闲时间内执行,尽可能利用了上一级优先级程序模块执行的时间碎片,降低了信号处理器的内存占有率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1