技术文章和通讯

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

Duarte J. Antunes,埃因霍温科技大学


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

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

图1所示。用于最优控制与动态规划。

幻灯片讲座的局限性

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

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

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

从幻灯片到现场脚本

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

图3。在实时脚本中插入一个LaTeX方程并预览输出。

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

一旦我创建了现场脚本,我就通过MATLAB开车基于云计算的存储。学生们下载每堂课的脚本,然后在笔记本电脑或浏览器上运行MATLAB在线(图4)。通过MATLAB Online,学生可以从任何计算机或平板电脑上运行和编辑脚本,即使是没有安装MATLAB的机器。

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

实时脚本分配和自动分级

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

现场脚本在帮助学生完成作业方面同样有价值。例如,有一项作业涉及为嗡嗡作响的电线游戏开发一种控制算法。在这款游戏的真实版本中,玩家的目标是在不让圆环接触金属丝的情况下,将圆环沿着弯曲的金属丝传递出去。作业,我让它变成一条二维问题的算法必须控制环的轨迹偏移和角度的计算每个时间步的戒指它走在钢丝(图5),达到最短时间线的结束。

图5。蜂鸣线分配的可视化,其中一个环(蓝线)必须沿着一条线(红色曲线)通过而不接触它。

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

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

对实时脚本的计划改进和其他使用

在为我的课程开发新的实时脚本时,我继续添加增强功能。这些改进包括加入更多的动画。我这样做是出于一个作业,学生们必须开发一个最优控制策略的鬼魂追逐pursuit-evasion游戏吃豆人™——一个人物(图6)。我发现动画帮助学生理解作业比我的文本描述。

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

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

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

关于作者

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

2021年出版

查看相关功能的文章