[ZLG-ARM] 请问各位专家在ucOS任务中计算电量相对误差在上升?

[复制链接]
2260|1
 楼主| lw2008 发表于 2007-1-11 20:13 | 显示全部楼层 |阅读模式
请问各位专家在UC/OS任务中计算电量相对误差在上升?<br /><br />开了一个独立任务累计电量,有功功率在AD任务计算。<br />在标准电子台上与0.1级电能表比较,相对误差在5小时内由-0.5%升到+0.5%。<br />U,I,cos和时间都是常数,电能误差也应是个常数。<br /><br />void&nbsp;Task_Meter(void&nbsp;*pdata)&nbsp;//优先级比AD任务高<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;fp32&nbsp;fv1,fv2;<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata&nbsp;=&nbsp;pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;fv1&nbsp;=&nbsp;sDRtime.uiPower.fPW_P[0];&nbsp;&nbsp;//&nbsp;总有功<br />&nbsp;&nbsp;&nbsp;&nbsp;fv2&nbsp;=&nbsp;sDRtime.uiPower.fPW_Q[0];&nbsp;&nbsp;//&nbsp;总无功<br />&nbsp;&nbsp;&nbsp;&nbsp;assay_Energy&nbsp;&nbsp;(fv1,&nbsp;fv2,&nbsp;3600);&nbsp;&nbsp;//&nbsp;累加总有功/无功<br />&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(100);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;Task_AD(void&nbsp;*pdata)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;pdata&nbsp;=&nbsp;pdata;<br />&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;;)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AD_Task();&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;实时采样分析(采样,计量)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OSTimeDly(88);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />
veryfatman 发表于 2007-8-1 17:45 | 显示全部楼层

可能有其他任务影响

开始的时候,有其他优先级更高的任务,使Task_Meter执行变慢;后来没有这些任务了,Task_Meter就执行得快了。<br /><br />OSTimeDly并去精确延时,除非你的任务是最高优先级的;<br /><br />assay_Energy的执行时间不知道多长,如果它的执行时间不确定,就会导致循环的速度不确定,从而电量结果不确定。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

296

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部