How to model an inductor whose inductance value changes with RMS current passing through it?

2 views (last 30 days)
For any real inductor, the inductance value vary with the current passing through it. how do I implement this change in inductance value with current?
Please find below attached the inductor characteristics from a datasheet

Answers (2)

Sam Chak
Sam Chak on 25 Mar 2025

Hi Jay,

This is a modeling problem. Ideally, if the data points are sufficiently available, you can use the Curve Fitting tools to identify the model for the curve.

Most data sheets are in the form of images. I commonly use WebPlotDigitizer , an online data extraction tool, to extract data from images in numerical format.

You can also use GRABIT: GRABIT


Sam Chak
Sam Chak on 25 Mar 2025
Hi @Jay
It took me an hour to extract the characteristic data from the datasheet image using PlotDigitizer, which is a free online app. I saved the data in a CSV file. With this data, I can apply a curve fitting technique to identify the model. Naturally, I tend to start with the polynomial model. If it does not yield satisfactory results, I will use a specialized model, such as the soft trapezoidal function.
Step 1: Extract the data using PlotDigitizer.
Step 2: Load the data and apply curve fitting technique.
%% load data from csv file
dat = readmatrix('plot-data.csv');
I = dat(:,1); % current (x-coordinate)
L = dat(:,2); % inductance (y-coordinate)
%% apply polynomial curve fitting technique
[p, S] = polyfit(I, L, 7)
p = 1×8
0.0001 -0.0011 0.0092 -0.0388 0.0881 -0.1083 0.0594 2.0008
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
S = struct with fields:
R: [8x8 double] df: 27 normr: 0.0093 rsquared: 1.0000
%% evaluate the polynomial on a finer current grid
numpts = 101; % number of points
I1 = linspace(I(1), I(end), numpts);
L1 = polyval(p, I1);
%% plot the results
figure
plot(I, L, 'o') % plot data
hold on
plot(I1, L1) % plot fitted model
hold off
ylim([0, 2.5])
grid on
legend('Original data', 'Fitted model')
title('Inductance vs. Current Characteristics')
xlabel('Current [A]'), ylabel('Inductance [{\mu}H]')
  1 Comment
Jay
Jay on 27 Mar 2025
Moved: Walter Roberson on 27 Mar 2025
Hi Sam,
Thank a lot for the detailed explaination.
The problem is that I don't have the datasheet. I have two values:
1) L_min at a Test voltage, Frequency and max Current.
2) L_max at the same Test voltage and Frequency and current value not given.
So, I observed that the inductance was varying just with current
I was looking to model the inductor based on these test data.
Let me know if you know any method to model the inductance with these limited data.

Sign in to comment.

Categories

Find more on Simscape Electrical in Help Center and File Exchange

Products


Release

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!