how I can to get the effective value of voltage(Ture RMS) with the following formula by "for loop"?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
sajad Tarverdian
le 4 Mar 2022
Commenté : sajad Tarverdian
le 5 Mar 2022
how I can to get the effective value of voltage(Ture RMS) with the following formula by "for loop" and plot it?
like the picture
t=0:0.0001:0.3; f=50Hz Vm=1.4 volt voltage sag=0.2Vm in 0.1<t<0.2
N=100
0 commentaires
Réponse acceptée
Voss
le 4 Mar 2022
t = 0:0.0001:0.3;
f = 50; % Hz
Vm = 1.4; % volt
sag = 0.2*Vm; % voltage sag in 0.1<t<0.2
V = Vm*sin(2*pi*f*t);
idx = 0.1<t & t<0.2;
V(idx) = sag/Vm*V(idx);
N = 100;
Vrms = zeros(1,numel(t));
for k = 1:numel(t)
% When k < N, then k-N+1 < 1, which would be indexing before the
% beginning of the vector V. To handle that situation, use max(1,k-N+1)
% as the starting index. This gives the "rising" RMS at t = 0 seen in
% the plot.
Vrms(k) = sqrt(sum(V(max(1,k-N+1):k).^2)/N);
end
plot(t,V);
hold on
plot(t,Vrms,'--r');
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Power Transmission and Distribution dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
