Hi folks,
I used to use Giuseppe Amato's loadline calculator quite a bit, but grew frustrated with some of its limitations (and annoyed at the ads and other clutter). So, I created my own. It's open source and hosted on github.com, so in theory should never disappear. If I'm no longer able to maintain it, someone else can fork the project and carry on.
You can access it here: https://mjmvisser.github.io/tubestudio/
Source is here: https://github.com/mjmvisser/tubestudio/
Some notable differences:
Here's what it looks like:
Hope you find this useful!
cheers,
-Mark
I used to use Giuseppe Amato's loadline calculator quite a bit, but grew frustrated with some of its limitations (and annoyed at the ads and other clutter). So, I created my own. It's open source and hosted on github.com, so in theory should never disappear. If I'm no longer able to maintain it, someone else can fork the project and carry on.
You can access it here: https://mjmvisser.github.io/tubestudio/
Source is here: https://github.com/mjmvisser/tubestudio/
Some notable differences:
- multiple SPICE models are supported for each tube, and the source for each is linked
- supported mathematical models are:
- Koren triode
- Koren pentode
- Ayumi triode
- Ayumi pentode
- Paintkit triode
- Paintkip pentode
- Robert Weaver's pentode model
- CurveCaptor's extensions to the Rydel and Koren models
- Adrian Immler's triode model
- link to a datasheet is included for each tube
- both fixed and cathode bias are supported
- you can edit the grid bias voltage directly, and all linked parameters update
- output is graphed according to peak input headroom
- max and average output power and effective mu are calculated for you
- all parameters are saved in the URL, so you can bookmark or link directly to a parameterized model
- 12AX7
- 7025
- 6L6GC
- 6L6
- EF80
- 6P25B
- 6V6
- 6N16B
- 6N17B
- 6N21B
- 6P30B
- 6P37N-V
Here's what it looks like:
Hope you find this useful!
cheers,
-Mark
Last edited:
Is there a link to the source on github? I couldn't find the repo itself, or I don't know how to work back from a github.io site to find it I guess.
The Average Output Power is giving values that don't make sense to me (way too high, and much higher than the Max Output Power above).
The Average Output Power is giving values that don't make sense to me (way too high, and much higher than the Max Output Power above).
Yeah, average output power definitely looks off by an order of magnitude. I wrote most of this over a year ago but just got around to finishing it up now due to life, so I'll have to dig in and see what's what. Source is here: https://github.com/mjmvisser/tubestudio/ Most of the math is in amp.ts, except for tube models, which are in tubeModels.ts.
OK, found the tube / model selections off screen at the bottom. Weird interface, but at least it's working.
Yeah, sorry about that. It was a struggle to get the chart and the rest of the UI to play well together and it's still a bit wonky. I should add a "scroll down and select a chart" message when no tube is selected.The buttons to select a tube were off the screen for me, and until you do it's just blank.
OK, I think the average and max power calculation are now correct (maybe?). The max power is calculated as Pmax = (Vq - Vp_min) * Ip_max, where Vp_min and Ip_max are where the composite load line intersects the Vg=0 characteristic curve. This is then divided by two for the push-pull case.
I'm less certain about the average output power calculation. For this, I start with a sampled sine wave on [0, 2*PI] multiplied by the peak input headroom. I then simulate amplification of the sine wave as Vg, and finally sum each abs(Vq-Vp) * Ip and divide by the number of samples to get P_avg. This should be the average instantaneous power (with both tubes for push-pull).
I'm also not certain I'm correctly simulating a push-pull amp. It seems to me in class B at peak signal, one tube should be in cut-off, but the models don't show that. So I'm quite possibly using the models wrong here, or it could just be a case of the models not being accurate near cut-off. The code for graphing an amplified sine wave is in amp.ts in the graphAmplifiedSineWave() function if anyone wants to take a look.
I'm less certain about the average output power calculation. For this, I start with a sampled sine wave on [0, 2*PI] multiplied by the peak input headroom. I then simulate amplification of the sine wave as Vg, and finally sum each abs(Vq-Vp) * Ip and divide by the number of samples to get P_avg. This should be the average instantaneous power (with both tubes for push-pull).
I'm also not certain I'm correctly simulating a push-pull amp. It seems to me in class B at peak signal, one tube should be in cut-off, but the models don't show that. So I'm quite possibly using the models wrong here, or it could just be a case of the models not being accurate near cut-off. The code for graphing an amplified sine wave is in amp.ts in the graphAmplifiedSineWave() function if anyone wants to take a look.
- Home
- Amplifiers
- Tubes / Valves
- New loadline calculator