Archived OpenModelica forums. Posting is disabled.

Alternative forums include GitHub discussions or StackOverflow (make sure to read the Stack Overflow rules; you need to have well-formed questions)

Forgot password? | Forgot username? | Register

Time-variant coupling inductance

Time-variant coupling inductance

Hello together,

I'm trying to build a model of a resolver by using the transformer block.
It consists of one excitation coil (L1) and two receiving coils (L2,L3) that are aligned 90° degree to each other.
Depending on the angle of the excitation coil the coupling inductance of the receiving coils vary so that there is an output of
a sinus and cosinus voltage.

My intention was to set a time-variant coupling inductance (M) for the transfomer (Modelica.Electrical.Analog.Basic.Transformer) like the following expression:

M = abs(sin(2*PI*f*time))*sqrt(L1*L2)

When trying to simulate the following error is shown:
The variability of the definition equation: ... is higher than the declared variability of the variables.

I considered that the maximum value of the coupling inductance (M) does not exceed the value 1 so that I guess I made another mistake.

I would be happy if you can give me some advises about using time-variant variables within function blocks like those.

Kind regards,

Re: Time-variant coupling inductance

M in Modelica.Electrical.Analog.Basic.Transformer is declared as a parameter, which means it never changes during the simulation. So you can't use that model if you want to have a time-variant coupling inductance, but unfortunately I don't know if there exists any alternatives so you might have to implement your own.

Re: Time-variant coupling inductance

The variability problem is a consequence of the implementation of M as a parameter which is constant during simulation.

In your case it would probably be the best to copy the entire code of Modelica.Electrical.Analog.Basic.Transformer to a new model and modify it to your needs — e.g. remove the 'parameter' keyword from the declaration of M.

If you instead declare M as an input you can both use a constant value for M or the expression you mention.

There are 0 guests and 0 other users also viewing this topic
You are here: