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搭建

开环分析

闭环分析

线性模型

利用传输函数构建电路模型

利用Simscape构建电路模型

利用线性系统构建电路模型

导入网表构建电路模型

动态参数扫描

自动参数优化


时域模型

testbench搭建

菜单栏点击simulink

Matlab simulink PLL学习笔记_第1张图片

创建空白模型

Matlab simulink PLL学习笔记_第2张图片

点击库浏览器

Matlab simulink PLL学习笔记_第3张图片

在PLL里面选择一种架构拖拽到画布。

Matlab simulink PLL学习笔记_第4张图片

如图。

Matlab simulink PLL学习笔记_第5张图片

在testbench里面找到PLL的测试平台拖拽到画布。

Matlab simulink PLL学习笔记_第6张图片

如图。

Matlab simulink PLL学习笔记_第7张图片

连线

Matlab simulink PLL学习笔记_第8张图片

右击PLL,在新选项中打开。即可看到PLL内部构成。

Matlab simulink PLL学习笔记_第9张图片

双击PLL。

Matlab simulink PLL学习笔记_第10张图片

下图中可以为PLL每个模块设计参数。

Matlab simulink PLL学习笔记_第11张图片

Matlab simulink PLL学习笔记_第12张图片

Matlab simulink PLL学习笔记_第13张图片

Matlab simulink PLL学习笔记_第14张图片

Matlab simulink PLL学习笔记_第15张图片

Matlab simulink PLL学习笔记_第16张图片

Matlab simulink PLL学习笔记_第17张图片

开环分析

在matlab中测试PLL在4.2GHZ下的表现。

Matlab simulink PLL学习笔记_第18张图片

Matlab simulink PLL学习笔记_第19张图片

Matlab simulink PLL学习笔记_第20张图片

Matlab simulink PLL学习笔记_第21张图片

probe里面可以选择观测信号

Matlab simulink PLL学习笔记_第22张图片

选了开环分析和闭环分析,点击apply,点击plot loop dynamics。

Matlab simulink PLL学习笔记_第23张图片

出现了分析图。

可以看到相位裕度,带宽。

闭环分析可以看到零极点图,幅值响应。3dB带宽。

阶跃响应(左下角)可以看到上升时间,锁定时间

冲击响应(右下角)

Matlab simulink PLL学习笔记_第24张图片

闭环分析

双击testbench,

选择方波激励,分频系数2625,测试的是4.2GHZ。4.2GHZ/2625=1.6MHZ。因此设置激励频率为1.6MHZ。

Matlab simulink PLL学习笔记_第25张图片

都是根据规格书填的。设置一些目标性能。

Matlab simulink PLL学习笔记_第26张图片

Matlab simulink PLL学习笔记_第27张图片

设置仿真停止时间。点击应用。

Matlab simulink PLL学习笔记_第28张图片

点击菜单栏里的运行。

Matlab simulink PLL学习笔记_第29张图片

仿真结束后,双击testbench

Matlab simulink PLL学习笔记_第30张图片

打印相位噪声或者导出测量结果。

Matlab simulink PLL学习笔记_第31张图片

测量的相位噪声跟预期的结果一样。

Matlab simulink PLL学习笔记_第32张图片

线性模型

利用传输函数构建电路模型

Matlab simulink PLL学习笔记_第33张图片

打开并运行三阶滤波器的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主体架构的模板Matlab simulink PLL学习笔记_第34张图片

双击进入橘色的子模块,双击画布调入tf模块并连线。设置传输函数模块的分子分母系数。点击应用。

Matlab simulink PLL学习笔记_第35张图片

将其他三个模块全选中,右击选择注释直通。

Matlab simulink PLL学习笔记_第36张图片

点击菜单栏中的运行按钮。运行结束后,双击下图的scope模块进行观测

Matlab simulink PLL学习笔记_第37张图片

输入波形和输出波形相近。

Matlab simulink PLL学习笔记_第38张图片

利用Simscape构建电路模型

这个工具是matlab里面的工具,用电路元件搭电路图后,会帮助我们推算出传递函数。

Matlab simulink PLL学习笔记_第39张图片

Matlab simulink PLL学习笔记_第40张图片

Matlab simulink PLL学习笔记_第41张图片

Matlab simulink PLL学习笔记_第42张图片

取消之前注释掉的三个模块。并双击进入第二个模块。

Matlab simulink PLL学习笔记_第43张图片

双击画布,调用元件,搭建模型。

Matlab simulink PLL学习笔记_第44张图片

其中,simulink-PS Converter是simulink到物理域的转换,PS-simulink Converter是物理域到simulink的转换。

Matlab simulink PLL学习笔记_第45张图片Matlab simulink PLL学习笔记_第46张图片

双击画布中的电阻电容,将名字修改为对应的。

Matlab simulink PLL学习笔记_第47张图片

回到主页面,将剩余的两个模块右击选择注释直通。并双击模型开关选择2

Matlab simulink PLL学习笔记_第48张图片

点击菜单栏中的运行,运行结束后双击观测器。

Matlab simulink PLL学习笔记_第49张图片

点击different模块,可以看到两个模型跑出来的结果是没有差别的。

Matlab simulink PLL学习笔记_第50张图片

Matlab simulink PLL学习笔记_第51张图片

利用线性系统构建电路模型

Matlab simulink PLL学习笔记_第52张图片

点击模块的输入线,再点击菜单栏里的输入扰动。

Matlab simulink PLL学习笔记_第53张图片

选择输出线,再选择菜单栏中的输出测量。

Matlab simulink PLL学习笔记_第54张图片

点击这个模块,再点击菜单栏中的线性化模块。

Matlab simulink PLL学习笔记_第55张图片

点击波特图,就可以查看波特图。这里还可以查看阶跃响应,冲激响应等。

左边的linear analysis workspace中生成了一个线性系统,将这个线性系统用鼠标拖到上面的matlab workspace中并保存。

Matlab simulink PLL学习笔记_第56张图片

回到主界面,取消注释第三个模块。并将模型开关选择:3

Matlab simulink PLL学习笔记_第57张图片

双击进入绿色模块,双击画布调入一个线性系统,并双击该系统,设置系统变量为刚刚保存的系统。

Matlab simulink PLL学习笔记_第58张图片

回到主界面,点击运行按钮,并点击观测器。可以看到跟前面两种方法得到的结果一样。

Matlab simulink PLL学习笔记_第59张图片

导入网表构建电路模型

利用线性电路导入器,将电路网表导入系统中进项仿真

取消注释第四个模块,并将模型开关设置成:4

Matlab simulink PLL学习笔记_第60张图片

双击进入该模块,双击画布,调入一个线性电路导入器,并双击,导入网表文件,并给模块起个名字。

Matlab simulink PLL学习笔记_第61张图片

Matlab simulink PLL学习笔记_第62张图片

device noise generators可以添加电路元件的噪声信息。

Matlab simulink PLL学习笔记_第63张图片

点击build block。

Matlab simulink PLL学习笔记_第64张图片

画布上生成了一个滤波器。删掉线性电路导入器。连线。

Matlab simulink PLL学习笔记_第65张图片

因为是一个离散的模块,所以需要设置采样率,取消勾选。并将仿真方式设置从代码生成改成解释执行。

Matlab simulink PLL学习笔记_第66张图片

运行,并查看结果,结果跟前三种方式一样。

Matlab simulink PLL学习笔记_第67张图片

动态参数扫描

Matlab simulink PLL学习笔记_第68张图片

自动参数优化

如何提高PLL的环路带宽

Matlab simulink PLL学习笔记_第69张图片

你可能感兴趣的:(PLL,matlab,学习)