本文学习内容:【官方】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搭建
开环分析
闭环分析
线性模型
利用传输函数构建电路模型
利用Simscape构建电路模型
利用线性系统构建电路模型
导入网表构建电路模型
动态参数扫描
自动参数优化
时域模型
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的环路带宽