$(instance)SaturatingInductorTest Icon

SaturatingInductorTest

Usage

SaturatingInductorTest()

Behavior

\[ \begin{equation} \left[ \begin{array}{c} \mathrm{connect}\left( signal_{+}y(t), source_{+}V(t) \right) \\ \mathrm{connect}\left( source_{+}n, ground_{+}g, sat_{inductor_{+}n}, inductor_{+}n \right) \\ \mathrm{connect}\left( sat_{inductor_{+}p}, source_{+}p, inductor_{+}p \right) \\ \mathtt{sat\_inductor.v}\left( t \right) = \mathtt{sat\_inductor.p.v}\left( t \right) - \mathtt{sat\_inductor.n.v}\left( t \right) \\ \mathtt{sat\_inductor.i}\left( t \right) = \mathtt{sat\_inductor.p.i}\left( t \right) \\ \mathtt{sat\_inductor.p.i}\left( t \right) + \mathtt{sat\_inductor.n.i}\left( t \right) = 0 \\ \mathtt{sat\_inductor.L\_actual}\left( t \right) = \mathtt{sat\_inductor.L\_inf} + \frac{\mathtt{sat\_inductor.I\_par} \left( - \mathtt{sat\_inductor.L\_inf} + \mathtt{sat\_inductor.L\_zero} \right) \arctan\left( \frac{\mathtt{sat\_inductor.i}\left( t \right)}{\mathtt{sat\_inductor.I\_par}} \right)}{\mathtt{sat\_inductor.i}\left( t \right)} \\ \mathtt{sat\_inductor.psi}\left( t \right) = \mathtt{sat\_inductor.L\_inf} \mathtt{sat\_inductor.i}\left( t \right) + \mathtt{sat\_inductor.I\_par} \left( - \mathtt{sat\_inductor.L\_inf} + \mathtt{sat\_inductor.L\_zero} \right) \arctan\left( \frac{\mathtt{sat\_inductor.i}\left( t \right)}{\mathtt{sat\_inductor.I\_par}} \right) \\ \mathtt{sat\_inductor.v}\left( t \right) = \frac{\mathrm{d} \mathtt{sat\_inductor.psi}\left( t \right)}{\mathrm{d}t} \\ \mathtt{signal.y}\left( t \right) = \mathtt{signal.k} \\ \mathtt{source.v}\left( t \right) = - \mathtt{source.n.v}\left( t \right) + \mathtt{source.p.v}\left( t \right) \\ \mathtt{source.i}\left( t \right) = \mathtt{source.p.i}\left( t \right) \\ \mathtt{source.p.i}\left( t \right) + \mathtt{source.n.i}\left( t \right) = 0 \\ \mathtt{source.v}\left( t \right) = \mathtt{source.uV} \mathtt{source.V}\left( t \right) \\ \mathtt{ground.g.v}\left( t \right) = 0 \\ \mathtt{inductor.v}\left( t \right) = - \mathtt{inductor.n.v}\left( t \right) + \mathtt{inductor.p.v}\left( t \right) \\ \mathtt{inductor.i}\left( t \right) = \mathtt{inductor.p.i}\left( t \right) \\ \mathtt{inductor.p.i}\left( t \right) + \mathtt{inductor.n.i}\left( t \right) = 0 \\ \mathtt{inductor.L} \frac{\mathrm{d} \mathtt{inductor.i}\left( t \right)}{\mathrm{d}t} = \mathtt{inductor.v}\left( t \right) \\ \end{array} \right] \end{equation} \]

Source

test component SaturatingInductorTest
  sat_inductor = SaturatingInductor(L_zero=2, L_inf=0.5, L_nominal=1)
  signal = BlockComponents.Constant(k=40)
  source = VoltageSource()
  ground = Ground()
  inductor = Inductor(L=1)
relations
  initial sat_inductor.i = 1e-10
  connect(signal.y, source.V)
  connect(source.n, ground.g, sat_inductor.n, inductor.n)
  connect(sat_inductor.p, source.p, inductor.p)
metadata {
  "JuliaSim": {
    "tests": {
      "case1": {
        "stop": 10,
        "expect": {
          "initial": {"sat_inductor.L_actual": 2},
          "final": {"sat_inductor.L_actual": 0.50863266}
        }
      }
    }
  }
}
end
Flattened Source
test component SaturatingInductorTest
  sat_inductor = SaturatingInductor(L_zero=2, L_inf=0.5, L_nominal=1)
  signal = BlockComponents.Constant(k=40)
  source = VoltageSource()
  ground = Ground()
  inductor = Inductor(L=1)
relations
  initial sat_inductor.i = 1e-10
  connect(signal.y, source.V)
  connect(source.n, ground.g, sat_inductor.n, inductor.n)
  connect(sat_inductor.p, source.p, inductor.p)
metadata {
  "JuliaSim": {
    "tests": {
      "case1": {
        "stop": 10,
        "expect": {
          "initial": {"sat_inductor.L_actual": 2},
          "final": {"sat_inductor.L_actual": 0.50863266}
        }
      }
    }
  }
}
end

Test Cases

Test Case case1