学生休息室

分享技术和现实生活中的例子,学生如何在他们的日常项目中使用MATLAB和Simulink # studentsuccess万博1manbetx

卓越创新:加速锁相环设计深度学习

最近,力平从学生项目团队在MathWorks Lingfeng Lu和江川的采访,谈论他们如何使用深度学习经验加速锁相环(锁相环路)设计时参与的一个MathWorks卓越创新项目。你可以下载代码和数据共享的团队在GitHub上:https://github.com/lulf0020/Behavior-modeling-of-PLL
Lingfeng和江川的商店在2021年开始当他们在中国上海交通大学的学生。他们把school-enterprise合作课程“工程实践和科学创新”,由教授教宇鸿跃亿许博士,杨和支持一个MathWorks工程师。万博1manbetx他们被要求完成一个项目,所以决定选择一个MathWorks卓越创新项目和三个月内完成。
MathWorks卓越创新项目为学生和研究人员提供了不同的先进思想。所有的项目都由MathWorks的工程师设计结合当前行业需求和最新的技术发展趋势。主题涵盖不同领域包括5克、大数据、工业4.0,人工智能、自动驾驶、机器人、无人机(UAV),计算机视觉,可持续发展,可再生能源。
当检查项目列表,Lingfeng和江川其中一个名叫所吸引使用深度学习行为模拟锁相环技术

锁相环(PLL)是什么?

显著增加芯片设计的复杂性,如何探索设计空间速度已经变得越来越具有挑战性!锁相环是通常被称为一个芯片的“心脏”,它使用信号从外部振荡器作为参考并生成一个输出稳定的时钟通常通过一个闭环控制具有更高的频率。设计一个稳定和可靠的锁相环芯片是很重要的人体就像一个健康的心脏。
图一锁相环Architecture.jpg

你为什么选择这个项目?

这个项目的实用性和新颖性吸引了我们!行为层次建模的锁相环在设计过程中可以节省时间和成本。具体来说,锁相环的行为层次模型建立后,我们可以直接获得锁相环的性能,设备参数导入到模型没有运行大量的模拟和测试。

你在这个项目解决了什么问题?

数据集和深度学习的模型是两个关键因素。在这个项目中,我们遇到的两个主要问题是:
问题1如何构建一个数据集有效吗?
问题2:如何构建一个有效的深度学习模型?

解决问题1如何构建一个数据集有效吗?

在这个项目中,为我们没有可用的数据集。在我们开始之前,先生Pragati Tiwary, MathWorks工程师设计的问题,给我们深入解释问题的声明。他告诉我们,N-division锁相环中提供的参考模型混合信号Blockset™在MATLAB提供了一种方法来构建数据集通过模拟。
的一个参考模型所示包括五个模块:相位频率检测器(PFD),电荷泵、环路滤波器、压控振荡器(VCO)和分频器。我们需要做的是不断改变五个模块测试的参数操作频率锁相环的性能,锁定时间和相位噪声。
锁相环refModel.JPG
除了参考模型,很多不同的测试混合信号提供的长椅Blockset™使我们的任务变得更加容易。利用锁相环Testbench,我们可以方便地与各种参数测试锁相环的性能模型,然后记录结果。
一开始,得到一组数据,我们手动改变模型的参数设置,进行了模拟,然后手动记录输出结果。然而,我们发现我们收集数据的方式是非常耗时的。
在这一点上,Pragati给我们耐心的指导如何自动导入数据,模拟运行,并批量出口表现结果。请参考这个网页在仿真软件的编程模型管理的更多信息。万博1manbetx在Pragati的帮助下,我们从常量到变量改变模型参数,然后使用MATLAB程序调整模型的参数值锁相环模型,自动运行模拟,然后收集结果。万博1manbetx
然而,我们发现,一些参数,定义了模型结构,如回路滤波器的顺序,不能修改仅仅通过改变变量的值。
当我们失去了我们的道路,我们愉快地发现,我们可以假设一个四阶循环过滤器体系结构和设置一些电容和电阻的值为0实现一个低阶的,例如,我们设置R3 = R4 = 0(欧姆)和C3, C4 = 0 (F)在四阶循环过滤器体系结构实现二阶环路滤波器。通过这种方式,我们可以做一个快速扫描不同的模型设置。
不可循环Filters.jpg
我们也希望程序可以自动记录的性能。但是,我们发现所需的性能数据不能导出,因此我们必须出口的中间输出测试台上,然后用MATLAB计算最终的计划。
最后,我们建立了MATLAB程序自动模拟锁相环模型和测试。在每一轮中,计划:
  1. 生成的随机数在一定的范围内,然后将模型参数的值设置为这些随机数。
  2. 运行仿真软件模型的模拟和测试。万博1manbetx
  3. 通过仿真软件记录中间结果发回。万博1manbetx
  4. 计算最终的性能指标的基础上,记录中间结果。
使用MATLAB程序自动收集数据显著提高数据集建立的效率。我们有一个数据集后,我们的问题变成了如何构建一个有效的深度学习模型。

解决问题2:如何构建一个有效的深度学习模型?

深度学习通常是用于特征提取和回归拟合。例如,卷积神经网络模型有许多卷积为特征提取层和汇聚层。
通过实验,我们发现,两层前馈神经网络可能已经模型输入参数和输出性能指标之间的映射,我们使用一个简单的前馈神经网络结构在我们的项目中。
MATLAB提供了一个深度学习工具箱,你可以从头构建神经网络模型或者通过修改参考模型。这个工具箱,MATLAB支持转移学习流行pre-tr万博1manbetxained DarkNet-53等模型,ResNet-50 NASNet, SqueezeNet。此外,您还可以从TensorFlow导入模型和MATLAB的咖啡。
我们这个项目中使用深度学习的神经网络拟合的应用包括工具箱™。我们推荐这个程序,因为它提供了一个两层的前馈神经网络和一个可选数量的神经元,如下图所示。
图三神经网络拟合App.jpg
在我们的神经网络中,古典乙状结肠非线性函数作为隐层神经元的激活函数,而线性输出函数是用于输出层。神经网络的性能已被评估使用均方误差(MSE)和回归分析。
必须提到,模型的拟合效果并不好,所以我们尝试不同的方法,如数据预处理,增加神经元的数量,调整比率的培训,测试,和验证集,最后取得了好成绩。使用的改进方法,最后,我们在我们的项目包括:
  1. 数据预处理:数据的大小差异很大,我们归一化数据对数函数,以便输出数据的分布更加均匀,减少underfitting的可能性或过度拟合。
  2. 增加测试集的大小:像往常一样,在我们的项目的数据集分为训练集,测试集和验证集。训练集和测试集是用于培训,当验证设置主要用于最终的评估。我们注意到一个测试集至少有200个样本是必要的,以确保可靠性模型的训练。

结论:努力学习+勇敢地尝试=成功

时间过得真快。现在Lingfeng一直在上海三菱电梯有限公司有限公司(SMEC),江川一直在准备研究生入学考试。
他们告诉我们这cross-cultural-difference经历非常难忘。这个项目不仅扩大了他们的视野,也提高了他们的勇气,当全世界的人们交流。通过这个项目,他们已经意识到是很重要的学生利用知识和创新来解决实际问题。
最后,他们要感谢MathWorks向他们提供的机会,感谢杨教授Tiwary先生,和许博士的帮助和指导!
|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。