公告通知   更多>>

学校新闻   更多>>
来校路线   更多>>
来校路线

基于ARM的直流系统接地故障检测应用程序设计

发布时间:2010-9-24 20:9:24 点击:
        
      凌晓莉
(安徽电气工程学校, 安徽合肥  230031)
 
    摘要:本文提出了基于S3C44B0X的直流系统接地故障检测装置的设计方案,并在此装置上实现了基于小波变换的检测方法,并重点阐述了应用程序的设计。
    关键词:直流系统 ;   嵌入式系统 ; 小波变换 ; 程序设计
 
 Applied Program Design of DC System Grounding Fault Detection Based on ARM
(Anhui  Electronic Engineering School, Hefei Anhui 230031, China)

    Abstract: In this paper, the design of DC system grounding fault detecting method based on S3C44B0X is introduced , and the detecting method based on  Wavelet Transform  is  realized by the device. The design of the application is expatiated in detail.  
    Keyword:DC system ;embedded system ; wavelet transform ;program design
 

    引言
    发电厂变电站的直流供电系统是控制和信号系统、继电保护及自动装置的工作电源,对保障电力系统安全运行是十分重要的,这就要求直流系统及其网络必须具有高可靠性。当直流系统发生一点接地时,应能及时找出和处理。目前,国内外基于单片机的绝缘监测装置大多是基于传统的平衡电桥法、低频信号注入法等方法研制的,但要解决直流系统大电容接地和环网影响等问题,则需要采用更为先进的处理方法,如基于小波变换的检测方法,而单片机有限的资源限制了这类方法的使用。
    本文既是通过基于ARM的嵌入式系统进行直流系统接地故障检测装置的设计,并在该装置中实现基于小波变换的检测方法解决直流系统大电容接地和环网影响等问题,并重点阐述了基于该系统的应用程序的设计。
    1 ARM微处理器S3C44B0X
    考虑到设计应用的需要,选用了Samsung 公司的S3C44B0X微处理器。 S3C44B0X是Samsung (三星)公司一款基于ARM7TDMI的SOC芯片。它一方面具有ARM处理器的所有优点:低功耗、高性能;同时又具有非常丰富的片上资源,非常适合嵌入式产品的开发。其特点如下:
   ·采用ARM7TDMI内核,I/O电压3.3V,内核电压2.5V;  
   ·内置锁相环(PLL),系统主频最高达66MHz;   
   ·4种工作模式,可以实现电源管理以降低系统功耗;   
   ·8KB的系统高速缓存(CACHE),极大地提高了系统运行速度;
   ·支持8个MEMORY BANK,最大外部存储空间达256MB,并支持SDRAM;  
   ·内置彩色LCD控制器;  
   .2路异步串口(UART);  
   .71个通用I/0口; 
   ·8通路模/数转换器(ADC);
   ·实时时钟(RTC)和看门狗电路(WATCHDOG)。
   2直流系统接地故障检测装置的总体结构
   如图1所示,可以看出该检测装置主要分为两个部分:S3C44B0X 主控单元及各种接口、信号采集及预处理单元。
    该装置将实现以下功能:
    (1) 通常情况:该装置处于在线监视状态,通过采集现场信号并依据相关算法判断直流系统是否存在一点接地;
    (2) 直流系统发生一点接地:当发现直流系统存在一点接地时,并启动低频信号源,向电网中注入低频信号;
    (3) 依次对低频电压和各个支路电流信号进行同步采样:通过直流系统每个支路上的电流互感器检测出每个支路的电流信号。由多路开关依次选通每个支路,将相关信号经调理后进行采样,同步进行低频电压信号的采样,然后依次按照特定的基于小波变换的控制算法对采样数据进行处理,从而确定故障支路,将结果显示在LCD或是远程终端上以便于用户查看并及时排除该接地故障。    
    3软件总体设计方案
    对于一个开放的嵌入式系统而言,其程序存储器中一定要有系统的初始化代码。初始化在系统复位后自动完成。在系统的初始化中,必须包含如下的初始化代码:设置入口指针、设置中断向量表、初始化堆栈指针寄存器、初始化存储器系统、初始化I/O端口以及需要改变处理器的工作模式、初始化应用程序存储空间。之后,呼叫并开始执行应用程序。
    μC/OS-Ⅱ是源码公开的实时嵌入式操作系统,其主要特点:公开源代码;可移植;可固化;可裁剪;是占先式实时内核;可管理多任务;执行时间可确定;提供很多系统服务;具有中断管理;稳定且可靠。但是,μC/OS-Ⅱ提供的仅仅是一个任务调度内核,需要在其基础上扩展成实用的RTOS。根据该装置的功能要求,系统软件中需要实现相应的用户任务:①监视;②报警;③启动低频信号源;④低频电压采样,并计算其幅值和初始相位;⑤选通各个支路并检测其电流信号,然后利用小波算法进行判断;⑥在LCD或远程终端上显示相关信息。其中任务⑤的具体流程如图2所示。
    相对于相敏检波、载波相位等传统的检测方法,上述基于小波变换的处理方法可以充分发挥小波分析优良的时频分析特性,有效的克服直流系统大电容接地环网等因素的影响,能够准确地计算出支路接地电阻值,从而判断出故障支路。由于8/16bit单片机有限的资源,无法实现这么复杂的算法,而ARM的高性能和高可靠性为这种算法提供了良好的硬件平台。扩展后的RTOS总体框图如图3所示。
    4应用程序设计
    根据以上的分析,设计应用程序运行流程图如4所示:
    1)直流系统正负母线对地接地绝缘监测
    系统初始化完成以后,进入任务一,如果发现存在接地故障,则等待键盘消息,以设定待检支路数,然后系统调用任务二;如果没有发生接地故障,则延时特定时间断后再次调用任务一。
    任务一的具体代码如下所示:
Void Insulation_Detecting(void *Id)
{
char  *Msg;
INT8U err;
float Insulating_resistance;//接地电阻值
Uart_Printf(“\n\n欢迎进入直流系统接地故障检测系统!\n”);
for(;;){//等待邮箱消息
Msg=(char*)OSMboxPend
(Mbox_Isolation_Detecting,0,&err);
voltage_sampling();//采样正负母线电压、桥电阻电压
Insulating_resistance=Resistor_Detecting();
//计算直流系统对地电阻
if(Insulating_resistance<20){
Uart_Printf(“\n 请输入待检测支路个数:.\n”);
//下面接受键盘输入,以确定待检测的支路总数
Number_Branch=Uart_GetIntNum();
Branch_Couter=Number_Branch;
OSMboxPost(Mbox_Sampling,Msg);//调用任务二
else {
 for(i=0;i<50;i++){Delay(6000);}//延时15分钟
OSMboxPost(Mbox_Insulation_Detecting,Msg);}
 }
    2)启动低频信号源,同步采样低频电压及当前支路电流
    当判定直流系统发生接地故障之后,调用任务二,首先确定支路号,然后同步采样正负母线低频电压信号和当前支路电流信号,当完成了相应采样之后,系统调用任务三。
    任务二的具体代码如下所示:
void Sampling(void *Id)
{ char *Msg;
INT8U err;
for(;;){ //等待邮箱消息
Msg=(char *)OSMboxPend(Mbox_Sampling,0,&err);
Branch_Counter-=1;//作为任务三的判断条件
Branch_Id=Number_Branch- Branch_Counter;
//当前支路号
//低频信号注入,低频电压、电流同步采样
Voltage_Current_Sampling(Branch_Id);
OSMboxPost(Mbox_Filtering_Extraction,Msg);
//调用任务三
}
}
    3 对采样数据进行滤波及低频提取处理,并计算接地电阻值
    当任务二完成相应的采样工作之后,系统调用任务三,任务二和任务三构成了一个循环,任务三主要对任务二采样所得的数据进行3次B样条滤波和Morlet小波低频分量提取等处理,并判断该支路故障与否,同时依据当前支路号判断是否已经检测了全部支路,如果直流系统中还存在没有检测的支路,则返回任务二开始新的采样,如果已经全部完成,则延时30分钟后返回任务一。
    任务三的具体代码如下所示:
 void Filtering_Extraction(void *Id)
{
 char *Msg;
 INT8U err;
float R_negative;
for(;;){   //等待邮箱消息
Msg=(char*)OSMboxPend(Mbox_Filtering_Extraction,0,&err);
Uart_Printf(“\n 请稍后……\n”);
FilteredSignal(); 
 //对原始信号采样数据进行3次B样条滤波
Morletextract();//进行Morlet 小波低频提取
//利用傅立叶算法计算正负母线低频电压和
//相应支路低频电流的幅值和初始相位
Amplitude_Phase_Restoring();
R_positive=Res_positive_calculating();
//计算该支路正极接地电阻值
R_negative=Res_negative_calculating();
 //计算该支路负极接地电阻值
if(R_positive<20)
Uart_Printf(“\n\n第%d条支路的正极接地\n\n”,Branch_Id);
if(R_negative<20)
Uart_Printf(“\n\n第%d条支路的负极接地\n\n”,Branch_Id);
if(Branch_Counter>0)  
//返回任务二,进行下一支路的采样
  OSMboxPost(Mbox_Sampling,Msg);
else
 {
for(i=0;i<300;i++){Delay(6000);}//延时30分钟,
//系统调用任务一,开始新一轮对地绝缘监测
OSMboxPost(Mbox_Insulation_Detecting,Msg);  
  }
}
 }
    4)主程序
 int Main( int argc,char **argv)
 {
Port_Init();  //端口初始化
Uart_Init(0,115200);//串口0的波特率设置
Uart_Select(0);
OSInit();  //分别为各个任务创建邮箱
Mbox_Insulation_Detecting=OSMboxCreate(PassMsg);
Mbox_Sampling=OSMboxCreat((void*)0);
Mbox_Filtering_Extraction= OSMboxCreat((void*)0);
//创建上述三个任务
OSTaskCreat(Insulation_Detecting,(void*)0,(OS_STK*)& Insulation_Detecting_stk[STACKSIZE-1],10);
OSTaskCreat(Sampling,(void*)0,(OS_STK*)& Sampling_stk[STACKSIZE*9-1],11);
OSTaskCreat(Filtering_Extraction,(void*)0,(OS_STK*)&Filtering_Extraction_stk[STACKSIZE*18-1],12);
OSStart();
return();
}
 
    5结语
    基于ARM微处理器进行相关的设计应用可以提高系统性能,并使系统小型化、低成本而且具有高可靠性。本文介绍的基于ARM的直流系统接地故障检测系统的应用程序设计,构建了一个完整的硬、软件平台,在实际应用中取得了很好的效果。
 
    参考文献
[1] 周巍巍,基于ARM的嵌入式系统及其在直流系统接地故障检测中的应用的研究 天津大学硕士学位论文,2005
[2] 李冬辉,任晓栋.基于复值小波变换的直流系统接地故障检测[J].中国电力,2003,36(11):12~14
[3] 李冬辉,周巍巍 基于ARM微处理器的直流系统接地故障检测装置的设计与实现.低压电器,2005,2:55~58
[4] Labrosse Jean J.μC/OS-II: 源码公开的实时嵌入式操作系统[M]. 邵贝贝译. 北京:北京航空航天大学出版社, 2003
[5] 马忠梅,马广云,徐英慧,等.ARM 微处理器结构与应用基础 [M] . 北京:北京航空航天大学出版社, 2002


Copyright (c) 2005-2010 All Right Reserved 安徽电气工程学校 版权所有

电话:0551-2320508 E-mail:ahdq2@163.com 安徽省合肥市长江西路539号 皖ICP备07007161号