PLL no lock
Show older comments
Hello everyone,
I made a simple PLL simulink model (link bellow). When the reference frequency is 2010Hz and the VCO is nominally at 2000Hz, the PLL locks successfully. However when the reference is 2020Hz (or more) the PLL does not lock but oscillates. I tried varying several of the model parameters but still no clue why this is so? Any idea or explanation would be appreciated.
Greetings, PO
1 Comment
Poky Poky
on 14 Jul 2011
Answers (1)
Pragati
on 4 Jun 2026 at 13:50
0 votes
From the description, your PLL is locking for a small frequency offset but begins to oscillate when the reference frequency increases slightly. This is a common symptom of loop dynamics and stability limitations, rather than a modeling error.
In your specific case, the observation that switching to a first-order loop filter restores the expected lock behavior is a strong indication that loop filter design and loop bandwidth are the key factors governing lock range.
In general, a PLL will fail to lock or exhibit oscillations when:
- The loop bandwidth and phase margin are not sufficient for the given frequency offset
- The loop filter order or component values lead to instability
- The VCO tuning range or gain (KVCO) is not well matched to the loop dynamics
For example, incorrect loop filter design or bandwidth mismatch can prevent the loop from acquiring lock or cause oscillatory behavior.
So what you’re observing is consistent with a loop that is:
- Stable for small frequency errors
- But becomes underdamped or unstable when the required correction increases
This is precisely the type of issue that Mixed-Signal Blockset is designed to help debug at the system level before circuit implementation.
With Mixed-Signal Blockset, you can:
1. Model loop dynamics explicitly
You can build the PLL from individual components (PFD, charge pump, loop filter, VCO, dividers) or start from reference architectures and analyze the impact of loop filter order and parameters directly
2. Explore lock range and stability
Using system-level simulation, you can:
- Sweep reference frequency offsets
- Evaluate lock behavior (lock/no-lock, oscillation)
- Measure transient response and settling time
This makes it easier to reproduce exactly the behavior you’re seeing and understand where the loop loses stability.
3. Use measurements and testbenches
Mixed-Signal Blockset provides testbenches and measurement workflows to verify system-level performance (e.g., lock behavior, transient response) under different impairments
https://www.mathworks.com/help/msblks/phase-locked-loop.html?s_tid=CRUX_lftnav
Categories
Find more on Phase-Locked Loops in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!