研电赛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
这是研电赛刚开始准备时的学习,调试记录,期间遇到很多问题,最后只好换了实现方式。因为一直很忙,后面的论文都是加紧时间写出来的,所以没记录了。今天,我完成了研电赛的所有提交,就是说完结了研电赛,接下来,只有等待结果了。算是了解一桩心事了!
不知为什么,最近感到好累啊,哎,不想了,再累还是要做下去,没有放弃。这样的时候,多希望有懂的人,一起谈谈心。一路走来,十分努力,虽然实现了很多,但是还是觉得很孤独。