打印
[ZLG-ARM]

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

[复制链接]
1035|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lw2008|  楼主 | 2007-1-11 20:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问各位专家在UC/OS任务中计算电量相对误差在上升?

开了一个独立任务累计电量,有功功率在AD任务计算。
在标准电子台上与0.1级电能表比较,相对误差在5小时内由-0.5%升到+0.5%。
U,I,cos和时间都是常数,电能误差也应是个常数。

void Task_Meter(void *pdata) //优先级比AD任务高
{
    fp32 fv1,fv2;
    pdata = pdata;
    for (;;)
    {
    fv1 = sDRtime.uiPower.fPW_P[0];  // 总有功
    fv2 = sDRtime.uiPower.fPW_Q[0];  // 总无功
    assay_Energy  (fv1, fv2, 3600);  // 累加总有功/无功
    OSTimeDly(100);
    }
}

void Task_AD(void *pdata)
{
    pdata = pdata;
    for (;;)
    {
        AD_Task();    // 实时采样分析(采样,计量)
        OSTimeDly(88);
    }
}

相关帖子

沙发
veryfatman| | 2007-8-1 17:45 | 只看该作者

可能有其他任务影响

开始的时候,有其他优先级更高的任务,使Task_Meter执行变慢;后来没有这些任务了,Task_Meter就执行得快了。

OSTimeDly并去精确延时,除非你的任务是最高优先级的;

assay_Energy的执行时间不知道多长,如果它的执行时间不确定,就会导致循环的速度不确定,从而电量结果不确定。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

296

帖子

0

粉丝