Multisim模电实验:基于文氏桥的简易函数信号发生器设计与调试 [Multisim][模电实验]简易函数信号发生器的设计与实现_北京邮电大学2019级信通院电子电路实验下每年到了电子电路实验下这门课总会有一批人卡在函数信号发生器这个题目上。单独看原理文氏桥振荡、比较器、积分器每个模块都不算难但真要在Multisim里把正弦波、方波、三角波三路波形同时调出来并且让频率、幅度都能稳定调节坑还是挺多的。尤其是仿真软件本身的数据库问题、瞬态分析的收敛问题、示波器读数的问题经常让初学者在电路之外耗掉大半时间。这篇东西就围绕“简易函数信号发生器的设计与实现”这个实验把我自己调试过程中的方案选择、参数计算、仿真设置和踩坑记录整理成文。适合正在做同类模电实验的同学参考也适合想用Multisim做信号源仿真但还没摸清套路的人。1. 实验需求与整体设计方案1.1 实验目标拆解这个实验的题目虽然叫“简易函数信号发生器”但要求其实并不简单。通常设计指标包括输出正弦波、方波、三角波三种波形频率在几十赫兹到几十千赫兹范围内可调幅度可调并且波形失真尽可能小。从“北京邮电大学2019级信通院电子电路实验下”这个背景来看这门课的核心目标不是让你做一个产品级信号源而是考察三件事第一你对基本模拟单元电路振荡、比较、积分的理解程度第二你用Multisim进行电路仿真与调试的能力第三你能否把多个子模块连成一个能正常工作的系统。所以设计时不能只求“仿真能出波形”更要理解每个模块之间的负载关系、阻抗匹配和频率协调问题。1.2 方案选型为什么最终采用“文氏桥比较器积分器”结构实现函数信号发生器常见路线有三条。第一条是直接用一个现成的函数信号发生器芯片比如ICL8038或MAX038。这个方案最简单几乎不需要额外设计但问题是它绕开了模电课想让你练习的核心内容而且Multisim里这些芯片的模型不一定有仿真时反而容易出幺蛾子。第二条是纯数字方案用DDS直接数字频率合成芯片或者单片机查表输出波形再经过DAC和滤波。这个方案在现代仪器里确实很常见频率精度和稳定度都很好但放在“电子电路实验下”这门课里它属于数字逻辑和嵌入式的内容跟模电的关联度不高实验报告里也不容易展示运放、比较器、积分器这些核心知识点。第三条也是绝大多数人最终采用的方案就是先做正弦波振荡器再通过电平比较器将正弦波整形为方波最后用积分器对方波积分得到三角波。这个方案的好处非常明显三个波形对应三种典型的模拟电路单元整个信号链路是一个自然的级联关系既符合实验课的教学目标又能在Multisim里用最常见的运放和R-C元件完整搭出来。实际设计时我选择的是文氏桥振荡器做正弦波源。原因很简单文氏桥的振荡频率由RC网络决定调节方便波形失真小而且在Multisim里加上热敏电阻或二极管稳幅网络后仿真收敛性比LC振荡器稳定得多。相比之下LC振荡器在高频段虽然优势明显但在这个实验要求的几十kHz频率范围内文氏桥完全够用而且元件的寄生参数影响小电路结构也更直观。2. Multisim环境准备与常见坑位排查2.1 主数据库无法访问与元件库错乱的解决思路绝大多数人第一次打开Multisim做这个实验遇到的头号问题不是电路不工作而是软件提示“主数据库无法访问”或者“访问数据库时发生错误”。这个问题在网上被反复提起几乎成了Multisim的经典玄学问题。我自己的排查经验是按下面这个顺序来。先看杀毒软件和系统防护。Multisim安装后需要读取位于ProgramData或安装目录下的数据库文件很多安全软件会默认拦截它对系统目录的写入操作导致数据库索引无法生成。处理方法是将Multisim的安装目录和数据库目录加入白名单然后以管理员身份重新启动软件。再看数据库文件是否损坏。Multisim的数据库文件是MasterDB和UserDB这两个关键文件如果之前非正常退出、清理过临时文件或者从低版本导入过旧数据库这两个文件很容易出现损坏或路径错乱。处理方法是在Multisim的Options菜单里打开Global Preferences找到Database选项卡手动重置数据库路径必要时可以删除UserDB让它重新生成。如果以上两步都无效最后的手段是重装软件。但重装前一定记得备份自己的电路文件和自定义元件。我有一次就是没备份重装后辛辛苦苦添加的自定义元件全没了仿真时找不到器件白白浪费了一下午。2.2 仿真速度慢与元件库消失的应对技巧Multisim仿真速度慢很多人以为是电脑配置不行其实大多数时候是仿真步长和精度设置的问题。尤其是瞬态分析Transient时软件默认的计算步长非常保守如果电路里又带有反馈环节比如文氏桥这种带正反馈和负反馈的振荡结构仿真会变得异常慢甚至卡死。我的做法是主动调整瞬态分析的参数。在Simulate菜单下选择Analysis and Simulation找到Transient Analysis手动设置Start Time和End Time最重要的是把Maximum Time Step从Auto改为手动。对于这个实验最大步长设置在1e-6到1e-5秒之间比较合适既能保证波形细节又不会因为步长太细导致仿真时间爆炸。至于元件库没了的问题多半是软件界面显示异常而不是元件真的被删了。可以尝试在View菜单里切换元器件面板或者恢复默认视图布局。如果整个器件库面板完全空白检查一下安装目录下的database文件夹是否存在这个文件夹一旦被清理软件误删元件库就会全部消失这时候只能通过重新安装或从其他电脑拷贝对应文件夹来恢复。3. 核心电路设计从文氏桥到三波形输出3.1 文氏桥正弦波振荡器设计文氏桥振荡器的核心是一个由R1、C1串联和R2、C2并联构成的选频网络。选频网络的反馈系数在谐振频率处达到最大值且相移为零这样电路就只在这一频率上满足振荡条件。选频网络的谐振频率为f 1 / (2π√(R1R2C1C2))当R1R2R、C1C2C时可以简化为f 1 / (2πRC)我设计时取R16kΩC10nF计算得到f约等于1kHz。三个量程用开关切换电容值10nF对应1kHz附近100nF对应100Hz档位1nF对应10kHz档位再用一个50kΩ同轴电位器与R串联实现频率微调。这样整个振荡器可以覆盖约100Hz到20kHz的范围满足实验要求。电路确定后要进行起振验证。文氏桥振荡器要满足两个条件起振时环路增益略大于1稳定工作时环路增益自动回到1。实现方式是在负反馈回路中加入非线性元件最常用的是两个反向并联的二极管利用二极管在小信号时等效电阻大、大信号时电阻减小的特性来自动调节反馈深度。这里要特别注意一个坑负反馈回路中使用的运放如果是单电源供电必须把同相端偏置到Vcc/2否则电路不会起振。很多人在Multisim里搭好电路发现输出一直是0就是因为运放没有加直流偏置。在Multisim中我建议在仿真前用Multisim的“Initial Condition”功能给振荡电容设置一个较小的初始电压比如0.1V。这样能让电路快速起振不用等漫长的建立过程。用示波器观察运放输出端正常情况下应该看到从微小幅度逐渐增大、最终稳定在某一幅度的正弦波。3.2 比较器与方波整形电路方波是通过正弦波整形得到的核心电路是同相滞回比较器施密特触发器。相比普通过零比较器滞回比较器有正反馈抗干扰能力强方波边沿更陡峭而且可以避免正弦波经过零点的瞬间抖动导致方波边缘出现毛刺。滞回比较器的阈值计算比较关键。以同相输入滞回比较器为例正反馈电阻为R4输入电阻为R3输出高电平为VOH低电平为VOL则上门限阈值和下门限阈值分别为VTH R4/(R3R4) × VOH VTL R4/(R3R4) × VOL假设运放供电为±12V输出饱和电压约为±10V取R310kΩR420kΩ则VTH 10/(1020) × 10 ≈ 3.33V VTL 10/(1020) × (-10) ≈ -3.33V也就是说输入正弦波的幅度只要超过±3.33V比较器就能稳定翻转输出方波。如果正弦波输出幅度不够需要在前级加一级同相放大器或者调整一下二极管的类型来改变稳幅后的最终幅度。这里我强烈推荐用运放构成的比例放大器把正弦波幅度先放大到约±5V再送给比较器。这样比较器的阈值设计就有更大的冗余不至于因为文氏桥输出幅度偏低而让方波完全出不来。3.3 积分器与三角波生成三角波由方波积分得到核心电路是把运放接成积分器方波信号通过输入电阻加到反相端反馈电容跨接在输出与反相端之间。积分器输出波形斜率由方波幅度和积分时间常数决定。设方波高电平为Vs低电平为-Vs输入电阻为R5反馈电容为C3则三角波幅度为Vout (1/(R5C3)) × ∫Vin dt方波半周期为T/2因此三角波峰值可以近似为Vpp ≈ (Vs × T/2) / (R5C3)这里T是方波周期。取R510kΩC310nF输入方波幅度约5V频率1kHz则Vpp ≈ (5 × 0.5ms) / (10kΩ × 10nF) ≈ 0.25V这个幅度偏小实际使用中需要根据目标频率调整积分器的R5或C3。如果要让100Hz到20kHz频率范围内三角波幅度保持一致最简单的办法不是修改积分参数而是在积分器后面加一个自动增益控制或手动调节的幅度电位器否则低频段三角波幅度会明显大于高频段。积分电路还有一个常见问题直流失调会随着积分不断累积最终导致运放输出漂移到饱和。最简单的解决办法是在反馈电容C3两端并联一个大电阻比如1MΩ给直流提供一个放电通路相当于把纯积分器改成低通滤波器极性增益频率以上的信号仍然保持积分特性。这个电阻值不能太小否则低频端三角波会变成指数形状失真明显。3.4 输出级与幅度调节三种波形生成之后还需要一个输出级来调节幅度和驱动负载。最简单的方案是用一个反相比例放大器前级通过三个电阻分别引入正弦波、方波、三角波用选择开关决定输出哪种波形再通过电位器调整最终幅度。我实际使用的输出级电路是三个波形分别经过10kΩ输入电阻接入同一个反相放大器放大器的反馈电阻是100kΩ电位器输出幅度就可以从0到约10倍连续调节。这个方案的优点在于结构简单只有一个运放而且反相放大器的输入电阻高、输出阻抗低非常适合直接接示波器或后级电路。这里需要提醒一个细节Multisim里接示波器时如果只看一路输出波形默认的示波器通道A、B都要接地很多人只接了信号线忘了接地示波器屏幕上就是一条直线。检查示波器接线其实是排查“波形不显示”问题时最先要看的地方。4. Multisim仿真过程与关键参数调试4.1 瞬态分析的参数设置思路在做这个电路仿真时我推荐直接使用Multisim的瞬态分析而不是用示波器挂在那里看。瞬态分析的优点是可以精确控制仿真时间范围和步长不会因为示波器刷新率的问题错过关键的起振过程。具体参数可以这样设置开始时间Start Time设成0结束时间End Time根据振荡频率来定。如果要观察稳定后的波形仿真时长至少要包含10个以上的完整振荡周期。比如频率1kHz时周期是1ms仿真时长就设为0到20ms。最大步长Maximum Time Step设为周期的百分之一也就是1e-5秒。这样仿真的计算量适中波形也比较平滑。如果波形不够平滑不要立刻把最大步长调小而是先检查电容、电阻的数值是否有不切实际的极端值。Multisim里某些电容如果设成0.001pF、某些电阻如果设成0.01Ω这种极端值瞬态分析会为了满足精度要求而把步长压到极小仿真时间瞬间爆炸。这是仿真速度慢的另一个隐藏原因比单纯调步长更值得注意。4.2 示波器占空比与波形测量的正确姿势热搜词里有“multisim 中示波器占空比”说明很多人卡在这个地方。Multisim 14以上的版本中示波器界面中间偏下位置有测量参数显示区域可以直接显示频率、峰峰值、上升时间等参数但占空比不一定在所有版本里都直接给出。如果你想用示波器量化方波的占空比最简单的办法是把时间轴标尺拖到方波的一个上升沿再拖到相邻的下降沿读取高电平持续时间T_high然后用周期T减去高电平时间得到低电平时间占空比就是T_high/T。直接观察测量读数特别是“Duty Cycle”字段即可如果软件版本没有这个字段那就用标尺手工测量两分钟也能搞定。还有一个容易被忽略的问题方波的占空比为什么不是精确的50%。这跟比较器的阈值设置有关。正弦波不一定是完全对称的如果文氏桥振荡器的输出有直流分量比较器的两个阈值看起来对称但实际翻转点不对称。所以方波的占空比也能反向反映前级正弦波的对称性。如果方波占空比偏差太大先检查正弦波是不是有直流偏置。4.3 频率测量与校准Multisim自带的频率计XFC1可以直接测频率也可以用来跟示波器的频率读数做交叉验证。我在仿真中发现示波器的频率读数和频率计的读数偶尔会有微小差别这通常不是电路问题而是显示刷新率和仿真步长造成的误差。校准频率时应该以频率计为准因为它的测频原理是闸门计数本质上更接近真实仪器的测量方式。频率调节时的线性度也是一个值得关注的指标。使用同轴电位器调节频率时频率变化不是线性的而是近似指数关系。仿真时可以分别把电位器调到最小、中间、最大三个位置记录三种波形频率检查是否覆盖目标频段。如果高频档位覆盖不够可以通过调整对应的量程电容来修正。5. 常见问题速查与仿真排查技巧5.1 高频问题汇总表我在调试过程中遇到的问题以及网络上高频出现的反馈整理成下面这张速查表方便遇到问题时对照排查问题现象可能原因解决办法主数据库无法访问数据库权限受限或文件损坏管理员身份运行将安装目录加入杀毒白名单元件库消失数据库文件夹被误删从其他电脑拷贝或重装软件仿真速度极慢瞬态分析步长过细或电容/电阻值极端手动设置最大步长至1e-5秒检查元件标称值合理性文氏桥不起振负反馈过深或缺少初始条件减小反馈电阻增大正反馈设置初始电容电压正弦波失真严重稳幅二极管参数不合适或增益过高调整负反馈电阻确保环路增益在2.5到3之间方波占空比偏离50%正弦波含直流分量或阈值不对称检查正弦波偏置调整比较器电阻分压比三角波幅度随频率变化明显积分时间常数与频率不匹配修改积分器RC参数或后级增加幅度调节输出波形叠加直流偏置输出级缺少隔直电容输出端串联1uF电容后再接负载示波器无波形通道未接地或扫描时间设置不当检查连线调整Time Base旋钮5.2 仿真不收敛怎么办Multisim里最让人头疼的错误之一就是“Simulation did not converge”或者“Singular matrix”。这类问题在文氏桥振荡器里尤其容易出现因为电路同时存在正反馈和负反馈初始条件设置不当很容易让仿真器的迭代计算无法收敛。我总结了三步处理法。第一步把瞬态分析的Method从默认的Modified Trap改为GearGear算法在振荡电路中收敛性更好第二步给所有电容增加并联的一个非常小的初始条件或者直接将电容初始电压设为0第三步把相对容差Relative Error Tolerance从默认的0.001放宽到0.01大部分情况下就能收敛。如果放宽容差后波形明显抖动或失真再把容差慢慢调回来。注意容差太宽松会让波形精度下降不能一味求大。5.3 双运放与LM358的使用体验很多同学的Multisim库里元件很全随手就能拖出TL082、OP07、LM358这些运放。我在实验里最终用的是两颗LM358理由是它单电源或双电源都能工作输出摆幅接近电源轨在±12V供电下能输出约±10V足够驱动比较器。不过LM358有一个特点需要注意它的输入共模范围包括V-但不包括V。在单电源供电时如果输入信号接近正电源轨运放会表现出明显的非线性甚至截止。双电源供电时这个问题影响较小但如果用单电源5V供电做整个系统运放输入端必须加偏置分压网络。如果你在仿真中发现正弦波输出的负半周被削平或者三角波正向斜率变缓十有八九是运放输出摆幅限制造成的这时候需要降低输出级增益或者改用轨到轨运放。仿真的好处就在这里可以直接在模型层面换运放对比不需要实际焊板子。5.4 从仿真到搭板的差异提醒虽然这个实验主要是在Multisim里完成但如果后续课程要求把实物搭出来有几个仿真阶段看不出来的坑要提前知道。第一仿真里所有元件都是理想值电阻电容的容差、运放的失调电压在实物里都会显现出来尤其文氏桥振荡器可能因为器件不对称而起振困难这时候要把负反馈电阻换成电位器实际调节增益第二实物电路的高频寄生电容会导致波形毛刺仿真中看不到因为不存在导线电感第三运放的实际带宽限制了最高可用频率LM358的增益带宽积只有1.1MHz输出20kHz信号时带宽余量很紧有条件可以换TL082。6. 从实验报告角度补充的测试与记录方法6.1 需要记录的测试数据点写实验报告时老师最看重的是你是否有完整的测试数据来支撑你的设计。我建议至少记录以下数据在三个频率量程档位下分别记录电位器在中值时的实际频率与理论计算频率做对比算出相对误差在1kHz频率点用示波器测量三种波形的峰峰值记录幅度值如果可以测量频谱记录正弦波输出信号在1kHz和10kHz两个频率点的THD大致范围。把这些数据整理成表格比在报告里贴一堆示波器截图更有说服力。6.2 波形截图处理建议Multisim的示波器界面导出图片时默认背景是黑色的直接贴到报告里不仅浪费墨还看不清波形细节。建议在示波器View选项里改成白底黑线或者在截图后用画图工具反色处理。另外截取波形时要把时间轴调到能清楚显示至少3到5个完整周期的倍率并打开测量信息显示这样老师一眼就能看出波形的频率和幅度。6.3 不能偷懒的误差分析实验报告里误差分析部分是区分高分和及格分的分水岭。这个实验的误差来源其实很清楚一是电阻电容的实际容差导致振荡频率偏离子理论值通常5%精度的RC元件会造成5%左右的频率误差二是运放的输出摆幅限制导致正弦波幅度达不到理论计算值三是比较器阈值偏移导致方波占空比微小偏差四是Multisim仿真本身的数值精度限制。把这些误差源逐条列出并估算每条造成的误差范围比笼统写一句“符合误差要求”有说服力得多。7. 最后再分享两个提升效率的小技巧一个是批量修改元件编号。整套电路里电容电阻加起来二三十个如果一个个编辑编号改到后面很容易头昏。Multisim支持在Tools菜单里批量重命名元件把所有元件的RefDes统一整理一遍报告里的电路图会清晰很多。另一个是善用“Text”注释框。在关键节点放一个文本框标注“文氏桥输出”“比较器输出”“积分器输出”不仅自己排查方便截图贴到报告里也能让老师一眼就看懂信号流向。我见过太多报告贴了一张密密麻麻的电路图没有标注让人看得一头雾水。实践经验告诉我好的实验报告是设计清楚、标注清楚、数据清楚这三样比华丽的辞藻管用得多。这个函数信号发生器做完以后如果你有兴趣可以继续扩展把比较器换成三角波生成电路再加一级带通滤波器就变成了可以输出正弦波的简易DDS信号源或者把三路波形送到一个模拟开关用单片机控制选择就能实现一个数字选通的函数信号发生器。实验课上完成的是基础版本后面往哪个方向深入就看你自己想做哪种扩展了。