Three-Phase Converter RMS
clc; clear; close all;
%% Parameters
alpha_deg = 60; % Firing delay in degrees
alpha = deg2rad(alpha_deg); % Convert to radians
V_m = 325; % Peak phase voltage (example: 325 V)
v_out = @(theta) sqrt(2)*V_m * cos(theta - pi/6);
%% Compute the integral over one conduction interval (length π/3)
theta1 = alpha;
theta2 = alpha + pi/3;
I = integral(@(theta) (v_out(theta)).^2, theta1, theta2);
%% There are 6 pulses in a 2π-period. Thus the RMS value is
V_rms = sqrt( (6/(2*pi)) * I );
%% Display Result
fprintf('For a three-phase controlled full-wave converter with firing delay %.0f°:\n', alpha_deg);
fprintf('The RMS output voltage is: %.2f V\n', V_rms);
%% Plot one cycle of the output voltage waveform to illustrate the conduction intervals
theta_full = linspace(0,2*pi,1000);
v_wave = zeros(size(theta_full));
% For each pulse, add the conduction interval (the conduction pulses are spaced by π/3)
for k = 0:5
% Define the conduction interval for pulse k:
t_start = alpha + k*pi/3;
t_end = alpha + pi/3 + k*pi/3;
% Find indices within this interval (allowing for periodicity)
idx = (theta_full >= t_start) & (theta_full < t_end);
v_wave(idx) = sqrt(2)*V_m*cos(theta_full(idx) - (pi/6 + k*pi/3));
end
figure;
plot(theta_full, v_wave, 'LineWidth',2);
xlabel('Electrical angle (rad)');
ylabel('Output Voltage (V)');
title('Output Voltage Waveform of 3–Phase Controlled Full Converter');
grid on;
explain this code
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 1/4
This MATLAB code calculates and plots the RMS output voltage of a three-phase controlled full-wave
converter (also known as a three-phase bridge rectifier) with a specified firing delay angle (alpha).
The calculation is based on integrating the square of the instantaneous output voltage over one
conduction interval and multiplying appropriately to cover a full 2π cycle (since there are 6 such intervals
in one cycle).
Let’s walk through each part step-by-step:
🔹 clc; clear; close all;
Clears the command window (clc), removes all variables from the workspace (clear), and closes all
figures (close all) to ensure a clean run.
🔹 Parameters
matlab
alpha_deg = 60;
alpha = deg2rad(alpha_deg);
V_m = 325;
alpha_deg = 60;: Firing delay angle in degrees (α = 60°).
alpha = deg2rad(alpha_deg);: Convert firing angle to radians (for integration and trigonometric
functions).
V_m = 325;: Peak phase voltage (i.e., maximum voltage of one phase in the 3-phase supply).
🔹 Instantaneous Output Voltage
matlab
v_out = @(theta) sqrt(2)*V_m * cos(theta - pi/6);
This defines an anonymous function v_out(θ) that calculates the instantaneous output voltage
during conduction.
The phase shift π/6 (i.e., 30°) arises due to the way phase voltages are combined in a 3-phase
converter.
🔹 RMS Voltage Calculation
matlab
theta1 = alpha;
theta2 = alpha + pi/3;
I = integral(@(theta) (v_out(theta)).^2, theta1, theta2);
In each π/3 interval (i.e., 60°), a pair of thyristors conducts.
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 2/4
theta1 and theta2 define the conduction interval for one pair: from α to α + π/3.
The code integrates the square of the instantaneous voltage over this interval.
matlab
V_rms = sqrt( (6/(2*pi)) * I );
There are 6 such intervals per electrical cycle (2π).
So to compute RMS over a full cycle, the integral result is scaled:
α+π/3
6
Vrms = ⋅∫ v 2 (θ) dθ
2π α
🔹 Display Result
matlab
fprintf('For a three-phase controlled full-wave converter with firing delay %.0f°:\n',
alpha_deg);
fprintf('The RMS output voltage is: %.2f V\n', V_rms);
Nicely prints the firing angle and the calculated RMS voltage.
🔹 Plotting Output Voltage Waveform
matlab
theta_full = linspace(0,2*pi,1000);
v_wave = zeros(size(theta_full));
Creates an array of angles θ from 0 to 2π.
Initializes v_wave to zero. This array will be filled with values during the conduction intervals.
🔹 Loop to Model All 6 Conduction Intervals
matlab
for k = 0:5
t_start = alpha + k*pi/3;
t_end = alpha + pi/3 + k*pi/3;
idx = (theta_full >= t_start) & (theta_full < t_end);
v_wave(idx) = sqrt(2)*V_m*cos(theta_full(idx) - (pi/6 + k*pi/3));
end
There are 6 pulses in a full cycle (each of π/3 radians).
For each pulse (indexed by k):
Define conduction start and end angles.
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 3/4
Use logical indexing (idx) to find time points in this interval.
Compute and assign the output voltage using cosine with phase shift for each interval.
🔹 Plotting
matlab
figure;
plot(theta_full, v_wave, 'LineWidth',2);
xlabel('Electrical angle (rad)');
ylabel('Output Voltage (V)');
title('Output Voltage Waveform of 3–Phase Controlled Full Converter');
grid on;
Plots the reconstructed output voltage waveform over one cycle.
Each interval contributes a cosine-shaped pulse.
The result shows a stepped waveform typical of a 3-phase rectifier.
✅ Summary
This code:
Models a three-phase fully-controlled bridge converter.
Calculates its RMS output voltage for a given firing delay angle.
Plots the waveform of the output voltage over one electrical cycle.
Let me know if you'd like to extend this code for average voltage, load current, or a resistive-inductive
load.
Printed using ChatGPT to PDF, powered by PDFCrowd HTML to PDF API. 4/4