www.pudn.com > matlabsimulink.rar > c7e2.m, change:2010-05-24,size:1323b

```%--- 两点乘积算法的MATLAB辅助分析文件 -----
clc;
clear;
% 测量到的电压和电流量
N=12;
t1=(0:0.02/N:0.02);
m=size(t1);
% 电压
Va=100*sin(2*pi*50*t1);
% 电流
Ia=50*sin(2*pi*50*t1-pi/6);
% 利用两点乘积算法计算
%电压
for jj=4:m(2)
U(jj)=sqrt((Va(jj)*Va(jj)+Va(jj-3)*Va(jj-3))/2);
end
%电流
for jj=4:m(2)
I(jj)=sqrt((Ia(jj)*Ia(jj)+Ia(jj-3)*Ia(jj-3))/2);
end
%电阻、电抗,相角差
for jj=4:m(2)
R(jj)=((Va(jj)*Ia(jj)+Va(jj-3)*Ia(jj-3))/(Ia(jj)*Ia(jj)+Ia(jj-3)*Ia(jj-3)));
X(jj)=((Va(jj-3)*Ia(jj)-Va(jj)*Ia(jj-3))/(Ia(jj)*Ia(jj)+Ia(jj-3)*Ia(jj-3)));
O(jj)=180/pi*atan((Va(jj-3)*Ia(jj)-Va(jj)*Ia(jj-3))/(Va(jj)*Ia(jj)+Va(jj-3)*Ia(jj-3)));
end
% 输出波形
subplot(231);
plot(t1,Va,'-ro',t1,Ia,'--bo');  % 测量到的电压和电流量
subplot(232);
plot(t1,U,'-bo');                     % 计算得到的电压有效值
ylabel('V');
subplot(233);
plot(t1,I,'-bo');                     % 计算得到的电流有效值
ylabel('I');
subplot(234);
plot(t1,R,'-bo');                     % 计算得到的电阻值
ylabel('R');
subplot(235);
plot(t1,X,'-bo');                     % 计算得到的电抗值
ylabel('X');
subplot(236);
plot(t1,O,'-bo');                     % 计算得到的相位差
ylabel('angle');

%叠加直流分量和4,8次谐波分量
Va1=35+100*sin(2*pi*50*t1)+30*sin(4*pi*100*t1)+10*sin(8*pi*100*t1);

grid on

```