首页 > 编程知识 正文

杜芬振子matlab代码

时间:2023-05-05 02:31:43 阅读:191083 作者:1480

研电赛2018准备记录

20180423 周一

首先是确定题目

经过晚上和秋哥的讨论,初步确定为,利用axdfd“盲解调”论文,提取其中的个别点,进行基于FPGA的设计实现。大致有三个点,可行性较高。这是一种,FPGA+通信算法。

优势:基于tdcs已经理论上做好的成果,一是可以有问题,就询问tdcs,二是实现起来有理论支撑。

缺点:感觉不够高大上,没有涉及到大众常用科技中。

如选择企业命题,看了一下,难度较大,但挺有意思的,如果有较好地指导,和有效的投入,应该可以作出成果来。

下一步计划:

1,找霸气的黄蜂商量,不仅是企业命题,还是自主命题,先去寻求导师的意见。

2,尽量查阅资料,分析题目的可行性,难点地方,好的地方,估计实现周期,现实环境,时间精力安排等等。

20180424 周二

多去找人商量,不要自己一个人闷着头做。

20180425 周三

今天找了导师霸气的黄蜂,简单地说了下自己的想法和计划,他认可了,说让我们去做吧,只是不要要求太高。

经过和霸气的黄蜂商量,大致有如下结果:

选择自主命题,可以使用“盲解调”相关的工作,给出了三个方向点,随机共振,符号同步,混沌估计频率。对于FPGA实现来看,是目前最佳的方案,然后是。的话,现在大家实现地应该很多了,所以创新不足。

总结,根据讨论,计划接下来的工作。

1,组合xhdds,大家一起讨论一下,结合大家的特长,和参赛愿望。

2,分析的可行性,先进行自主调研、学习,理解到一定程度后,再找axdfd解析,包括难点,代码分析等。

3,比赛平台准备,比赛进度规划,任务安排等等,都要进一步筹划。

开始阅读论文,准备研电赛理论知识,以下做笔记——20180509

Duffing方程:

(百度百科)https://baike.baidu.com/item/duffing方程/16606273?fr=aladdin

是描述共振现象、调和振动、次调和振动、拟周期振动、概周期振动、奇异吸引子和混沌现象(或随机过程)的简单数学模型。因此,在非线性振动理论中研究,Duffing方程具有重要的意义。

sddxmg Duffing

oscillator:

(百度百科)https://baike.baidu.com/item/sddxmg/16214644

是一个描写强迫振动的振动子。PS:里面有很有意思的几个图。

疑问:Kramers逃逸速率,是什么意思?是一种特别的“逃逸”阈值?

论文学习笔记:

看完了《基于Kramers逃逸速率的Duffng振子广义调参随机共振研究_冷永刚》论文,比较长,细致看了一下。文章以“Kramers逃逸速率的Duffing振子”作为模型,然后对其进行了细致分析,当此模型达到随机共振时,可以调节其中很多的参数,以维持随机共振状态。

对于其中的模型建立,还有不是很清楚,好像此文章所有讨论,只有适合上述模型才有用。我的感受是,对问题的数学建模很重要,把各种较难理解的系统,通过良好的建模,就可以在理论上进行分析了。

展望疑问:

1,在FPGA上。我们是要实现其中的什么呢,就如说,针对本文,难道就是要实现,一个针对该模型的一个系统,这个系统能实现“自动”的调节参数能吗?

2,在实际应用方面。虽然文中说,在实际工程中很有用,但是我们的成果要怎样进行测试呢。文中只是在理想状态下的MATLAB测试,不知道在实际中,面对多变的环境,我们成果能否得到较好的效果。

3,文中详细说了多个参数的调节可以实现随机共振的方法,但是,具体要怎么实现呢,难道就是动态计算,让F=1吗。

0510 再继续看论文。

看了论文《基于 Kramers 逃逸速率的调参随机共振机理》,本文是小论文,主要讲了大频率信号怎样才能实现随机共振。主要是通过尺度R变换。对大频率产生随机共振现象的模型建立、制约原因、调谐机理等做了分析。提供了很进一步实现一般信号随机共振的思路。

大论文《基于Duffing振子混沌和随机共振特性的微弱信号检测方法研究_赖志慧》的学习——20180510

以非线性Duffing振子为研究对象,深入分析微弱信号检测原理、检测模型和检测效果,以实现微弱信号的检测和机械设备的故障诊断。

Duffing振子具有混沌特性,和随机共振特性。

大论文很长,看到第二章2.2.3节。第一章还好,讲了随机共振的发展史,很有趣,很有意思。第二章,就很难了,开始先对Duffing方程进行了全面细致的分析,很难,直接懵圈了。对其中的方程,推导建立都是懵。因此看得很慢,不过现在先大致看看,后面需要时,再详细研究。

0511,继续看论文

第二章理论公式的分析,很细致,涉及很多复杂推到和计算,先大致略过吧……

真的多,对所有的过程,都进行了理论分析,厉害的很。下来还要花很多功夫来看这个。

第三章,二维Duffing振子随机共振的基本理论,还是大量的理论分析,不过和一小论文很像,理解还行。

第四章,Duffing振子的大参数随机共振,就是变尺度。

第五章,级联Duffing振子的随机共振,也是经过大量理论推导后,表现为可行。

第六章,Duffing振子的广义调参随机共振,也有小论文做支撑,还好。

第七章,二维Duffing振子随机共振的工程应用研究,这是重点,要好好看看,研究……

我的问题,我FPGA要实现怎样的功能,难道要把里面的模型方程用代码实现吗?难道要用代码建立这个模型系统?

还有,有相关的MATLAB代码吗,现在的实现效果怎么样,能做一个具体演示吗,高不高大上啊。

20180510:一些感想

1,因为我们都没做过,所以实践的时候,会遇到很多问题,我们一起去解决。我觉得这次比赛,最重要的是,让自己找到一个有意思的点去研究。最好的是,希望能对自己的硕士论文有帮助。不管这次比赛结果如何,我希望我们能从中收获一些东西,如比赛经验,科研经验,科研兴趣确立等。

2,dydkh说,一个人很难既做好工程,又做好理论。是啊,两个方向的思维模式是不一样的。理论要求创新发散式思维,需要不断去想新的东西。而工程,是面对应用的,要考虑的是现实可行性,那就要考虑每个实现细节,并且关注在已有的现实基础上。长期两种相反的思维模式,自然很难将两个方面都做好。但是我想去尝试一下,既提升自己的理论水平,有兼顾自己的工程实践能力。希望能顺心如意。

20180512 周六:讲课、讨论会信息梳理

今天早上请axdfd给我们讲了随机共振,很好,给大家很高的信心,我也相信,我们能做出来的,加油。不过我的话,预见到了一些难题,就是怎样搭建一个测试环境,能突出我们所做的东西的创新性、突出性、价值性呢。不过,这点,后面再思考吧。

首先梳理一下这次商议的重点。

1,简化随机共振实现机理,直接以大力的保温杯的论文作为出发点。

2,优化前端信号输入原理图。

3,结合已有的板子,进行控制测试,为下一步工作,做好基础。

4,每个人都要搞懂MATLAB的算法,FPGA这边,可以开始写程序了。

5,不懂及时问,提升效率;合理分工,并行执行。

6,后续问题,后面再议。(自适应调节)

几点感想。

1,相关论文(都在群上)都是要过一遍的,针对重点论文,还要进行深入剖析。

2,针对“任意大频率微弱信号检测”的MATLAB实现程序,要理解其每一行代码。

3,在不断推进研电赛进度的同时,也要兼顾学位课学习,积极准备,珍惜时间。

4,小组每周尽量至少聚一次,及时交流和讨论,相互帮助。

5,平时多注意群消息,及时了解彼此的动态。上传文件时,发个消息,做简单说明。

6,有什么问题,给出意见和建议,不断完善、迭代、补充。

后记:

真的很多事,自己多加点班,好好地把它们都完成。

20180515 任务推进

很想做这个,但是其他事物优先级更高啊,对放大的测试也没做。现有例程的,可以用Ad7609ForTest_V1ok程序来进一步修改,预计移植需要1-2天的时间!但现在没时间做这个呀。

现在的想法是,还是先把课程给复习好才行啊。然后把随机共振的论文看了,先理解MATLAB程序。

20180517 晚上开会

今天突然开会了,要抓紧做这个,虽然当下心思没在这个上面,但是说了要做,那就要做到。

我这边,开始做算法吧,网上找点资料。尽快那个雏形出来吧。

20180517 周四:在FPGA部分的初步分工。

1,结合前期已有的电路板和FPGA测试程序,进行完善和测试验证。此任务由易来做,验证完好后,并把测试报告发到群上。

这部分主要工作是:验证电路的好坏。验证程控运放的控制效果。验证AD7609的采集功能。结合当前已有硬件,实现随机共振算法前端输入数据的提供。

2,为提升效率,并行执行。由王开始实现RK算法,主要要求有:分析MATLAB程序,看懂RK算法,并进行FPGA设计。解决遇到的难题,并尽可能地对实现方式进行优化。节点为5月29之前,能实现初步的算法雏形,能拿来使用。

20180518 随机共振MATLAB算法实现

一:模拟“Signal_add_noise”输入模块:

1.1

FPGA代码初步设计:

1.2 生成RTL模块:

1.3  模拟数据输入仿真测试程序:

1.4  得到的正确仿真结果:可见,数据按照要求进行输出,周期为100KHz。

二,补充关于数据测试输入的数据源获取

数据来自MATLAB中的测试数据,即“Signal_add_noise”。首先将其保存在表格中,因为FPGA采集的是18bit的16进制数据,所以先还原成“AD数据”。在表格中还原过程如下:(后期还需进一步优化测试数据,先只用5个作测试)

MATLAB的原始“Signal_add_noise”数据如下:

FPGA进一步要做的就是,把这个数据,通过FPGA代码写的算法后,得到随机共振的现象,即能将上面的数据,“转变”为下面的数据:

为此,接下来,将对核心的“4阶R_K算法”进行FPGA实现。

20180518

三:基于MATLAB代码,初步设计RK算法如下:

仿真后,发现了大问题,其中最严重的是FPGA无法直接处理小数!仿真结果是乱的。

因为FPGA的实现是基于硬件的,实现浮点运算很复杂。

为此查阅了大量资料。

想用MATLAB联结ISE的system Generator工具,生成Verilog代码。尝试了,难度很大,因为没做过,不确信太高,还未有较好的结果。

使用“定点”的方法。看得很晕,还没较好的思路,需进一步研究。

……

Matlab代码分析

本原结果:

输入正弦:+-0.1V的正弦信号,频率=1000

加噪输入信号:input_signal,是 +-0.8V的加噪信号。

参数调整因子1:a_adp= 1~10000

参数调整因子2:b_adp= 1~ 10^14

!

步长:

h = 10^(-5)  =

1/10^5  !

估计值1:K1

= -6*10^(-6) ~ 8*10^(-6) ; 都是很小的值,通过画图看到。

估计值2:K1

= 如同K1 的范围

估计值3:K1

= 一样

估计值4:K1

= 一样

当前输出值:SR_output= +-

2*10^(-5),这么小啊~

想扩大参数,要具体研究下算法是怎么实现的,再进一步进行扩大运算。

1,我首先方法了131072倍的输入噪声信号,如下:

2,然后我把参数K1-K4,放大了131072倍,得到如下效果:

3,这是此时获取的输出情况:可见out信号依旧很小。

分析,K1-K4是整数了,但是SR_output还是小数呢!

还有K1-K4 还有负数的嘛!

将输出放大131072倍,得范围-40~+40

优化二:

修改后的MATLAB代码:

结果K:

结果Out:

实际输出:

解决方案(20180520):按上面的数据进行FPGA设计,并要对正负进行编码!!!

20180519 周六:继续优化RK算法

结合模拟的数据的模块,重新设计优化了RK算法,如下,再次测试,看是否能使用。

20180520 对FPGA的除法进行设计

先看下除法是怎么实现的,代码设计:

形成的电路图:可见,简单的200以内的循环除法,会占用大量资源(门电路)。

仿真结果:

结论:

FPGA的除法,相当于取整,余数被抛弃了,只剩下整数部分。

PS:20180620

这是研电赛刚开始准备时的学习,调试记录,期间遇到很多问题,最后只好换了实现方式。因为一直很忙,后面的论文都是加紧时间写出来的,所以没记录了。今天,我完成了研电赛的所有提交,就是说完结了研电赛,接下来,只有等待结果了。算是了解一桩心事了!

不知为什么,最近感到好累啊,哎,不想了,再累还是要做下去,没有放弃。这样的时候,多希望有懂的人,一起谈谈心。一路走来,十分努力,虽然实现了很多,但是还是觉得很孤独。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。