Please read the last paragraph of this post, even if you don't want to read all of it.
Ok, I tried this, and I don't think it's going to work.
I corrected some typos (very few, Marco did a good job given that the original makes it very hard to see what is or is not a space), one of which is definitely in the original text, a + beginning a line without which SPICE can't run because it needs that to indicate continuation. It's safe to say there might be more errors given the results of running it. First, my typo- edited copy, which runs in LTspice:
ibias 0 p 10m xlaser p 0 pf ltest1 rout pf 0 1e9
************************************************************************ .subckt ltest1 p n pf D1 p nt1 d1mod_ltest1 Ic1 p nt1 3.6641713e-14 Vt1 nt1 n 0 D2 p n d2mod_ltest1 Ic2 p n 3.6641713e-14 Br1 p n i=0
*i(Vt1) +20701.692*i(Vt1)
*i(Vt1)+28862208
*i(Vt1)
*i(Vt1)*i(Vt1) Bs1 p n i=1.3785977
*v(m) *v(m)
*ln(1e-60 +5220.1829*i(Vt1)+ + 54033309
*i(Vt1) *i(Vt1)+7.5333001e +10
*i(Vt1)*i(Vt1)*i(Vt1))/ + (1+0.95928574 +
*v(m)*v(m)) Rph m 0 1 Cph m 0 5.518e-12 Br2 0 m i=(0
*i(Vt1) +1.0120369*i(Vt1)
*i(Vt1)+0*i(Vt1)
*i(Vt1)*I(Vt1))/v(m) Bs2 0 m i=0.67395059
*v(m)*ln(1e-60 +5220.1829
*i(Vt1)
+54033309*i(Vt1)
*i(Vt1)+ + 7.5333001e +10*i(Vt1)
*i(Vt1) *i(Vt1))/(1+0.95928574
*v(m)*v(m)) Bpf pf 0 v=v(m)
*v(m) .ends ltest1 .model d1mod_ltest1 D Is=3.6641713e-14 n=2 .model d2mod_ltest1 D Is=3.6641713e-14 n=2 tt=1.8181818e-08 ************************************************************************
.dc ibias 0 50m 0.25m .end
Third of three vertically aligned + signs was absent from original, and is vital unless you merge that line to the end of the previous one.) I made a symbol file for LTspice to use this model:
Version 4 SymbolType CELL LINE Normal -12 -40 -12 -24 LINE Normal -20 -32 -4 -32 LINE Normal -20 32 -4 32 LINE Normal -28 32 -48 32 LINE Normal -28 -32 -48 -32 LINE Normal 76 0 96 0 LINE Normal 48 -16 -16 -16 LINE Normal 16 16 48 -16 LINE Normal -16 -16 16 16 LINE Normal 48 16 -16 16 SYMATTR Value ltest1 SYMATTR Prefix X SYMATTR ModelFile LD_TEST.sub SYMATTR Value2 ltest1 SYMATTR Description Unknown laser diode model. PIN -48 -32 NONE 0 PINATTR PinName PIN+ PINATTR SpiceOrder 1 PIN -48 32 NONE 0 PINATTR PinName PIN- PINATTR SpiceOrder 2 PIN 96 0 NONE 0 PINATTR PinName OUT PINATTR SpiceOrder 3
Ignore the terrible graphic if you try this, it was a rough edit of one of my op-amp symbols, it was the fastest way to make something useable...
Anyway, it's an odd result! If I make a simple LM317 based constant current driver circuit (I have a good LM317 model now) and set the current for 152 mA using an 8R2 resistor, the current is steady but at more current than it should be! The model appears to be generating virtual energy. :) Worse, a voltage plot of the anode end shows a rediculous curve, a relaxation oscillator type sawtooth varying once every 50 microseconds, and between 0V (Ground) and MINUS 12 KILOVOLTS! That can NOT be right...
I really don't think I'm going to use this. And I suspect we wouldn't have to be bombed back to the stone age, or even to the technical levels current when the Alexandria Library was burned, to render that document as arcane as one of Harry Potter's spells. It's obviously not meant for the purpose I'm trying to put it to even if by a wild fluke I can figure out how to make it work right, and I don't think I even have leave to SEE it, technically, so I ask yet again, please can someone help me to find how to adapt a standard diode model to emulate a laser diode, electrically, well enough to design simple drivers for? I need to see if learning SPICE is going to be useful. So far I notive very different behaviour depending on whether I use 4 series 1N4005's or 4 series 1N4148's, so clearly I do need something better than plugging in the first diodes I can find.