《实时控制软件设计》2017年度教学总结

一、课堂教学内容建设

本课程从2015年开始建设,目前还在探索期,每年教学内容都有较大的变化。相比较而言,2015年的教学内容缺少重心,有点大杂烩的感觉,讲一般性的软件工程概念和工具、编程方法的内容过多;2016年内容进一步聚焦,突出了实时软件的架构和开发的特点,试图把机电系统模型仿真与实时控制软件开发结合起来;2017年则进一步结合机电专业特点来展开教学,结合具体的MATLAB工具开展基于模型的实时控制软件设计方法教学,对于一般性的软件工程概念和工具则采用课外自学方式,如git版本控制工具、构建工具和测试工具软件,往年会花一定课时来讲解,2017年则在课堂上只做简单介绍,同学自己通过练习掌握。

2017年度12次课的课堂教学内容为:

  • 第1次课 实时控制软件简介和应用案例,通用软件开发流程,基于Github的版本控制和团队协作
  • 第2次课 实时软件架构,实时操作系统原理,实时调度和优先级反转问题,商用和开源RTOS浏览
  • 第3次课 ARM处理器硬件体系结构及对实时操作系统的支持
  • 第4次课 FreeRTOS的任务调度机制,Trace工具,源代码分析与构建过程
  • 第5次课 FreeRTOS的多任务同步与通信和应用
  • 第6次课 嵌入式Linux及实时化扩展
  • 第7次课 基于模型的实时软件设计概述,MATLAB的信号流模型、物理模型和状态机模型建模方法和仿真引擎机制原理
  • 第8次课 基于模型的设计,stateflow状态机建模
  • 第9次课 控制器建模实例分析,模型设计规范,基于模型的概要设计和详细设计,代码自动生成方法
  • 第10次课 软件测试概述,单元测试,基于模型的测试,SIL和PIL测试方法
  • 第11次课 软件静态分析与安全软件设计,丰田故障和Barr报告分析
  • 第12次课 团队项目报告和讨论,实时控制软件规格和架构设计,案例分析

从制造和自动化行业的业界同行反馈来看,他们认为上述教学内容是很有针对性和符合行业发展需求的。作为一门课时有限的选修课程,不可能面面俱到,教学内容还要进一步精炼,根据这学期同学的反馈,类似嵌入式硬件体系结构、RTOS代码解析、stateflow建模方法等网上资料比较丰富的内容,可进一步压缩课堂讲解内容,让同学课下自学。当然这些内容是必要的知识基础,2018年可以结合互联网公开课教学视频加上作业考察的方式,让同学根据自己情况来解决补充知识结构的欠缺,可以增加课堂案例讨论和交流时间。
从教学效果上看,应该把基于模型的建模设计方法放在课程前半部,这样可以及早进行案例分析和展开项目作业,后面就可以结合案例来层层展开实时软件架构的介绍和具体方法工具的练习。实时软件中间件是在项目实践中非常重要的内容,但一直没有找到一个很好的切入点引入教学,因为实时软件系统的中间件接口要么通用性不足,要么过于依赖某家公司。随着DDS在自动化软件、机器人ROS2平台、工业物联网和边缘计算领域的广泛采用,在2018年基于DDS开展实时软件中间件教学的条件已经成熟。

二、作业和实践环节

2017年更多的精力花到了课程体系设计和内容建设上,训练内容相对较少,2018年则可以在2017年形成的讲义基础上,重点建设作业和项目实践环节。
学校于2017年已经购买了MATLAB正版软件供全校师生使用,而最新版MATLAB提供了非常强大的基于模型的需求分析、建模仿真、代码生成和测试工具,为进一步提高课程教学效果提供了很好的平台支撑。基于MATLAB可以实现一个软件开发流程的全闭环,实现从需求文档、系统模型、代码和测试的双向跟踪,2017年的部分作业和团队项目是基于MATLAB展开的,但是在课程后半段才展开的,如果从课程一开始就开展,效果会改善很多。
本年度教学为同学提供了STM32嵌入式开发板来理解实时操作系统原理和应用开发,2018年可进一步改善硬件实验条件,并把控制器硬件和MATLAB环境结合起来,把控制器和实际传感器、执行器结合起来,提供半实物仿真开发环境,项目内容更接近业界实战。

posted @ 2018-02-09 14:31  chenhust  阅读(367)  评论(1编辑  收藏  举报