双环锁相4倍频Simulink建模与仿真发散排错

发布时间:2026/9/17 8:05:35
双环锁相4倍频Simulink建模与仿真发散排错 简介围绕锁相环频率合成器设计与Simulink仿真整理的这份doc文档面向通信、电子、自动化等专业学生及工程技术人员可用于理解锁相式频率合成原理并完成仿真建模。内容从鉴相器、环路滤波器、压控振荡器和可变分频器入手推导输出频率foN·frN·fs/R分析单环合成器频率分辨率过低的局限进而给出由A环路N倍频与B环窄带跟踪环构成的双环锁相方案并介绍4倍频频率合成器的Simulink模型。文中记录了RELAY模块双极性脉冲转换、8阶环路滤波器、1kHz与4kHz截止频率、VCO压控灵敏度1Hz/V及8kHz、4kHz中心频率等参数设置结合仿真波形验证4倍频功能及设计可行性文末还附有参考文献。压缩包仅含1个doc文件大小约16KB篇幅紧凑但覆盖原理、公式、框图和仿真参数。目前已有363人学习适合需要快速掌握锁相频率合成器设计思路与Simulink仿真验证方法的读者参考。1. 从一篇 2011 年的双环锁相 4 倍频论文说起很多人在 Simulink 里搭锁相环第一次跑出来的波形是一团噪声VCO 输出频率一直在爬鉴相器输出抖得厉害环路滤波器截止频率调来调去就是锁不住。问题往往不在参数而在建模前没想清楚一件事——锁相环的「锁定」本质是相位误差趋于常数而不是频率相等。这篇 2011 年发表于《价值工程》的文档作者雷能芳做的事情很朴素先讲清鉴相器、环路滤波器、VCO 三件套的相位负反馈关系再指出单环频率合成器频率分辨率与频率转换时间之间的矛盾最后用双环结构在 Simulink 里搭了一个 4 倍频模型跑通。它覆盖的技术点包括锁相环基本传递关系、频率合成器的分频比推导、单环分辨率缺陷、双环结构的分辨率改善、以及 Simulink 模块级参数配置。适合正在做通信电路课程设计、PLL 建模入门或者被「仿真发散」折磨过的人对照着看。下面把它拆成能复现的步骤参数怎么设、坑在哪一并说清。2. 锁相环与频率合成器的数学模型从相位误差到分频比动手搭模型之前得先把几条公式吃透否则后面调参数只能靠蒙。2.1 鉴相器、环路滤波器、VCO 三件套的相位关系锁相环是相位负反馈系统。设输入参考信号相位为 θi(t)VCO 输出相位为 θo(t)鉴相器输出的相位误差信号为e(t) Kd · [θi(t) - θo(t)]这里 Kd 是鉴相器增益单位为 V/rad。鉴相器常见做法是用乘法器实现乘法器对两个正弦信号相乘输出含二倍频分量和低频差频分量环路滤波器的作用就是把二倍频滤掉只留下与相位差成比例的低频控制电压。这个电压加到 VCO 的控制端VCO 输出频率随控制电压线性变化fo(t) fc Kv · vc(t)fc 是 VCO 中心频率Kv 是压控灵敏度单位 Hz/V。注意这里频率是瞬时频率相位是频率的积分所以「锁定」意味着相位差趋于常数、瞬时频率相等。很多人只盯着频率看忽略了相位这是仿真跑不出锁定波形的头号原因。环路滤波器一般用一阶或二阶有源/无源低通。它的截止频率决定了环路带宽而环路带宽又直接决定捕捉时间和相位噪声抑制能力。带宽越窄抗噪越好但锁定越慢——这就是后面单环方案矛盾的根源。2.2 分频器插入后的频率合成公式在基本锁相环的反馈通道里插一个可变分频器就变成频率合成器。参考频率 fr 送入鉴相器一端VCO 输出 fo 经 N 分频后送入另一端fr fo / N → fo N · fr N · fs / Rfs 是晶振标准频率R 是参考分频比。改 N 就能改输出频率fr 就是频率分辨率。这四个量的关系一定要在纸上推一遍参数含义论文取值/常见取值fs晶振参考频率高稳定度晶振输出R参考分频比决定 frfr鉴相参考频率/分辨率fs/RN反馈分频比决定输出频点M输出固定分频比双环中改善分辨率KvVCO 压控灵敏度论文取 1 Hz/V2.3 单环为什么分辨率上不去单环结构里频率分辨率等于 fr。想提高分辨率只有两条路都不好走。第一条是减小 fr但 fr 一降环路滤波器带宽也得压缩捕捉和跟踪时间拉长频率转换速度变慢。第二条是在输出端再分频 M输出变成 fo N·fr/M分辨率变成 fr/M代价是环路工作频率要比目标输出频率高 M 倍高频段根本做不出来。论文里把这两条路都否掉了结论是转向多环结构。这个推导过程是理解双环方案价值的前提别跳过。3. 双环锁相 4 倍频结构的 Simulink 建模实操理解了为什么用双环接下来把模型落到 Simulink 里。论文给出的是一套可直接照搬的模块与参数。3.1 双环结构的分辨率改善推导双环由 A 环和 B 环组成。A 环做 N 倍频输出再经固定分频器 M 送到 B 环做窄带跟踪。锁定后fo fb fa / M N · fr / M Δf fr / M关键结论fr 不变意味着频率转换时间不变但输出经过 M 分频频率间隔缩小了 M 倍。也就是说高频参考频率下也能拿到小频率间隔这正是单环做不到的。B 环作为窄带跟踪环负责把 A 环的输出「净化」压制杂散。3.2 模块清单与参数配置表论文的 4 倍频模型里各模块参数如下照这个配模块类型关键参数正弦波信号源Sine Wave1 kHz脉冲整形Relay双极性矩形脉冲环路滤波器 AAnalog Filter Design8 阶截止 1 kHz环路滤波器 BAnalog Filter Design18 阶截止 4 kHzVCO AVoltage-Controlled Oscillator中心频率 8 kHz灵敏度 1 Hz/VVCO BVoltage-Controlled Oscillator1中心频率 4 kHz灵敏度 1 Hz/VRelay 模块在这里的作用是把正弦波变成双极性方波等价于一个硬限幅比较器。方波送到鉴相乘法器乘法器输出的差频分量才是有效相位误差信号。滤波器的 8 阶设置是为了让低通滚降足够陡把乘法器产生的二倍频分量压下去否则高频纹波会灌进 VCO 造成抖动。3.3 建模仿真步骤与波形验证按下面顺序搭拖出三个模块Sine Wave、Relay、两个 Analog Filter Design、两个 VCO用乘法器充当鉴相器。Sine Wave 频率设 1 kHzRelay 开关门限设 0输出上下限设 ±1得到双极性方波。A 环滤波器截止 1 kHz、8 阶B 环滤波器截止 4 kHz、8 阶。滤波器阶数别随手调小阶数太低二倍频漏过来。VCO1 中心频率 8 kHz、灵敏度 1 Hz/VVCO2 中心频率 4 kHz、灵敏度 1 Hz/V。仿真步长取小一点至少是被仿真频率的十分之一以下先跑 0.05 s 看趋势再拉长到 0.1 s 看稳态。跑完后用 Scope 观察A 环 VCO 输出应稳定在 8 kHz 附近经 M2 固定分频送入 B 环B 环 VCO 输出稳定在 4 kHz整体实现 4 倍频。判断是否真锁定的方法不是看频率数字对不对而是看鉴相器输出是否收敛到一个近似直流量、VCO 控制电压是否平稳。如果控制电压还在爬坡说明没锁。% 仿真前用脚本核对一下目标频点避免手工算错 fs 1e3; % 参考频率 1 kHz N 1; % 反馈分频比论文双环中 A 环倍频后送入 M 2; % 输出固定分频比 fr fs; % 鉴相参考频率 fo N * fr / M * 4; % 4 倍频目标 fprintf(目标输出频率 %.1f Hz\n, fo); % 预期 2000 Hz 量级核对上面这段脚本用来在建模前核算目标输出频率与分频比是否自洽N、M、fr 三个量改一个输出频点都变。实际仿真里固定分频用 Simulink 的分频模块或触发计数器实现注意分频器输出要过整形别把模拟波形直接送进数字分频。4. 仿真发散、锁不住与参数整定的排错路径模型搭完跑不出结果九成出在以下几处按顺序查。4.1 仿真发散的三个常见成因第一VCO 压控灵敏度 Kv 设得过大。论文取 1 Hz/V 是保守值有人为了「快一点锁定」把 Kv 调到几十甚至上百环路增益一下就超出稳定范围鉴相输出正反馈发散。第二环路滤波器截止频率相对参考频率过高二倍频分量没滤掉VCO 控制电压里混着高频纹波相位误差不收敛。第三仿真步长过大离散化误差让积分环节累积偏差波形直接冲出去。Simulink 里遇到「仿真发散」先做这三件事降 Kv、降截止频率、缩步长一次只改一个变量。4.2 锁定判据与稳态误差观察判断锁定用两个观测量一是鉴相器输出平均值锁定后应接近常数二是 VCO 控制电压锁定后应平稳。可以在 Scope 里同时放这两路信号锁定过程表现为一个衰减振荡后趋于直线。若控制电压单调上升不收敛是环路增益过高若持续等幅振荡是环路带宽过窄导致的欠阻尼与捕捉困难此时适度加大截止频率再试。# Simulink 命令行批量仿真便于扫参数 matlab -nodisplay -r sim(pll_double_loop); plot(yout.time, yout.signals.values); saveas(gcf,pll_out.png); exit这条命令用无界面模式跑模型适合在改完 Kv 或滤波器截止频率后自动化对比波形。sim(模型名)触发一次仿真yout是记录到工作区的输出改名保存方便横向比对不同参数下的收敛速度。批量扫参时把 Kv 和截止频率写进循环输出多张波形图一眼对比。现象可能原因处理波形持续发散Kv 过大 / 步长过大降 Kv、缩步长频率抖动大滤波器阶数偏低阶数调到 8 阶锁定慢或振荡滤波器截止频率偏低适度提高截止频率输出频率偏差 M 倍分频比 M 配错核对 N、M、fr 关系注意改参数时一次只动一个Simulink 的仿真发散经常是多因素叠加同时改两个你就分不清是谁干的。5. 从仿真模型到可复用参数化脚本的技巧论文里的模型是固定的 4 倍频结构但实际项目里频点、分频比经常要变。把模型参数抽成脚本变量比每次手动点模块改参数高效得多。% 参数化配置不同频点只改这个结构体 cfg.fs 1e3; % 参考频率 cfg.Kv 1; % VCO 压控灵敏度 Hz/V cfg.fcA 1e3; % A 环滤波器截止频率 cfg.fcB 4e3; % B 环滤波器截止频率 cfg.order 8; % 滤波器阶数 % 批量写回模型工作区再统一仿真 assignin(base, Kv, cfg.Kv); assignin(base, fcA, cfg.fcA); assignin(base, order, cfg.order); sim(pll_double_loop);assignin(base, ...)把脚本里的变量塞进基础工作区模型里的 Gain、Analog Filter Design 等模块用变量名引用这些参数就能做到改一处、全模型生效。这是把一次性仿真变成可复用测试平台的关键一步也是后面想做参数扫描、自动生成对比报告的基础。两个经验技巧。第一验证模型正确性别只看稳态把收敛过程录下来对比不同 Kv 的衰减速度能直观看出环路带宽的影响。第二想做频率合成器的系列化验证把 N、M、fr 全参数化用循环跑多组组合输出一张频率分辨率对照表比单次仿真有说服力。至于数字部分如果要往 C 代码生成方向走Simulink 的 C Function 或 S-Function 可以把分频器、鉴相逻辑用代码描述再和模拟环路混合仿真但那是另一条路先把模拟环路调稳再动。本文还有配套的精品资源点击获取