励磁软件编程培训讲义精品课件.ppt

上传人(卖家):三亚风情 文档编号:3440345 上传时间:2022-08-31 格式:PPT 页数:41 大小:167.50KB
下载 相关 举报
励磁软件编程培训讲义精品课件.ppt_第1页
第1页 / 共41页
励磁软件编程培训讲义精品课件.ppt_第2页
第2页 / 共41页
励磁软件编程培训讲义精品课件.ppt_第3页
第3页 / 共41页
励磁软件编程培训讲义精品课件.ppt_第4页
第4页 / 共41页
励磁软件编程培训讲义精品课件.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

1、励磁软件编程培训讲义余翔内容l规划l逻辑l风格l高级语言与低级语言l细节l资源l错误规划l任何大型软件都是由模块构成的。l由主干到分支,由整体到细节,逐步细化。好处:明确软件如何实现,便于分工、实现以及后期维护。励磁控制主循环中断服务程序初始化主循环限制、保护通信录波控制空载过压V/F限制PT断线断路器过无功限制欠励限制强励限制功率柜退出振荡短路与本地监控通信与另一通道通信与集控室通信中断服务程序外部信号输入同步中断内部设置中断定时器中断测频原方同步断线检测副方同步断线检测启动控制脉冲付氏采样输出控制脉冲逻辑l软件能否正常实现其功能的基础l几个失败的例子RS232通信:PCV40无功过载限制R

2、S232通信:PCV40下发命令返回开始定时下发命令定时下发命令返回清除接收缓冲开始延时延时0.6秒清秒清除接收缓冲除接收缓冲有数据处理标志是否开始返回设置数据处理标志V40上传数据上传数据触发事件触发事件数据处理改进后下发命令返回清除接收缓冲开始开始返回数据处理定时下发命令定时下发命令V40上传数据上传数据触发事件触发事件过励限制l励磁系统强励的原因大部分是由发电机或与其相联系统发生短路故障,励磁系统为保证电力系统稳定和继电保护可靠动作自动强行励磁所致。设置这一限制的目的是防止励磁绕组较长时间过电流而过热。Ift(s)If0T1T0TxT2If1IfxIf2实现原理l设置热量积分Hsum。I

3、fIf0时,根据If大小计算热量积分步长,对Hsum进行累加。IfHmax则触发限制。原来的算法IfIf0HH1H2l步长取法:求出限制曲线各个节点对应的步长,然后根据If大小插值取得新步长。IfxHxIf2If1错误分析lH1T1=H2T2=Hmaxl步长:Hx=H1+(H2-H1)/(If2-If1)(Ifx-If1)l限制时间:Tx=T1+(T2-T1)/(If2-If1)(Ifx-If1)lHxTx=H1T1+Hmax+Hmax如果按照原来的算法,限制曲线仅在节点处准确,其余区域限制时间略小于限制要求。过励限制00.51.01.52.02.50204060tIf修改后l正确取法:根据I

4、f插值求取对应的限制时间,然后根据时间取步长。l步长与时间的关系:Step=Hmax/t编程风格l变量命名l函数命名l流程图l注释l模块化编程命名、注释l建议使用有意义的英语单词,如Cal_Alpha()/控制角计算函数Auto_Ex_Fail_Flag/起励失败标志每一个变量、函数声明时都需要对其功能、应用范围进行注释。l匈牙利命名法nOverExCount流程图l便于后期维护、原理分析以及合作开发l自用到模块级l新人接手则必须到具体的函数实现细节lRS232编程(16C550)问题:芯片说明书指出16C550可以使用FIFO接收指定长度数据。实际测试时DSP连续读出的都是第一个字符。后来没

5、有使用FIFO中断,每次只读一个字节。原因:16C550使用FIFO接收时读取间隔不小于4ms。而DSP主频30MHz,连续读取时间隔仅33ns。还是RS232编程l循环读写串口,只能实现单工通信。开始读串口写串口延时等待错误原因:连续读取导致芯片无法正常响应。模块化编程lC语言:字符缩进,先输入、,再输入模块内容。lVB:打开文件open语句后接着输入Close语句关闭文件,最后输入中间的处理部分。l汇编:象C语言一样对寄存器进行压栈保护,使各个函数模块化,调用时不必考虑保护寄存器内容。汇编语言的模块化编程l小的程序不需要l函数需要在入口对需要使用的寄存器进行压栈操作,在出口弹出。保证函数的

6、调用不会影响寄存器的内容(保存参数的寄存器可以例外)。l没有模块化编程的程序,改动一处程序,可能引起其他部分的异常。高级语言和低级语言l高级语言编程效率高、可读性好、移植性好l低级语言直接处理硬件资源,执行效率高在X86CPU上运行的几种语言lASM速度第一,可读性差,调试麻烦。lPL/M 不支持浮点,速度略高于C。可读性好。lC运行速度逊于汇编,可读性好,编程效率高,模块化编程。lBasic不能生成可执行文件,编译器边解释边执行,速度最慢。可读性好,了解低级语言有利于理解高级语言lC+示例a=1;y=0;if(a|y+)/与y无关的代码/此时y=0编译成汇编语言cmp ax,0jnz loo

7、pmov ax,yinc axmov y,ax jz looploop:实例:3阶矩阵乘法(C语言版)/*3阶矩阵乘法Result=A*B*输入:浮点矩阵*A,*B,*Result*输出:无*/Void MatrixMpy(float*A,float*B,float Result)函数体3阶矩阵乘法(DSPC32汇编版)*3阶矩阵乘法Result=A*B*输入:浮点矩阵A-ar0,B-ar1,Result-ar2*输出:无*MatrixMpypushr0pushfr0popfr0popr0rets函数体资源l技术支持l网上资源技术支持l面对新的硬件很难迅速提出可行的方案,甚至连硬件体系是否满足

8、要求都不知道。l硬件供货商的技术支持人员对硬件的了解程度远胜于己,可以提供相关解决方案甚至是核心代码。对于一些具体功能的实现也可以提供建设性意见。l硬件相关的开发环境通常带有丰富的库函数,没有可能也没有必要去全部了解。对于实现某种功能,还是咨询技术支持需要调用哪些函数为好。l硬件供货商可以修改部分函数源代码以满足客户要求。PCC励磁实现方案l关键:输出控制脉冲、交流采样能达公司准备了两个CPU模块,一个专门用于实现交流采样。l贝加莱公司的支持:控制脉冲输出部分的原理和代码交流采样的实现原理l其他硬件相关功能:参数固化CAN通信(PCC模块不支持1M波特率,CAN读写函数中的id属性含义不同)网

9、上资源l硬件供货商通常在自己的主页提供了大量示范程序、相关软件升级包。l对于某些常用功能网上通常也有相关代码和说明。CAN通信(Sja1000)定点开方浮点与定点lIP161定点CPU中定点乘除仅几个指令周期,而浮点乘除约几十个周期,浮点开方接近ms级。l浮点DSP可以直接使用浮点操作数。错误l所有软件都存在错误!l错误可分成两种:影响正常执行功能的错误;不影响功能,只对性能有一些影响。定点CPU中的浮点算法la=a*0.866la=(a1)+(a2)+(a3)-(a7)-(a10)即0.5+0.25+0.125-0.0078125-0.0009765625=0.8662109375相对误差:

10、0.0214%8660254.02/3排查错误l利用成熟的程序检验新的算法程序l错误定位断点跳过部分函数功能缺陷:达不到的给定值P.U.t1.0VtRef错误原因l浮点计算定点化dRef=V-RefdAlpha=(KvdRef)12Vav=Vav+(dRefKi)12Alphaav=Alphaav+(dAlphaKi)12Alpha=Alphaav+dAlpha错误分析l分析dRefKi、dAlphaKi小于212时,Vav和Alphaav不再变化。积分常数Ki小于212,导致稳态时VavV,此时虽然dAlpha 0,但Alphaav不再变化。改进措施l增大Kv或Ki以降低V与Ref的偏差,但对系统控制性能产生不利影响。l实际采用的措施当dRef小于5%时,直接按dRef增加AlphaavAlphaav=Alphaav+(KrefdRef)16谢谢!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(励磁软件编程培训讲义精品课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|