时间:2023-03-20 16:29:05
引言:寻求写作上的突破?我们特意为您精选了12篇控制软件设计论文范文,希望这些范文能够成为您写作时的参考,帮助您的文章更加丰富和深入。
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.
软件开发过程是一个复杂过程,也是一个项目的综合过程。软件配置在软件开发过程应用,提高了软件的生命周期,在开发过程中,就能对软件进行测试,对软件的数据进行科学的分析,发现存在问题及时解决措施,对提高软件开发质量有了进一步技术保障,为项目的正确实施有了明确保障。
一、项目管理的概述
软件从调研、分析、设计、实施、测试、维护与管理及死亡的一个生命周期,实际就是一个项目的整个流程。项目管理就在一定环境下,根据企业的实际需要,进行科学的分析、科学的设计、科学的进行管理、以提高企业的利润为目标进行整个管理过程。现在项目管理在各个领域应用比较广,其有一定管理目标,科学的进行分析与管理,为实现特定的管理目标努力。项目管理是一项综合过程,涉及组织,质量、费用、时间等一系列问题,从发起过程,设计过程到实施过程都需要企业搭建良好的平台进行构建,以实现企业项目管理目标努力。
二、在软件开发中实施项目管理的重要性
项目管理在软件开发过程中起到重要作用,项目管理可以提高软件开发质量。有时即使不开展项目管理工作,软件开发项目也能取得成功。但是如果缺乏项目管理,则难以将成本控制在一定范围内,容易导致软件企业面临着亏损的风险。在开展项目管理工作的过程中,需要借助技术、方法等,管理软件开发活动,如此既有助于实现软件开发目标,又能够控制软件开发的进度以及开发成本。当前,虽然有部分软件企业依据软件工程理论,制定了管理软件开发的制度,但是却没有严格控制软件开发的进度以及成本。这种做法不仅会延长软件开发的时间,还会增加软件公司的经营风险,最终损害到相关用户的利益。而在软件开发过程中,开展项目管理工作,就有助于保证软件开发工作的顺利完成,同时提高软件企业的经营管理效率。综上所述,项目管理在软件开发过程中起到重要作用,在软件管理中能开学的,有目标的进行软件管理,在软件设计过程中,能合理的安排软件开发设计时间,保证软件时间正确完成,对提高软件质量,降低用户风险等方面都做的非常好,在软件开发过程中,合理的利用项目管理软件,对提高软件的应用有一定的现实意义。
三、项目管理在软件开发中的应用现状
项目管理应用在软件开发过程中时间不是很长,但最近几年,项目管理应用到软件开发过程中,取得一定成绩。60年代中期,软件行业没有一定标准,人们发现软件开发过程中存在一定问题,软件工作者一直想解决措施。80年代,学者尝试在软件开发过程中引进项目管理,这时候没有软件标准,但也取得不错效果。在项目开发过程中,项目组有多个成员组成,每个成员在项目开发过程中扮演一定角色,每个角色有一定的工作任务,要认真分析任务中具有一定的关联性,合理的利用项目管理,解决任务的开发时间及先后顺序,都是为了整个项目能正确,准时的完成而努力奋斗,同时也对员工提高工作效率有一定的益处,对提高学者的能力有一定的帮助,在未来的发展过程中,软件开发引进项目管理是时展需要,也是社会发展需要。
四、项目管理在软件开发中的应用
1、可行性研究。软件在开发实施前,都要对项目进行一定可行性研究,主要从管理、技术、经济三方面进行可行性研究。现有的管理水平是否能进行软件设计开发,是否符合现代化企业的项目化管理的需要。现有的技术水平是否能进行软件开发,是否能完成企业提出相应功能的实现。现有的经济能力,是否能承担软件开发的费用以及后期的管理与维护费用,有必要的可能软件升级费用等。
2、软件项目估算。在软件开发过程中,首先要规划软件开发项目,如此便于项目管理人员制定切合实际的估算方案。规划软件开发项目的内容主要包括:明确软件开发的目标、明确软件开发过程中需要用到的各种资源、明确软件开发的进度等。在软件开发过程中,估算起着非常重要的作用。通过估算可以保证软件项目在规定的时间内完成,也可以确保软件项目的成本未超出预算。
3、软件项目开发人员的管理。软件开发项目开发核心要素是人,包括管理人员及技术人员。人员的科学管理是软件项目开发质量的保障,科学的人员管理,可以提高工作效率,提高软件开发质量,节约开发成本,因此软件开发公司现在都很重视项目团队的建设。
总之,项目管理在软件开发过程中应用,提高了软件开发质量,并且取得一定成绩,解决了软件开发过程中出现的问题,为软件开发作出很大贡献。
参 考 文 献
中图分类号:G642 文献标识码:A
1 机电专业课程设计的重要性
机电一体化技术不是机械技术与电子技术的简单叠加,而是二者的有机结合。一直以来由于在基础课与专业课教学中缺乏机电知识综合运用能力的培养和训练,学生在学习了机械设计、机械制造和电子技术、微机原理与应用等基础课程以及数控技术、机电一体化技术等专业课之后,仍然不能很好地将机、电的知识融会贯通,不能很好地将所学知识运用于实际生活生产中的机电一体化系统的综合设计,遇到这类问题常常无从下手,存在不少困难。
机电专业课程设计是一个重要的实践性教学环节,一般安排在控制原理、数控技术、机电一体化技术等专业课学习之后。要求学生能够综合运用所学过的机械、电子、计算机和自动控制等方面的知识,独立进行一次机电结合的设计训练,主要目的是:①②
(1) 承上启下。在学习完相关专业课和即将进行毕业设计之前,初步建立“系统设计”的思想,以及相关能力的培养,为毕业设计奠定基础。
(2) 结合生产生活中的机电产品,学习机电系统总体设计方案的拟定、分析与比较的方法,进一步提高学生对本专业重要性的认识。
(3) 通过对机械系统的设计,掌握几种典型传动机构、导向机构及执行机构的工作原理、设计计算方法与选用原则。如齿轮/同步齿型带减速装置、蜗杆副、滚珠丝杠螺母副、直线滚动导轨副等以及相应机构的消间隙方法及装置。
(4) 通过对进给伺服系统的设计,掌握常用伺服电动机的工作原理、设计选择方法与控制驱动方式。如步进电机、交流伺服电机、直流伺服电机等。
(5) 通过对控制系统的设计,掌握一些典型硬件电路的设计方法和控制软件的设计思路。如控制系统选用原则、CPU选择、存储器扩展、I/O接口扩展、A/D与D/A转换配置、键盘与显示电路设计等,以及控制系统的管理软件、伺服电动机的控制软件设计思路等。
(6) 通过对机床夹具的设计,充分了解夹具在保证加工精度和提高生产率方面的重要性,掌握典型夹具的工作原理、设计计算和定位分析与选用原则。如数控钻床工作台设计、数控铣床工作台设计、箱体端盖钻锪孔钻模设计及动态仿真、车床拨叉两个25孔钻模设计及动态仿真等。
(7) 通过对机电产品零件生产工艺设计,掌握一些典型零件的加工工艺规程设计的内容及步骤,工艺路线拟定的方法和步骤。如CA6140型车床主轴箱箱体工艺路线设计、轴类零件数控仿形加工、型腔零件数控仿形加工等。
(8) 培养学生独立分析问题和解决问题的能力。
(9) 锻炼提高学生阅读应用手册和标准、查阅文献资料以及撰写科技论文的能力。
2 提高机电专业课程设计质量的方法
2.1 选题
选题是决定专业课程设计质量的关键。题目的内容应该围绕机电一体化技术,难度和工作量要适中,既不要太难太大,拿到题目后使学生无从下手;又不要太易,照葫芦画瓢即可以完成。而应该使同学们能够在3~4周的时间中综合应用所学过的课程知识,同时查阅相关工具书及文献资料,通过总体方案论证、设计计算、选型、三维绘图及装配,论文撰写,最终完成题目的内容。近几年我院对机电专业课程设计的题目逐步进行规范,机电专业课程设计的对象主要结合生产生活中的机电产品(系统),分为机电产品生产工艺设计、机电产品制造夹具设计、机电系统进给伺服系统设计等三个主要方向。通过课程设计完成可以使学生有一定的成就感,进一步提高对本专业的学习兴趣。设计的机电产品主要有(下转第190页)(上接第169页)CNC机床、工业机器人、三坐标测量机、自动雕刻机、全自动洗衣机、果蔬自动烘干机等。
2.2 质量控制
2.2.1 规范课程设计过程
整个课程设计包括:确定题目及任务书、学生选题及进行课程设计、成绩评价。其中任务书包括:题目,主要完成内容及具体工作量(说明书字数及设计图纸大小、数量)。课程设计的时间一般为3~4周,指导教师根据具体题目进一步安排学生详细的进度安排,并督促学生按期完成进度任务。具体执行时为保证质量主要采取以下措施:
* 一人一题;同一题目不同参数可以扩展至两题;
* 必须有设计图纸(装配图和(或)零件图,或工艺流程图、工序卡);
* 提高、规范机械制图能力,图纸严格按机械制图标准、规范执行。其中,装配图要求:结构、投影关系、剖面、标题栏格式、配合、总尺寸、技术要求、线条、字体、字号、标准件标注及国标等;零件图要求:结构、投影关系、剖面、标题栏格式、尺寸、公差、粗糙度、材料、热处理等以及技术要求、线条、字体、字号等;
* 认真撰写设计说明书。设计说明书要求清楚地叙述整个设计过程和详细的设计内容。内容一般不少于10000字符,要求条理清晰、图文并茂、符合国标。
2.2.2 规范成绩评价赋分标准
成绩评价应能充分反映课程设计的全过程,目前我们制定的专业课程设计赋分标准如表1所示。
从表1可以看出,成绩评定既包括学生的主观态度,又包括其完成的具体内容情况。
课程设计结束后,教研室根据指导人数,每名教师抽取所指导学生的20%比例,由全体指导教师组成小组,对设计内容、结果、教师给分等进行集体评议,以使课程设计成绩评定更加合理。
通过规范课程设计选题、规范课程设计过程、规范课程设计成绩评定,使我院的专业课程设计质量明显提高,为同学们后续的毕业设计奠定了良好的基础。
本论文是在参阅了国内外大量资料和UPS最新发展技术的基础上进行的国内中型功率UPS开发和研制的一次有益的尝试和探索,从各个功能实现的局部
电路到整个系统对本系统的工作原理做了较详细的分析,整个系统经试验调试,各项性能指标和功能均达到了预期的目标和要求。
关键词:UPS 数字信号处理器智能功率模块数字化控制 SPWM
Intelligent on-line U P S system
Abstract
Uninterruptible power supplies (UPS) play a key role in infecting critical loads, such as computers, commendation system, and medical system. They can provide reliable and pure power supply for loads neither power good or not. Among the various UPS topologies on-line UPS provides the most protection to such loads against any utility power supply. However, the old on-line UPS includes many power Parts and analogy controllers, it has been one of the most complex and expensive type of system. Therefore, the study of high quality and reliability full digital UPS (Uninterruptible Power Supply), which fits the development of modem science and technology has become an attentive problem.
This Paper described the middle/high-power (5kVA) on-line UPS, Which was based on 8096 control chip, which is a kind of 8096 of TI Company. For 8096 controller is high CPU bandwidth and peripherals specifically chosen for control application, we integrate PWM controllers, assonated circuits and microprocessor chip for digital control into one 8096 controller, which can lower system cost and increase integration. The whole UPS is controlled by full digital method including the generation of SVPWM wave, the tracking output of frequency &Phase, and the PID control arithmetic etc.
The research is an instructive attempt and exploration of the middle/high-Power full digital on-line UPS development, based on references to a lot of information and the latest technology on UPS. The system has achieved the anticipative targets and requirement through testing and debugging.
Keywords: UPS IPM Full Digital Control SPWM
目 录
第一章 绪论 3
1.1 脉宽调制技术产生 3
1.2 UPS发展概况 3
1.3微机数字化PWM波控制方法 5
第二章 脉宽调制技术原理 7
2.1 几种新型PWM控制技术 7
2.2 周期补偿无差拍PWM控制算法 11
2.2.4旁路环流控制 20
第三章 硬件电路 23
3.1 CPU系统 23
3.2硬件设计 26
3.3键盘显示 29
3.4主电路的设计 32
第四章MOSFET驱动及控制电路 34
4.1 MOSFET驱动电路 34
4.2 过压过流保护 35
第五章 PWM控制器、参数监测控制器控制软件设计 37
5.1程序 37
5.2 参数检测控制器控制软件设计 39
参 考 文 献 52
致 谢 53
第一章 绪论
1.1 脉宽调制技术产生
脉宽调制技术起源甚早,随着工业生产的需求和科学技术的发展,80年代后,它被广泛应用于工业功率控制装置的逆变器中,从此获得迅速发展。它的特点是以微处理器和电子半导体元件为核心,横跨电力。电子。微型计算机及自动化控制等多种学科领域。
将固定直流电压变换成固定的或可调的交流电压的装置称为逆变器。逆变器采用了脉宽调制技术后,不仅有效地改善和提高了品质性能,同时根据需要,它还能将直流电压变换成电压和频率均可调的交流电压,因此它又是一种逆变器式变频器,并称这类逆变器为脉宽调制型变频器。因它具有输入功率因数高和输出波形好的可贵特点,近年来发展很快,其技术关键之一是采用了PWM方法。自80年代以来,各国科技人员开发了多种PWM方法。
近年来,脉宽调制型变频器主要用在两类工业功率控制装置中,一是用于调速传动装置中,尤其广泛用于交流调速系统中。采用了脉宽调制技术控制逆变器后,使交流拖动系统实现了高调速比的平滑无机调速,出现了交流调速系统与直流调速系统相媲美,相抗衡的时代,出现了前者取代后者的趋势。二是用于精密功率电源中,特别是用于在不间断电源中。采用脉宽调制技术控制逆变器后,为精密仪器计算机系统等提供了 一种高可靠性的稳频,稳压和正弦波输出的无瞬间停电电源。在电网停电时,它依靠装置内进行直——交流变换,继续向负载提供电能,不停电时间取决于装置内的电池和负载功率。
1.2 UPS发展概况
随着科学技术发展,计算机以及各种精密自动化电子设备被广泛地应用于办公自动化数据处理与通讯,气象航天,国防军事,精密测试,显示记录装置以及工业自动化控制等领域。在办公自动化以及工业生产各个行业中,单片微机系统和微型计算机控制网络系统已逐渐取代旧式数据统计,造表及继电接触系统,形成现代化管理网络或全自动化控制网络促使国民经济向更高层次发展。
中图分类号:文献标识码:A文章编号:1007-9416(2010)05-0000-00
1引言
从20世纪70年代以来,以数控机床为代表的现代基础机械已成为制造工业最重要的技术特征,数控机床水平的高低和机床数控化率的高低已成为衡量国家工业化水平高低的重要标志。数控系统是数控机床的大脑,是计算机技术在机械制造领域的一种典型应用,它集计算机技术、测量技术、现代机械制造技术、微电子技术、自动控制技术、信息处理技术等多项技术于一体,是近年来应用领域中发展十分迅速的一项高新技术。
随着电子技术的飞速发展,数控系统逐渐朝嵌入式方向发展。嵌入式系统是近年发展最快的技术之一,它是以应用为中心,以计算机技术为基础、软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。本论文主要对嵌入式数控系统进行研究设计,以期从中找到可行的嵌入式数控系统控制方法,并以此和广大同行分享。
2嵌入式数控系统总体结构设计
系统由几个不同功能的模块组成,模块间通过并行I/O、高速串行协议或其他方法相互联系。主要包括人机交互装置、嵌入式数控操作和管理模块、嵌入式运动控制模块和I/O及伺服控制器等。
嵌入式数控操作和管理模块通过I/O与人机交互装置相连,并通过串口与运动控制模块连接,运动控制模块通过I/O模块与伺服控制器和机床各开关量相连。
(l) 人机交互装置。包括一个LCD显示器、一个键盘和其他一些按钮,完成人机交互任务,例如NC代码的输入/编辑显示、手动操作以及一些机床状态显示等。
(2) 嵌入式数控操作和管理模块。是数控系统的核心模块之一,负责全部的人机交互处理,各种机床参数的设置,NC代码的编辑、编译、存储和传输,系统监控与故障诊断,移动U盘的控制及网络通信等。
(3) 嵌入式数控运动控制模块。机床逻辑运动控制的核心,利用逻辑运算能力,负责送料机运行轨迹的计算、插补、反向间隙补偿、信号采集、主轴及开关量控制等实时性强的运算和控制。
(4) I/O模块与伺服控制器。FO模块的主要任务是不同电平的转换、隔离及功率放大等。包括3.3V到5V转换、3.3V到24V的转换、采用光电祸合器隔离防止干扰以及增大驱动功率等。另外还包括单路信号转换成差分信号及差分信号转换成单路信号电路。伺服控制器的作用在于接受来自上位控制装置的指令信号,驱动被控对象跟随指令脉冲运动,并保证动作的快速和准确。
3嵌入式数控系统的设计与实现
3.1 硬件设计
本论文所设计的嵌入式数控系统硬件系统结构构成原理图如下图所示:
(1)ARM微处理器模块。ARM处理器是系统的控制核心,负责运行数控系统控制软件。本系统选用SAMSUNG公司的S3C44B0X处理器。本模块还包括时钟电路、复位电路和实时时钟RTC(Real Time Counter)电路。
(2)存储器模块。存储器是嵌入式系统中的重要组成部分,它用于存储程序和数据。本系统的存储器包括EPROM、SDRAM、SRAM和NAND-Flash,其中,EPROM用于存储系统程序;SDRAM用于存储系统运行时的程序与数据;SRAM用于存储突然掉电时的重要实时数据;NAND-Flash用于存储用户的数控加工程序。
(3)电源模块。新型的CPU和FPGA的内核电压一般都是2.5V或以下的,I/O电压一般都是3.3V。所选择的开关电源可以提供5V,±12V,24V电源,其中±12V用于主轴模拟信号模块电路,24V用于光电隔离电路,因此,需要使用低压差线性稳压器产生3.3V和2.5V的电压,供CPU、FPGA和CPLD使用。为了保证微处理器稳定而可靠地运行,还需要配置电压监控电路。
(4)人机交互模块。人机交互模块包括键盘及指示灯模块和液晶显示模块。键盘及指示灯模块负责键盘的扫描并读取键值,同时负责LED的显示控制。液晶显示模块实现数控系统用户界面。
(5)通信接口模块。通信接口模块包括JTAG接口、RS-232串行接口和USB接口。JTAG接口与PC通讯,实现系统运行程序的仿真调试;RS-232串行接口与PC通讯,实现NC文件的上传与下载;USB接口实现对U盘NC文件的读写。
(6)D/A转换模块。D/A转换模块负责产生变频器所需要的模拟信号,由隔离器件、D/A转换器和集成运算放大器组成。
(7)CPLD/FPGA模块。CPLD模块包括CPLD、FPGA、CPLD对FPGA的配置电路。CPLD主要是用来对SRAM工艺的FPGA进行配置和加密,同时扩展数控系统的通用I/O口;FPGA主要负责精插补,产生轴运动所需的脉冲信号以及处理编码器返回信号,同时负责处理手轮输入和开关量的输入输出。
(8)输入输出模块。本系统的输入/输出信号是通过FPGA和CPLD的逻辑控制来实现,以提高系统的工作可靠性和设计柔性。对于输出的脉冲信号和输入的编码器信号采用差分输出输入的方式,这样不仅提高脉冲传输的抗干扰能力,也增加了信号传输距离;而对于I/O信号则采用光电隔离的方法,进一步提高了系统的抗干扰性和可靠性。
3.2 软件设计
该系统采用嵌入式μClinux 操作系统作为嵌入式数控系统软件平台,其源代码开放、内核小,非常适合运行在嵌入式微处理器上,并且μClinux操作系统也支持TCP/ IP 协议,具有强大的网络功能,同时该操作系统也支持多任务并发运行,可以采用多任务编程方法。这样,数控系统的每个功能可以作为一个独立的任务来实现,这大大地增强了系统软件的可靠性、稳定性,也便于以后的维护和升级,同时也提供了图形用户接口(GUI),结合键盘、LCD 液晶显示和触摸屏模块为用户提供友好的人机交互界面。
(1) 调度任务的划分。
软件平台设计中,采用嵌入式实时操作系统μClinux对系统多任务进行调度及管理。基于实时多任务操作系统的应用程序中,实时性取决于对任务及中断的处理。用户根据需要调用μClinux的任务调度函数,调度函数从就绪任务中寻找优先级最高的任务,并进行任务切换操作。μClinux把任务分为各不相同的优先级(唯一),已经准备就绪的高优先级的任务可以剥夺正在运行的低优先级对CPU的使用权,所以正确的任务划分及优先级分配可以充分体现嵌入式实时操作系统任务调度算法的效率,从而提高整个系统的实时性能。μClinux可以支持64个任务,最多支持56个用户任务,其余8个是系统任务。按照任务划分原则,结合数控系统的具体要求,把应用软件分成以下几类任务:
① 数控系统基本功能实现任务:包括刀具的转换、位置的测量、工件的插补运算及补充运算、加工工艺设置等等,该级别的优先级最高。
② 保护功能任务:主要是报警功能。要求尽可能快的完成。
③ 人机交互功能:键盘响应、显示器显示等。优先级最低。
(2) 软件功能设计。
由于该嵌入式数控系统采用uClinux 操作系统管理系统的资源,相对于传统的单片机,更类似一台微型计算机系统,具有更强的性能和不同于传统单片机的软件设计方法,其软件结构包括加载程序、uClinux内核、系统调用接口和应用程序。
加载程序负责在加电后对微处理器进行必要的硬件设置,初始化内存,并把uClinux 内核映像从Flash 中复制到内存,把控制权交给内核,使内核运行,最终使应用程序运行。uClinux内核作为应用程序控制系统硬件的接口,提供应用程序对硬件的间接访问,在具体设计中,对微处理器中内置A/D 转换器的操作、对键盘的操作以及对LCD的操作由在uClinux下编写的设备驱动程序完成,这些驱动被编译进uClinux 的内核。
系统任务的实现由两个不同的进程实现:加工程序和网络服务程序,分别用来完成数控系统的工件加工、计算的功能及网络服务的功能。
4结语
数控系统作为现化制造业的核心技术,是衡量一个国家制造业水平的重要标志之一,受到各国的普遍重视,特别是发达国家。自20世纪80年代以来,国际上的数控技术和市场基本上被日本、德国和美国等少数公司所垄断。考虑到我国机床数控系统当前的具体情况,研制一款拥有自主知识产权的嵌入式机床控制系统,对于提高我国中高档数控系统的技术水平具有十分重要的意义。本文从嵌入式数控系统硬件平台和软件平台的总体结构及其功能设计的角度对嵌入式数控系统进行了详细的设计研究,对于我国嵌入式数控系统的开发与应用,是一次有益的尝试与探索,是值得推广和借鉴的。
参考文献
[1] 田泽.嵌入式系统设计开发与应用[M].北京:北京航空航天大学出版社,2005.
[2] 石宏,蔡光启,史家顺.开放式数控系统的现状与发展[J].机械制造,2005,43(6):18-21.
中图分类号: TD614 文献标志码 A
Abstract
With the rapid development of the power electronics, micro-electronics and control theory, SRM(Switched Reluctance Motor) control system has a quick development,moving from theory to industrial applications. In the field of lifting equipment, AC and DC motors are widely used. However these two motors have some weakness in high manufacturing costs, low efficiency, and there is still no proper solution.With its high efficiency, stable and reliable, overload capacity and other characteristics, SRD system will be used in lifting equipment to make up for the deficiencies.
At first,this paper describes the working principle of SRM,and analyze the control strategy of electric, brake, and speed control ,which is based on the basic equation and the linear model of the motor. Then a simulation system of SRM based on the actual motor flux data is established in Matlab / Simulink environment to simulate heavy motor starting, brake operation and speed regulate based on fuzzy PID controller etc.
1研究背景和意义
升降设备的应用非常广泛,已经使用于家电制造、食品加工、饮料生产、烟草输送、化工生产、邮政、机械电子制造、仓储物流、建筑等自动化生产行业和旅游观光、高楼大厦、私人住宅、大型舞台等人类的生活娱乐方面。80%的升降设备采用电机调速系统作为设备的动力系统。目前升降设备中应用的调速系统主要有交流电机调速系统和直流电机调速系统,见图1-1。
图1-1升降设备调速系统
交流调速系统主要包括交流双速系统、交流调压调速(ACVV)系统和变压变频(VVVF)系统。这种调速系统的优点是:控制电路简单,元器件少,工艺简单,成本低;同时,在任何转速下转差功率保持不变,效率很高。该调速系统的缺点是:乘坐人员舒适感较差,速度较低,故障率较高。
直流调速系统主要包括有刷电机调速和永磁直流无刷电机调速等。有刷电动机转速与转矩、电流的关系是线性的,电机的机械特性是直线,因此该电机广泛地应用于大范围平滑调速的设备中。目前,在超高速电梯中,直流电机仍占相比例。但是直流电机调速系统也具有以下缺点:
(a)有刷直流电机通常结构复杂,这会导致调速系统成本增加,故障增多。
(b)机械换向器限制了电机的容量、电压和速度,同时还容易产生火花。
(c)电枢在转子上,这降低电机效率,恶化电机散热情况。
开关磁阻电动机调速系统的电动机结构紧凑牢固,适合于高速运行,并且驱动电路简单成本低、性能可靠,在宽广的转速范围内效率都比较高,而且可以方便地实现四象限控制。这些特点使SRD开关磁阻电动机驱动系统很适合升降设备的各种工况下运行,是升降设备中极具有潜力的机种。开关磁阻电动机调速系统的特点主要表现在以下几个方面:
1)起动电流小;
2)运行效率高;
3)系统安全可靠p寿命长;
4)过载能力强;
5)系统性价比高。
2 开关磁阻电机的软件设计
该系统采用STM32F103系列处理器作为主控制器,该处理器是ST公司推出的基于Cortex-M3内核的高性能处理器。该系列处理器最高工作频率可达72MHZ,并具有1.25Mips/MHZ的运算能力,满足开关磁阻电机在高速运行时实时计算的要求,处理器自带512K字节的闪存处理器和最大64K字节的SRAM,满足该系统的软件设计要求。同时该系列处理器集成了一些专门的外设,如用于检测电机位置信号三相霍尔传感器和正交编码器接口、用于电机控制的脉宽调制模块PWM、12位高速A/D转换器、通讯模块(SPI、UART、CAN)、通用I/O引脚等。处理器采用3.3V电源供电,且I/O与5V的TTL电平兼容;片上自带JTAG仿真器调试接口,允许在系统设计过程中随时进行调试,并可对软件进行实时调试。多种适合电机控制的专业外设大大缩短了开发周期。
该系统软件主要采用C语言编程,实现模块化设计,增加了程序的可读性和移植性。该系统控制软件主要完成以下功能:
电机起动无死区,启动转矩足够大;能实现提升阶段的电动运行和下降阶段的制动运行。
实时、精确地计算电机转速,通过模糊PID调节器,调节PWM波形的占空比,实现电压斩波控制,控制电机转速平稳。
提升阶段电机起动时采用双相启动方式,中速运行时采用PWM控制,并能实现这两种控制状态之间的平滑过渡。下降阶段电机转速到达设定转速时开始启动制动
具有一定的保护功能,当电机运行时出现过流和堵转等故障情况时,及时的做出相应保护动作,保护电动机和控制电路。
开关磁阻电机控制器最核心的任务是控制电机换相,在额定转速时,电机转子每转过一个周期仅仅需要5ms左右的时间,也即每900us的时间位置信号就会发生一次变化。控制逻辑为了能够及时控制电机换相,至少每900us就要产生一次中断。如果软件使用实时操作系统,操作系统本身需要占用一定的存储资源和一定的运行时间,容易造成对中断的响应不及时,从而造成电机控制偏差。此外电机控制器人机接口简洁,系统任务量少但实时性要求高,不能够发挥出实时操作系统多任务调度和管理的优势。因此,在本文中采用前后台系统作为软件的主要框架,主程序完成系统的初始化并进入循环等待,各个中断完成电机的换相以及速度调节等功能。
系统初始化主要完成:STM32中所用模块的初始化,包括时钟管理、中断管理器的配置、通用输入输出GPIO、定时器模块、A/D转换模块和脉宽调制模块PWM。系统状态自检是通过分别给上开关管和下开关管短时间通电,根据相电流来判断是否存在有开关管烧毁的情况,如果存在电流过大的情况,则有开关管已经短路,程序给出报警信号并退出运行。
如果所有开关管均正常,没有出现短路现象,主程序打开系统时钟中断,扫描键盘输入。如果键盘没有输入或者输入停止命令,则循环等待键盘输入;如果键盘输入提升或者下降命令,则初始化运行时参数,并且打开控制电机转动的中断。电机启动以后,主程序不断循环扫描键盘命令,如果接收到停机命令,则关闭所有驱动信号,并且关闭控制电机转动的中断,等待下一次电机启动命令。主程序流程图如图2-1所示。
图2-1 主程序流程图
3模糊PID建模及仿真
模糊控制器输出KP、KI、KD的变化量ΔKP、ΔKI、ΔKD,将ΔKP、ΔKI、ΔKD量化后与PID调节器的初始参数相加做为新的PID调节器参数,从而构成模糊PID调节器。在Matlab中,使用simulink工具对模糊PID进行建模和仿真,如图3-19所示。设定参数与系统反馈值相减得到当前系统的误差,误差和误差变化率通过一个限幅器以后输入模糊控制器,模糊控制输出PID调节器的参数变化量ΔKP、ΔKI、ΔKD,该参数变化量与PID调节的器的原始参数相加获得新的PID调节器参数,PID调节器根据新的参数输出对应的控制参数,被控系统在新的控制参数下运行,最终得到新的反馈。
可以发现,相对于PID调节器,模糊PID调节器具有调节时间快,调节过程平稳等优点,能够有效的抑制系统超调和振荡等问题。
4小结
本文在开关磁阻电机线性模型的基础上,使用matlab建立了开关磁阻电机的仿真模型。首先阐述了基本仿真模型各个子模块的功能和组成,然后利用各个子模块搭建了开关磁阻电机调速系统的电动和制动模型,在此模型的基础上,对电动状态最优开通角度和最大力矩启动进行了分析和仿真,对制动原理进行了验证,为开关磁阻电机控制器的实现提供了理论验证。针对升降设备调速系统转速的要求以及传统的PID调节的固有问题,本章分析了模糊自适应PID控制的原理,详述了其在该系统中的具体实现,最后给出了仿真效果。
参考文献
[1]刘明,住宅电梯变频调速系统的研究[D],[硕士学位论文],湖北,华中科技大学,2007
[2]陆锐, 基于ARM的开关磁阻电机驱动系统设计[D],[硕士学位论文],江苏,江苏科技大学,2008
[3]米芳芳,开关磁阻电机调速控制系统的研究[D],[硕士学位论文],黑龙江,哈尔滨工程大学,2008
[3]Kashima S The Present Condition and the Future of EV,Sharing in Japan,IEEE Vellicle Electronics Conference,2001,(9):149
[4]王宏华,开关型磁阻电动机调速控制技术,北京:机械工业出版社,1999:1-20
中图分类号:TP311.52
软件在装备系统的研发过程中起着至关重要的作用,软件产品的质量已逐步成为军队信息化建设的核心,软件质量关系到武器装备系统的生命,关系到军队信息化建设的整体水平,一旦软件失效,就可能导致整套装备系统的失效,甚至导致战争的失败。目前,软件在研发过程中存在诸多问题,导致软件的质量和可靠性远不如人意,特别是与硬件的可靠性相比,软件的可靠性一般要低一个数量级[1]。
1 软件开发中存在的问题
(1)装备系统研发软硬件管理不均衡,过分强调硬件。武器装备的研发是一个非常复杂的系统工程,涉及到技术和管理的方方面面,而且其各个因素又是相互关联和制约,不均衡的过分强调某几个方面都是不科学的。而现状是系统的研发过分强调硬件的重要性,软件只是被当做硬件的一个附件来对待,未作为产品列入装备系统计划和技术配套表。
(2)总体单位不抓配套单位分系统软件的质量,监控力度不够。在软件产品的开发中不遵循软件工程的要求,而且武器装备系统的总体单位只抓本单位开发的软件质量,对配套单位分系统软件的开发过程监控不力,对配套单位交付给总体单位的软件普遍不进行软件验收测试和软件验收评审。
(3)软件设计文档的编制不规范,不符合国军标要求。编制时缺少文档化的过程描述,尤其是缺少工作文档、风险管理文档和工作量统计文档,而且文档编制水平和质量参差不齐。特别严重的是大多数单位的文档是在软件编程完成后补写的,失去了以文档指导软件实现的作用。
(4)高层管理者对软件管理不够重视,软件配置管理不到位。管理要从高层做起,但是多数高层却忽略了管理的重要性,有的软件开发组未设配置管理员,有的单位对配置管理的概念(如对基线标识和配置控制等)模糊,对软件开发库、受控库的设置与管理不当,致使软件在出厂前基本不受控。
(5)对软件测试的概念和方法认识模糊,缺乏对过程和产品进行测试。软件开发测试人员和质量控制人员之间缺乏对对方工作的基本认知,双方难以沟通,阻碍了研发工作的顺利开展。部分单位对第三方测试存有疑虑:担心泄密,难以保护知识产权,或担心经费不足和增加工作量延误工程进度。
上述问题是装备研发中普遍存在的现象,亟待改进。国内外的经验说明,为了解决上述问题,最根本的一条是必须“树立软件产品的观念”和“用软件工程方法组织软件开发”[2],并按照软件工程方法的基本原则不断改进软件开发过程。现在国内比较常用的控制软件质量的方法是质量管理体系法,而国外比较流行的是运用CMMI(Capability Maturity Model Integration,即能力成熟度模型集成)来控制软件的质量。
2 软件质量控制的常用方法及缺陷
2.1 军用软件研制质量控制的一般做法及缺陷
我国一直采用质量管理体系中全面质量管理的原则来控制军用软件的质量。按照全面质量管理的观点,“产品质量是设计、生产出来的”,关注软件开发、研制的过程,通过强调过程模式,将组织内所有的工作定义为一个个明确的过程来进行质量保证和评估,使影响软件产品质量的因素在产品形成的全过程中始终处于受控状态,以此来提高其使用的可靠性、安全性,突出的把持续改进的过程作为提高质量管理体系水平的重要手段。
目前,军用软件研制质量控制的整套模型源于GJB9001B-2009,该国军标适用面广,可面向于硬件、软件、流程性材料和服务四大产品[3],主要强调的是硬件产品的质量控制,对军用软件的适用性稍弱,没有针对软件产品及其研发的特点展开说明,尤其是在型号的不断改进,装备状态的多次更改之后,对军用软件的配置管理等方面的更高层次的问题,缺乏行之有效的解决方法,在实施该标准时无法引起高层领导的重视,没有对质量提出更高的要求,忽略了该标准反复强调的“质量管理必须坚持持续进行质量改进”,导致研制单位无法拥有一套适用的质量管理体系。
2.2 国外软件研制质量控制的一般做法及缺陷
CMM(Capability Maturity Model for Software,即软件能力成熟度模型)是对组织软件过程能力的描述[4]。CMM 中最为核心的思想是:只有好的过程才能造就好的结果。它侧重于软件开发过程的管理及软件工程能力的改进与评估,是一种高效的管理标准,有助于最大程度地降低成本,提高产品的质量和用户满意度。CMMI是CMM模型的最新版本,它把软件开发视为一个过程,并根据这一原则对软件的研发和维护进行过程监管,以使其更加科学化、规范化。CMMI项目为军工界和政府部门提供了一个集成的产品集,其主要目的是消除不同模型之间的不一致和重复性,降低基于模型的改善成本。CMMI将以更加系统和一致的框架来指导组织改善软件过程,提高软件产品的研发、获取和维护能力。
CMMI是目前国际上最流行、最实用的一种软件质量控制模型,强调各个方面的均衡发展,注重基于模型的、循序渐进的过程改进,可以帮助软件企业有效地管理软件过程,但是CMMI也存在缺陷,CMMI本身是国外的体系,是基于法治的体系,而我国强调的是人治的氛围,这种文化性问题是CMMI能否适用于我军的关键;实施该体系时单位对于软件研发人员缺少必要的有关质量管理方面的培训,导致软件研制人员与质量管理人员难以沟通,阻碍了研发工作的进度;CMMI只强调关键过程域,无法保证软件产品能被成功的研制出来。
3 基于质量管理体系和CMMI的气象水文软件质量控制方法
3.1 质量管理体系与CMMI的共同性
质量管理体系与CMMI面向的都是组织和软件产品的质量问题,都是以现代质量管理理念为基础,充分体现了质量管理、质量保证、全面质量控制、全面质量检验等思想。它们都非常关注产品的质量,都以相同的质量原理为基础,都强调通过良好的过程来保证产品的质量,都在强调外部沟通的同时强调内部沟通,都以组织的领导者和管理者作为最关键的成功条件,都采用PCDA方法,都重视规范化、活动规程和必要的文档与记录。
3.2 质量管理体系与CMMI的差异性
作为质量管理的标准性文件,CMMI与GJB 9001B是有着明显的差别的。GJB 9001B是一个适用于各类产品的通用型标准,主要是针对制造业制定的,而CMMI是专门针对软件开发设计的,可以帮助软件企业有效地管理软件过程;GJB 9001B强调完整的组织体系,可以用来建立符合ISO9000管理的组织管理,而CMMI本身对管理体系没有明确要求,默认组织体系是有效的、健全的;GJB 9001B评估的目的是要认证组织是否建立了有效的质量管理体系,为此给出比较简明、科学、原则性的要求,评估出结论合格与否,而CMMI则用于评估组织的软件能力的改善,确定采购风险,或找出软件过程的强项和弱项,明确改进途径,为此给出良好软件过程的详细描述和能力提高的简明科学途径。
3.3 基于质量管理体系和CMMI的气象水文软件质量控制模型的建立
GJB 9001B鼓励在建立、实施质量管理体系以及改进其有效性时采用过程方法,通过满足顾客要求,增强顾客满意,而CMMI的本质是通过对软件研制过程中关键过程域的精确定义,来使软件研制从一个不确定的“黑箱”操作过程,变成一个各步骤可视的、可对偏差随时控制的“透明”操作过程。根据质量管理体系和CMMI的相关理念和技术要求设计出适用于气象水文软件的质量控制模型。
质量控制是一个循序渐进的过程,该模型将质量控制归纳成七个阶段:(1)明确准备目标、项目范围和资源需求,依据CMMI的相关标准对软件的现状进行评估,定义相应的目标和指导原则,为下一阶段准备好相应的评估资料;(2)根据客户的要求和技术指标制定软件的开发流程,该阶段表达了组织层上下同心、拟定目标和愿望的状态,这是对将来有一个共同思考的过程;(3)在新的开发流程下引入GJB 9001B质量管理体系的相关要求,对组织当前的状态进行判决,及时向组织传达发现的情况和问题,并根据GJB 9001B的要求,确定需要进一步改进的方向;(4)根据上述要求拟定软件管理流程,确定关键业务主题、各团队的角色和职责、需要进行的活动以及改进进度安排;(5)在此流程的基础上导入成熟的开发和管理理论及方法,并根据客户的要求建立相应的规则、度量方法、模板,作为改进和实施的基础;(6)按层次和相关要求编写各层次文件,根据国军标的要求编写相应的工作文档、风险管理文档以及工作量统计文档;(7)依据软件运行的实际情况改进流程,在这个过程中组织的所有人员确定需要改进的目标,分析现有的工作步骤、客户需求和存在的问题,给出改进方案,验证并更新实施流程,在提高技能、绩效的同时,也提高软件的质量。质量控制是一个总结、再学习和提高的过程,通过不断的改进建立下一轮工作的更高目标,制定组织进一步工作的计划,只有通过这种反复的评估改进才能不断提高软件质量。
4 结束语
在信息化高速发展的今天,要高质量、高效率地开发出复杂的大型软件系统已不再是单个质量控制方法所能完成的任务,只有通过融合多种方法的优点推出一种新的质量控制模型,才能保证气象水文软件产品的质量和可靠性。本模型旨在GJB 9001B的基础上结合CMMI的理念和技术要求,把GJB 9001B作为CMMI的保障,而把CMMI作为GJB 9001B的“使能器”,两者相互促进,全面提升气象水文软件的质量及服务能力,进而提高武器装备软件的质量。
参考文献:
[1]仍然.从国际软件质量标准论我国软件产业质量保证体系[J].情报学报,1999(18):49-451.
[2]Watts S.Humphrey.Managing the Software Process[J].Addison Wesley,2002(19):58-63.
[3]GJB 9001B-2009,质量管理体系要求[S].
Discussion on the SVN-based team cooperation mode of software engineering teaching practice in college
Sui Xin
Henan University of Science and Technology, Luoyang, 471003, China
Abstract: Based on the study on revision control and team cooperation, this paper introduces a new SVN-based team cooperation mode of software engineering in college and presents an example to show the validity of the mode.
Key words: team cooperation; revision control; software engineering; SVN
高校普遍认为,软件工程学是研究将计算机科学理论和技术以及工程管理原则和方法进行综合,在用户需求、生产预算和开发进度约束下进行软件产品开发、部署和维护工程的一个学科。由此可以看出,软件工程学对综合性和实践性要求很高。但是,笔者通过对相关教学改革论文研究分析后发现,现有高校中软件工程课程由于指导思想僵化落后、认识不足、经验缺乏等原因,仍存在如下一些问题:(1)重理论而轻实践,软件工程方面的教材着重介绍多种软件开发模式、管理技术等抽象过程,学生无法真正领会理解。所授理论与实际应用的脱节则进一步影响了学生对软件工程的掌握。(2)重个人开发而轻团队协作。高校学生软件开发能力参差不齐,在进行团队分组时往往由少数能力较强的学生担任项目负责人,容易形成该学生对项目全权负责而其他学生袖手旁观、放弃参与的情况,团队设置形同虚设。(3)团队协作层次不够深入,团队成员之间的沟通仅仅停留在口头交流过程中,对于软件设计、开发维护等方面的意见无法渗入到软件研发的实际过程中。
上述问题的出现,导致团队协作机制的欠缺,开发进度缓慢,版本更迭错误,成员开发冲突等问题不断涌现,甚至逐渐恶化成为影响项目进展的主要矛盾,软件质量与课程实践的效果均大打折扣。解决上述问题行之有效的办法是引入版本控制、团队协作等相关技术。
1 版本控制及SVN技术
1.1 版本控制技术简介
版本控制(Revision Control)是一种在软件工程中使用的软件文档、源代码同步控制技术,用于多人同时参与开发的过程,确保不同成员的开发能够协调统一。在国外,已经有多所大学尝试将版本控制技术引入软件工程教学中,例如:加拿大Ontario大学计算机科学系的Karen L. Reid等人利用版本控制管理学生作业,美国Montana大学计算机科学与技术系的Louis Glassy在教学中应用版本控制工具后发现该工具可以有效地控制学生作业的进度,印度Rose-Hulman技术学院计算机科学与软件工程系的Curtis Clifton等人使用版本控制工具改善课程管理,等等。
在实际使用中,版本控制工具会按照递增顺序自动给提交至版本仓库中的软件代码修订编号(如最初加入的版本号指定为1),软件开发人员可以将当前工作目录回溯到版本仓库中的任何一个状态。为达到存储效率和空间利用率的平衡,版本控制软件大部分采用里程碑节点结合差分编码方式进行存储,即只将版本仓库中的某几个大版本记录完整版本,作为里程碑节点,而同时记录每个版本存储文件与前一版本之间的差异部分,以更方便地对比不同版本之间的差异。
现在常用的版本控制软件按照版本仓库存储方式的不同可以划分为集中式和分布式两种:集中式版本控制系统由中央服务器控制版本库维护与控制,每个成员只在本地目录中保存一个工作副本,需要升级、查看或获取其他版本的数据时需同中央服务器通讯。集中式版本控制系统的代表是CVS(Concurrent Version System)和SVN(Subversion)。分布式版本控制系统没有中央仓库,每个成员都在本地维护自己的版本库,向版本库中提交代码时无需连接远程服务器,团队成员之间通过推送或拉取动作使版本库的数据同步。分布式版本控制系统的代表是Mercurial和Git。
集中式版本控制系统因具有客户端软件支持度高、学习曲线平滑、授权控制方便等优点,尤其适合于高校环境下的小团队使用。笔者首先简要介绍SVN的技术特点,以便进一步探索高校环境下利用该技术的软件开发团队协作模式。
1.2 SVN简介
SVN是一款可以从互联网上免费下载的开源软件。SVN项目由Open Source Development with CVS的作者Karl Gogel开发,他与Jim Blandy改进了CVS的工作模式使其功能更为强大。
SVN借鉴了数据库事务管理的概念管理用户向版本仓库提交代码的过程―即代码提交过程要么完整提交,要么失败并回滚,整个过程为原子式提交―保证了每个成员查看项目仓库时总是看到相同且完整的代码版本。Subversion采用C/S分层结构设计,可以使用SvnServer+Apache的方式实现基于路径的安全网络访问,用户借助SVN方便灵活的授权方式能够在广域网上有效管理对软件仓库的访问与更改。
随着SVN技术的不断推广与深入应用,支持该技术的第三方工具愈发成熟完备。例如:TortoiseSVN是SVN在Windows系统下最常用的开源客户端,功能强大、界面友好且随SVN同步更新。各IDE环境中都有成熟的SVN插件,如Eclipse中的Subeclipse和Visual Studio中的AnkhSVN等都实现了与IDE的无缝结合,提供了许多基于IDE环境的新功能,使程序员能够在开发中更便利地使用SVN技术进行团队沟通与版本控制。
2 基于SVN的高校团队协作模式
2.1 高校团队SVN交互模式
图1给出了适用于高校团队SVN的交互模式图。以由3个成员组成的团队为例,首先由管理员(成员1)负责建立中央版本仓库(Repository)存储开发技术文档与软件代码,在接下来的开发过程中则由组内3个成员通过互联网或局域网访问软件仓库,并借助“检出”(Checkout)、“更新”(Update)、“提交”(Commit)等操作实现组内各成员之间软件开发进度的协调与统一。
图1 高校团队基于SVN的交互模式
2.2 SVN使用场景简介
2.2.1 版本仓库的建立与工程项目导入
以Windows环境为例,管理员可以使用SVN自带的命令行工具建立软件仓库,并向该仓库中导入名为SvnTest软件项目的初始版本,建立和导入的代码如下:
svnadmin create d:\svnrepos\SvnTest
svn import c:\SvnTest file:///d:/svnrepos/SvnTest
上述命令会首先在d:\svnrepos\SvnTest位置“建立”(Create)名为SvnTest的软件库,接下来会将位于c:\SvnTest的软件项目初始“导入”(Import)该软件库中。这里file:///d:/svnrepos/SvnTest为版本库的本地URL路径,如使用网络访问方式则类似http://hostname/path形式。初始导入后版本仓库中的代码处于初始版本状态,版本号为1。
2.2.2 初始检出
在建立并导入程序初始版本后,小组内各成员(包括导入了初始版本的管理员)需要在本地目录进行代码的初始“检出”,此时将生成软件在本地的工作副本(Working Copy),每位成员都将在本地工作副本进行代码开发、修改等工作。初始检出操作的命令行操作为:
svn checkout file:///d:/svnrepos/SvnTest d:\my Projects\SvnDemo
上述命令行会将版本库中SvnTest工程导入到本地的d:\my Projects\SvnDemo中,生成相应的工作副本。
2.2.3 软件修改的提交与更新
当小组成员检出代码并独立对工程文件进行了增加、删除和修改之后,需要将本地代码的变化“提交”至中央软件仓库,所执行的提交命令为:
svn commit d:\my Projects\SvnDemo
在未发生冲突的情况下,该命令将SvnDemo中本地工作副本的变化提交至软件仓库。其他成员在使用更新后的文件时注意到这一变化并自动更改其本地工作副本,进而确保不同成员工作副本的一致性:
svn update e:\my programs\SvnTest
上述两个命令意使用了不同的路径(d:\my Projects\SvnDemo与e:\my programs\SvnTest)以显示不同成员在保存本地工作副本时路径的不同。
2.2.4 冲突的发现与解决
当不同小组成员对同一文件的同一部分代码进行了不同修改时,成员在提交代码时会出现本地文件副本与代码库不一致的情况,即出现了“代码冲突”(Conflict):假定成员2先提交了对某段代码的更改,软件仓库中的代码与成员2的工作副本一致;但当成员3要求提交同一部分代码时,SVN会告知成员3因检测到冲突而无法提交,此时则需要这两名成员在线下进行协商,最终以某一成员的代码为准修正软件仓库。
在实际工作中,SVN组织建议每位小组成员在进行日常开发时尽量遵循“更新―修改―冲突与解决―提交”的循环工作流程,以便能够尽早发现成员之间的冲突,并保证各成员本地工作副本与软件仓库的协调统一。另外,SVN中除上述操作外还包括了权限分配、“比较”(Diff)、“回滚”(Revert)、“分支”(Branch)、“合并”(Merge)等操作,限于篇幅所限这里不再赘述。
3 基于SVN的课程实践
本文从软件工程的课程实践出发,要求学生自行分组完成大学本科生课程管理系统的开发。在给出了该软件的项目初始需求后,要求各组学生按照组内成员的特长分工,独立完成对项目的详细需求分析、整体软件架构设计、用户交互界面设计、功能模块细分及开发等各个阶段的工作,并将技术文档管理、软件Bug追踪等要求贯彻开发的全部过程。在开始项目之前,专门设置两个学时向学生讲授版本控制及SVN技术,并要求各组学生必须以其在学院公共服务器上建立的版本仓库为基础才能进行软件开发。这样,在课程实践结束后,授课教师除检查所提交软件代码和技术文档外,能够追溯软件仓库中的版本迭代、日志记录等情况,作为评定学生课程作业优劣的重要标准。
经过一个学期的实验发现,使用SVN技术后,学生在项目调研、成员分工合作方面有了较大的提升,软件开发进度与质量都得到了很好的保障:因使用版本跟踪、时间戳比对等办法可以追溯软件开发的全过程及各成员的分工情况,能够更为深入和全面地了解各组的实际开发过程,及早发现学生在编写、协作方面遇到的问题,甚至能够避免学生间代码抄袭等现象。
4 结束语
笔者将版本控制与团队协作技术引入软件工程课程实践环节中,初步探讨了结合SVN技术的高校团队协作模式,并用课程实践验证了该模式的有效性,计划在今后的教学中进一步研究使用该技术的协作模式与评价方法。需要指出的是,软件开发是当今技术发展最快速的领域之一,新技术、新模式不断涌现,高校教师有责任紧跟形势,将当前最成熟、有效的技术传授给学生,使其能够快速达到社会对于软件开发人员的需求,为我国软件业的发展贡献一份力量。
参考文献
[1] 易文龙,华晶,何火娇.SVN版本控制在软件工程专业实训的应用[J].农业网络信息,2010(9):39-41.
[2] 杨健,陈春玲,宗平.版本控制工具软件Subversion在课程设计中的应用[J].计算机教育,2008(4):117-121.
中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)35-0023-02
一、《交通信号控制》实验教学的现状与分析
随着交通信号控制系统的广泛应用,交通领域对于交通信号控制技术及相关学科人才需求日趋迫切,这也对高校交通工程专业人才培养方式及方法提出了新的挑战。目前,北京工业大学交通工程设置的与交通信号控制相关的课程主要包括交通电子技术、交通信号控制技术基础、交通管理与控制、智能交通系统,分别从电子技术、控制技术、管理与控制及控制系统等几个方面开展教学工作。由于该课程群的学科交叉特点,在教学中对于教学目标的定位、教学内容的设置、教学活动的组织等方面面临着多重挑战。特别是对于实践课程的设置方式和内容,更是教学实践的关键。目前,现有的交通信号控制实验教学系统主要分为两大类:第一类,是利用仿真软件,针对学生设计的控制策略进行仿真模拟以及评价。但此类实验系统,学生不能了解信号控制的执行主体——信号机的工作原理及操作过程,无法认识信号机的各项功能和参数,学生基本不会操作和使用信号机。第二类,通过搭建上位机控制软件实现与信号机的通讯,展现信号机的灯态运行效果以及信号机的简单操作。这种实验系统能够弥补前者的不足,但它不能实现控制策略与交通流的交互,学生无法理解整个信号控制系统的工作机能,无法实现对信号控制策略的认识和评价。目前,交通信号控制实验教学存在如下问题:
1.对于信号机的学习主要集中在理论层面。现有教学设备只注重信号机的展示性,而忽视了操作性。导致学生无法真正掌握实际信号机的各项功能及运行原理。
2.对于信号机控制策略的学习缺少交互。现有教学设备无法实现交通流与信号机中的控制策略进行交互,致使学生很难深刻理解交通量与控制策略的关系,也无法对控制策略的实施效果进行观察、分析以及对其有效性、准确性进行评价。
3.对于控制策略的学习停留在书本层面。现有教学设备对控制策略的教学过多重视理论学习而忽略实际操作。教学成果只停留在让学生会“算”而不会“用”的阶段。由此,亟须开发一套信号控制教学系统,使学生能够操作实际信号机,直观、全面、深入地了解信号机的运行原理、配时参数、基本功能等;同时可以学习各种控制策略,观察信号控制策略对交通流的影响及控制效果;此外系统可以对学生设计的控制策略实施有效性评估,从多角度给出评价结果,便于学生进行优化控制策略的学习。
二、《交通信号控制》教学实验系统的构建
《交通信号控制》教学实验系统的设计主要采用硬件在环技术实现,整个系统由三个实验模块构成:(1)信号机认知实习实验;(2)信号机控制策略有效性评价实验;(3)信号机控制策略优化实验。在系统设计层面包括3个子系统:(1)信号机控制策略在环仿真评价子系统;(2)信号机控制交互子系统;(3)开放式配时方案辅助优化子系统;各子系统又通过上位机控制软件协调和交互。其结构如图1所示。
实验系统的实现需要以下组件:上位机操控软件;VISSIM仿真软件;实际信号机;自行研发的车辆检测器仿真设备。通过四个组件之间的交互和协调,实现图1所示的3个子系统,并由3个子系统搭建整个实验系统。满足信号机相关工作的需求;同时,实现信号机的输出可以控制仿真软件中的信号灯设备。
三、《交通信号控制》实验系统的实施效果
为了使学生能够全面深刻地认识交通信号控制系统,我们设计了基础实验——信号机认识学习实验;综合实验——信号机控制策略有效性评价实验;创新实验——信号控制策略优化实验。
1.信号机认知学习实验。信号机认知学习实验能够完全模拟信号机内有关控制策略的全部功能,通过上位机软件或信号机操作界面实现对相序编写、固定和感应配时以及日配时方案的设置和查询功能;为了使学生能够更直观地观察信号机的运行状态以及路口灯态运行效果,上位机软件设计了状态监控功能。同时为了能够展现感应配时的控制效果,实验系统特地设置了模拟车辆到达的功能,产生车辆触发检测器的现象,从而驱使信号机执行感应配时。通过该实验学生能够学会操作真实信号机,了解其内部能够完成的功能和各项参数的含义;更加直观地认识配时方案的灯态运行效果;深刻地理解感应配时的运行原理。
2.信号机控制策略有效性评价实验。学生通过该实验能够搭建不同的交通环境,输入各时段车流量信息,设置车辆类型组成情况。学生针对特定的交通环境,可查询和设置信号机要执行的相序、固定和感应配时、日配时方案。所有参数设置完毕,系统将基于学生搭建的交通环境对选定的信号机内的控制策略进行同步仿真。VISSIM仿真软件的灯态将完全跟随信号机灯态的变化;同时VISSIM将产生的检测器信息通过车辆检测器仿真设备传送给信号机,影响其执行感应配时。仿真结束后,系统将从多个角度以图形的形式直观的展现对控制策略的评价结果。该实验能够实现控制策略与交通流的交互,学生能够直观地观察到信号控制对交通流的控制效果;深刻理解各种控制策略的运行原理和效果。学生通过构建交通仿真环境、设置交通流、选择信号机内控制策略的全过程,能深刻认识到不同交通环境、交通流与控制策略之间的互动关系。
3.信号控制策略优化实验。在学生能够完全操作信号机,了解信号机功能、参数以及控制策略的运行原理的基础上,系统设计了创新型实验——信号控制策略优化实验。实验过程中学生不仅能设计交通环境和设置交通流,还可将自行设计配时方案输入到系统中,实现其效果的评价和优化。另外,系统能够实现对SYNCHRO配时优化软件的优化结果进行调取。特别值得一提的是对于感应配时的教学过程,教学系统将感应配时的输入方式设计为逻辑过程,动态输入感应控制过程的中间变量,通过实验系统控制感应过程的实验流程,学生可以依托逻辑过程实现感应控制。同时,系统支持快速仿真方式,可以根据输出评价结果优化设计控制策略。通过该实验的学习,学生能够利用虚拟交通流来检验自己设计的控制策略的优缺点,可从交通信号配时工程师的角度,学习、理解信号控制策略的设计和优化的过程。
交通信号控制教学实验系统是对现有交通信号控制系统的实验教学的改革和创新。实现了学生与信号机、控制策略以及交通流之间的交互。从多角度、多层次使学生全面了解和认识交通信号控制系统。通过该实验系统,可使学生学会操作信号机,认识其各项功能和参数;深刻理解各种控制方式的运行和逻辑原理。对于交通信号控制的实践教学,真正实现了理论与实践相结合的效果。
参考文献:
[1]杨佩昆,吴兵.交通信号管理与控制[M].人民交通出版社.