Main Content

This example shows calculation and confirmation of a nonlinear transformer core magnetization characteristic. Starting with fundamental parameter values, the core characteristic is derived. This is then used in a Simscape™ model of an example test circuit which can be used to plot the core magnetization characteristic on an oscilloscope. Model outputs are then compared to the known values.

```
modelName = 'ee_custom_transformer';
open_system( modelName );
```

Fundamental parameter values used as the basis for subsequent calculations:

Permeability of free space,

Relative permeability of core,

Number of primary turns,

Number of secondary turns,

Effective magnetic core length,

Effective magnetic core cross-sectional area,

Core saturation begins,

Core fully saturated,

mu_0 = pi*4e-7; mu_r = 3000; N1 = 100; N2 = 200; le = 0.1; Ae = 1e-4; B_sat_begin = 0.6; B_sat = 1.2;

Where:

Magnetic flux density,

Magnetic field strength,

Linear representation:

Nonlinear representation (including coefficient, a):

% Use linear representation to find value of H corresponding to B_sat_begin H_sat_begin = B_sat_begin/(mu_0*mu_r); % Rearrange nonlinear representation to calculate coefficient, a a = atanh( B_sat_begin/B_sat )/H_sat_begin; % Nonlinear representation H_nonlinear = -750:25:750; B_nonlinear = B_sat*tanh(a*H_nonlinear);

The parameters calculated can now be used in a Simscape model. Once simulated, the model is set to output a Simscape logging variable, simlog_ee_custom_transformer, and some signals using output ports, yout. Circuit parameters are:

Voltage source magnitude,

Voltage source frequency,

Voltage source resistance,

Operational amplifier input resistance,

Operational amplifier feedback resistance,

Operational amplifier feedback capacitance,

% Circuit parameters Vs = 10; Freq_Hz = 60; R_Vs = 10; R_1 = 1e3; R_2 = 1e6; C_2 = 1e-6; % Simulate model simOut = sim( modelName ); yout = get(simOut, 'yout'); simlog = get(simOut, 'simlog_ee_custom_transformer'); % Collect internal Simscape logging data for comparison I_simscape = simlog.Transformer_B_H_curve.L_m.i.series.values; phi_simscape = simlog.Transformer_B_H_curve.L_m.phi.series.values; % Collect model output data for comparison (as used for oscilloscope) I_primary = yout(:,1); int_V_secondary = yout(:,2);

The data needs to be processed to provide the Magnetic field strength and Magnetic flux density data for comparison. Where:

Magnetomotive force,

Magnetic flux,

Operational amplifier input voltage,

Operational amplifier output voltage,

Equations to be used are as follows:

% Internal logging data H_simscape = I_simscape.*N1./le; B_simscape = phi_simscape./Ae; % Oscilloscope scaling and model output data H_measured = I_primary.*N1./le; phi_measured = (int_V_secondary.*R_1.*C_2)./N2; B_measured = phi_measured./Ae;

The three characteristics can now be overlaid:

Defined characteristic: calculated from fundamental parameters

Characteristic from logging: calculated from internal Simscape logging data

Characteristic from measurement: obtained by measurement and calculation using electronic test circuit

Due to leakage and parasitic parameters, the characteristic obtained from the electronic test circuit differs to the defined characteristic. However, the test circuit and its parameterization is shown to find the characteristic for the given transformer within suitable tolerances.

if ~exist('h1_ee_custom_transformer', 'var') || ... ~isgraphics(h1_ee_custom_transformer, 'figure') h1_ee_custom_transformer = figure('Name', 'ee_custom_transformer'); end figure(h1_ee_custom_transformer) clf(h1_ee_custom_transformer) plot( ... H_nonlinear,... B_nonlinear,... 'o',... H_simscape,... B_simscape,... H_measured,... B_measured,... '-',... 'LineWidth',2); grid( 'on' ); title( 'Transformer B-H Curve' ); xlabel( 'Magnetic Field Strength, H (A/m)' ); ylabel( 'Magnetic Flux Density, B (T)' ); legend( 'Calculated', 'Simulated',... 'From Sensor', 'Location', 'NorthWest' );