Проблема: Используйте Matlab для расчета среднеквадратичного напряжения прямоугольной формы импульса с периодом 1 мс. Волна должна иметь минимальный пик 0 В и максимальный пик 4 В. Вычислите среднеквадратичное напряжение для рабочих циклов времени «ВКЛ», равное 20, 50 и 80 процентам. Также рассчитайте среднеквадратичное напряжение для треугольной волны с теми же уровнями напряжения (от 0 до 4 вольт и обратно до 0 вольт в конце периода).
У меня есть код для расчета среднеквадратичного напряжениядля всех четырех из этих волн, но мне нужно построить график трех прямоугольных волн, и я не уверен, как это сделать.
Я знаю о функции square
и функции dutycycle
,но я не знаю, как их реализовать, чтобы была определенная амплитуда (в данном случае от 0 до 4). Любая помощь будет принята с благодарностью.
% Calculation of RMS value for 20 percent
v_sum = 0.0; % Initial sum is set to zero
% for loop for one cycle
for k = 0.0:1.0:99.0
if k < 20
v = 4; % On period
else
v = 0; % Off period
end
v_sum = v_sum + v.^2; % Sum and Square are implemented
end
% Rms value calculation
v_rms_20 = sqrt(v_sum/100); % Root and Mean implementation
% Display the value
disp(v_rms_20)
%-----------------------------------------
% Calculation of RMS value for 50 percent
% Initial sum is set to zero
v_sum = 0.0;
% for loop for one cycle
for k = 0.0:1.0:99.0
if k < 50
v = 4; % On period
else
v = 0; % Off period
end
v_sum = v_sum + v.^2; % Sum and Square are implemented
end
% Rms value calculation
v_rms_50 = sqrt(v_sum/100); % Root and Mean implementation
% Display the value
disp(v_rms_50)
%-----------------------------------------
% Calculation of RMS value for 80 percent
v_sum = 0.0; % Initial sum is set to zero
% for loop for one cycle
for k = 0.0:1.0:99.0
if k < 80
v = 4; % On period
else
v = 0; % Off period
end
v_sum = v_sum + v.^2; % Sum and Square are implemented
end
% Rms value calculation
v_rms_80 = sqrt(v_sum/100); % Root and Mean implementation
% Display the value
disp(v_rms_80)
%-----------------------------------------
% Calculation of RMS value for triangular wave
v_sum = 0.0; % Initial sum is set to zero
% for loop for one cycle
for k = 0.0:1.0:99.0
if k < 50
v = 4*(k)/50; % Up trend period
else
v = 4*(100-k)/50; % Down trend period
end
v_sum = v_sum + v.^2; % Sum and Square are implemented
end
% Rms value calculation
v_rms_triangle = sqrt(v_sum/100); % Root and Mean implementation
% Display the value
disp(v_rms_triangle)