Explain the pest and hammer circuits. Increase solver accuracy to reduce

number of false solutions. The usual 1e-8 is not enough here, we need
1e-10. (nw)
This commit is contained in:
couriersud 2017-05-27 00:07:07 +02:00
parent 4bded4de38
commit 11ce90e8a4

View File

@ -9,6 +9,34 @@
#endif
/* Couriersud, 2013-05-26
*
* Vas left the following commit comment:
* It doesn't work quite right yet. The "Hammer" and "Pest" sounds
* are generated by free-running 555/556 timers and gated with LM324
* applifiers. For whatever reason, the netlist system produces a kind of
* buzzing from the "Hammer" circuit when it's supposed to be suppressed,
* and it doesn't think the pest sound should be suppressed completely so
* you can always hear it at a low level in the background.
*
* I modelled the LM324 sub-circuit using LTSpice and a National Semiconductor
* spice model.
* This model confirms that the two sounds are always audible. There is also a
* quantitative explanation: The LM324 sub-circuit is an inverting amplifier with
* Vout = max(Vx - V555, 0)
* Vx is either 5V or ~1.4V, depending on the state of the 7404 output. This
* causes max. amplitude to be 0 to 5 for Vx=5V or 1.4V for VX=1.4V.
*
* Further comments:
* The "Cheese" circuit is a bit weird - either they're using the
* base-emitter junction of a 2SC945 as a signal diode, or there's an error
* in the schematic (collector is shown unconnected).
*
* This looks like a noise generating circuit. Amplification is ~100. The open
* collector of the transistor will create the noise. Currently, there is no
* support for noise in the resistor, diode or transistor models so currently
* there is nothing to amplify currently.
*/
NETLIST_START(cheekyms_schematics)
@ -30,10 +58,16 @@ NETLIST_START(cheekyms_schematics)
NET_C(C10.2, Q1.E, GND)
// Cheese
#if 0
// FIXME: Not working right, causes the netlist system to die
// Note that the collector of Q2 is not connected, they're just using the base-emitter junction as a diode
// Well, either that or there's an error in the schematic
#if 1
// FIXME: We need a generic noise voltage or current source which be can
// place in parallel to B-E so simulate device noise.
// RDUMMY will ensure the circuit does not become singular.
RES(RDUMMY, RES_M(1000))
NET_C(RDUMMY.1, GND)
NET_C(RDUMMY.2, Q2.C)
RES(R2, RES_M(1))
RES(R3, RES_K(1))
RES(R4, RES_K(100))
@ -224,13 +258,11 @@ NETLIST_END()
NETLIST_START(cheekyms)
SOLVER(Solver, 180000)
PARAM(Solver.ACCURACY, 1e-8)
SOLVER(Solver, 48000)
PARAM(Solver.ACCURACY, 1e-10)
PARAM(Solver.NR_LOOPS, 300)
PARAM(Solver.GS_LOOPS, 1)
PARAM(Solver.METHOD, "MAT_CR")
PARAM(Solver.PARALLEL, 0)
PARAM(Solver.SOR_FACTOR, 1.00)
PARAM(Solver.DYNAMIC_TS, 0)
PARAM(Solver.DYNAMIC_LTE, 5e-4)
PARAM(Solver.DYNAMIC_MIN_TIMESTEP, 20e-6)
@ -239,8 +271,6 @@ NETLIST_START(cheekyms)
ANALOG_INPUT(I_V5, 5)
ANALOG_INPUT(I_VPLUS, 12.9) // very approximate - 15V dropped by three diodes and filtered
//ANALOG_INPUT(I_V0, 0)
ALIAS(I_V0.Q, GND)
INCLUDE(cheekyms_schematics)