在matlab中使用'quad'函数的错误 - 集成功率以获得能量

时间:2012-10-22 00:10:37

标签: matlab integrate integral quad

我正在计算电容器的电压和电流。现在我想确定能量。能量只是力量的组成部分,但我无法整合我的力量功能:

I_C=exp(-alpha*t).*(x5(1)*cos(omega_d*t)+x5(2)*sin(omega_d*t));
V_C=exp(-alpha*t).*(x6(1)*cos(omega_d*t)+x6(2)*sin(omega_d*t))+V_In; 
Pow_C=V_C.*I_C;
Pow_C_Function=@(t)Pow_C;
Energy_C=quad(Pow_C,0,tf)

我得到错误:integrand函数必须返回的输出向量 与输入向量相同的长度。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

您应该将I_C,V_C和Pow_C定义为函数(就像您为Pow_C_Function所做的那样)。目前它们只是变量。

答案 1 :(得分:1)

好吧,您已将I_CV_C定义为两个矩阵,而不是两个函数。修复很简单:

I_C   = @(t) exp(-alpha*t).*(x5(1)*cos(omega_d*t)+x5(2)*sin(omega_d*t));
V_C   = @(t) exp(-alpha*t).*(x6(1)*cos(omega_d*t)+x6(2)*sin(omega_d*t))+V_In; 
Energy_C = quad(@(t)V_C(t).*I_C(t), 0,tf);

此外,请查看quadgkquadl,或者如果您使用的是Matlab R2012a或更新版本integral