电力系统二次交流回路绝缘监测装置.doc_第1页
电力系统二次交流回路绝缘监测装置.doc_第2页
电力系统二次交流回路绝缘监测装置.doc_第3页
电力系统二次交流回路绝缘监测装置.doc_第4页
电力系统二次交流回路绝缘监测装置.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电力系统交流二次回路绝缘监测装置(I)设计者情况比赛编号:_A11438_日期: 2002/10/07 首名设计者为联络代表人。姓名: 侯玉星(中文)Hou Yu Xing (英文)职业:硬件工程师姓名: 杨 宇(中文)Yang Yu (英文)职业:硕士研究生姓名: 郑 擘(中文)Zheng Bo (英文)职业:软件工程师姓名: 牛志刚(中文)Niu Zhi Gang(英文)职业:硕士生导师通讯地址:山西太原营西街18号 邮编:030009 电子邮箱:hou_电话传真8017推派单位名称:山西晋能集团、上海电力学院单位地址:山西太原营西街18号单位电话:8008 单位传真8017目录1 引言42 系统概述52.1 交流二次回路绝缘监测装置的工作原理:52.2 特点62.3 装置外观简介63 系统硬件结构103.1 主控模块-MCU103.2 电源与外部晶振103.3 信号产生电路113.4 电压,电流采集回路113.5 时钟芯片123.6 网络接口123.7 打印接口123.8 显示模块123.9 键盘电路133.10 液晶背光133.11 看门狗电路133.12 开入、开出电路133.13 抗干扰措施134 系统软件结构154.1 软件结构154.2 软件模块功能184.3 中断服务程序184.4 人机界面模块184.5 网络功能204.6 软件优化205 特殊算法说明225.1 傅氏算法225.2 求有功分量和电阻分量算法235.3 快速开方算法26电力系统交流二次回路绝缘监测装置侯玉星 杨 宇 郑 擘 牛志刚山西晋能集团、上海电力学院摘要:二次系统对保证电力生产安全及向用户提供高质量的电能起着极为重要的作用,但目前尚没有一种能在线监测交流二次回路是否存在多点接地的在线监测装置。本文研制的RSJ820交流二次回路绝缘监测装置能有效的防止交流二次回路发生多点接地,提高了电网的安全与稳定,填补了电网二次回路缺乏绝缘监测的空白。经过现场试运行,表明了RSJ820达到了设计目的,能满足实际运行需要。关键词:电力系统;二次回路;绝缘监测 1 引言电力系统的二次回路对保障电力系统的安全运行起着非常重要的作用。系统正常运行情况下,为了保证人身和设备的安全,电力作业现场安全规程规定电流互感器、电压互感器二次回路的一个电气连接必须有一个可靠的接地点。同时为了保证继电保护和自动装置的正确工作,一个电气连接的二次回路又只能存在一个接地点。但是,大型电厂和变电站电流和电压二次回路连接设备繁多,延伸范围广,常常由于人为的接线错误或一些不可避免的自然规律,如绝缘的老化等,出现在一个电气连接的二次回路中出现多点接地,而且系统的二次回路大部分在室外,绝缘损坏的几率大,多点接地导致保护的不正确动作,造成大面积停电事故的在系统屡屡发生。 目前电力系统缺少一种能在线监测二次交流电压回路中性线发生两点接地或各种差动电流回路发生两点接地的在线监测装置,在这种情况下,二次回路一旦发生两点接地,由于不能被及时发现,当一次接地系统发生接地故障时,短路电流就可能流过变电所地网,在二次两接地点间形成电位差,造成了保护装置的不正确动作,如图1所示。这类事故在历年来的电网安全事故通报上屡见不鲜,给系统造成严重的后果,导致电网出现大面积停电的恶性事故。该产品可解决电力系统中长期困扰人们的交流二次回路多点接地问题,能够及时发现交流二次回路的多点接地,避免了因交流二次多点接地造成的保护误动和拒动,提高了电网的安全运行,填补了交流二次回路缺乏绝缘监测装置的空白,有着广阔的市场前景。2 系统概述2.1 交流二次回路绝缘监测装置的工作原理:鉴于目前电网二次系统缺乏绝缘监测的现状,我们认为有必要在交流二次回路中安装绝缘监测装置。如图2所示,在原二次回路一点接地处使用互感器向回路中注入一个低压信号,定时巡检,如回路发生多点接地,就可检测到回路中有电流流过。在实际装置中,我们可以通过定时向被检测回路注入低压信号,然后测量注入信号的电压和回路中的电流大小,从而获得被测回路的绝缘电阻值。为了保证装置的接入,对原回路的工作不造成任何影响,在装置的接口处用两对继电器的常闭接点与装置并接,相当于正常运行中,装置并未接入原回路,只有在装置巡检期间,继电器J的常闭接点才打开,将该装置短时接入原交流回路中。装置的工作方式可由用户根据实际运行情况通过人机界面软件设定,用户可选择连续两次自动巡检的间隔时间、每次巡检的持续时间、接地电阻报警值、是否记录手动检测报告等工作方式。2.2 特点l 在国内首次将MOTOROLA公司16位MCU MC68HC912DG128A用于电力系统自动装置中,该芯片内配置有大容量的程序存储器、RAM和EEPROM,具有极强的数据处理、逻辑运算和信息存储能力。MCU工作在Single_Chip模式下,数据或地址总线不引出MCU,因此在稳定性、抗干扰性、可靠性等方面有良好的表现。l 免调试理念,整套装置中不设计任何硬件调整器件,所有的调整均通过软件来实现,在抗振动方面的性能突出,非常适合现场就地安装。l 全汉化的液晶显示、打印界面。l 6键操作,简洁方便。l 良好的图标化人机界面,操作极其简单方便,一般专业人员无需说明书即可正确操作装置。l 定值以汉字表格方式输出,非常适合定值整定部门和现场人员使用。 l 装置具有232串行接口和CAN现场总线接口,适合组网运行或独立连接打印机运行。l 软件可调液晶背光,对比度,延长液晶使用寿命。l 可按时间顺序存储最新的32次报告,并且报告及时钟掉电不丢失。l 具有比较完善的软件,硬件自检功能,能有效地检测出片内各存贮单元、片外的时钟芯片、AD采样电路等异常情况或软件异常时都能可靠发出告警信号。2.3 装置外观简介装置面板由液晶、按键、指示灯、复归按钮和电源开关组成,用来实现人机对话及指示装置的工作状态。面板布置如图3所示。图 3 装置面板布置图 山西省晋能集团有限公司运 行复归 RSJ820 交流电压电流二次回路绝缘监测及保安装置装置异常巡检指示接地信号电源 装置背板设计如图4所示,主要包括RS-232和CAN通讯插头、电源端子、开入开出端子以及CPU插件和电源插件。端子排 端子排2RS-2321CAN电源插件CPU插件图 4 装置背板示意图端子排1的说明如下表所示:序号功能1220V+23220V-4JKD5开入4-信号复归6开入37开入28开入19开入公共端10装置异常11接地信号12信号公共端 端子排1端子排1的说明如下表所示:序号123456789101112功能GN600(N310) 端子排2LCD的菜单是人机界面的主要组成部分,菜单使用全中文,菜单中列出了我们设计要实现的具体功能,如图5所示。一级菜单 二级菜单 三级菜单 运行主画面 手动检测 报告显示 显示检测报告 显示异常报告 打印检测报告 时钟调整 帮 助 关于图标 服务信息 版本信息 调试状态 采样测试 定值显示 定值修改 报告管理 密码管理 出口传动 背光调整 通讯地址图 5 菜单结构示意图3 系统硬件结构3.1 主控模块-MCU如图6所示,为RSJ820的交流二次绝缘监测装置硬件框图。交流二次回路绝缘监测装置主要由四部分组成:(1)电源;(2)输入、输出;(3)MCU单元;(4)测量部分和功率注图6 RSJ820交流二次绝缘监测装置硬件框图模拟量开入低通滤波MC912DG128AASCI 1CANSCI 2SPIIICPWMA口串口打印机外部看门狗12位AD备用硬时钟CAN通讯串行通讯人机界面键盘人机界面LCDK口I/O口AD光电隔离B口I/O口I/O口D/A转换放大输出发信、报警入部分。MCU部分采用的MOTOROLA 公司的16位单片机MC68HC912DG128A,内含128K FLASH,8K RAM。16位MCU是装置的核心,开发中充分利用MC68HC912DG128A集成度高、模块功能强的优点,装置的软件存放在片内大容量FLASH EEPROM,片内RAM存放实时数据、程序中变量等,E2PROM内存放定值。数据、地址总线不引出MCU,具有良好的抗干扰性能,而且A口、B口可用来扩展并行接口的设备,如LCD和D/A转换。IIC口驱动时钟芯片,时钟芯片带有后备电池,供CPU读取日期、时间。使用K口驱动键盘, SPI口外接12位AD转换,作为需要较高测量精度的备用AD,在RSJ820中没有使用。SCI可用来驱动通讯和打印,CAN口也适合于作通讯使用,通过通讯功能可实现远方对定值修改和对回路巡检,增强的定时器模块可用来产生能精确到微秒级的中断,PWM驱动LCD的背光,同时使用内部和外部两级看门狗确保装置正常运行。3.2 电源与外部晶振电源是整个装置提高抗干扰能力的关键模块,选用内阻抗小,输出电压平稳的优质电源,能极大的提高装置工作的可靠性。MCU单元使用正5伏供电,继电器使用24伏供电,AD部分使用独立电源,确保AD精度,减少由于电源干扰造成的AD误差。所有电源都进出线加装有磁珠,增强抗干扰能力。晶振使用高精度一体化晶体,确保软时钟和定时器的精度。3.3 信号产生电路交流二次回路绝缘监测装置中,需要产生一个信号从二次回路接地点G注入二次回路,通过监测回路电流的大小判断是否发生了多点接地。在装置中注入的信号采用了一个低压的正弦信号。图 7通过DA数模转换产生正弦波也是软件产生正弦波的一种常见方法。如图7,MCU通过数据接口和控制总线,按正弦波形输出相应的数据到DA转换,DA转换将输入的数据变换成对应的电平输出。如果需要输出的正弦波周期为T,幅值为U,DA转换使用8位DA 转换,MCU每个周期向DA转换送256个数据,则MCU送入DA的第个数据可用公式1计算出后取整得到。1 通过实验证明波形精度满足装置要求。波形的幅值调整可以通过调整送入DA转换中的数据来改变,波形的频率调整也可以通过送入DA转换数据的间隔来改变。幅频调整的范围基本满足装置要求,而且所有的幅频调整都可通过软件进行调整,方便了现场的使用。3.4 电压,电流采集回路 装置使用MC912DG128A的片内十位AD对电压电流的进行采样。上文提到的信号产生回路中所产生的低压的信号,在注入到被巡检回路中后,由装置中的电压互感器和电流互感器在不改动原回路的基础上进行间接测量,然后经过必要的低通滤波及放大回路,送入AD采样。3.5 时钟芯片 采用具有IIC接口的高精度时钟芯片PCF8583,有效的节省了MCU的口线资源。同时时钟芯片备有后备电池,在装置断电时,仍可正常工作。具体硬件如图8虚线框中所示:图 83.6 网络接口 装置提供RS232及CAN现场总线网络接口。分别使用MC912DG128A的SCI和MSCAN模块配以相应的外围电路构成。RS232及CAN总线都是在现场使用十分广泛的两种网络接口,其具有抗干扰能力强,传输速率快等优点。3.7 打印接口 装置具有在线打印功能,从后背板的RS232接口上连接串行打印机可打印定值单及检测报告。3.8 显示模块 装置采用全汉化、图标式显示界面,为现场运行人员提供了良好的人机界面。液晶背光软件可调,有利于延长液晶寿命。所有的信息均显示在前面板的大屏幕液晶(LCD)上,方便人机对话。3.9 键盘电路键盘采用常用的六键操作,方便简洁。使用DG128A提供的K口其中的6根口线,为确保可靠性,外部仍使用了上拉电阻,采用低电平触发方式。在MCU中屏蔽K口相应口线的中断标志,通过在主程序循环中检测相应的标志位,确认相应的键是否按下,然后跳转到相应的处理程序执行。3.10 液晶背光为满足不同场合的需求,同时增加液晶的寿命,交流二次回路绝缘检测装置中,液晶背光及对比度软件可调。在装置中使用PWM模块产生占空比可调的PWM波形,然后通过相应的整形和滤波电路,输出到液晶模块。通过软件改变PWM的占空比,从而实现液晶背光、对比度的调节。具体操作中可通过装置面板的按键,方便地调节液晶的对比度和背光亮度。3.11 看门狗电路交流二次回路绝缘检测装置中同时使用了外部看门狗电路和DG128A片内本身提供的看门狗,确保装置可靠运行,最大可能的避免装置发生死机现象。片内看门狗通过查询是否定时在确定的地址写入相应的数据,确保实时数据处理部分正常运行,否则程序重新跳转到复位向量处执行。片外看门狗通过查询相应输出端口是否有实时数据中断服务程序送出交替变化的电平,否则将MCU的RESET端口下拉至低电平,使复位整个系统。3.12 开入、开出电路交流二次回路绝缘检测装置的主要开入有信号复归开入,开出有信号和告警开出。所有的开入和开出都使用单独的I/O口线,保证了开入、开出的可靠性。为了提高装置的抗干扰能力,所有的开入和开出回路都设有光电隔离。具体硬件实现电路如图9所示。3.13 抗干扰措施目前在电子和电气设备中,电磁兼容性已成为设备投入市场和运行最基本的要求,不同的国家和地区都有其各自的标准。提高设备的电磁兼容性是保证设备正常运行和正确动作的基本条件,作为电力行业的自动装置,RSJ820通过电力设备仪表检测中心的抗干扰测试。(1) 提高系统电磁兼容性硬件方法提高系统的电磁兼容性可从硬件和软件的两方面着手解决:硬件方面我们主要采用了印刷电路版的布线、电源供电方案、接地的选择和可靠屏蔽等方法。1)器件的合理布局是印刷电路板布线的核心内容。在印刷电路版布线过程中首先处理重要单元和高频部分,振荡器是主要的射频干扰源,布线时尽可能将振荡器靠近MCU的输图 8入管脚。在振荡器周围形成地环,减少的电磁辐射。同时避免高频信号靠近振荡器。使用表贴元件,减小导体的表面积。使用多层印刷电路版工艺,能提供较多的电源点和接地点,还能大大降低电源的内阻抗。使用单片模式,避免数据总线和地址总线引出CPU。对模拟部分和数字部分进行隔离,避免模拟与数字互相串扰。2)合理、正确的接地方法是抗干扰的有效方法。为了有效抑制共模干扰,装置内部的零电位全部浮空,不与屏蔽地相连,并尽量提高屏蔽零电位与工作零电位之间的绝缘,当共模干扰侵入时,系统各点对屏蔽地电位一起浮动,而各个器件间的相互电位保持不变,能得到较好的效果。根据频率的高低对低频部分一点接地,高频部分多点接地,对数字地、模拟低分别一点接地。屏蔽和隔离也是防止电磁干扰的重要手段,对MCU板和电源板隔离,并在其间用金属板屏蔽,使用金属机箱都能有效提高装置整体的抗干扰能力。3)电源供电方面提高电磁兼容性可采用的方法主要有:单独供电的交流电源。交流电源进入装置前应首先经过低通滤波和隔离变压器,可吸收电网中的大部分毛刺。正负5V工作电源进入PCB前加装磁珠,每一个电源引入口线使用高频特性好、电感小的陶瓷去耦电容,它一方面能旁路该器件的高频噪音,另一方面能为本集成电路的蓄能电容,提供和吸收该集成电路开门和关门的瞬间充放电能量。地线和电源线要尽量加宽 ,以消除其电阻耦合。对于大功率器件可单独供电。可将电源部分安排在一个单独的PCB版上。4)MCU管脚中复位引脚和外部中断引脚是容易受干扰的部分,正常运行时通过上拉或下拉电阻将它们固定在需要的电平值。在系统初始化加电时,通过上拉或下拉电阻将输出或输入口线的电平固定在确定的电平值,防止装置误动。使用上拉或下拉电阻避免信号线浮空。避免易受干扰信号与大电流、快速瞬变信号平行布线。对所有进入印刷电路版的电源和信号全部进行滤波。5)模拟量的输入都经过模拟低通滤波,有效消除差模干扰。数字开入量都经过光电隔离措施。(2)提高系统电磁兼容性软件方法良好的硬件设计是抗干扰措施的第一道防线,但是在一些偶然因素下它仍可能侵入CPU,导致软件工作不正常,甚至误动,因此软件设计中的抗干扰措施同样重要。1)根据输入模拟量之间的规律对不良数据进行剔除。这种输入量的冗余还可检查数据采集系统的硬件损坏故障。2)对某一物理量同一点进行冗余采样,取其平均值来进行计算消弱不良数据对计算结果的影响。3)看门狗电路有MCU片内和MCU片外两级确保装置正常工作。如果程序不能定时刷新相应的存储器或定时交替输出高低电平,则复位系统。4)对于RAM中的重要数据采用冗余存储的方法来防止干扰对数据的破坏。对于重要数据同时在RAM中不同区域存放多个备份,使用数据前首先检查它们内容是否相同。如果发现错误可将不良数据剔除或通过备份的多块数据进行不良数据辨别。5)继电保护装置中定值一般存放EEPROM,如果因为干扰破坏了EEPROM中的数据,将对装置的正确动作构成了很大的威胁,为保证EEPROM中的数据不被破坏,可存放多个备份并对EEPROM中的数据是否被破坏做在线自检,发现问题立即闭锁出口并报警。4 系统软件结构4.1 软件结构在程序结构安排上,我们把采样计算、软时钟计数、正弦信号产生等对实时性要求较高的部分放在中断服务程序中来处理;而诸如按键处理、显示处理、打印服务等对实时性要求不高的部分放在主程序中来处理。定时器0中断设置为MCU中的最高级别的中断,定时向DA转换送入数据,发生正弦波,通过变压器向二次回路注入低压信号,其流程图如图10。定时器1中断,主要完成数据的采集、实时数据处理和判断接地电阻大小等任务,它的优先级仅低于定时器0中断,其流程图如图11。主程序的软件流程图如图12。装置一经通电或复位,首先进行全面的静态自检,如果自检出某一插件出错,则转向自检出错处理程序。静态自检通过后,进行初始化程序。初始化程序包括保护用存储器和I/O接口等的初始化。然后开中断,允许DA产生波形程序和AD采样功能程序以固定频率周期性的执行。 中断返回定时器0中断入口设置中断计数器送入DA波形数据图 10 正弦波产生流程图设置中断计数器数据窗内数据已满否计算接地电阻值报警,置新报告标志计数器增1启动下次AD采样接地电阻小于定值否定时器1中断入口中断返回图 11AD采样中断流程图YYNN图12 主程序流程图系统上电是否有新报告是否有复归开入置巡检标志巡检持续时间到否是否正在巡检清除巡检标志按键是否按下按键处理静态自检、初始化是否与硬时钟校对时间对时处理存储报告复归处理YYYYYN巡检间隔时间到否YYNNNNN液晶显示处理4.2 软件模块功能软件主要要完成了三部分的功能产生正弦信号、采集检测信号量、人机界面等。它们分别对应于定时器中断0、定时器中断1和主程序4.3 中断服务程序中断服务程序1中主要完成了二次回路信号的产生,这一功能主要通过定时器通道0定时向DA转换送入输入,再通过功率放大回路,向被测回路注入信号,定时器0通道在系统中具有最高级别的优先级,从而保证了信号的精度。中断服务程序2由定时器通道1产生,它主要完成了二次回路中电压和电流信号的采集和运算,它也是系统软时钟的时钟源。它定时启动和读取AD转换的结果,再通过相应的算法,求解接地电阻的大小。作为软时钟的时钟源,它利用定时器定时中断特性,在中断中利用累加器计时,一定时间后,防止计时误差过大,与硬时钟校时。4.4 人机界面模块本装置采用LCD汉字点阵式液晶显示器,6键操作,简洁方便。通过DG128A的B口的8条口线作为数据线和K口的部分口线作为控制线,驱动LED。显示部分的功能主要在主程序中完成。采用64X128点阵,可显示“8X8”字符8行,每行16个;或显示“16X16”汉字4行,每行8个汉字。在液晶显示器内部有显示RAM区,RAM中的每一位数对应LCD屏上的一个点的亮、灭状态:“1”表示亮,“0”表示暗。我们将要用来显示的字符或汉字的字模按顺序预存在一个以dat为后缀名的文件中(按数组存放),显示时通过查找取得对应的字模,送如显示缓冲区。为了提高查找的速度,我们在这个过程中使用了二分查找法。 键盘采用6键操作,通过DG128A的H口驱动,屏蔽H口的中断功能,通过在主程序中检测相应的标志位是否设置来判断键盘是否按下。键盘在单片机应用系统中是一个很关键的部件,它能实现向计算机输入数据、传送命令等功能,是人工干预计算机的主要手段。前面已经提到,在我们的装置面板上共设置了六个按键,分别是上、下、左、右、确认、取消。为此我们定义了六个枚举类型的变量,KUP、KDOWN、KLEFT、KRIGHT、KENTER、KCANCEL分别与六个按键一一对应,这六个变量的值是由于按键触发而由硬件电路产生的,我们称其为“键值”。此外,为了实际应用中对显示屏的刷新等的实现,我们定义了另外几个枚举类型的变量:KBAK、KFOR、KSTART、KRETURN。由于,它们的值是由软件来设置的,我们称其为“扩展键值”,简称为“扩展值”。如图13所示。键的闭合与否,反应在电压上就是呈现出高电平或低电平,如果高电平表示断开的话,那么低电平则表示闭合,所以通过电平的高低状态的检测,便可确认键按下与否。为了确保CPU对一次按键动作只确认一次按键,必须消除抖动的影响。在实际的应用中我们把按键当作外部RAM某一工作单元的位来对待,通过读片外RAM的方法,识别按键的工作状态。采用软件消抖的方法,以查询工作方式检测各按键的状态。当有且仅有一键按下时才予以识别,如有两个或多个键同时按下将不予以处理。定时扫描工作方式是利用单片机内部定时器产生定时中断,CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键并执行相应键功能程序。在单片机片内RAM中设置两个标志位,第1个为去除抖动标志位K1ST,第2个为已识别完按键的标志位K2CD。初始时将其均置为0,中断服务的时候,首先判断有无键闭合,如无键闭合,则K1ST、K2CD置0返回,如有键闭合,则检查K1ST标志。当K1ST=0时,表示还没有进行去除抖动的处理,此时置K1ST=1,并中断返回。因为中断返回后需经10ms才可能再次中断,相当于实现了10ms的延时效果,因而程序中不再需要延时处理。当K1ST=1时,说明已经完成了去除抖动的处理,这时查K2CD是否为1,如不为1,则置1并进行按键识别处理和执行相应按键的功能子程序,最后中断返回。如果为1,则说明此次按键已作过识别处理,只是还没释放按键而已,中断返回。当按键释放后,K1ST和K2CD将置为初始的0状态,为下次按键识别作好准备。键盘处理子程序框图 读取按键值是否有按键Inkey=键值结 束Y计 数Inkey=扩展值N图 13 4.5 网络功能交流二次回路绝缘监测装置提RS232和CAN2.0A/B供两种不同的网络接口,它们分别由DG128A的SCI和CAN口驱动,在实际中只需提供相应的协议,即可组网运行。4.6 软件优化在嵌入式系统中,实时性是一个核心问题,所以程序的执行速度是衡量一个嵌入式实时系统优劣的一项重要指标。在给定硬件条件下,影响软件运行运行速度首要问题是软件所使用的数据结构和算法,然而针对计算机语言和应用程序本身固有的一些特点对软件的性能改善也能起到很大的作用。在目前嵌入式系统中为了提高编程的效率和程序的可移植性、可读性,基本上都采用的C/C+内嵌汇编的编程方法。下文在基于当前编程普遍采用C/C+内嵌汇编的基础上,简要介绍本装置中采用的和将要采用的一些优化方法。(1)基本优化方法。程序调试完成后,生成实用代码时,关闭编译器调试信息选项,采用编译器优化选项,删除调试时用到的变量和函数,这是程序优化的基本步骤。在系统调试阶段为了便于调试,编译器生成代码不经过优化,甚至可能在代码中生成一些有关程序变量和语句的信息。这样的代码执行速度慢、代码长。在完成系统调试后,选择编译器中的优化选项生成代码,可使编译器在生成代码时自动对源代码进行一定程度的优化。(2)常用的一些优化方法。1)利用查表、排序等方法提高程序中分支跳转结构的效率。在目前常用的MCU中跳转是程序执行中很费时的一个部分,程序优化时应首先减少判断语句,其次也应对分支循环结构进行优化。对于结构比较有规律的switchcase或ifelse语句,可采用预先制作数组,在运行时直接从表中提取数据,避免了判断,对较大的分支结构可采取多级查表的方法。在跳转分支结构中,可采用排序的方法,将跳转频率较高的分支放在靠近入口的位置,减少判断次数。对for循环的改善,已知循环次数n后,最好将循环变量自减到0,不要将循环变量自增到n,因为在MC68HC912DG128A指令系统中,对循环变量自减后,可直接判断循环变量是否已为0,无需再进行比较操作。而将循环变量自增到n,每次除了将循环变量自增外,还需要将循环变量与n比较。对循环次数较多的for循环而言,使用自减的方法,可节省大量时间。2)函数和函数调用的优化高级语言中较多的使用到函数,程序中使用函数可提高程序的模块化、移植性和可读性,但函数调用牵扯到局部变量的分配单元、保留现场、参数传递、返回等环节,是一个比较占用时间的操作。利用宏定义或内联函数,通过编译器在函数调用处展开函数体来代替函数调用,占用了编译时间,虽然也扩大了代码长度,但对调用频繁、函数体较小的函数,使用这种方法可明显提高运行速度。函数调用时,减少函数间参数传递。函数参数的传递过程实际上就是在调用子程序时用实参对堆栈内的虚参进行初始化,在MC68HC912DG128A中,对栈内的变量操作属于变址寻址,较直接寻址费时,如果需要传递的参数较多的话,这一部分时间将是很费时的。建议函数间需要传递参数时,尽可能的使用全局变量或静态变量,也可以直接传送地址。(3)程序优化的一些其它方法。1)展开for循环,把较小的for循环展开,利用顺序执行的语句代替循环语句,减少了循环和判断的时间。在for循环足够小时,循环和判断的时间在整个循环中占的比重较大时,能很好的提高程序的执行时间,但应注意它可能使代码增长。2)利用移位代替乘除操作,在MC68HC912DG128A中移位与乘法的时间差别不是很大,但与除法的时间相差较大,对于2整数倍的除法用移位的方法代替,能节省一定的时间。但程序中2的整数倍除法较少。3)在一些实时性要求特别高的场合为了兼顾程序的结构化和效率,通常在C语言中内嵌汇编语言,对程序中频繁使用的代码可使用汇编语言编写。尽管目前一些嵌入式编译系统能在程序编译时进行大量的优化,但它还是与汇编语言生成的代码有一定差距。应该注意到,使用汇编语言将会降低程序的结构化和可读性。4)用关键字register定义寄存器类型变量,一般地讲,使用寄存器类型变量可减少代码长度和提高运行性能,寄存器变量无需在堆栈中分配空间,节省时间。程序优化与一个好的数据结构和软件算法相比,虽不能大幅度的提高实时系统的效率,但在一定的数据结构和算法的条件下,程序优化却是一个极其重要的方法。对一个优秀的实时系统而言,必须从诸多的方面提高系统的实时性。5 特殊算法说明5.1 傅氏算法傅氏算法是采用正弦和余弦两个正交函数作为样品函数,将正交样品函数与待分析的时变函数进行相应的积分变换,以求出与样品函数频率相同分量的实部和虚部系数,进而可以求出待分析的时变函数中该频率的谐波分量的模值和相位。其基本原理如下:假定被采样的模拟信号是一个周期性时间函数,根据傅氏级数的概念,可将此周期函数分解为不衰减的直流分量和各整次谐波分量。其表达式为:2 式中,为自然数,;分别为各次谐波正弦项和余弦项的振幅;为基波角频率。如果要从信号中求出次谐波分量正弦项和余弦项的振幅,根据三角函数的正交性可得到:3 4从而可得: 令,则可得到基波分量,即:5合并公式5中正、余弦项,可得到 :6 式中为基波分量有效值;为基波分量初相角。展开式4-6得到和同、之间的关系式:,所以可根据和求出有效值和相角:7 8傅氏算法具有滤波特性,欲从信号中求出某次谐波的幅值和相位,就可用与待求信号频率相同的正弦函数和余弦函数与待求信号相乘后,再在一个周期内做积分就可求出虚部分量系数和实部分量系数,然后用式7和8即可求出相应谐波幅值及相角。5.2 求有功分量和电阻分量算法图 14如图14所示的电路为交流二次回路绝缘监测装置中实际测量接地电阻的等效电路。电压和电流量通过AD转换数字化后,再使用傅氏算法直接计算出了电压的实部和虚部,间接计算出电流的实部和虚部。在求取待测电阻可使用公式9和10,其中 ,,910这样在已知和时,求解电阻Z还需要求解两个正切反函数和一个余弦函数,这将导致程序在一个中断周期中无法完成所有计算工作。如果我们首先利用式11求出视在功率,然后再利用公式12求解,这样在整个运算过程中避免了复杂的三角函数运算,只需进行3次乘法运算、一次加法和一次除法运算,减小了运算量,同时也提高运算精度。11125.3 快速开方算法求一个数的平方根是继电保护算法中常见的组成部分,但调用C语言本身提供的浮点库函数,不能满足实时性的要求,而且过高的精度对于保护而言也没有太大的意义。针对上述问题,并结合我们所使用的MCU的实际情况,找到了适合我们的解决方案,通过装置的实际运行检测,证明是切实可行的。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论