Struct PentodeRoot
pub struct PentodeRoot {
pub model: PentodeModel,
/* private fields */
}Expand description
Pentode nonlinear root for WDF trees.
Models the plate-cathode path as a nonlinear element controlled by an external control grid voltage (Vg1k) and screen grid voltage (Vg2k). Uses Newton-Raphson to solve the implicit WDF constraint equation.
The plate current follows a screen-referenced Koren model with an atan-based plate saturation term, accurately capturing the pentode’s nearly flat plate curves in the saturation region.
Pins: .grid (control grid g1), .screen (screen grid g2),
.plate, .cathode
Fields§
§model: PentodeModelImplementations§
§impl PentodeRoot
impl PentodeRoot
pub fn new(model: PentodeModel) -> PentodeRoot
pub fn new_with_v_max(model: PentodeModel, v_max: f64) -> PentodeRoot
pub fn new_with_v_max(model: PentodeModel, v_max: f64) -> PentodeRoot
Create a pentode root with a specific supply voltage (B+).
pub fn set_v_max(&mut self, v_max: f64)
pub fn set_v_max(&mut self, v_max: f64)
Set the maximum plate voltage (B+ supply rail).
For tube circuits, the plate voltage can swing from 0V (tube saturated) to B+ (tube in cutoff). This sets the upper bound for Newton-Raphson.
pub fn set_vg1k(&mut self, vg1k: f64)
pub fn set_vg1k(&mut self, vg1k: f64)
Set the control grid voltage (g1-cathode). External modulation.
pub fn set_vg2k(&mut self, vg2k: f64)
pub fn set_vg2k(&mut self, vg2k: f64)
Set the screen grid voltage (g2-cathode). Usually fixed at the operating point, but can be modulated for sag effects.
pub fn plate_current(&self, vpk: f64) -> f64
pub fn plate_current(&self, vpk: f64) -> f64
Compute plate current for given Vpk at current Vg1k and Vg2k.
Screen-referenced Koren model:
E1 = Kp * (1/mu + Vg1k/Vg2k)
Ip_base = (Vg2k/Kp * ln(1 + exp(E1)))^Ex
Ip = (Ip_base / KG1) * atan(Vpk / KVB)Trait Implementations§
§impl Clone for PentodeRoot
impl Clone for PentodeRoot
§fn clone(&self) -> PentodeRoot
fn clone(&self) -> PentodeRoot
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more