Documentation

Harmonic Analysis of a Three-Phase Rectifier

This example shows how to use functions which analyze Simscape™ logging data to get harmonic magnitudes, calculate total harmonic distortion percentage and plot harmonic magnitudes. The model to which this analysis is applied is of a three-phase rectifier. The functions demonstrated are:

• ee_getHarmonics

• ee_calculateThdPercent

• ee_plotHarmonics

Open Model

Open the model.

open_system( 'ee_harmonics_rectifier' ); Specification of Parameters

Where:

• Rated AC voltage, • Rated AC frequency, • AC real power load, • DC real power load, • Total apparent power, For the test circuit, the AC load is set to consume 5MW, and the DC load is set to consume approximately 5MW.

V_Rated = 4160;
F_Rated = 60;
P_AC = 5e6;
P_DC = 5e6;
S_Rated = P_AC + P_DC;

Calculate Source Impedance

Where:

• X/R Ratio, • Per-unit impedance, • Per-unit base impedance, • Per-unit base inductance, • Source series resistance, • Source series inductance, XR = 15;
Z_pu = 0.01;
Z_base = ((V_Rated/sqrt(3))^2)/(S_Rated/3);
L_base = Z_base/(2*pi*F_Rated);
R_series = cos(atan(XR))*Z_pu*Z_base;
L_series = sin(atan(XR))*Z_pu*L_base;

Calculate DC Resistance

Where:

• Average DC voltage calculated neglecting losses, • DC resistance, (Consult appendix for derivation of equations)

V_DC = 3*sqrt(2)*V_Rated/pi;
R_DC = V_DC^2/P_DC;
disp( [ 'DC resistance required to draw ', num2str( P_DC ), ' W on DC side = ', num2str( R_DC ), ' Ohm' ] );
DC resistance required to draw 5000000 W on DC side = 6.3123 Ohm

Use Parameters in Simscape Model

The parameters calculated can now be used in a Simscape model, ee_harmonics_rectifier. Once simulated, the model is set to create a Simscape logging variable, simlog_ee_harmonics_rectifier.

sim( 'ee_harmonics_rectifier' );
Voltage_Source_Currents = simlog_ee_harmonics_rectifier.Voltage_Source.I; Obtain Harmonic Data

Details of harmonic order, harmonic magnitude and fundamental frequency can be obtained from a Simscape logging variable using the ee_getHarmonics function.

[ harmonicOrder, harmonicMagnitude, fundamentalFrequency ] = ee_getHarmonics( Voltage_Source_Currents );

Calculate Peak Fundamental Value

The peak value of fundamental can be extracted.

fundamentalPeak = harmonicMagnitude( harmonicOrder==1 );
disp( [ 'Peak value of fundamental = ', num2str( fundamentalPeak ), ' A' ] );
Peak value of fundamental = 1945.806 A

Remove Small Harmonics

Find and keep harmonics which are greater than one thousandth of fundamental.

threshold = fundamentalPeak ./ 1e3;
aboveThresold = harmonicMagnitude > threshold;
harmonicOrder = harmonicOrder( aboveThresold )';
harmonicMagnitude = harmonicMagnitude( aboveThresold )';

Display Tabular Harmonic Data

Harmonic data can be contained in a MATLAB® table.

harmonicRms = harmonicMagnitude./sqrt(2);
harmonicPercentage = 100.*harmonicMagnitude./harmonicMagnitude( harmonicOrder==1 );
harmonicTable = table( harmonicOrder,...
harmonicMagnitude,...
harmonicRms,...
harmonicPercentage,...
'VariableNames', {'Order','Magnitude','RMS','Percentage'});
display( harmonicTable );
harmonicTable =

10x4 table

Order    Magnitude     RMS      Percentage
_____    _________    ______    __________

1       1945.8      1375.9         100
5       218.86      154.75      11.248
7       105.83      74.835       5.439
11       85.135        60.2      4.3753
13       57.599      40.729      2.9602
17       50.417       35.65      2.5911
19       37.612      26.596       1.933
23       33.859      23.942      1.7401
25       26.507      18.743      1.3622
29       23.979      16.955      1.2323

Total Harmonic Distortion

Calculate Total Harmonic Distortion (THD) percentage from harmonic data using the ee_calculate_ThdPercent function.

thdPercent = ee_calculateThdPercent( harmonicOrder, harmonicMagnitude );
disp( [ 'Total Harmonic Distortion percentage = ' num2str( thdPercent ), ' %' ] );
Total Harmonic Distortion percentage = 14.1721 %

Plot Harmonics

The harmonic data could be plotted from the harmonic data using the MATLAB bar function. For convenience the ee_plotHarmonics function plots a bar chart directly from the Simscape logging variable.

ee_plotHarmonics( Voltage_Source_Currents );
h1_ee_rectifier_thd = gcf; Conclusion

This example shows how to use three functions which are callable from the MATLAB command line. The functions analyze Simscape logging data to get harmonic magnitudes, calculate total harmonic distortion percentage and plot harmonic magnitudes.

Appendix - Equations for Calculation of DC Resistance Value

The relationship between peak AC input, , and average DC output, , of a three-phase rectifier, neglecting losses, can be calculated as follows:  As the relationship between the rated voltage (line-line RMS), , and peak phase voltage, , is: The relationship between rated AC voltage and average DC voltage is: The resistance, required to draw a particular power, , is: 