ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Proteus仿真电压比较器:从单限比较器到滞回电路设计与调试

Proteus仿真电压比较器:从单限比较器到滞回电路设计与调试 做硬件的人应该都经历过这种场景实物电路焊好了上电一瞬间比较器输出直接给你一串方波输入端明明是个缓慢变化的电压输出却在疯狂跳变。拿示波器一怼才发现是输入信号稍微抖一下就跨越了阈值比较器在这儿不停翻转。这种问题在仿真里五分钟就能定位在实物上却要花半天排查。这也是我今天想聊Proteus仿真电压比较器的原因——用仿真把电路逻辑理清楚再移植到实物能省掉大量无意义的调试时间。这篇文章会从电压比较器的基础原理、常见方案选型讲起再到Proteus里完整的电路搭建、示波器测量、常见坑位排查全程按实际操作的顺序写。适合正在学模拟电路的学生、刚接触Proteus的电子爱好者以及想快速验证比较器逻辑的工程师参考。内容不搞纸上谈兵每一节都能对照着软件实际操作一遍。1. 为什么用Proteus仿真电压比较器而不直接上实物1.1 Proteus在电路验证中的角色定位Proteus最大的优势不在仿真精度而在“快”。你放一个LM393、接几个电阻、打开虚拟示波器整个过程一小时内就能看到完整的输入输出波形。如果在实物上做同样的事情先找元件、搭洞洞板、接电源、接信号源、接示波器探头光准备工作就够折腾更别提信号源和示波器不是每个实验室都随时有空。Proteus里做比较器仿真本质上是把“电路逻辑验证”这一环从实物调试中抽离出来。它解决的核心问题是你的电路设计思路对不对比较阈值算得准不准输出波形是否符合预期至于开关速度、延迟、噪声这些精细参数Proteus的模型精度确实有限但作为前期逻辑验证完全够用。很多初学者误会了仿真的定位以为仿真结果等于实物结果。实际上仿真验证的是“电路结构正确性”实物验证的是“物理实现可行性”。两者配合才是完整开发流程。比如后文要讲的滞回比较器仿真里观察到的翻转点与理论计算值几乎一致这个结论足够支撑你把电路画进PCB。1.2 电压比较器仿真的核心价值电压比较器这个电路听起来简单——两个输入端一个比另一个高就输出高电平反之输出低电平。但真正做起来就会遇到一堆“理论没讲”的问题运放开环做比较器输出翻转时会不会振荡输入信号在阈值附近抖动输出会不会跟着狂闪集电极开路输出的比较器上拉电阻选多大合适反相输入和同相输入的接法对输出极性有什么影响这些问题在Proteus里都能很直观地看到波形从而理解背后的原理。仿真最大的价值在于“可视化”——把抽象的电平比较过程变成屏幕上的波形图阈值翻转的瞬间一目了然。另外Proteus的虚拟仪器不用额外接线虚拟示波器、虚拟信号发生器都直接拖出来就能用。对刚接触电子设计的学生来说这种低门槛的验证方式非常友好。你可以放心大胆地修改参数看不同电阻值对阈值的影响这种探索式学习的效率远高于照搬公式死记硬背。2. 电压比较器方案选型运放还是专用比较器2.1 运放开环做比较器为什么我不推荐教科书上常讲运放工作在开环状态就是比较器——同相端高于反相端输出饱和到正电源反之饱和到负电源。理论没错但实际用起来有几个坑。最典型的问题是运放的响应速度。普通运放如LM358压摆率只有0.3V/µs左右意思是输出从低到高翻转一次就要好几微秒。如果输入信号频率较高输出波形会出现明显的倾斜不再是干净利落的方波。更要命的是运放在线性区和饱和区之间切换时内部补偿电容充放电需要时间容易在翻转瞬间产生振铃。第二个问题是输出摆幅。LM358的输出高电平大约比正电源低1.5V低电平大约比负电源高0.2V这在驱动数字电路时会尴尬单片机IO口识别高电平需要0.7倍电源电压如果比较器输出只有3.5V5V供电逻辑高电平的噪声裕量就很小了。专用比较器如LM393则没有这些问题。它内部设计就是为比较场景优化的响应速度快LM393的响应时间约1.3µs实际电路会受上拉电阻影响输出结构是集电极开路发射极开路电平可以被外部上拉电阻拉到任意需要的电压和3.3V单片机接口就非常方便。2.2 LM393专用比较器为什么它是仿真首选LM393在Proteus里几乎是出场率最高的比较器模型。它是双比较器封装一个芯片里面集成两路独立比较器功耗低单电源或双电源都能工作适应范围很宽。LM393的集电极开路输出在Proteus仿真里同样需要接上拉电阻。这个电阻怎么选从数据手册看输出低电平时的灌电流能力大约是16mA所以上拉电阻的取值要保证输出低电平时电流不超过这个极限。实际常用范围是1kΩ到10kΩ具体选多大取决于负载需求和功耗考虑。我做仿真时一般选10kΩ上拉值一个5V电源。原因很简单10kΩ的灌电流只有0.5mA离LM393的极限还远得很功耗也低测试普通数字电路接口完全够用。如果你要驱动LED指示才需要把上拉阻值降到1kΩ以下以获得足够驱动电流。上拉电阻的位置也有讲究一定要从输出引脚接到正电源VCC而不是GND。这一点比较容易搞反尤其是用惯了图腾柱输出运放的人。LM393输出低电平时内部三极管导通把输出引脚拉到接近GND输出高电平时三极管截止输出引脚靠上拉电阻拉到VCC。这就是集电极开路的工作逻辑。2.3 滞回比较器设计消除抖动问题的关键入门比较器之后遇到的第一个实际问题就是输出抖动。一个缓慢上升的电压穿过阈值时如果叠加了哪怕几十毫伏的噪声输出就会快速翻转多次这在控制电路中是致命的。解决方法就是引入滞回。滞回比较器的核心是正反馈输出电压通过电阻网络反馈到同相输入端让阈值电压随输出状态变化。输出高电平时阈值被抬高输出低电平时阈值被压低。这就形成了两个阈值上升沿触发的高阈值Vth下降沿触发的低阈值Vth-。输入信号必须在Vth-和Vth两个阈值之间来回穿越输出才会翻转这就消除了单阈值比较器的抖动问题。滞回电压ΔV Vth - Vth-大小由反馈电阻和分压电阻的比值决定。滞回太大会导致电路对真实信号不敏感太小又无法滤除噪声实践中通常取信号噪声峰峰值的1.5到2倍。这里要提一句反馈电阻的大小也影响翻转速度阻值太大会明显降低响应速率仿真时如果发现输出波形边沿变缓可以先查一下反馈电阻是不是选大了。3. Proteus实操完整搭建电压比较器仿真电路3.1 Proteus环境准备与元件查找先确认你装了Proteus 8 Professional或者更高版本。不同版本的库略有差异但基本操作是一致的。新建一个项目选择“New Project”画原理图时推荐把“Annotate”选成自动标注方便后面对照元件标号。元件查找是很多人卡壳的地方。比较器LM393在Proteus库里的搜索名是“LM393”运放LM358搜“LM358”需要注意的是搜索结果里可能有多个后缀版本一般选带有“DIP8”封装的那个仿真功能都一样。如果你搜“电压比较器”反而搜不到因为Proteus的库是按芯片型号命名的不是按功能命名的。常用元件及搜素关键词整理如下元件Proteus搜索关键词说明双通道比较器LM393最常用集电极开路输出单通道比较器LM311也可用但LM393更常见通用运放LM358实验用不适合高速比较电阻RES需要手动设置阻值电位器POT-HG用于调整参考电压直流电压源DC电源和参考电压放置元件后双击可以修改属性。电阻的阻值直接填数字单位默认欧姆比如10千欧就填“10K”1千欧就填“1K”。电容如果没有用到可以先不管。电源VCC和GND在“Terminals Mode”里找注意区分POWER和GROUND两种端子前者接电源正极后者接地。3.2 基础单限比较器电路搭建步骤下面从最简单的单限比较器开始搭建。这个电路的逻辑是输入电压超过参考电压输出翻转为高电平低于参考电压输出为低电平。具体步骤如下放置LM393芯片在模型选择面板里搜索“LM393”点击放置在原理图编辑区。放置两个直流电压源一个作为VCC给芯片供电5V一个作为参考电压Vref我这里设成2.5V接在反相输入端。放一个电阻R110kΩ连接LM393的输出引脚到VCC这就是上拉电阻。放置信号源VSINE。在Simulation Mode里选“Generator”放置一个正弦电压源双击设置参数频率设100Hz幅值设2V偏移设2.5V这样信号在0.5V到4.5V之间摆动。把正弦信号接到LM393的同相输入端第3脚参考电压接到反相输入端第2脚。接好VCC第8脚和GND第4脚。接完线后检查一下有没有悬空的引脚。LM393的双比较器封装只用了其中一个通道另一个通道的输入端不能悬空最好将其输入接地或接固定电平否则仿真时可能会出现奇怪的现象。然后放置虚拟示波器。在右侧仪器面板里选“Digital Oscilloscope”点击放置。示波器的通道A接输入信号通道B接输出信号。这里有个细节示波器探头没有方向性但为了看波形方便建议把输入信号接通道A输出接通道B这样屏幕上两个波形的位置不会重叠混乱。点击左下角的运行按钮示波器上就能看到波形了。输入是2V幅值、2.5V偏置的正弦波输出应该是方波正弦波高于2.5V时输出高电平低于2.5V时输出低电平。如果看到输出高电平不是5V而是接近5V但带毛刺可以检查上拉电阻的阻值和示波器是不是接在正确的位置。3.3 滞回比较器实现与计算验证单限比较器搭完试一下滞回比较器。这里需要加一个正反馈电阻从输出接到同相输入端。电路结构在原来的基础上增加一个电阻R2100kΩ连接LM393的输出端到同相输入端第3脚。这时同相输入端的电压不再是单纯的输入信号而是输入信号与输出信号经过电阻分压叠加后的结果。假设输出高电平为5V输出低电平为0V参考电压仍为2.5V接在反向端那么阈值计算要分别讨论两种输出状态。输出高电平时同相端电压由输入信号通过R_fb反馈电阻和输入源内阻分压产生如果R_fb远大于输入源内阻同相端约等于输入信号与5V通过R_fb的叠加输出低电平时同相端电压被0V拉低需要输入信号更高才能触发翻转实际计算中可以用叠加定理同相端电压等于输入电压和输出电压分别作用再相加。设R1为输入电阻比如10kΩR2为反馈电阻100kΩ则输出高电平时Vth Vref × (R1 R2) / R2 - VOH × R1 / R2输出低电平时Vth- Vref × (R1 R2) / R2 - VOL × R1 / R2简化一下当VOH5V、VOL0V、Vref2.5V时Vth 2.5 × 110 / 100 - 5 × 10 / 100 2.75 - 0.5 2.25VVth- 2.5 × 110 / 100 - 0 × 10 / 100 2.75V咦算出来的阈值和直觉相反注意这里正反馈接到同相输入端时输出高电平会把阈值拉高输出低电平会把阈值拉低。重新想一下同相端电压除了输入信号还要叠加上输出电压通过反馈电阻的作用。如果输出为高5V同相端电压被抬升意味着输入电压需要降得更低才能使同相端降到Vref以下所以高电平状态对应的翻转点是较低的Vth-输出为低时同理。实际电路的阈值翻转过程是输入电压从低升高此刻输出为低0V同相端电压等于输入电压当输入电压升到Vth时同相端超过Vref比较器输出翻转为高输出变为5V后同相端电压突然跳升一个台阶即使输入电压略下降输出仍保持高直到输入电压降到Vth-此值比Vth低输出才翻转为低修正一下计算。设输入经R1接同相端反馈经R2也接同相端。叠加定理V Vin × R2 / (R1 R2) Vout × R1 / (R1 R2)翻转条件V Vref输出低Vout0V时输入需达到的阈值 Vth Vref × (R1 R2) / R2 2.5 × 110 / 100 2.75V输出高Vout5V时输入需降到的阈值 Vth- [Vref × (R1 R2) - 5 × R1] / R2 [2.5 × 110 - 5 × 10] / 100 225 / 100 2.25V所以Vth2.75VVth-2.25V滞回宽度0.5V。在Proteus里你可以在示波器上验证正弦波上升过程中输出在输入约2.75V时翻转下降过程中输出在输入约2.25V时翻转。两个翻转点不重合中间相差0.5V这就对了。需要说明的是Proteus仿真中的运放和比较器模型是理想化的实际芯片有输入失调电压、输入偏置电流等参数翻转点会和理论值有偏差但偏差不大。滞回宽度0.5V已经远大于常见噪声幅度实际电路工作起来会很稳定。3.4 信号发生器与示波器的正确打开方式Proteus的虚拟信号发生器和虚拟示波器用起来有几个容易出错的地方。信号发生器VSINE双击后需要设置三个参数Frequency频率、Amplitude幅值和Offset偏移。很多新手分不清幅值和峰峰值导致实际看到的波形和预想不一致。这里明确一下Amplitude填的是幅值峰值不是峰峰值。一个峰峰值4V的正弦波Amplitude要填2V。Offset是直流偏置填2.5V的意思是这个正弦波以2.5V为中心上下摆动最高4.5V、最低0.5V。示波器通道的Y轴增益也要注意。Proteus虚拟示波器每个通道有默认的电压刻度如果信号幅值远大于刻度范围波形就会在屏幕上削顶或者看不清。建议把通道A和通道B的刻度都设在1V/Div左右这样0到5V的信号在屏幕上的幅度大约5格比较清晰。B通道因为是数字方波也可以设在2V/Div。示波器的触发设置很关键。默认是自动触发模式如果信号稳定直接就能看到波形。但如果你发现波形在水平方向跑来跑去不稳定把触发源选成通道B输出方波触发电平设在2.5V左右波形就锁住了。这里补一句很多人觉得Proteus的示波器不如真实示波器好用确实功能简单了些但用来观察比较器翻转逻辑完全够了。我在实操中习惯把仿真时间步长调小一点。点击菜单Simulate → Animation Options把“Sweep”里的步长调成2µs左右波形会平滑很多。步长太大容易看到阶梯状波形步长太小仿真速度又会被拖慢需要平衡一下。4. 仿真中常见的坑与排查思路4.1 输出一直低电平翻转不了这是最常遇到的问题。电路接完示波器显示输出一直为低输入正弦波已经明显高于参考电压了输出就是不动。排查顺序从电源开始先看LM393的VCC引脚是不是真的接上了5V。Proteus里很多芯片默认VCC脚在属性面板中不会自动连到电源网络需要手动连线或标注“5V”网络标签。再看输入信号到底有没有正确叠加到运放输入端。双击信号发生器看输出类型是不是“Sine”幅值和频率对不对可能你把频率设成了几千赫兹示波器时间轴又设在毫秒级波形叠在一起看不出翻转。这时把示波器的时间轴调快或者把信号频率降到100Hz以下现象就明显了。最后检查上拉电阻是否真的连接在输出引脚和VCC之间。LM393的集电极开路输出如果没有上拉电阻输出引脚是悬空的高电平状态无法建立示波器看到的永远是低电平。这一步在仿真里特别容易忽略——因为电路图看起来好像“没问题”但少了一个电阻整个逻辑就全错了。4.2 输出波形出现振荡或毛刺这个问题在单限比较器上最常见。正弦波缓慢穿过阈值时输出不是干净的一次翻转而是快速来回翻转多次看起来像振荡。原因是输入信号在阈值附近有微小噪声或者信号本身上升速率太慢导致在阈值附近停留时间较长。真实电路中解决方法是加滞回仿真中可以先检查信号源是否为理想正弦波——如果有叠加噪声需要调整信号源参数但Proteus的VSINE默认是不带噪声的。如果在仿真里看到输出翻转点附近的毛刺更可能是步长太大导致的数值仿真误差。把仿真步长调小例如500ns波形毛刺通常会消失。这里强调一下不要为了追求仿真速度把步长设得很大模拟电路仿真对步长非常敏感步长过大可能产生不存在的振荡假象这比实物问题更难排查。4.3 比较器输出高电平不是5VLM393是集电极开路输出输出高电平完全依赖于上拉电阻和VCC。如果示波器看到输出高电平只有3V而你的VCC是5V说明上拉电阻和负载分压了。最常见的情况是示波器通道的输入阻抗默认较高不至于拉低电平。但如果你在输出端接了一个LED或继电器等负载负载电流就会在上拉电阻上产生压降。10kΩ上拉、5V供电当负载电流0.5mA时压降只有0.5V问题不大如果负载电流达到5mA压降就有5V输出直接拉不到高电平了。所以驱动重负载时上拉电阻要相应减小或者改用图腾柱输出的比较器/运放。在仿真里测电路时如果想验证空载输出可以把负载暂时断开确认高电平是否正确再接上负载看压降情况两步分开排查比较容易定位问题。4.4 常见问题速查表现象可能原因排查方法输出恒为低上拉电阻缺失VCC未连接检查上拉电阻和电源网络输出恒为高输入信号未接入反相端和同相端接反检查输入端极性翻转点与计算不一致参考电压设置错误分压电阻选错实测各节点电压输出方波边沿不陡上拉电阻太大仿真步长太大减小上拉电阻调小步长翻转时振荡缺少滞回输入噪声大加正反馈电阻输出高电平偏低上拉电阻压降负载过重减小上拉电阻或减小负载4.5 一个实际的排查案例有一次我做窗口比较器仿真就是两个比较器组合一个负责检测上限一个负责检测下限。电路搭好后输出始终没有反应检查了半天也没发现连线错误。后来我用虚拟仪表里的电压表逐个节点测量电压发现第二个比较器的同相输入端电压始终是0V。仔细看才发现我忘记给第二个比较器的输入分压电阻接电源了两截网络没有连通。在Protues里肉眼看到两个元件“靠得很近”不代表它们在电气上连接了必须确认连线上有节点才会真正导通。那次之后我做任何仿真都会先把探头逐个节点测一遍电压。这个习惯救了很多次场强烈建议你也养成。虚拟电压表虽然不如示波器直观但用来检查直流工作点非常高效尤其是多级电路一级一级查过去总能找到问题所在。5. 从仿真到实物Proteus之外还要注意什么5.1 仿真与实物的差异点仿真通过之后PCB打样出来焊好却发现电路行为和仿真不完全一致这种情况我遇到过不止一次。差异主要来自三个方面。LM393的Proteus模型没有完整建模输入偏置电流、输入失调电压和响应延时。如果你的输入电阻很大比如用到1MΩ级别偏置电流在上面的压降就会明显影响翻转阈值仿真里看不出偏差实物上就偏了。所以设计时尽量把输入电阻控制在100kΩ以下让偏置电流的影响可以忽略。实物电路中的电源噪声和地弹效应是仿真模型里没有的。比较器对阈值附近的噪声相当敏感即便设计了滞回如果滞回宽度不够大或噪声远超预期仍可能出现额外翻转。实物调试时可以在电源引脚旁加0.1µF去耦电容这是最简单有效的措施。最后就是比较器输出的驱动能力。LM393集电极开路输出灌电流能力强拉电流能力为零——所谓拉电流全靠上拉电阻。如果你要驱动一个需要正电流的负载比如LED接在输出到地之间你的思路就反了。正确接法是LED接在VCC和输出之间输出低电平时LED点亮这是集电极开路输出的典型用法。5.2 由浅入深比较器仿真的扩展练习如果这篇文章的仿真你都跟练了一遍可以再给自己加几个扩展练习巩固理解。做一个窗口比较器——使用LM393的两个通道一个设上限阈值一个设下限阈值输入信号在窗口内输出一种电平高于上限或低于下限输出另一种电平。这个电路在电池电压监测、温度报警中很常见。做一个方波发生器——比较器加RC正反馈网络就是经典的多谐振荡器。用滞回比较器加电容充放电输出就是方波这是比较器非常经典的应用电路。仿真中可以观察电容电压的三角波和比较器输出的方波之间的相位关系。做一个光控开关仿真——用光敏电阻作输入比较器输出控制LED或继电器这就是一个完整的传感控制小系统。Proteus有光敏电阻模型整体仿真效果很直观适合作为课程设计的基础电路。这些扩展练习的共性在于都在用比较器的“两个状态”做逻辑决策。理解了这个核心思想电压比较器就不是一个孤立的芯片而是无数自动控制电路的基础单元。做仿真这件事我个人有个经验不要追求一步到位先把最简单的不带滞回的电路跑通理解比较器翻转的基本逻辑再加上滞回再玩组合电路。每加一个功能就实测一次波形确认这一步的结果符合预期再继续。这样即使后面出了问题也知道往回退到哪一步去排查。电压比较器本身不算难难的是把各种非理想因素都考虑进去而Proteus正好给了你一个可以反复试错的低成本环境——这大概就是仿真最值得投入时间的地方。
返回列表