求大神帮助,如何用C语言编程计算有功功率,已知瞬时电压和瞬时电流值,在T时间内计算有功功率 5

 我来答
爱过的娜个女孩
2012-10-25
知道答主
回答量:42
采纳率:0%
帮助的人:25.5万
展开全部
啥叫有功功率?有功率是平均功率吗?是不是瞬时电压和电流是关于时间t的一个函数表达式?难道是要先积分然后再求平均值?对题意不是很理解啊,求楼主详加解释下
更多追问追答
追问
您说的是对的,瞬时电压和瞬时电流时关于t的表达式,是要先积分,在求平均。只是瞬时电压和瞬时电流的表达式不是已知的,只是通过C语言软件采集到瞬时电压和电流,进而按您说的计算。具体用C语言怎么实现?
追答
  • 呵呵,楼主太客气了,我还是个学生,你用这个"您"感觉怪不好意思的。我不知道你的那个c语言采集软件是怎么工作的,我猜想软件是不是每隔一段固定的时间△t(可能是几毫秒或者是几微秒)就采集一次数据,估计你的那个系统应该是个实时采集系统,不断的采集回数据然后求到目前为止的实时功率。我写了个程序,看能不能给你做个参考,它只是用来演示用的,你要结合你的实际情况改动,我不清楚你的目的呀。你作个参考吧


#include "stdlib.h"

#include "stdio.h"

// 这个函数的作用是计算瞬时功,instant是瞬时的意思,capacity有功的意思用金

// 山词霸查了下,不知道物理学中的功是不是这个英文单词,姑且就用它来表示吧

 

double GetInstantCapacity(double u, double i, double time) {

// w = u * i * t; 功=电压*电流*时间 这个公式大概没记错吧。假设单位都是

// 国际标准单位吧

double capacity = u * i * time; 

return capacity;

}

// 求平均功率的函数 time是瞬时时间,就是每隔一个周期采集数据的那个时间

double GetAvgPower(double instantCapacity, double time) {

double static sumCapacity = 0; // 静态变量用于保存总功

double static sumTime = 0; // 静态变量用于保存总的时间

double avgPower = 0; // 平均功率

// 新的总功 = 原来的总功+瞬时功

sumCapacity = sumCapacity + instantCapacity;

// 新的总时间 = 原来的总时间+瞬时时间

sumTime = sumTime + time; 

// 总功除以总时间=平均功率

avgPower = sumCapacity / sumTime; 

return avgPower;

}

void main() {

double u = 0, i = 0, time = 0; // 分别代表电压,电流,采集数据的周期

double instantCapacity = 0; // 瞬时功

double avgPower= 0; // 平均功率

// 这是一个死循环,可以二十四小时采集数据

while (1) {

//  在这里你可能有什么办法把实时采集回来的数据赋给三个变量,然后就

//  可以计算出瞬时功

    instantCapacity = GetInstantCapacity(u, i, time);

avgPower = (float)GetAvgPower(instantCapacity, time);

// 实时打印出平均功率

printf("平均功率是:%f\n", avgPower);

}

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式