跳转至

2023 秋


  • 【二阶倒立摆】马正华 张善斌

在整个先进控制实验中,我们从来都不是孤军奋战,而是得到了许多人的支持、帮助与鼓励。下面请允许我们向所有帮助过我们的老师、助教和同学致以最深的感谢! 首先感谢胡老师一学期深入浅出、细致入微的理论课讲授,为我们打下了坚实的控制理论基础,为我们后续学习更加先进的控制算法铺平道路。同时也感谢胡老师在我们实验遇到困难与挫折时对我们的鼓励!

其次感谢王老师,在整个二阶倒立摆调试的过程中,王老师帮助我们解决了许多设备方面的问题与故障。整个起摆过程中,因为齿轮“吃线”导致一些编码器线断裂,但王老师始终支持我们继续探索,让我们得以完成实验。

其次感谢梁宜轩助教,不论我们有什么疑问,他都会十分耐心细致地答疑解惑。在我们通过自学和资料调研后推导出两版失败的滑模控制算法时,助教为我们提供了重要的参考文献,使我们顺利完成了理论推导。

最后感谢郑皓文和莫炜杰同学,尽管我们两组都选择了二阶倒立摆作为先进控制实验的对象,但是我们并没有互相“内卷”、恶意竞争,而是在遇到问题和困难时一起讨论交流、互相协作,共同攻克难题,在能量法起摆方面他们为我们提供了很好的思路。


  • 【二阶倒立摆】郑皓文 莫炜杰

希望以后的同学可以避开以下这些坑:

  1. setup 程序里的第一根杆和第二根杆好像弄反了(这甚至是我们在写程序说明文档的时候才发现的bug),也就意味着代码里的所有参数可能都是错的,但我们也不知道为什么还是可以成功控制;

  2. 程序里写的 Jp1 和 Jp2 是杆关于质心的转动惯量(p是pendulum不是pivot),而不是关于端点的转动惯量,要按照平行轴定理进行换算,在计算起摆能量的时候很可能会被这个坑;

  3. 由于系统是负反馈,而滑模控制所作用的是偏差 ε = 目标值 - 输出值,如果输出小于目标值,那么输出值越大,偏差越小,所以滑模控制这个地方应该要多个负号;

  4. 电机电压 Vm 的正负不一定和 d²θ/dt² 一致,所以能量法起摆的时候,可能也会多出一个负号;

  5. 如果采用和我们相同的 Ackermann 方法来稳摆的话,要记得把 M(x,t) 的上界设大一点,我们最开始设的 1,结果系统老是崩溃,后面改成 200 就可以成功稳摆了。

感谢胡楚雄老师一学期以来为我们带来的精彩讲解,在课上以幽默风趣、简洁明了的方式介绍了控制领域的基础理论,同时也带领我们以实验促学,让我们动手将理论运用在实际问题的解决过程中,最后得以在相对前沿的舞台上展现自我。回顾一学期的旅程,我们实打实的收获满满。再次感谢胡老师的辛勤付出,以及为我们带来的绝佳的课程体验!

相信《系统动力学与控制》这门课程一定会越开越好!


  • 【柔性尺】张天一 雍熙
  • 硬件方面
    1. 实验前需要先阅读实验指导书 Rotary Flexible Joint - Workbook (Student)”,熟悉系统
    2. 实验前先进行连线,然后注意检查实验仪器是否有损坏,尤其是柔性关节弹簧连接处是否有松动,如果有松动会对实验结果产生较大的影响;
    3. 实验可以将 单连杆柔性关节机械臂 放在实验室提供的平台上固定住,避免关节机械臂甩动时碰到其他物品或人,注意在进行输入后一定要保证机械臂不会受到外 界干扰;
    4. 实验需要连接急停按钮,因为在参数调节时可能会出现机械臂剧烈摆动的情况,这时需要及时按下急停按钮紧急制动;
    5. 如果实验出现超调较大,或持续抖动的情况时,在下一次实验前注意检查柔性关节连接处的螺丝(与前臂间的连接处,与电机的连接处)是否有松动,如果有松动 一定要拧紧。因为螺丝是否拧紧会直接影响 PID参数的效果,也就是说即使是完全一致的参数,也会因为螺丝的松紧产生差异较大的结果,所以建议实验一开始就将 所有螺丝拧紧,然后在调整参数的过程中注意检查螺丝是否松动,保证实验不受偶然误差的影响 。
  • 程序方面
    1. 如果使用PID的控制方案,本实验选用的双线程 PID控制是一种选择,但此方案需要不断地进行参数调节,因为本身使用两个 PID控制器,通过数学推导传递函数 也只能得到 PID参数的一个取值范围,如果想要更好地调节效果,则需要不断的进行参数的调整。
    2. 另外双线程PID控制时的连线较为复杂,在添加 Add时一定要注意接口的正负号,在本实验初期就一直没有发现第一次连线时一个 Add的正负号设置反了,导致之前所进行的所有调参工作都无效。除了PID控制,还有很多其他方案可以选择,包括前面提到的状态反馈控制、 LQR控制和神经网络控制。但是状态反馈控制所得到的效果没有 PID控制的好,至于LQR控制的通用性较强,而神经网络控制的通用性较差,两者都需要自主学习程序的编写,但实验得到的效果会比 PID控制更好(从另一组柔性尺的效果比较来看)。

欢迎接下来选择Flexible Joint控制实验的同学进行 大胆尝试。


  • 【四自由度机械臂】王伯钊 贺智睿

虽然这个四自由度机械臂的开发难度可能比不上七自由度机械臂,但做起来也不简单,而且这也算是一个“前无古人”的选题了,因此,我们想在这里为之后选做四自由度机械臂的同学们分享一点经验。

首先,这个quanser Qarm的一大特点就是,它有比较丰富且注重引导的教程。

说其“丰富”是因为数量确实多,一共12个。它会从最基础的正、逆运动学开始讲起,之后会讲进阶一点的轨迹生成、奇点规避等,再到之后是比较“高级”一点的物体跟踪、视觉伺服等。把这些教程的说明文档都看一遍、例程都做一遍之后,你就能实现挺多功能了。但最后展示的时候肯定不能就把例程拿去展示,还需要运用一些创新思维,在例程的基础上做一些新的工作,比如把某个功能实现得比例程更好;把多个例程中实现的单一功能结合起来,从而实现一个比较“综合”的功能等等。

说其“注重引导”是因为,这些教程很多时候不会直接给你一个完全写好的例程,而是会在说明文档中一步步引导你去把半完成的例程补全。因此,你只有真正搞懂这部分要实现什么功能以及应该如何实现时,你才能把这个实验进行下去。这样其实既有好处,又有“不那么好”的地方。好处在于,这样能促使你进行细致深入的思考,真正地“学明白”;不好之处在于,如果对说明文档看得不是很明白,或者说明文档的“引导”或“提示”不够明显的话,可能就会卡在某个地方,导致实验无法继续进行下去,这时候就需要静下心来再多想想,再仔细分析分析。不过之后的同学应该还好,可以拿我们已经补全的例程进行参考。

此外,还想提醒同学们两点,一是:如果在此之前有接触过机器人运动学,那么在学习教程时应该不会有太大困难;但如果之前几乎没接触过,那可能就会稍微吃力一点,因为机器人运动学中的一些基础知识,教程里虽然可能还是会讲一下,但讲得就没那么详细,因此你可能得自学一下相关的基础知识。不过也不用太担心,学这些基础知识也不会需要太多时间。二是:四自由度机械臂的例程数量相对于其他项目而言确实会多不少,所以在做例程时要有一定的紧迫感,否则之后用于“自己开发”的时间将会比较少。我们组的两名同学之前都有学习过机器人运动学,其中一名同学还对图像处理比较了解。但即便如此,我们做完所有例程也花了大概两周的时间。所以,一定要抓紧时间!

祝学弟学妹们都能顺利完成quanser Qarm的实验,做出精彩的成果!

最后,感谢胡老师、王老师、梁宜轩学长在整个实验过程中给予我们的帮助!在本次实验中我们收获了许多,我们将在未来的学习和科研中继续积极探索、努力奋斗!


  • 【多智能体】许瀵译 何思晓

在《系统动力学与控制》课上,我最有成就感的事情是完成了无人机组网控制大作业。当时,课程是首次引入无人机设备,因此没有往届选课同学的经验可以参考,一切都需要从零开始探索。虽然无人机系统看起来复杂,但我的小组将问题逐步分解、逐个解决,最终完成了预定的控制目标。希望未来的学弟学妹们一方面打牢理论基础,另一方面发挥挑战精神;面对困难无需畏惧,你所储备的知识就是指向柳暗花明的地图。