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

创建空白模型

点击库浏览器

在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的环路带宽

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/247559.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【无标题】创新蓄势!安全狗多项技术获颁专利

近日,安全狗《一种网络安全监测方法、终端设备及存储介质》、《一种恶意进程风险等级评估方法、终端设备及存储介质》等多项专利顺利通过了国家知识产权局的相关审核认证,并获得了发明专利证书。 厦门服云信息科技有限公司(品牌名&#xff1a…

Mistral AI发布开放权重的高质量SMoE模型Mixtral 8x7B

🦉 AI新闻 🚀 开源MoE大模型震惊开源社区 摘要:上周末,Mistral开源了一款震惊开源社区的MoE大模型。MoE是一种神经网络架构设计,能够提升大语言模型的性能。通过使用MoE,每个输入token都可以动态路由到专…

【AutoDL】使用云服务器跑深度学习代码

一、AutoDL租用服务器 1.选用服务器 1.算力市场 租用服务器,选择自己心仪的服务器 2.镜像 可以选择一些基础的镜像,社区镜像里是git上有的环境。 3.上传文件 在文件存储中,选择上传的区,在右边点击上传,选择自己的文…

羊大师提问羊奶养胃,你知道吗?

近年来,人们对于健康的关注逐渐增加,养生已经成为一种时尚。养胃是其中一种重要的养生方式,而羊奶则是备受关注的一种养胃饮品。那么问题来了,羊奶真的能够养胃吗? 羊奶是一种营养丰富的乳制品,与牛奶相比…

记录 | docker报错could not select device driver ““ with capabilities: [[gpu]].

ubuntu18.04 上启动 docker start 报错: could not select device driver “” with capabilities: [[gpu]]. docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]]. ERRO[0005] error waiting for container: con…

如何在 JavaScript 中实现任务队列

任务队列的概念 任务队列就是存放任务的队列,队列中的任务都严格按照进入队列的先后顺序执行。 在前一条任务执行完毕后,立即执行下一条任务,直到任务队列清空。 任务队列的基本执行流程如下: 设置任务队列并发数; …

怎么制作GIF动图?教你这几个简单方法

怎么制作gif动图?GIF动图是一种非常有趣且实用的图片格式,它能够以短小精悍的方式展示动画效果,因此在社交媒体和聊天应用中备受追捧。本文将向您介绍几种制作GIF动图的方法,让您轻松制作出自己的动图。 GIF动图制作方法一&#x…

ubuntu pycharm 死机,如何重启

1. 找出pycharm 进程的id 进入命令行: ps -ef 是查看当前运行的进程 值输入 ps -ef 会返回所有当前执行的进程,太多了,过滤一下,找到 pycharm : ps -ef | grep pycharm 2. 使用 kill -s 9 来杀死进程 如图所是,…

WSL的导出与导入

1需求 现在我需要把我在平板上配好的系统导出来,再放到我的笔记本上。 2基本情况 笔记本电脑没装过wsl 平板上配好了wsl,并且里面的ubuntu配好了python环境。 3从平板导出 比较顺利 先关机。 wsl --shutdown 这里后两个我用不到,因为…

交叉销售与场景业务销售运营

交叉销售 交叉销售的定义 交叉销售是一种从横向角度开发产品市场的方式,是营销人员在完成本职工作以后,主动积极的向现有客户、市场等销售其他的、额外的产品或服务。 交叉销售的类型 补充销售 搭配销售个性化推荐奖励推荐 捆绑销售 交叉销售的意义 通过增加客户的转移成本…

Kafka-客户端使用

理解Kafka正确使用方式 Kafka提供了两套客户端API,HighLevel API和LowLevel API。 HighLevel API封装了kafka的运行细节,使用起来比较简单,是企业开发过程中最常用的客户端API。 LowLevel API则需要客户端自己管理Kafka的运行细节&#xf…

全栈开发中的安全注意事项:最佳实践和工具

安全性是当今数字环境中最重要的问题,而在全栈开发中这一点尤为重要。当企业努力创建强大且动态的应用程序时,他们必须应对复杂的安全威胁领域。在本文中,我们将探讨开发人员可以用来确保安全的全栈开发环境的最佳实践和工具。 1.1 全栈开发的…

YOLOv8原理深度解读,超级详细

整体架构 Backbone: Feature Extractor提取特征的网络,其作用就是提取图片中的信息,供后面的网络使用 Neck : 放在backbone和head之间的,是为了更好的利用backbone提取的特征,起着“特征融合”的作用。 Head&#xf…

金蝶云星空协同开发环境应用内执行SQL脚本

文章目录 金蝶云星空协同开发环境应用内执行SQL脚本 金蝶云星空协同开发环境应用内执行SQL脚本

电阻的运用

本文引注 https://baijiahao.baidu.com/s?id1749115196647029942&wfrspider&forpc 一、零欧电阻 在电子电路设计时经常用到的一种元件就是电阻,我们都知道电阻在电路中起到分压限流的作用。然而,实际使用时会用到一种特殊的电阻:零…

mysql数据恢复

使用MySQL第三方工具binlog2sql binlog2sql,一款基于python开发的开源工具,是由大众点评团队的DBA使用python开发出来的,从MySQL binlog解析出你要的SQL。根据不同选项,你可以得到原始SQL、回滚SQL、去除主键的INSERT SQL等。其功…

STM32CubeIDE串口空闲中断实现不定长数据接收

STM32F051空闲中断实现串口不定长数据接收 目的编程软件配置串口开中断中断程序 运行结果碰到的问题 目的 在串口输入不定长数据时,通过串口空闲中断来断帧接收数据。 编程软件 STM32CubeIDE STM32CubeMX配置MCU。通过对端口配置,自动生成程序&#x…

AI抽烟识别系统研发关键

为了设计一个有效的AI抽烟识别系统,我们需要考虑几个关键组成部分:图像捕捉、数据处理、模型训练、以及实际应用场景。下面是这个方案的详细阐述: 1. 图像捕捉与数据收集 摄像头部署:首先,在需要监控的区域安装高分辨…

springboot自定义starter步骤

引入相关依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-configuration-processor</artifactId><optional>true</optional> </dependency><dependency><groupId>org.pro…

SpringBoot基础使用及对其他项目进行整合

目录 一、简介 1-讲述 2-特点 二、创建配置 1.创建 2.配置 3.代码生成 三、项目整合 每篇一获 一、简介 1-讲述 众所周知 Spring 应用需要进行大量的配置&#xff0c;各种 XML 配置和注解配置让人眼花缭乱&#xff0c;且极容易出错&#xff0c;因此 Spring 一度被称…