2stageEF high performance class AB power amp / 200W8R / 400W4R

Btw: noise simulation shows about 124nV/rthz with current gain settings at output. Don't know if this is good, bad or something else...
and taking account of amp gain
= 4nV/rtHz input referred. This is usually considered excellent.
6 to 9nV/rtHz is very good.
10 to 15nV/rtHz is good.

But do take account of the gain of {AMP + SPEAKER} for the final output noise received at the ear.
 
I first saw this the model Toni's posted in #274. (see #333) But the huge difference in overload is obvious in any of his .ASCs

All you need to do is to run .TRANS with more than 3Vp @ 20kHz so no fancy THD meters or processing required.

I just ran a .TRANS on the rev_2.asc with 3V input @ 20kHz with the 2SC5171_D & 2SA1930_D Dymond models and then the 2SC4793_A & 2SA1837_A Andy models and don't see any substantial difference in the clipped waveform.
You haven't used the other models by any chance?
Usually this sort of stuff turns out to be some stupid little mistake with incorrect include library or bad version. Easy to do in a casual thread like this with no version control or documentation.

Best wishes
David
 
I just ran a .TRANS on the rev_2.asc with 3V input @ 20kHz with the 2SC5171_D & 2SA1930_D Dymond models and then the 2SC4793_A & 2SA1837_A Andy models and don't see any substantial difference in the clipped waveform.

My stupid little mistake. Wanted to confirm the problem was not in the drivers, then had the VAS and drivers out of step.
Will try to parameterise the choice of model so I alter it only once.
Pretty dramatic difference, you were correct.

Best wishes
David
 
Last edited:
You cannot use .param statements with .model statements unless you make a .subckt, which then means you have to give each transistor its own symbol, and then it won't be selectable in the Rclick menu. So you would have to write the final parameters in the .model statement directly after you finished.

Unless I mistake what you mean by "parametrize".
 
Pretty dramatic difference, you were correct.
Alas, 'real life' doesn't agree with me. :mad:

Any takers to modify the 2SC5171_D & 2SA1930_D Dymond and 2SC4793_A & 2SA1837_A AndyC BJT driver models so they reflect Toni's 'real life' results? Mr. Dymond?
____________________________________________

Frank, (fas42) shows how to swap a zillion devices in one fell swoop as follows.
  • give your models numeric names like 970.01 and 970.02
  • label the zillion transistors with something like {drivers}
  • have a ".param driver=970.01" directive somewhere on your .ASC
  • to change them all to 970.02, just change the .param statement

I do this on the discrete-opamp-open-design thread to swap between Cordell, Wurcer & other guru & pseudo-guru models. :)

A lot of 'new' devices, especially SMD ones, were put forward in this huge thread. :eek: I'm afraid you'll have to search it yourself to find Guru Wurcer's recommendations for small signal MOSFETs. It took me more than a week to get up to speed.
 
Last edited:
Alas, 'real life' doesn't agree with me. :mad:

You have been proven correct about the simulations, isn't that sufficient;)

Any takers to modify the 2SC5171_D & 2SA1930_D Dymond and 2SC4793_A & 2SA1837_A AndyC BJT driver models so they reflect Toni's 'real life' results?

Yes, I can.
The differences are driven by the TR parameter.
Some of the "reverse" parameters actually have an impact into the forward bias operation. TR is obviously one of them.
So this is fixable, excellent.

Best wishes
David
 
Last edited:
Andy_C used spreadsheet adaptive-optimizing to do it, so maybe the algorithm improvised? He must not have included the test for this in his output criteria.

Some of the parameters were input data taken from other sources.
Especially the "reverse" ones, this one too IIRC.
So, not really a problem in his calculations but rather the input data.
I have studied the impact of most of the reverse parameters on normal operation, but not this one. Will search more.
Found some nice information on quasi-saturation models, by the way;)
I think you previously said the problem would be in the VAS rather than the drivers.
That seemed likely to me too, and is correct. Bonus points all round.

Best wishes
David
 
Last edited:
Frank, (fas42) shows how to swap a zillion devices in one fell swoop as follows.
  • give your models numeric names like 970.01 and 970.02
  • label the zillion transistors with something like {drivers}
  • have a ".param driver=970.01" directive somewhere on your .ASC
  • to change them all to 970.02, just change the .param statement

Thanks for this. I tried alphanumerics and it didn't work.
Never considered that it would make any difference.
A bit odd really.

Best wishes
David
 
You can do something like

.model 100 AKO:2SC5171

To make setting it up less tedious. AKO is an acronym of "A Kind Of". You can use

.param Rbias=100

and assign each model the value of Rbias which maintains the correct operating point across models, so you can do a

.step param Rbias list 96 102 89

For example to step through each set of drivers without being confounded by Iq variance. Of course if you specify the wrong Rbias value LTSpice will complain about not finding the model.

Neat.
 
Alas, 'real life' doesn't agree with me. :mad:

Any takers to modify the 2SC5171_D & 2SA1930_D Dymond and 2SC4793_A & 2SA1837_A AndyC BJT driver models so they reflect Toni's 'real life' results? Mr. Dymond?

That would be Dr. Dymond ;)

The construction of the models hit up against time limitations and unfortunately I still don't have the time available to dedicate to learning further about BJT spice models and taking the necessary real-world measurements to improve the model. As the header of the present model states, I welcome any further development from others. I'm looking forward to Dave's developments!
 
It seems obvious that TR in Andy's models needs to be reduced to match Toni's results.
The value is about 1000 times more than TF which seems wildly excessive on basic principles.
So no surprise it needs reduction.
Harry's models need TR added.
I can match the real response quite a bit better.
The asymmetry of the PNP VAS and NPN current sink complicate the results.
Needs Toni's real data to compare. The two of you can do this, I'm off to Friday fun.

Best wishes
David
 
Last edited:
Member
Joined 2011
Paid Member
Very interesting discussion the last days. And also a clever spice trick ...

I haven't had very much time during the last 2 weeks to continue with the project but my lab soon will have the distortion magnifier (by Bob Cordell) and we can continue with measurements and fine tuning...

BR, Toni
 

Attachments

  • distortion_magnifier_unfinished.jpg
    distortion_magnifier_unfinished.jpg
    258.5 KB · Views: 577
OK, had time to try TR=100e-9 in the VAS and that produces a plausible amount of rail stick.
A reasonable place to start anyway.
No data for the other polarity but I would try around there too, in the absence of better information.

Best wishes
David

PS. Looks nice, and useful.
 
Last edited:
driver models

That would be Dr. Dymond ;)
My apologies. I grovel at your feet Guru Dymond :eek:

Dr/Prof/Guru Zan, thanks for your work on this.
_________________________
keantoken said:
You can do something like

.model 100 AKO:2SC5171

To make setting it up less tedious. AKO is an acronym of "A Kind Of". You can use

.param Rbias=100

and assign each model the value of Rbias which maintains the correct operating point across models, so you can do a

.step param Rbias list 96 102 89

For example to step through each set of drivers without being confounded by Iq variance. Of course if you specify the wrong Rbias value LTSpice will complain about not finding the model.
Could you post a simple example .ASC please?

My small brain has problems unnerstaning dis. :confused: