侵权投诉
订阅
纠错
加入自媒体

基于uC/OS-II的变频器结构控制系统设计

2011-01-19 15:34
月城清浅
关注

  本文介绍了抽油电机变频器变结构控制系统功能原理,如何利用uC/OS-II的多任务功能实现控制系统的算法结构变换,操作系统的移植、多任务的建立和SDK下的软件设计;最后总结了在应用中需注意的问题。

  在油田生产中为了节省电能并减小故障率,变频器得到越来越多的应用。但由于油井负载的非周期大脉动性质,从能量的流向来看,变频器有两种运行状态——电动运行和回馈制动。不同运行状态的控制变量和控制方法是不同的,这就要采用所谓的变结构控制。本应用是实现抽油电机变频驱动中的变结构控制,不同的控制结构通过任务间的切换实现。

  系统控制核心采用DSP56F803,它是Motorola公司推出的16位DSP型微控制器,运算速度可达40MIPS,片内资源丰富,有强大的软件支持,是嵌入式应用的理想选择。本系统应用了其SPI、SCI、PWM、键盘中断及通用I/O口等功能模块。

  1 系统设计

  1.1 uC/OS-II的移植与配置

  Motorola公司提供的软件开发工具包SDK为使用uCC/OS-II做好了铺垫工作,与硬件相关的文件OS_CPU.H、OS_CPU_A.ASM和OS_CPU_C.C已经给出,只需购得系统源代码,然后将其考入指定的文件目录,系统的移植就完成了。本文采用最新版本uCC/OS-II V2.51。

  系统移植成功后,需要对操作系统进行配置(裁剪),把用不到的功能去掉,以最大限度地节省存储空间。这项工作是通过os_cfg.h中的宏定义进行的,本文只用到了多任务管理、信号量、互斥量等功能。在本应用中,uCC/OS-II内核经过剪裁后只有3KB左右,相对DSP56F803的32KB内部程序Flash只用了不到十分之一。需注意的另一个关键设置是时钟节拍中断频率OS_TICKS_PER_SEC,它是系统多任务运行所依赖的时间基准,也决定了任务重复调用的最快频率。这里缺省设为1000,要比文献[3]中的推荐值高出一个数量级。但实际应用表明,DSP56F803以其高运算速度在这个设置下是完全胜任的。

  1.2 系统功能

  根据油田生产的要求,系统要实现以下功能:键盘输入、参数显示、三相电流采集、直流侧电压采集、温度采集、变频指令输出以及保护等。系统对电流、电压、温度进行周期性采样,采样值经过数字信号处理,作为控制器的参数,最后由控制算法得出控制量,经PWM和D/A转换器发送给变频器,形成反馈闭环控制。系统运行过程中实时显示电流、温度等参数,并可以通过键盘对控制器进行参数在线设定。另外,高温、过流等保护功能必不可少。系统原理如图1。控制器根据直流侧电容C上电压的大小来确定以哪一种控制结构运行。当直流侧电压不超过设定值时,系统以电动状态运行。超过设定值时要以回馈制动方式运行,要求两种工作状态要互锁,切换要准确、及时。

  

  1.3 任务的创建及变结构控制的实现

  根据功能要求,本着尽量减少任务数以减轻CPU运行负担的原则,本文设计了AD采集、电动运行、回馈制动和显示四个任务。另外还设计了两个中断服务子程序:用PortA口的中断功能实现8个键盘输入,用外部中断IrqA实现短路、过流、缺相保护功能。

  每个任务都有自己的名称、内存空间和优先级。不同的任务必须有不同的优先级,它们可以是0~62之间的任意值,数值越小优先级越高。优先级的设置有不同的依据,以本文为例,回馈运行任务对时间要求最苛刻,如果不能及时启动或过早结束都会对变频器造成危害,所以其优先级设为最高;AD采集任务运行最频繁,必须为其它任务提供可靠的参数,优先级设为次高;电动运行任务是常规运行状态,优先级低于AD采集任务;显示任务只实现人机交互,显示状态和参数对控制器性能没有直接影响,优先级设为最低。uCC/OS-II要求为每个任务分配OS_STK类型的堆栈空间,并且它们占用的RAM存储空间必须是连续的。

  任务延时是指任务执行完毕处于挂起等待状态到下一次重新运行之间的时间间隔,它的单位是时钟中断节拍。由于OS_TICKS_PER_SEC为1000,每一拍为1ms。每个任务的调用间隔不能小于一个节拍,它将影响模拟量的采样频率。各个任务的属性定义如表1所示。

  

1  2  下一页>  
声明: 本文由入驻维科号的作者撰写,观点仅代表作者本人,不代表OFweek立场。如有侵权或其他问题,请联系举报。

发表评论

0条评论,0人参与

请输入评论内容...

请输入评论/评论长度6~500个字

您提交的评论过于频繁,请输入验证码继续

暂无评论

暂无评论

文章纠错
x
*文字标题:
*纠错内容:
联系邮箱:
*验 证 码:

粤公网安备 44030502002758号