15 views (last 30 days)

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;

end

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.

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]);

figure(1)

plot(t,y)

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 );

end

Opportunities for recent engineering grads.

Apply TodayMore Answers in the Power Electronics Community

## 1 Comment

## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/444481-mutual-inductance-odes-and-wireless-power-transfer#comment_854313

⋮## Direct link to this comment

https://ww2.mathworks.cn/matlabcentral/answers/444481-mutual-inductance-odes-and-wireless-power-transfer#comment_854313

Sign in to comment.