时间:2023-03-20 16:29:05
引言:寻求写作上的突破?我们特意为您精选了4篇控制软件设计论文范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
2、FlexRay总线时间调度
根据样例飞行控制计算机的内部总线FlexRay通信协议可知,内部总线通信时间为5ms,每个时隙为50μs,FlexRay总线最大帧长为127字[7]。本设计中1553B帧长度最大为54个字节,频率最高为100Hz,故使用上述FlexRay总线通信协议能够符合1553B总线通信要求。本设计中,1553B传感器数据的频率为50Hz和100Hz,而FlexRay总线通信频率为200Hz,内部总线通信速率高于外部传感器速率。故1553B板卡在内部总线通信过程中,当有传感器数据更新时,FlexRay总线传输最新的数据;而当没有数据更新时,FlexRay总线传输当前的传感器数据。为保证数据的完整性及减少占用总线时隙数量,本设计共使用总线三个时隙,每个时隙具体传输内容如表4所示,时隙2、7、15传输内容分别为惯导传感器无线电高度传感器和大气数据机的数据,数据帧大小分别为54字节、32字节、12字节。
3、1553B通信单元软件设计
3.1驱动软件的IP核封装与实现
在嵌入式FPGAEDK设计中,为了简化用户开发难度,Xilinx公司提供了一个封装了的接口,即IPIF(IPinterface,IP接口)作为介于PLB总线与用户逻辑模块之间的接口缓冲[8]。IPIF将PLB总线操作封装起来,而留给用户一个逻辑接口。本文软件设计采用模块化设计思想。其设计步骤如下:首先,将每个硬件模块对应编写一个驱动软件程序;其次,将相应驱动软件封装成通用IP核;最后,将IP核挂载到PowerPC内部总线PLB上。模块之间的通信主要通过PLB总线和OPB总线实现,系统中各模块通过这两种总线连接至PowerPC内核上,而PowerPC通过内部总线读写机制实现对各个模块的读写与控制。如图4所示为1553B通信单元的硬件平台总体架构图,主要由PowerPC内核、1553BIP核、FlexRay总线对应GPIOIP核集合、串口IP核、BRAM模块IP核及相应的中断控制IP核组成。
3.21553B总线接口驱动软件设计
如图5所示为1553B总线接口IP核结构图,整个驱动分为三个模块:总线读写模块,初始化模块和数据缓存模块。系统上电,该IP核激活,进行总线初始化操作,发送初始化完成信号并查询PLB读写信号,等待PowerPC405的读写操作。当读控制信号使能时,PowerPC405读取数据缓冲区中的数据;当写控制信号使能时,总线读写模块将数据缓冲区中的数据发送至总线上。
3.31553B通信算法设计
1553B通信单元的调度主要由外部1553B总线的数据接收,内部FlexRay总线的数据通信组成。本设计采用模块化设计,将系统功能划分为顶层应用和底层数据通信。底层数据通信主要包括外部数据流通信及内部数据流通信,外部数据流通信主要由1553BIP核实现,内部总线也由FlexRay驱动程序实现数据通信;而内核PowerPC主要实现顶层应用,即数据调度及总线故障切换功能的实现。如图6所示为节点通信程序流程图,系统上电后,首先对FlexRay总线及1553B总线节点进行相应的初始化,进而查询1553B对应FIFO满输出引脚,当接收到数据时,节点读取FIFO内容,并写入相应的总线发送缓冲区中。进而查询MFR4310的中断引脚信号,当发送中断有效时,执行发送中断子程序,将接收到1553B总线数据通过1553B总线发送出去;当接收中断有效时,执行接收中断子程序,通信节点接收CPU发送来的控制信号。系统完成数据调度后,进而进行总线故障检测。由于1553B总线的基本周期为10ms,故本设计中总线检测周期为10ms。当定时器的10ms定时时间到,总线进行一次总线检测。当接收到总线切换指令,通信单元进行总线切换,并更新总线状态;进而判断是否接受到传感器的1553B总线应答信号,如果有,将总线故障计数清零,倘若没有,将故障计数加1,当故障计数大于6,进行总线切换,并更新总线状态。
4、总线网络通信测试与结果分析
(1)FlexRay总线测试结果将FlexRay通信周期设置为5ms,静态时隙长度为50μs,将CPU板卡与1553B板卡进行通信实验,从总线上读出输出波形。FlexRay总线通信时,在总线上截取的波形如图7所示,从图中可以看出通信周期为5ms,与预设值一致。如图8所示为一个周期时隙输出波形,时隙2、7、15传输传感器数据。由图8可知,时隙2与时隙7相差250μs,时隙7与时隙15相差350μs,与预设值一致。FlexRay总线通信6小时,进而进行连续总线数据传输测试,经过6个小时的总线测试结果如表5所示,通信过程中,丢帧、错帧计数均为0,表明1553B通信单元FlexRay总线设计正确,可以满足飞行控制计算机通信的基本要求。(2)1553B总线测试结果由前面可知,1553B数据通信周期为10ms,即100Hz。如图9~12分别为1553B通信单元与CPU单元模拟大气数据机传感器数据帧发送数据8字节,进行通信2小时、4小时、6小时、10小时的通信仿真图。其通信帧数分别为719999,1439998,2160023,3599991。期间在2小时~4小时,4小时~6小时,6小时~10小时通信期间,丢帧数分别为1,1,0,合计丢帧率约为5.56×10-7,符合飞行控制计算机通信要求。(3)测试结论以上实验结果表明,1553B通信单元的各个模块通信正常,与飞行控制计算机CPU板卡通信正常,能够符合飞行控制计算机的通信要求。
引言
随着燃气轮机在工业现场的广泛使用,对控制性能的要求越来越高,其控制系统也迅速从液压机械式控制器发展为模拟式电子控制系统,进而发展成数字电子控制系统。到20世纪90年代,燃气轮机开始全面配置数字电子控制系统。近年来,国外燃气轮机的数字电子控制系统已经实现了标准化、系列化,实现了模块化,并配置了菜单式的开发软件。模块化控制系统中通信总线是系统内部数据交换的桥梁,总线的可靠性是系统可靠性的保障,总线速度也直接影响到整个控制器的性能,因此必须选择实时、可靠的通信总线。MIL-STD-1553B、ARINC-429等传统的现场总线可靠性高、使用灵活,工程上已经得到了广泛应用,但却遭受速度瓶颈。工业实时以太网技术具有速度快、实时性好、可靠性高等特点,它的发展使工业控制在通用化、模块化、数据交换等方面都面临新的技术革命,特别适用于分布式控制系统设计。EtherCAT是由德国Beckhoff公司开发。采用以太网帧,以特定环状拓扑发送数据的技术,拥有杰出的通讯性能,接线简单,并对其它协议开放。
1.总体方案
1.1燃机模块式电子控制系统方案
系统的控制对象是某型舰用中档功率系列燃气轮机,控制系统采用开放性的模块结构。电子控制器采用标准化、系列化的模块设计,各模块间采用最新的工业实时以太网Ethercat连接,控制软件设计成可选择、可配置的标准模块和接口,液压执行机构设计成通用的模块化的部件和组件。这就使整个控制系统的设计变为功能模块的选择、匹配和调整——根据燃机控制系统的信号数量和接口类型选择合适的硬件模块,根据特定控制规律和控制系统要求选择、配置相应的软件模块,根据燃油和导叶的控制要求选择合适液压执行机构。采用的是成熟的模块使各模块功能、性能都有了保证,各部件仅需要进行部分调整就能满足要求,既缩短研发周期,又提高系统的可靠性,同时也便于今后实现性能改进和功能扩展。
1.2燃机控制系统组成
燃机控制系统包括综合电子控制柜、系统软件、液压执行机构、电气系统等。液压机械装置采用模块化设计方法,包括高压燃油泵、燃油计量装置、导叶调节装置等。各模块可根据具体燃机要求配合使用。电子硬件通用模块包括:电子控制器模块、独立保护模块。系统软件包含控制软件和应用软件。控制系统接收来自控制室或监控台的控制信号,对燃气轮机的起动、加速、减速、稳态工况运行以及停车和重要参数限制实施全面的自动控制和安全保护,能实现对燃机辅助系统的监测和控制,能实现对燃机的故障诊断和重要参数的记录、存贮和通讯。
2.控制软件设计
2.1电子控制器方案介绍
电子控制器由主CPU模块与AD模块、DA模块、FI模块、IO模块等低级模块组成,各模块自带CPU处理器,模块之间通过工业以太网连接,控制系统采用基于网络通讯技术模块化设计,控制器的各种功能模块之间用实时以太网进行连接,完成数据交互。各模块可以集中在一起也可以分散到燃机的各部分,通过工业总线实现实时信息交流和控制。
2.2控制软件分层设计
控制软件包含CPU模块的控制应用软件、其它通用模块底层软件组成。底层软件与模块一一对应。模块的底层软件主要是实现通用模块采集、输出或信息交互功能,并与其它模块通讯,传递和接受信息,实现控制系统功能。CPU模块的控制应用软件通过与底层软件,根据模块的特点进行功能的初始选择和配置。初步设计的控制软件层次结构如图1所示,该层次结构适用于主CPU模块与所有低级功能模块。由于低级功能模块的任务都比较简单,所以并无必要采用实时内核,主CPU模块也需根据实际情况决定采用传统的顺序结构还是基于实时内核的并行结构。同一功能的器件在驱动程序层向顶层提供一致的接口,在这一层次中需要制定对器件读、写、模式设置、中断、轮询等操作的驱动程序函数模版。整理电子控制器硬件设计中常用的接口器件资料,针对这些器件编写驱动程序并用数据库进行驱动程序模块的管理。
2.3控制软件模块化设计
控制软件采用模块设计,将燃机的主要控制过程、各种控制规律形成标准程序模块。模块划分可层层分解,步步细化,当针对具体燃机时只要选用合适的模块进行组合,并进行对参数设置连接就可形成控制程序。程序的框架设计要保证其可扩展性,根据燃机控制要求的变化,不断的增加先进控制规律、控制算法模块提高整个系统的性能。在对燃机控制系统的特点进行充分分析的基础后,建立对燃机控制软件的通用框架结构、模块划分准则与模块配置策略,通过更改模块配置信息、模块整体更换等方式灵活构建可靠的燃机控制软件。软件模块化按照由粗到细、由繁到简的指导方针,按步骤逐级细化,最终生成最基本的模块单元。根据燃机控制系统的功能,将控制软件划分为基本数值计算模块库、信号处理模块库、故障处理模块库、起动控制模块库、燃机运行控制模块库、停车控制模块库、辅助系统控制模块库、底层软件模块库、通讯协议模块库。模块一般采用标准C语言编写,与CPU相关的代码采用汇编语言编写,考虑到不同CPU的字长、对齐方式等特性,模块内部均采用自定数据类型,且可通过外部进行设置。
3.通讯软件设计
EtherCAT通讯程序包括网络收发模块、EtherCAT接口模块、EtherCAT设备模块、主站模块和从站模块。网络收发模块完成底层网络数据包的发送和接收功能。EtherCAT接口模块实现EtherCAT通讯程序与功能软件的接口功能。EtherCAT设备模块实现EtherCAT设备扫描和软件初始化工作。主站模块实现主站初始化命令和循环命令的发送处理,实现和维护主站的状态机。从站模块实现从站设备的配置,同时维护从站设备的状态机。
3.1Ethercat协议
EtherCAT是用于过程数据的优化协议,凭借特殊的以太网类型,它可以在以太网帧内直接传送。EtherCAT帧可包括几个EtherCAT报文,每个报文都服务于一块逻辑过程映像区的特定内存区域,该区域最大可达4GB字节。数据顺序不依赖于网络中以太网端子的物理顺序,可任意编址。从站之间的广播、多播和通讯均得以实现。当需要实现最佳性能,且要求EtherCAT组件和控制器在同一子网操作时,则直接以太网帧传输就将派上用场。然而,EtherCAT不仅限于单个子网的应用。EtherCATUDP将EtherCAT协议封装为UDP/IP数据报文,这就意味着,任何以太网协议堆栈的控制均可编址到EtherCAT系统之中,甚至通讯还可以通过路由器跨接到其它子网中。显然,在这种变体结构中,系统性能取决于控制的实时特性和以太网协议的实现方式。因为UDP数据报文仅在第一个站才完成解包,所以EtherCAT网络自身的响应时间基本不受影响。另外,根据主/从数据交换原理,EtherCAT也非常适合控制器之间(主/从)的通讯。自由编址的网络变量可用于过程数据以及参数、诊断、编程和各种远程控制服务,满足广泛的应用需求。主站/从站与主站/主站之间的数据通讯接口也相同。从站到从站的通讯则有两种机制以供选择。一种机制是,上游设备和下游设备可以在同一周期内实现通讯,速度非常快。由于这种方法与拓扑结构相关,因此适用于由设备架构设计所决定的从站到从站的通讯,如打印或包装应用等。而对于自由配置的从站到从站的通讯,则可以采用第二种机制—数据通过主站进行中继。这种机制需要两个周期才能完成,但由于EtherCAT的性能非常卓越,因此该过程耗时仍然快于采用其他方法所耗费的时间。EtherCAT仅使用标准的以太网帧,无任何压缩。因此,EtherCAT以太网帧可以通过任何以太网MAC发送,并可以使用标准工具。
3.2主站软件设计
EtherCAT可以在单个以太网帧中最多实现1486字节的分布式过程数据通讯。其它解决方案一般是,主站设备需要在每个网络周期中为各个节点处理、发送和接收帧。而EtherCAT系统与此不同之处在于,每周期仅需要一个或两个帧即可完成所有节点全部通讯,因此,EtherCAT主站不需要专用的通讯处理器。主站功能几乎不会给主机CPU带来任何负担,处理任务的同时,还可处理应用程序,因此EtherCAT无需使用昂贵的专用有源插接卡,只需使用无源的NIC卡或主板集成的以太网MAC设备即可。EtherCAT主站容易实现,尤其适用于中小规模的控制系统和有明确规定的应用场合。EtherCAT映射不是在主站产生,而是在从站产生,此时过程映像已经完成排序。该特性进一步减轻了主机CPU的负担。可以看到,EtherCAT主站完全在主机CPU中采用软件方式实现,相比之下,传统的慢速现场总线系统通过有源插接卡方可实现主站的方式则要占用更多的资源,甚至服务于DPRAM的有源卡本身也将占用可观的主机资源。
3.3从站软件设计
子站模块划分为A/D采样模块、频率量模块、LVDT及振动信号处理模块、热电阻信号处理模块、热电偶信号处理模块、压力信号处理模块、电流电压信号处理模块、开关量输入模块、开关量输入1模块、开关量输入2模块、开关量输出模块、模拟量输出模块1、模拟量输出模块2,备份槽。主程序通过不同的功能要求调用软件块。软件模块设计的基本原则是数据隐藏,即各模块内部数据私有,并提供外部接口访问这些私有数据,各模块之间相互独立,从而降低各模块之间的耦合程度。整个框架提供诸多配置接口,具有一定的通用性。子站模块实现的功能为DSP外设初始化;获取通道信息;获取开关量输入、拟量输入、频率量输入信号;输出开关量、PWM信号;FLASH存储器操作;定时器的启停、看门作等。
4.结束语
在国内航空发动机电子控制系统研制的技术积累基础上,开展基于网络通讯技术的燃机模块式电子器研究工作,研制具有自主知识产权的、具有国际先进水平的燃机模块式电子控制系统,不仅可以创造经济效益,而且能够打破燃机电子控制系统被国外公司垄断的局面,极大提高燃机市场的核心竞争力。
参考文献
[1]周向阳.模块式燃机电子控制系统软件设计技术研究.南京航空航天大学硕士论文.2010-03-01
[2]EtherCAT——技术介绍及发展概貌.国内外机电一体化技术.2006-11-30
密集架是自动化仓储领域具有代表性的一类系统。它由一个固定列和多个移动列组成,通常架体之间紧密排列,不预留任何通道;工作时通过PC机或固定列的人机交互界面打开指定的存取通道。这种“常态闭合,用时打开”的特点,使得密集架系统能够节省很大的仓储空间,同时具备较高的安全性。
密集架系统的核心是控制软件及通信协议。由于系统中移动列数目的不确定,使得固定列和移动列之间的通信复杂度大幅提升,传统的基于中断响应、前后台架构的控制软件设计方式,已经很难满足系统在可靠性、扩展性、开发效率以及模块化结构等方面的要求。引入嵌入式实时多任务操作系统和高效的通讯协议,就成为提高密集架系统整体性能的关键因素。
本文提出了基于多任务实时操作系统μCOS-II和ModbusRTU协议的密集架控制软件的设计方法。软件采用基于ModBusRTU协议的“主从式”通信架构,并利用操作系统特性,将功能模块划分为多个任务,由系统调度执行。经过实验测试,这种设计方法大大提升了密集架系统的稳定性及程序的开发效率。
1 密集架系统工作原理
密集架系统通常由一个固定列和若干个移动列组成,固定列和移动列由嵌入式控制器控制,其结构如图1所示。
在密集架系统中,固定列作为核心,主要完成以下任务:
⑴与PC上位机通信,处理下发的控制指令并反馈系统运行状态和传感器信息;
⑵与本列的人机交互单元通信,处理下发的控制指令并反馈系统运行状态和传感器信息;
⑶与所有的移动列通信,实时查询各个移动列状态并下发控制指令。
移动列作为实际运行的机构,需要处理以下任务:
⑴与本列的人机交互单元通信,接收控制指令并反馈运行状态;
⑵处理固定列下发的查询指令和控制指令;执行相应控制动作,反馈运行状态和传感器信息。
由此可以看出,密集架系统控制软件的核心,在于确保固定列和移动列通信稳定的基础上,协调好来自上位机、人机交互单元和各个嵌入式控制器的控制指令和任务,保证系统能够及时高效的响应控制动作。
基于此,在密集架控制软件的设计上,论文采用具有很强的实时性、较为完备的任务调度功能及稳定的通信管理机制的μCOS-II实时操作系统;并基于ModbusRTU协议构建了软件的通信框架。
2 μCOS-II操作系统移植
本文移植μCOS-II实时操作系统针对的是基于STM32F103R8T6 ARM芯片的硬件平台,需要完成与CPU相关和硬件相关的内容的修改。
2.1 移植CPU相关内容
和CPU相关内容的移植,主要是利用CPU的定时器给操作系统提供时钟。
μCOS-II为了处理任务延时和调度等一些时间相关任务,需要由CPU的硬件定时器产生一个毫秒(ms)级的周期性中断来提供一个系统时钟。最小时钟单位就是两次中断之间的时间,称为时钟节拍(Time Tick),考虑到CPU的执行效率,本系统选择10ms的时钟节拍。
Stm32F103R8T6中,μCOS-II时钟由“滴答时钟”的中断提供:
void SysTick_Handler(void)
{
OSIntEnter();//进入中断服务函数
OSTimeTick();//调用时钟节拍服务函数
OSIntExit();//退出中断服务函数
}
2.2 移植硬件相关内容
(1)OS_CPU.C中的OSTaskInit(),它是任务的堆栈初始化代码,在创建任务时必须成功调用这个函数,否则会导致系统崩溃。
(2)OS_CPU.H中主要包含三个重要的函数定义,分别是:
・OS_ENTER_CRITICAL():进入临界区函数,负责关中断及保存全局中断标志位;
・OS_EXIT_CRITICAL():退出临界区函数,负责恢复全局中断标志位,和OS_ENTER_CRITICAL()函数成对使用,两个函数之间的代码称为“临界段”。进入临界保护函数时中断关闭,临界段在运行期间不受中断干扰,临界段代码执行完毕,由OS_EXIT_CRITICAL()函数解除中断屏蔽;
・OS_TASK_SW():任务级任务切换函数,负责完成任务的正常切换,由任务级调度器OSSched()调用。
(3)OS_CPU_A.ASM是μCOS-II唯一的汇编文件,这个文件主要涉及到任务切换、启动优先级最高的任务、中断开关等函数。
・μCOS-II启动多任务的函数是OSStart(),用户在调用该函数之前至少需要创建一个任务。在执行OSStart()函数时,将调用OSStartHighRdy()运行多任启动前优先级最高的任务,使得系统整个得以运转。
・OSCtxSw()是任务级的上下文切换函数,它被OS_CPU.H中的OS_TASK_SW()所调用;OSIntCtxSw()是中断级的任务切换,它被OSIntExit()调用,在μCOS-II运行完中断服务程序之后完成中断级任务调度。
・OS_CPU_SR_Save()、OS_CPU_SR_Restore()分别被OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()调用,主要负责屏蔽中断和恢复中断。
在移植过程中,根据用户的实际需要,可以对配置文件OS_CFG.H进行修改,从而实现μCOS-II内核的剪裁。
3 基于μCOS-II和Modbus RTU协议的控制软件设计
根据密集架控制软件的设计架构,固定列控制软件所面临的数据通信处理的复杂程度远超移动列,且固定列ModbusRTU协议实现机理和移动列完全相同,主要的应用程序也涵盖了移动列应用程序的主要设计思想。因此,本文仅以固定列为样例,来介绍基于μCOS-II和Modbus RTU协议的控制软件设计。
3.1 Modbus RTU协议
在密集架系统中,使用“一主多从”的Modbus RTU通信模式,其中固定列作为主设备,移动列作为拥有唯一地址的从设备。固定列和移动列之间可以进行通信,而移动列之间则不能通信。通信的具体流程为:
⑴固定列以中断方式接收本列人机交互界面和上位机发送的功能码为06的控制帧;
⑵固定列以固定时间间隔依次向各移动列发送功能码为03的查询帧;
⑶收到查询帧的移动列向固定列反馈当前状态信息,包括:本列运行状态、本列人机交互界面下发的控制指令、本列传感器信息;
⑷固定列综合系统当前状态和控制指令要求,确定控制逻辑,并向相应移动列发送功能码为06的控制帧;
⑸收到控制帧的移动列根据指令要求完成控制动作。
3.2 基于μCOS-II的多任务机制设计
⑴用户任务:完成来自上位机、人机交互界面和移动列各种通信数据的综合解析工作,是控制指令得以正确实现的关键任务。
⑵RS232通信任务:负责和本列人机交互界面的通信工作,任务初始化后始终保持等待信号量状态。主芯片的串口中断实时接收触摸屏命令,当接收到完整的数据帧后,调用OSSemPost()函数发送信号量,通知RS232通信任务激活ModbusRTU协议解析任务,并根据解析出的控制指令反馈响应信息或者保存按键命令。
⑶RS485通信任务:和RS232通信任务类似,它由对应的RS485接收函数调用OSSemPost()函数激活,负责和各个移动列之间的信息交互,是密集架网络稳定运行的核心任务。移动列数目较多,通信非常复杂,为了保证控制指令的实时性,必须将RS485通信任务的优先级设为所有任务的最高级。它的主要工作是:解析并保存“轮询”到的移动列状态信息、传感器信息、按键信息,等待用户任务的使用。
⑷网络通信任务:由对应的网络接收函数调用OSSemPost()函数激活,主要负责和PC上位机之间的信息交互,使得用户可以借助网络实现远程控制密集架系统。
⑸ModbusRTU协议解析任务:该任务由以上三个数据通信任务中的任意一个激活,它的主要工作是:根据ModbusRTU数据帧规范,解析及保存固定列和上位机、固定列和移动列之间传输的数据帧。
ModbusRTU协议规定数据帧之间的间隔至少是3.5个字符,而Stm32F103R8T6的串口不具备超时中断。因此,采用基于定时器中断的串口数据接收方法以确定ModbusRTU数据帧是否传输完成。
ModbusRTU数据帧在串口传输过程中,字符与字符之间的数据间隔很短,如果串口接收数据过程,出现较长时间接收不到数据的情况,则说明当前ModbusRTU数据帧已经传输完毕,后面再有新的数据接收,则作为下一帧ModbusRTU数据帧处理。本文正是利用ModbusRTU协议的这种特性,借助定时器中断来实现ModbusRTU完整数据帧的判断的,串口中断接收到第一个字节的数据后,启动定时器,定时时间设为3.5个字符的串口传输时间(根据波特率进行计算)。若在定时时间未到时,收到下一字节,则保存到同一数据帧;若定时时间已到,仍然没有收到新的数据,则触发定时器中断,通知对应的通信处理任务已接收到完整数据帧,可以进行相关数据处理。相关软件流程见图2:
μCOS-II是抢占式内核,它按照任务优先级的高低对任务进行调度,因此任务优先级的合理设置,对于密集架这种实时性要求较高的控制软件来说尤为重要。在该软件系统中,各任务的优先级由高到低依次为:RS485通信任务、RS232通信任务、网络通信任务、用户任务。
综合多任务机制的控制软件主流程结构图如图3所示。
4 结束语
本文探讨了一种密集架控制软件的设计方法,软件基于ModbusRTU协议建立固定列和移动列的通信,并利用了μCOS-II操作系统的多任务机制来合理安排密集架软件各个功能模块的执行和协调。基于该架构的控制软件,已经应用于一套固定列+17列移动列的复杂密集架系统。实践表明,软件运行稳定可靠,系统对控制指令响应及时,有效保证了密集架系统的稳定性。
[参考文献]
[1]任哲.嵌入式实时操作系统μCOS-II原理及应用(第一版)[M].北京:北京航空航天大学出版社,2005年.
1.引言
光伏水泵亦称太阳能水泵,主要由水泵和光伏扬水逆变器组成。具体应用时,再根据日用水量和不同扬程量的需求配以相应功率的光伏阵列,统称为光伏扬水系统。光伏水泵利用清洁无污染、取之不尽用之不竭的太阳能资源,日出而作,日落而歇,无需电网、无需柴油、无需人员看管,可与渗灌、喷灌、滴灌等灌溉设施配套应用。节水节能,可大幅降低使用化石能源电力的投入成本。是全球“能源问题”、“粮食问题”综合系统解决方案的新能源、新技术应用产品。
本文设计了一种自动的新型的光伏扬水系统,该系统的驱动电机是采用直流无刷电机,系统选用MicroChip公司所生产的PIC16F877作为光伏水泵系统的主控芯片,对系统硬件和控制软件进行设计,实现直流无刷电机的反电势过零检测,同时实现光伏阵列点的TMPPT跟踪、系统无人监控和故障检测等功能。
2.系统硬件设计
2.1 系统构成
光伏水泵系统的结构如图1所示,系统主要包括四个部分:太阳电池阵列、控制器、电机和水泵。 系统利用光伏阵列将太阳能直接转变成电能。经过DC/DC升压后然后经过具有TMPPT功能的变频器输出三相交流电压,从而驱动电机和水泵负载,完成向水塔储水功能。
图1 系统结构图
2.2 系统总体结构及硬件构成
本文所设计的系统总体结构如图2所示,光伏电池阵列的输出端与Boost相接,单片机集光伏阵列母线的电压值和电流值从而做出是否欠压过流的判断,采集到的数据如果符合条件,微控制器将根据MPPT算法改变电压的增量移动方向从而调整PWM信号的占空比。通过调整占空比来驱动DC-DC电路的功率管导通,这一部分完成了最大功率点跟踪控制。
三相逆变桥电路与最大功率点跟踪控制的输出端相连,IR2130组成功率驱动电路,单片机的PWM控制信号通过此驱动电路来控制六个开关管的导通与关断,使UVW三相交替导通使电机运转。电机运转期间不断地通过三相反电势过零检测电路检测转子位置,获得准确的换相信息。所设计的系统保护功能包括打干保护、低日照保护和过流保护。我们知道,根据直流无刷电机的运行原理通过由6只功率管组成的三相六状态电路的断开与导通可以控制电机的运转。而对光伏阵列最大功率点跟踪而言,则是通过改变DC-DC的占空比D来实现的。
图2 系统硬件结构框图
图3 系统主程序流程图
3.软件设计
在本光伏水泵系统中,选用单片机PIC16F877作为系统的主控芯片。系统的软件部分包括主程序和中断服务程序,主程序的任务主要是完成系统的初始化、A/D采样、读入用户设置、电机转速识别及转速异常保护、PI调节、MPPT或CVT功能等功能。主程序流程图如图3所示。
4.总结
论文经过理论设计及硬件制作完成了样机试制,该样机的设计采用单片机PIC16F877作为系统的主控芯片。系统采用“虚拟中性点法”,从而解决了无位置传感器的直流无刷电动机控制的关键问题即转子位置检测问题。本样机利用单片机所拥有的丰富的I/O口和A/D采样功能,采用调节PWM占空比调节电机的转速以实现最大功率跟踪功能。样机还完善了对系统的各种保护功能,提供各种监控功能,这提高了光伏扬水系统的可靠性和灵活性。在实验中,选用24V,30W的无位置传感器直流无刷电机,通过实验证明,直流无刷电机能够自动切换到自同步运行状态并实现了实现平稳的步进起动。通过实验,测量了电子换向逆变器的各种电压,电机运行性能良好。实验结果表明,该试制样机基本上达到设计目标,具有一定的应用价值。
参考文献
[1]王长贵,王斯成.太阳能光伏发电实用技术[M].化工工业出版社,2005.
[2] 刘德雨.著《水泵技术问答》[M].水利电力出版社出版,1983.08.