0. 理论研究
“理论研究”提出一个命题。这个命题超前于当前的客观基础,命题的正确性需要通过实验验证。但命题又不能超前客观基础太多,否则命题的内容会显得空洞、不切实际。
1. 算法设计
“算法”是由理论研究向程序代码实现的中间步骤,是验证理论可行性的第一步。
算法设计包括问题描述、算法原理、算法实现步骤等内容。
问题描述要讲清当前算法要实现什么功能、输入是什么、输出是什么。算法原理是从数学、物理原理角度介绍的算法思路。描述算法原理的直观方式是示意图。[超1] 算法实现步骤是更加具体的算法实现流程,算法实现的最终结果是程序流程图和伪代码。程序流程图简单直观,方便程序调试。编写伪代码降低了后续编写实现程序的工作量,也有助于验证算法的可行性。
2. 实验方案设计
实验验证通常是找一些特定应用场景对理论进行必要性验证。实验方案设计包含四个步骤。
(1). 明确实验目的
第一步是明确实验目的,这有助于防止实验过程跑偏。整个方案都要围绕实验目的展开。
(2). 制定实验验证方案
第二步是制定实验验证方案。验证方案要细化到每个操作步骤,尽可能提高可行性,降低实际操作难度。
(3). 程序框架设计
第三步是设计程序框架。设计过程要先考虑采用哪个平台(Matlab、Simulink、Python、ROS或其他平台);然后要借用面向对象的思想,规划好程序架构,给出架构图;最后要画出主程序的流程图。
(4). 期望获得的结果/对比实验结果
实验方案要对实验结果有所预期。这个预期一方面来源于先前的理论分析所得到的期望结果,另一方面来源于参考文献的积累所得到的对比结果。
3. 编写程序,完成实验报告初稿
编写程序是整个实验过程的核心,其难度最大,耗时最长且无法预期。实验程序的编写要按照先前设计的程序架构图及程序流程图完成。编写程序及进行实验的记录文档就是实验报告初稿。
实验报告初稿包括实验方案、实验目的、期望获得的结果/对比实验结果等内容以及实验参数、实验曲线等内容。
实验模型及实验参数设计属于实验报告的内容,但在第一轮设计实验方案时,为了降低编写程序、完成实验的压力,同时也为了提高实验方案的可行性,最好将实验参数设计的部分也一并考虑了。
实验验证结果是在进行实验过程中记录的数据、图线等内容。实验验证方案中每一项条目完成后都应该有一些结果,这些结果最好以图的形式记录。如果不行,则尽量以不可更改的文字、截图形式记录,以保证实验结果的可信度。
4. 问题调试
当实验过程出现问题时,研究过程要暂停下来转而进行问题调试。问题调试的流程如图 6所示。首先要把当前出现的问题描述清楚,然后要对存在的故障进行定位,最后要对发现的故障提出解决方案。
问题描述是调试的第一步。要先将当前的直观现象记录下来,尽量以原始数据的形式记录。然后提出期望的现象。期望现象是在实验方案设计初期就已经存在的,它可能来源于常识,也可能来源于其他文献资料。直观现象和期望现象存在差异。它们两个中哪一个更合理需要通过现象分析来判断。有的时候直观现象是正确的,那么先前的预期存在没考虑到的地方,调试过程结束。 有的时候期望现象是正确的,那么说明当前的程序或算法出现了故障,需要进行故障定位。
故障定位是问题调试的核心。当找到故障发生的位置时,调试过程就已经完成一大半了。在第一轮粗排查时,为了提高速度,先将程序大致分为几个部分,通过排查发现是哪一块出现了问题。在第二轮精排查时,要关注模块的输入信号是否正常。若输入信号正常而输出信号不正常,则说明该模块功能异常。然后再进行更深入的故障分析。
故障排查的四部曲如图 9所示。首先要计划好拟执行的操作,然后在执行该操作前想好预期的结果,接着执行该操作并观察实验结果是否符合预期,最后根据结果得出所排查部分是否发生异常的结论。
图 10是一个故障排查的示例。在这个示例中,故障排查的目的是检查输入的自旋轴信号是否发生异常,拟执行的操作是作出自旋轴随时间变化的曲线,执行操作前的预期结果是自旋轴信号应保持不变,在执行操作后,实际的实验结果符合预期,所以最终得出的结论是输入的自旋轴信号没有问题。需要再排查其他部分。
上述故障排查流程适用于单个模块发生异常的情况。当发生一些复合故障时,例如多个模块配合工作异常,可能需要进行多轮反复排查才能确定故障位置。
故障位置确定之后,需要对故障进行分析并提出解决方案。备选方案可能不止一个,有的方案来源于网上,有的来源于自己的思考。将这些方案罗列出来,按可行性进行排序,并从可行性最高的方案开始尝试,直到问题解决。
5. 数据处理与分析
数据处理与分析是在完成实验后作出实验曲线、分析实验曲线的过程。分析过程首先要观察曲线,然后描述曲线的特征,接着对比其他文献的实验结果,最后得出结论。
由于目前尚没有太复杂的处理与分析过程,因此对该过程的详细描述需要后续来补充。
6. 完成实验报告终稿
实验报告终稿是在以上内容完成后进行通稿完善的结果。报告的终稿要包含结论,并包含对实验过程的总结,以便后续工作的开展。