Matlab simulink PLL学习笔记
本文学习内容:【官方】2022小迈步之 MATLAB助力芯片设计系列(一):电路仿真与模数混合设计基础_哔哩哔哩_bilibili
所用规格书:https://store.skyworksinc.com/datasheets/skyworks/sky73134_11.pdf
本文所用simulink模板:https://download.csdn.net/download/weixin_42221495/88617079?spm=1001.2014.3001.5503
目录
时域模型
testbench搭建
菜单栏点击simulink
创建空白模型
点击库浏览器
在PLL里面选择一种架构拖拽到画布。
如图。
在testbench里面找到PLL的测试平台拖拽到画布。
如图。
连线
右击PLL,在新选项中打开。即可看到PLL内部构成。
双击PLL。
下图中可以为PLL每个模块设计参数。
开环分析
在matlab中测试PLL在4.2GHZ下的表现。
probe里面可以选择观测信号
选了开环分析和闭环分析,点击apply,点击plot loop dynamics。
出现了分析图。
可以看到相位裕度,带宽。
闭环分析可以看到零极点图,幅值响应。3dB带宽。
阶跃响应(左下角)可以看到上升时间,锁定时间
冲击响应(右下角)
闭环分析
双击testbench,
选择方波激励,分频系数2625,测试的是4.2GHZ。4.2GHZ/2625=1.6MHZ。因此设置激励频率为1.6MHZ。
都是根据规格书填的。设置一些目标性能。
设置仿真停止时间。点击应用。
点击菜单栏里的运行。
仿真结束后,双击testbench
打印相位噪声或者导出测量结果。
测量的相位噪声跟预期的结果一样。
线性模型
利用传输函数构建电路模型
打开并运行三阶滤波器的setup文件,将模型用到的参数赋值。代码放在下张图。
三阶滤波器代码:
clear; close all; clc;
Kp = 2.7e-3; %Charge pump output current
Kvco = 20e6; % vco sensitivity
N = 2625; % Prescaler ratio
R2 = 10e3; % Loop filter resistance for second-order response (ohms)
R3 = 2.2e3; % Loop filter resistance for third-order response (ohms)
R4 = 0; % Loop filter resistance for fourth-order response (ohms)
C1 = 100e-12; % Loop filter direct capacitance (F)
C2 = 2.2e-9; % Loop filter capacitance for second-order response (F)
C3 = 100e-12; % Loop filter capacitance for third-order response (F)
C4 = 0; % Loop filter capacitance for fourth-order response (F)
Icp = 1 ;
A4 = C1*C2*C3*C4*R2*R3*R4;
A3 = C1*C2*R2*R3*(C3+C4)+C4*R4*(C2*C3*R3+C1*C3*R3+C1*C2*R2+C2*C3*R2);
A2 = C2*R2*(C1+C3+C4)+R3*(C1+C2)*(C3+C4)+C4*R4*(C1+C2+C3);
Al = C1+C2+C3+C4;
打开PLL主体架构的模板
双击进入橘色的子模块,双击画布调入tf模块并连线。设置传输函数模块的分子分母系数。点击应用。
将其他三个模块全选中,右击选择注释直通。
点击菜单栏中的运行按钮。运行结束后,双击下图的scope模块进行观测
输入波形和输出波形相近。
利用Simscape构建电路模型
这个工具是matlab里面的工具,用电路元件搭电路图后,会帮助我们推算出传递函数。
取消之前注释掉的三个模块。并双击进入第二个模块。
双击画布,调用元件,搭建模型。
其中,simulink-PS Converter是simulink到物理域的转换,PS-simulink?Converter是物理域到simulink的转换。
双击画布中的电阻电容,将名字修改为对应的。
回到主页面,将剩余的两个模块右击选择注释直通。并双击模型开关选择2
点击菜单栏中的运行,运行结束后双击观测器。
点击different模块,可以看到两个模型跑出来的结果是没有差别的。
利用线性系统构建电路模型
点击模块的输入线,再点击菜单栏里的输入扰动。
选择输出线,再选择菜单栏中的输出测量。
点击这个模块,再点击菜单栏中的线性化模块。
点击波特图,就可以查看波特图。这里还可以查看阶跃响应,冲激响应等。
左边的linear analysis workspace中生成了一个线性系统,将这个线性系统用鼠标拖到上面的matlab workspace中并保存。
回到主界面,取消注释第三个模块。并将模型开关选择:3
双击进入绿色模块,双击画布调入一个线性系统,并双击该系统,设置系统变量为刚刚保存的系统。
回到主界面,点击运行按钮,并点击观测器。可以看到跟前面两种方法得到的结果一样。
导入网表构建电路模型
利用线性电路导入器,将电路网表导入系统中进项仿真
取消注释第四个模块,并将模型开关设置成:4
双击进入该模块,双击画布,调入一个线性电路导入器,并双击,导入网表文件,并给模块起个名字。
device noise generators可以添加电路元件的噪声信息。
点击build block。
画布上生成了一个滤波器。删掉线性电路导入器。连线。
因为是一个离散的模块,所以需要设置采样率,取消勾选。并将仿真方式设置从代码生成改成解释执行。
运行,并查看结果,结果跟前三种方式一样。
动态参数扫描
自动参数优化
如何提高PLL的环路带宽
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!