Построение электрической энергии в Matlab - PullRequest
1 голос
/ 01 марта 2012

Я пытаюсь построить график энергии (W) схемы, используя matlab.Уравнения:

Voltage

Current

Power

Energy

enter image description here

построение графика напряжения, тока и мощности не было так сложно (я думаю, что написал правильный код, пожалуйста, скажите мне, если считаете, что это неправильно!):

%Variables
t1=20e-3;t2=60e-3;N=1000;f=50;
t=linspace(t1,t2,N);
Vmax = 10; %Peak Voltage
Imax = 2; %Peak Current
f = 50; %Frequency in Hertz
omega = 2 * pi * f;
phi_default = -pi/4; %Constant for phase difference

%Equations
Vsrc = Vmax * sin(omega * t); %Equation for Voltage
Isrc = Imax * sin((omega * t) + phi_default); %Equation for Current
Psrc = Vsrc .* Isrc; %Equation for Power

%Plotting the result
figure(1); %Window 1
plot(t,Vsrc, 'b', t, Isrc, 'r', t, Psrc, 'g'); %Plotting Voltage, Current and Power

Теперь проблема в том,что я не могу найти способ построить Энергию в Matlab.Я думаю, что Δt (Delta t) должно быть определено, возможно, с использованием функции diff(t), а общая энергия должна быть примерно такой:

enter image description here

А средняя мощность Pavr рассчитывается по enter image description here ГдеТ - период.

Итак, вопрос в том, как я могу изобразить полную мгновенную энергию enter image description here как функцию разности фаз в диапазоне enter image description here, для этого, я думаю, for loop необходимо вычислитьдля каждого значения фазы.

Также я хочу построить график средней мощности за тот же период.

Спасибо.

1 Ответ

2 голосов
/ 01 марта 2012

Энергия рассчитывается путем интегрирования мощности за определенный период времени. Поскольку здесь вы имеете дело с дискретными значениями, вы должны аппроксимировать интеграл суммой. В вашем случае мгновенная энергия как функция времени равна

Winst = (t2 - t1) / N * cumsum(Psrc);

cumsum дает совокупную сумму всех элементов вектора Psrc, а (t2 - t1) / N - временной интервал.

Для расчета энергии как функции фи вы должны установить период времени, который вы хотели бы рассмотреть. Вы сначала вычисляете энергию для заданного фи, а затем снова интегрируете за фиксированный интервал времени t1 ... t2:

phi = -pi/2:phi_step:0
Wphi = zeros(1, length(phi));
for k = 1:length(phi)
  Vsrc = Vmax * sin(omega * t);
  Isrc = Imax * sin((omega * t) + phi(k));
  Psrc = Vsrc .* Isrc;
  Wphi(k) = (t2 - t1) / N * sum(Psrc);
end

plot( phi, Wphi);

Средняя мощность - это просто среднее значение Psrc:

Pavg = sum(Psrc) / length(Psrc)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...