#values #design #circuit #calc #series #calculate #resistor

bin+lib resistor-calc

一个用于计算电路设计中最接近电阻值的 Rust 库

1 个不稳定版本

使用旧的 Rust 2015

0.1.0 2018年5月16日

#52 in #calc

MIT 许可证

18KB
287

Crates.io Docs.rs

电路设计的电阻值优化器。

当提供一组电阻 R1, R2, ... 的约束和关系时,它可以按误差增大的顺序展示标准系列值。

示例

给定以下电阻网络

diagram

其中 VADJ 必须保持在 0.8v,当 R2 从无到全电阻变化时,VOUT 从 6v 变化到 12v

然后我们可以通过以下约束来描述问题,以及一些额外的界限来消除过小或过大的值,这可能会导致电流问题。

extern crate resistor_calc;

use resistor_calc::*;

fn main() {
    let rcalc = RCalc::new(vec![&E24, &E6, &E24]);

    println!("Number of combinations: {}", rcalc.combinations());

    let res = rcalc
        .calc(
            ROpBuilder::new()
                .bound("R1+R2+R3 <= 1e6")
                .bound("R1+R2+R3 >= 1e4")
                .bound("0.8 * (1 + R1/R3) ~ 6.0")
                .bound("0.8 * (1 + (R1+R2)/R3) ~ 12.0")
                .finish(),
        )
        .expect("Error: No values satisfy requirements");

    res.print_best();
}

运行此示例产生以下结果

Number of combinations: 1185408
Match 1:
Error: 0.000
Values: R1: 13K, R2: 15K, R3: 2K

Match 2:
Error: 0.000
Values: R1: 130K, R2: 150K, R3: 20K

依赖项

~600KB
~12K SLoC