MATLAB Answers

Mutual Inductance ODEs and wireless power transfer

15 views (last 30 days)
Tucker Albright
Tucker Albright on 12 Feb 2019
Answered: David Goodmanson on 21 May 2020
I am trying to model a wireless power transfer using two conductive circular coils. I have tried two approaches so far:
Approach 1
In simulink, the electrical circuit is as shown below
Where we have two LR circuits. The circuit at left has a sinusoidal voltage input and inductively drives the other, which will be connected to a charging battery (not modeled). However, when I run the model, I get this error:
" Trouble solving algebraic equations in differential-algebraic system. Singular iteration matrix encountered with step size 0.2 at time 0.0. Try tightening the error tolerances. If the problem persists, check the model structure and values of parameters."
I did some reading on algebraic loops in simulink, but I can't seem to find mine if there is one. I also defined all intial I and V values of the voltage source, the inductors, and the resistors. What do you think is the problem? Are there any other problems with this model?
Approach 2
My first instinct was to numerically solve the ODEs for the system. By using Kirchhoff's Voltage law, we know that the voltage around any loop in a circuit is zero. We have for the driving circuit,
and the powered circuit,
But I may be wrong about sign conventions. We can treat L1, L2, and M as constants because I have calculated them separately. I attempted to solve the system of equations using ODE45. Inside my odeFun, I have the code,
function y = odeFun(t,x,constants)
L1 = constants(1); L2 = constants(2) ...
I1 = x(1);
dI1 = x(2);
I2 = x(3);
dI2 = x(4);
y = zeros(4,1);
y(1) = dI1;
y(2) = -(M*dI2 + I1*R1 -V0*sin(w*t))/L1;
y(3) = dI2;
y(4) = -(M*dI1 - I2*R2)/L2;
When I get my results and plot them, I notice that the frequencies of I1 and I2 change drastically as either R1 or R2 changes. This shouldn't happen! The frequencies of the current in both circuits should be identical to the frequency of the voltage source. Am I wrong? Where are my problems? Anything I haven't considered?
You can read more about mutual inductance here:
Let me know if I can make my question clearer by attaching images, code snippets, or more tags.
Many thanks.

  1 Comment

SAKSHAM JAIN on 21 May 2020
Hello sir i am also facing the same problem as the question was posted a year ago if you somehow managed to get solution please share the solkution as i am also facing the same problem it will be very much appreciated

Sign in to comment.

Answers (1)

David Goodmanson
David Goodmanson on 21 May 2020
Hello Tucker,
You have two first order DE's so there is no need to have a vector x with four components. Four is appropriate for two second order DE's.
For a two-component column vector I = [I1; I2] your equations are
[L1 M; M L2]*dI/dt + [R1 0; 0 R2]*I = [V0*sin(w*t); 0];
with the solution
Idot = [L1 M; M L2]\( [V0*sin(w*t); 0] -[R1 0; 0 R2]*I )
The demo below has unrealistic values for L and R but it shows the response at frequency w after the transient response of time constant (L/R) ~~ 5 sec. dies off.
[t y] = ode45(@fun,[0 25],[0 0]);
grid on
function Idot = fun(t,I)
V0 = 1;
L1 = 1; L2 = 1;
R1 = .2; R2 = .2;
M = .3;
w = 10;
Idot = [L1 M; M L2]\( [V0*sin(w*t); 0] -[R1 0; 0 R2]*I );


Sign in to comment.

Translated by