Struct OtaModel
pub struct OtaModel {
pub iabc_max: f64,
pub vt: f64,
pub r_load: f64,
}Expand description
CA3080 OTA model parameters.
Unlike voltage-mode op-amps, an OTA’s output is a current proportional to the differential input voltage, controlled by a bias current (Iabc).
The key equation: Iout = gm * (V+ - V-) where gm = Iabc / (2 * Vt)
and Vt is the thermal voltage (~26mV at room temperature).
The CA3080 has a tanh-like transfer characteristic:
Iout = Iabc * tanh(Vdiff / (2 * Vt))
This means:
- For small signals: linear gain proportional to Iabc
- For large signals: soft clipping at ±Iabc
- The gain is controlled by current, not voltage — perfect for VCA/compressor
Fields§
§iabc_max: f64Maximum bias current (A). CA3080 typical: 0.5mA.
vt: f64Thermal voltage (V). ≈25.86mV at the ngspice default 27°C.
r_load: f64Output load resistance (Ω). Determines voltage gain from current output.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for OtaModel
impl RefUnwindSafe for OtaModel
impl Send for OtaModel
impl Sync for OtaModel
impl Unpin for OtaModel
impl UnsafeUnpin for OtaModel
impl UnwindSafe for OtaModel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more