mirror of
https://github.com/holub/mame
synced 2025-10-04 08:28:39 +03:00
Added inductor to netlist. (nw)
This commit is contained in:
parent
c6440a43d4
commit
3506240e19
@ -116,6 +116,27 @@ NETLIB_UPDATE(C)
|
|||||||
NETLIB_NAME(twoterm)::update();
|
NETLIB_NAME(twoterm)::update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------------------
|
||||||
|
// nld_L
|
||||||
|
// ----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
NETLIB_RESET(L)
|
||||||
|
{
|
||||||
|
set(netlist().gmin(), 0.0, 5.0 / netlist().gmin());
|
||||||
|
//set(1.0/NETLIST_GMIN, 0.0, -5.0 * NETLIST_GMIN);
|
||||||
|
}
|
||||||
|
|
||||||
|
NETLIB_UPDATE_PARAM(L)
|
||||||
|
{
|
||||||
|
//step_time(1.0/48000.0);
|
||||||
|
//m_GParallel = netlist().gmin() / m_L();
|
||||||
|
}
|
||||||
|
|
||||||
|
NETLIB_UPDATE(L)
|
||||||
|
{
|
||||||
|
NETLIB_NAME(twoterm)::update();
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------
|
||||||
// nld_D
|
// nld_D
|
||||||
// ----------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------
|
||||||
|
@ -40,34 +40,38 @@
|
|||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
#define RES(name, p_R) \
|
#define RES(name, p_R) \
|
||||||
NET_REGISTER_DEV(RES, name) \
|
NET_REGISTER_DEV(RES, name) \
|
||||||
NETDEV_PARAMI(name, R, p_R)
|
NETDEV_PARAMI(name, R, p_R)
|
||||||
|
|
||||||
#define POT(name, p_R) \
|
#define POT(name, p_R) \
|
||||||
NET_REGISTER_DEV(POT, name) \
|
NET_REGISTER_DEV(POT, name) \
|
||||||
NETDEV_PARAMI(name, R, p_R)
|
NETDEV_PARAMI(name, R, p_R)
|
||||||
|
|
||||||
/* Does not have pin 3 connected */
|
/* Does not have pin 3 connected */
|
||||||
#define POT2(name, p_R) \
|
#define POT2(name, p_R) \
|
||||||
NET_REGISTER_DEV(POT2, name) \
|
NET_REGISTER_DEV(POT2, name) \
|
||||||
NETDEV_PARAMI(name, R, p_R)
|
NETDEV_PARAMI(name, R, p_R)
|
||||||
|
|
||||||
|
|
||||||
#define CAP(name, p_C) \
|
#define CAP(name, p_C) \
|
||||||
NET_REGISTER_DEV(CAP, name) \
|
NET_REGISTER_DEV(CAP, name) \
|
||||||
NETDEV_PARAMI(name, C, p_C)
|
NETDEV_PARAMI(name, C, p_C)
|
||||||
|
|
||||||
|
#define IND(name, p_L) \
|
||||||
|
NET_REGISTER_DEV(IND, name) \
|
||||||
|
NETDEV_PARAMI(name, L, p_L)
|
||||||
|
|
||||||
/* Generic Diode */
|
/* Generic Diode */
|
||||||
#define DIODE(name, model) \
|
#define DIODE(name, model) \
|
||||||
NET_REGISTER_DEV(DIODE, name) \
|
NET_REGISTER_DEV(DIODE, name) \
|
||||||
NETDEV_PARAMI(name, MODEL, model)
|
NETDEV_PARAMI(name, MODEL, model)
|
||||||
|
|
||||||
#define VS(name, pV) \
|
#define VS(name, pV) \
|
||||||
NET_REGISTER_DEV(VS, name) \
|
NET_REGISTER_DEV(VS, name) \
|
||||||
NETDEV_PARAMI(name, V, pV)
|
NETDEV_PARAMI(name, V, pV)
|
||||||
|
|
||||||
#define CS(name, pI) \
|
#define CS(name, pI) \
|
||||||
NET_REGISTER_DEV(CS, name) \
|
NET_REGISTER_DEV(CS, name) \
|
||||||
NETDEV_PARAMI(name, I, pI)
|
NETDEV_PARAMI(name, I, pI)
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
@ -303,6 +307,43 @@ private:
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
// nld_L
|
||||||
|
// -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
NETLIB_OBJECT_DERIVED(L, twoterm)
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
NETLIB_CONSTRUCTOR_DERIVED(L, twoterm)
|
||||||
|
, m_L(*this, "L", 1e-6)
|
||||||
|
, m_GParallel(0.0)
|
||||||
|
, m_G(0.0)
|
||||||
|
, m_I(0.0)
|
||||||
|
{
|
||||||
|
//register_term("1", m_P);
|
||||||
|
//register_term("2", m_N);
|
||||||
|
}
|
||||||
|
|
||||||
|
NETLIB_TIMESTEP()
|
||||||
|
{
|
||||||
|
/* Gpar should support convergence */
|
||||||
|
m_I = m_I + m_G * deltaV();
|
||||||
|
m_G = step / m_L() + m_GParallel;
|
||||||
|
set(m_G, 0.0, m_I);
|
||||||
|
}
|
||||||
|
|
||||||
|
param_double_t m_L;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
NETLIB_RESETI();
|
||||||
|
NETLIB_UPDATEI();
|
||||||
|
NETLIB_UPDATE_PARAMI();
|
||||||
|
|
||||||
|
private:
|
||||||
|
nl_double m_GParallel;
|
||||||
|
nl_double m_G;
|
||||||
|
nl_double m_I;
|
||||||
|
};
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
// A generic diode model to be used in other devices (Diode, BJT ...)
|
// A generic diode model to be used in other devices (Diode, BJT ...)
|
||||||
|
@ -77,6 +77,7 @@ static void initialize_factory(factory_list_t &factory)
|
|||||||
ENTRY(POT, POT, "R")
|
ENTRY(POT, POT, "R")
|
||||||
ENTRY(POT2, POT2, "R")
|
ENTRY(POT2, POT2, "R")
|
||||||
ENTRY(C, CAP, "C")
|
ENTRY(C, CAP, "C")
|
||||||
|
ENTRY(L, IND, "L")
|
||||||
ENTRY(D, DIODE, "MODEL")
|
ENTRY(D, DIODE, "MODEL")
|
||||||
ENTRY(VCVS, VCVS, "-")
|
ENTRY(VCVS, VCVS, "-")
|
||||||
ENTRY(VCCS, VCCS, "-")
|
ENTRY(VCCS, VCCS, "-")
|
||||||
|
Loading…
Reference in New Issue
Block a user