$iPad{iELANA - } iELANA - Input of circuit parts

When you've entered the circuit part editor and you've just started to build up a new circuit from scratch it makes a lot sense if you choose an active power source. To enable iELANA to get a circuit calculated properly it is necessary having at least one fixed voltage or current source included. This source will be sweeped with its named value step by step over the specified frequency range.

Following is a list of so-called macros that will be used as components or control commands by iELANA. Additionally you'll find a pseudo code line describing in short what happens to the current state of the dipole that lies on top of the calculation stack. The topmost dipole element of the calculation stack is referred as st0 and the next lower element is called st(1).

active static sources
abbr. name comment
U0 voltage source [serial]
st0[Ul] += U0
I0 current source [parallel]
st0[Ik] += I0


passive electronic components
abbr. name comment
Rs resistor serial
st0[Zi] += Rs
Rp resistor parallel
st0[Yi] += 1 / Rp
Cs capacitor serial
st0[Zi] -= 0 + j*(1 / (2π*f*Cs))
Cp capacitor parallel
st0[Yi] += 0 + j*(2π*f*Cp)
Ls inductor serial
st0[Zi] += 0 + j*(2π*f*Ls)
Lp inductor parallel
st0[Yi] -= 0 + j*(1 / (2π*f*Lp))
Ys conductor serial
st0[Zi] += 1 / Ys
Yp conductor parallel
st0[Yi] += Yp
Xs complex impedance serial
st0[Zi] += 0 + j*Xs
Xp complex impedance parallel
st0[Yi] += 0 + j*(1 / Xp)


stackless memory operations
abbr. description
Memory n store current dipole into n-th pos.
mem(n) = (copy st0)
ADDser n connect stored #n dipole, serial
st0 = st0 -- mem(n)
ADDpar n connect stored #n dipole, parallel
st0 = st0 || mem(n)


stack oriented memory operations
abbr. description
Store current value on stack, then set new stack
mem(n) = (copy st0), st0 = 0
Push current value on stack, continue with same stack
st(1) = (copy st0)
Exchange exchange current value with value from stack
st0 <=> st(1)
Seriell combine dipole on stack with current value, serial
st0 = st(1) -- st0, pop st(1)
Parallel combine dipole on stack with current value, parallel
st0 = st(1) || st0, pop st(1)
Feedback calculation of a feedback loop
I(Ua) = st0, I(Ue) = st(1),
Ua = -I(Ue) / I(Ua), pop st(1)

Special calculation rules:

Feedback calculation:
  Ua = -Ifront / Iback
       (Ufront = Uback = 1 V)
  Zi = 50 Ω
       (fixed definition, may be
       overwritten by controlled sources)

Controlled sources:
  Uctrl n = Usrc n * Vq , Zi =   1 mΩ
  Uctrl n = Isrc n * Zq ,
  Ictrl n = Isrc n * Vq , Yi = 100 GΩ
  Ictrl n = Usrc n * Yq  (Yq = 1 / Zq)
  [Zi and Yi are protective integrations]

controlled active sources
abbr. description
Usrc n store actual voltage value as controlled voltage source #n
uq_mem[n] = st0[Ul], st0 = 0
Isrc n store actual current value as controlled current source #n
iq_mem[n] = st0[Ik], st0 = 0
Uctrl n retrieve reference to controlled voltage source #n
flag n as used for Uq usage
Ictrl n retrieve reference to controlled current source #n
flag n as used for Iq usage
Vq control source gain
a: Ul ⇐ Uctrl n = Usrc n * Vq
   Zi += 1 mΩ
b: Ik ⇐ Ictrl n = Isrc n * Vq
   Yi += 100 GΩ
Zq control source impedance
a: Ul ⇐ Uctrl n = Isrc n * Zq
   Zi += 1 mΩ
b: Ik ⇐ Ictrl n = Usrc n / Zq
   Yi += 100 GΩ
Yq control source conductance
a: Ik ⇐ Ictrl n = Usrc n * Yq
   Zi += 1 mΩ
b: Ul ⇐ Uctrl n = Isrc n / Yq
   Yi += 100 GΩ
 α set a phase angle for U0, I0, Uctrl or Ictrl
a: st0 == parallel ⇒ Ul += α
b: st0 == serial   ⇒ Ik += α


special commands
abbr. description
NOP no action, dummy or placeholder
st0 remains st0
END circuit output clamps reached
st(1) == 0?, st0 != 0?


Copyright © 2015,2016 by Konran Udo Gerber

@!A version @!V (@!T) build
iOS SDK: @!L // Device iOS: @!D
running @!C-bit code
CPU type: @!U

Last changed: February 2, 2015 2:54 AM