Python3电子分析纸条

2024-05-28 20:44:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望有人能给我指出一个我想改进的剧本的正确方向。我正在学习电子学,并编写了一些Python脚本来帮助计算。我已经写了一个小的基本脚本,它可以帮助我计算一个晶体管放大器的正确电阻值。你知道吗

我遇到的问题是,当计算所需的电阻时,我得到的值与标准电阻值不匹配。你知道吗

例如:

标准电阻值:100、150、275、340、420、550

脚本中的计算结果给了我176的电阻值。你知道吗

如何使用Python选择最接近的标准值。你知道吗

如果计算值是176,那么另一行文字会说“为电路选择一个150电阻”

我知道我可以使用列表,这样我就可以引用值,但我只需要一个小样本,我如何把脚本放在一起,以显示实际值,然后引用列表中的标准值。你知道吗

希望这有意义。非常感谢您的帮助。你知道吗

我的剧本很基础,但它做的工作。稍后会有改进。你知道吗

Av = 15
Rc = 3300
Vs = 10
Vc = 6
beta = 100

Re = Rc / Av
Ic = (Vs - Vc) / Rc
Ve = Re * Ic
Vb = Ve + 0.7
Ib = Ic / beta
I2 = 10 * Ib
R2 = Vb / I2
R1 = (Vs - Vb) / (I2 + Ib)

print ('Re =',Re)
print ('Ve =',Ve)
print ('Vb =',Vb)
print ('Ic =',Ic)
print ('Ib =',Ib)
print ('I2 =',I2)
print ('R2 =',R2)
print ('R1 =',R1)

它计算晶体管每个部分的电压和电流,并根据提供的增益和电压等显示R2和R1所需的值


Tags: re脚本veibvsrcvbr2
3条回答
3>> import bisect
3>> e12brown = [100, 120, 150, 180, 220, 270, 330, 390, 470, 560, 680, 820]
3>> e12brown[bisect.bisect(e12brown, 170) - 1]
150
3>> e12brown[bisect.bisect(e12brown, 170)]
180
def closestToR(l, R):

    from operator import itemgetter     

    tupleList = zip(l,  [ abs(x - R) for x in l ])

    closeToR, delta  = sorted(tupleList, key=itemgetter(1)).pop(0)

    print("R = {}     delta = {}".format(closeToR, delta))     

l=[100、150、275、340、420、550]

R=179

R=150δ=29

使用对分模块找到插入点,然后考虑比插入点小1。。你知道吗

from bisect import bisect

def find_closest(v, options):
   i = bisect(options, v)
   if i == len(options):
       return options[-1]
   elif i == 0:
       return options[0]
   else:
       low, high = options[i-1:i+1]
       return low if (high-v) > (v-low) else high

standard_values = [100, 150, 275, 340, 420, 550]
answer = 176
print(find_closest(answer, standard_values))

相关问题 更多 >

    热门问题