Skip to main content

PentodeModel

Struct PentodeModel 

pub struct PentodeModel {
    pub mu: f64,
    pub kp: f64,
    pub kvb: f64,
    pub ex: f64,
    pub kvb2: f64,
    pub vg2_default: f64,
    pub kg1: f64,
    pub kg2: f64,
    pub rp: f64,
}
Expand description

Pentode model parameters using a screen-referenced Koren equation.

Pentodes have five electrodes: cathode, control grid (g1), screen grid (g2), suppressor grid (g3, usually tied to cathode), and plate. The screen grid acts as the “effective plate” for controlling current — the plate merely collects it, giving pentodes their characteristic flat plate curves and high output impedance.

The screen-referenced Koren equation:

E1 = Kp * (1/mu + Vg1k/Vg2k)
Ip_base = (Vg2k/Kp * ln(1 + exp(E1)))^Ex
Ip = (Ip_base / KG1) * atan(Vpk / KVB)

The atan term models the pentode’s plate saturation characteristic — plate current is nearly independent of Vpk in the normal operating region. KG1 scales the absolute plate current magnitude.

Fields§

§mu: f64

Amplification factor (mu), screen-referenced. EF86 ≈ 38, EL84 ≈ 19.

§kp: f64

Plate resistance factor. Affects output impedance.

§kvb: f64

Knee voltage constant for the screen-referenced Koren equation.

§ex: f64

Exponent (typically 1.3-1.5). Affects transfer curve shape.

§kvb2: f64

Knee voltage for pentode plate saturation (V). Controls how quickly plate current saturates with Vpk. Smaller = sharper knee. EF86 ≈ 12, EL84 ≈ 20.

§vg2_default: f64

Default screen grid voltage (V) for typical operating point.

§kg1: f64

Plate current scaling factor (KG1). Scales the absolute plate current magnitude in the Koren equation.

§kg2: f64

Screen current scaling factor (KG2). Reserved for future screen current modeling (requires separate WDF current source).

§rp: f64

Plate resistance at typical operating point (Ω). Used as virtual resistance in WDF tree construction. Power pentodes: 15k–50kΩ. Signal pentodes (EF86): ~2.5MΩ.

Trait Implementations§

§

impl Clone for PentodeModel

§

fn clone(&self) -> PentodeModel

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Copy for PentodeModel

§

impl Debug for PentodeModel

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more