0

コンデンサの電圧と電流を計算しています。次に、エネルギーも決定したいと思います。エネルギーは電力の積分ですが、電力関数を統合することはできません:

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)

エラーが表示されます: The integrand function must return a output vector of the same length as the input vector.

誰でも助けることができますか?

4

2 に答える 2

1

I_C、V_C、およびPow_Cを関数として定義する必要があります(Pow_C_Functionに対して行ったように)。現在、それらは単なる変数です。

于 2012-10-22T02:05:47.340 に答える
1

さて、あなたは2つの関数ではなく、2つの行列I_Cであると定義しました。修正は簡単です: V_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);

また、quadgkまたはを参照しquadlてください。MatlabR2012a以降を使用している場合は、を参照してくださいintegral

于 2012-10-22T07:21:52.270 に答える