技术文章和通讯

用MATLAB实时脚本在线教授最优控制和动态规划

Duarte J. Antunes,埃因霍温理工大学


当我的课程最优控制与动态规划在COVID-19大流行期间过渡到在线模型MATLAB®现场脚本被证明是无价的。它们使我能够以一种互动、吸引人的方式教授复杂的概念,比传统的幻灯片授课方式更适合在线学习。

通过实时脚本,我可以将格式化的文本、图像、超链接、方程和代码组合在一起(图1)。由于脚本是实时的,学生可以调优参数或修改代码,并立即看到他们的更改如何影响输出。这一过程使学生积极学习,并鼓励对材料的探索。在一项课后学生调查中,97%的受访者表示,现场脚本对完成作业“有帮助”或“非常有用”。

图1。最优控制和动态规划中使用的实时脚本。

图1。用的现场脚本最优控制与动态规划。

Lectures-with-Slides的局限性

当我教最优控制与动态规划在过去,我的讲座包括幻灯片,我介绍了一个新概念,描述了如何实现它,然后展示了一些示例输出。例如,在一节关于线性二次型调节器(LQRs)的课上,我会从讨论相关方程以及特殊情况和假设开始,展示MATLAB实现,然后展示各种参数值的代码输出(图2)。随后,我会布置练习,要求学生使用MATLAB解决一组最优控制问题。练习包括一个带有MATLAB代码快照的示例解决方案。

图2。LQR上的幻灯片系列。顺时针从左上角开始:介绍、示例应用程序、相应的MATLAB代码和结果图。

图2。LQR上的幻灯片系列。顺时针从左上角开始:介绍、示例应用程序、相应的MATLAB代码和结果图。

我一直觉得这种方式是一种笨拙的呈现材料的方式。幻灯片上的代码只是实现的一个快照,我必须包含许多图来显示不同参数值对输出的影响。受这些问题的激励,我决定将所有涉及MATLAB的课程材料转换为实时脚本。

从幻灯片到现场脚本

总共,我转换了16节课,30个MATLAB例子,30个MATLAB练习和10个评分作业。对于每个课程主题,我都将导论讨论文本复制到现场脚本中,并用标题、要点和背景材料的超链接将其组织起来。我使用Live Editor输入LaTeX命令,并在将方程放入Live脚本之前预览相应的方程(图3)。

图3。在Live脚本中插入LaTeX方程并预览输出。

图3。在Live脚本中插入LaTeX方程并预览输出。

在某些情况下,方程式相当长,而且我没有LaTeX代码。在这些情况下,我用Mathpix OCR软件扫描书面或打印的方程,并为我生成LaTeX。

一旦我创建了现场脚本,我分享给学生通过MATLAB开车基于云计算的存储。学生们下载了每节课的脚本,并在笔记本电脑或浏览器上运行MATLAB在线使用MATLAB Online,学生可以在任何计算机或平板电脑上运行和编辑脚本,甚至在没有安装MATLAB的机器上也可以。

图4。LQR控制课程的实时脚本运行在一个浏览器与MATLAB在线。

图4。LQR控制课程的实时脚本运行在一个浏览器与MATLAB在线。学生可以使用第29行上的滑块更改参数值,并在右侧的图中看到结果效果。

现场脚本分配和自动评分

在课堂上,学生经常用相应的现场脚本进行实验,改变参数值并检查结果。我鼓励这种实验,因为这有助于他们吸收新材料。

现场脚本在帮助学生完成作业方面同样有价值。例如,其中一项任务涉及到为buzzwire游戏开发控制算法。在现实版的游戏中,玩家的目标是让一个环沿着弯曲的电线传递,但不让环接触电线的任何一点。对于这个作业,我将它简化为一个二维问题,在这个问题中,算法必须通过计算环沿导线移动时的每个时间步的偏移量和角度来控制环的轨迹(图5),以便它在最短的时间内到达导线的末端。

图5。buzzwire任务的可视化,其中一个环(蓝线)必须沿着导线(红曲线)通过而不接触导线。

图5。buzzwire任务的可视化,其中一个环(蓝线)必须沿着导线(红曲线)通过而不接触导线。

当我解释这个作业时,学生们往往有很多问题。当我向他们提供一个示例实现的实时脚本时,他们能够自己回答其中的许多问题;他们可以离线运行脚本,更改控制参数,确切地了解是什么构成了与电线接触的戒指的触摸,等等。

为了简化评分,我向学生展示了他们需要在现场脚本中开发的功能,以完成作业,并有明确定义的输入和输出。然后,我使用这个特定的函数自动为学生的解决方案打分MATLAB平地机,与我们的学习管理系统Canvas集成。

活动脚本的计划改进和其他用途

当我为我的课程开发新的现场脚本时,我继续添加增强功能。这些改进包括合并更多的动画。我这样做是为了完成一项作业,即学生们必须为追逐逃避游戏中的幽灵追逐吃豆人(Pac-Man™)类角色制定最优控制策略(图6)。我发现动画比我的文本描述更能帮助学生理解作业。

图6。追击-逃避游戏,学生开发最优控制算法,让鬼(红色)追赶主角(黄色)。

图6。追击-逃避游戏,学生开发最优控制算法,让鬼(红色)追赶主角(黄色)。

作为对学生反馈的回应,我还在MATLAB代码中添加了更多的内联注释。我注意到,今天的学生依赖于看到代码和代码注释来巩固他们的理解。在过去,我倾向于不强调实现细节,但越来越多的学生理解编程语言,发现用注释代码而不是用自然语言来表达某些概念更容易掌握。一名学生指出:“当你决定更改某个参数或代码段时,看到问题/解决方案的变化真的很有帮助。通常情况下,示例受所显示的一个变体的限制。除此之外,一些理论的实际实现有时是难以想象的,而这样一段代码可以极大地帮助这个过程。”

实时脚本的主要优点之一是易于学习和使用。我发现大多数学生在看了大约五分钟的文档后就开始运行了。在我教授的另一门关于信号和系统的课程中,我要求学生就他们的项目提交一份报告。许多人自己决定将最终报告创建为实时脚本,并使用实时脚本来解释他们的项目通过一个视频

关于作者

Duarte Antunes是埃因霍温理工大学机械工程系(TU/e)的助理教授,在那里他是控制系统技术组的成员。他的教学和研究活动主要集中在控制理论方面。

2021年出版的

查看相关功能的文章

Baidu
map