安全可调式调节器

时间:2024-09-20

  1显示了需要调节 LM350(LM317)可调稳压器的输出电压时的典型使用方法。

  该电压大致如下:
  eo = Vref * (R2/R1 + 1)
  电位器 R2 通常是电路中不可靠的部分。如上式所示,电位器故障(例如,接触不良、断路)会使 R2 的有效值达到值,从而使输出电压也达到值 — 仅比输入电压低约 1.5 V。

  当调整次数很少且负载的安全性并不重要时,这可能不是一个很大的问题。但是,当您想要频繁调整,或者事先不知道负载时(例如实验室电源的情况),图 2a中的电路可能是更好的选择。

  但是,该电路无法将其输出电压调节至下限Vref;这是它的局限性。

  有几种安全可调稳压器的替代配置,或多或少可以避免过度使用带来的危险。安全的情况是输出电压非常接近 Vref,需要 3 或 4 个额外部件(即电阻器和晶体管);因此,让我们看看图 2b中更具妥协性的配置。

  此电路可以调节输出电压至下限 Vref。输出电压(如果电位器 Rp 发生故障)约为 2…5 伏,这是一个折衷方案。
  由于图2c中的电路计算不是很简单,因此这里将以Python代码的形式提供一些计算路径。
  该电路具有两个输出电压范围:eo11 至 eo12 和 eo21 至 eo22(见代码)。范围由开关 Sw(例如 nJFET、nFET 或任何良好的机械簧片继电器)选择。
  请注意:如果电阻器 R11 和 Rp 太大,无法提供稳压器 IC 所需的负载( 10 mA),则如果总负载太轻,输出可能会失控。
  为了避免这种情况,开始计算并选择 R11 的任何适当值可能是更明智的做法。
  您还必须提供 Rp 和范围的值。
  此代码计算 R22 和 R23:
  #-代码开始
  R11=560 # 欧姆
  Rpot=2180 # 欧姆
  eo11=1.25 #V
  eo12=5.6 #V
  eo21=5.4 #V
  eo22=23.0 #V
  Vref=1.25 #V
  打印()
  # 设
  K12 = eo12/Vref – 1
  K21 = eo21/Vref – 1
  K22 = eo22/Vref – 1
  Rp = Rpot
  从数学导入 sqrt
  def checkEq(R11, R22, R23):
  Rx=R11 – Ra/K12
  如果 Rx != 0: print(“Err R11:”, Rx)
  Rx=R22*R23/(R22+R23) – K21*(Rp+R11)
  如果 Rx != 0: 打印(“Err (2):”, Rx)
  Rx=R11 – (R22*(Rp+R23)/(R22+Rp+R23) / K22)
  如果 Rx != 0: 打印(“Err (3):”, Rx)
  返回
  def par(r1,r2): 返回(r1*r2/(r1+r2))
  eo=eo12
  R1 = R11
  R2 = R1*((eo/Vref) -1)
  R22 = R2*Rpot / (Rpot – R2)
  eo=eo21 #5.1V
  #R1 = R11 + R21*Rpot / (R21 + Rpot)
  #R2 = R1*(eo/Vref -1)
  #R23 = R2
  #eo=eo22 #24V ??
  #R1 = R11
  #R2 = R23 + R22*Rpot / (R22 + Rpot)
  #eo = Vref*(R2/R1 + 1)
  #eo22 = eo
  #设
  K12 = eo12/Vref – 1
  K21 = eo21/Vref – 1
  K22 = eo22/Vref – 1
  Rp = Rpot
  Ra = par(Rp,R22)
  w3=K22/K21
  A=w3*(R22 – K21*Rp) – R22
  B=w3*R22*(R22+Rp) – Rp*(w3*K21*(Rp+R22)-R22) – R22*R22
  C =Rp*R22*(0-w3*K21*(R22+Rp)-R22)
  Q=B*B – 4*A*C
  #print(A, B, C, Q)
  if Q<0: exit(” 退出:Q<0,尝试 R11、Rpot 或范围的其他值”)
  R23_1 = (0-B + sqrt(Q)) /2/A
  R23_2 = (0-B – sqrt(Q)) /2/A
  print(” R23_1, R23_2=”, R23_1, R23_2)
  # 因为 R23 应该 > 0:
  如果 R23_1>0: R23=R23_1
  elif R23_2>0: R23=R23_2
  else: print(“错误: R23_1 和 R23_2 都不是正数”)
  # 重新计算 eoij 以进行一致性检查
  eo12=Vref*(par(Rp,R22)/R11 +1)
  eo21=Vref*(par(R23,R22)/(Rp+R11) +1)
  eo22=Vref*(par(R22,R23+Rp)/R11 +1)
  # 更新
  K12 = eo12/Vref – 1
  K21 = eo21/Vref – 1
  K22 = eo22/Vref – 1
  打印(“图 2c:”,f” eo12={eo12:.2f}”,f” eo21={eo21:.2f}”,f” eo22={eo22:.2f}”)
  打印(“图 2c:”,f” Rpot={Rpot:.1f}”,f” R11={R11:.1f}”,f” R22={R22:.1f}”,f” R23={R23:.1f}”)
  checkEq(R11, R22, R23)
  # 由于我们得到的解决方案可能非常敏感,因为在其附近可能存在奇点(即电阻值的微小偏差会对电压产生很大影响) - 因此得出 2 个结论:
  # - 电阻 R11、R22、R23 的公差不得低于 1%;
  # - 上述解决方案必须被视为初步解决方案,因此我们将通过以下代码使其更:
  R23lim=100*R23
  R23=R23/3
  当 R23 < R23lim 时:
  eo21_x??=Vref*(par(R23,R22)/(Rp+R11) +1)
  eo22_x=Vref*(par(R22,R23+Rp)/R11 +1)
  如果 eo21_x?? – eo21 > 0.2:中断
  如果 abs(eo22 – eo22_x) < 0.1:中断 # 如果 eo22-x – eo22 < 0.1:中断
  R23 += 10 # +10 欧姆
  否则:退出(“全周期”)
  打印(f” eo21={eo21_x??:.2f}”,f” eo22={eo22_x:.2f}”,f” R23={R23:.1f}”)
  #-代码结束-
  来自调整端的 50 μA(典型值)电流 iA(代表误差项)在 R23 上产生压降。该压降与标称 1.25V 的参考电压 Vref 一起决定了电位器 Rp 发生故障时的输出电压:
  eoBreak = iA * R22 + Vref
  因此,当降低 R22 的值时,可以在一定程度上降低 eoBreak 的值。
上一篇:运算放大器消除了 DPOT 电位器电阻
下一篇:使用 Arduino 构建电阻色码计算器和欧姆表

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料