《实时控制软件设计》2017年教学内容

2023-10-25 01:20

本文主要是介绍《实时控制软件设计》2017年教学内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、课程教学目标

本课程是面向机械设计制造及其自动化专业和测控技术与仪器专业的选修专业方向课程。在未来的机电控制系统中,软件系统将占据越来越大的比重,机电装备性能与控制软件的性能密切相关,本课程的主要教学目标是使学生能利用现代软件工程方法和工具进行面向机电控制的实时控制软件的设计开发。本课程强调“做中学”的教学理念,采用课堂讲授、编程练习和项目实践相结合的方式,使学生通过实际项目的开发实践,既掌握软件工程的原则和方法,也能会使用体现理论方法的工具。

二、教材、参考书和网站

  • 邹欣. 构建之法--现代软件工程(第三版). 北京:人民邮电出版社,2017年
  • Robert Oshana, Mark Kraeling编,单波等译. 嵌入式系统软件工程-方法、实用技术及应用. 北京:清华大学出版社,2016年
  • Jean J.Labrosse, 邵贝贝. 嵌入式实时操作系统μC/OS-3. 北京:北京航空航天大学出版社,2012年
  • Christopher Hallinan,嵌入式Linux基础教程(第2版).北京:人民邮电出版社,2016年
  • Richard Barry,Mastering the FreeRTOS Real Time Kernel,2016年
  • 翼辉公司,SylixOS 讲义,2016年

三、教学计划

课堂教学共12次课,每次两课时共24学时,主要内容包括:

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

四、课程博客作业发布和提交网址

https://edu.cnblogs.com/campus/hust/RTCSD2017

五、Github代码库链接

https://github.com/cbhust/STM32F429_Discovery_FreeRTOS_9

六、团队项目作业

1. 团队项目的考察要点:

  • 根据项目需求,按照基于模型的设计方法,完成从软件规格定义、概要设计、详细设计、单元测试、仿真验证的基本流程。
  • 基于Github进行团队项目协作和进行版本控制。
  • 在个人博客介绍自己所做的工作。

2. 团队项目需求:

某创业公司正设计一台自动咖啡机,已完成基本结构设计,如下图所示(本实例来自贝加莱公司文档),需要开发咖啡机的嵌入式控制软件,实现如下功能:

咖啡机.png

  • 1)用户在咖啡机面板上选择自己想要喝的咖啡(美式、拿铁、卡布奇诺...)并按下开始按钮后,咖啡机开始按照设定的配方制作咖啡。
  • 2)制作流程为:Feeder机构取一空杯放到传送带上,传送带把空杯送到龙头下,牛奶、糖浆、浓缩咖啡液和热水按照配方比例混合后装入空杯,传送带把满杯的咖啡送到用户取杯处,用户取走咖啡后,自动咖啡机可以继续响应面板上的按钮制作下一杯咖啡。

    公司希望软件开发团队采用基于模型的设计方法完成软件开发,具体要求如下:
  • 1)第一阶段,软件团队与咖啡机产品经理(老师和助教)沟通软件开发需求,形成软件设计规格书,清晰的定义控制软件的各项功能、硬件输入和输出接口。(本阶段交付件:软件设计规格书)
  • 2)第二阶段,在Matlab/Simulink环境中,实现咖啡机的物理建模,同时完成控制软件的概要设计,划分成若干个软件模块,确保模块覆盖设计规格书的所有功能,清晰定义各个模块的接口。(本阶段交付件:咖啡机物理模型文件和概要设计说明书)
  • 3)第三阶段,基于simulink/stateflow建模方法,设计各个软件模块的控制逻辑和算法,并与咖啡机物理模型进行协同仿真,实现整个咖啡制作流程。(本阶段交付件:控制软件模块stateflow模型文件)
  • 4)第四阶段,基于模块的stateflow模型,手动编写或用自动代码生成工具,完成C代码设计工作。(本阶段交付件:模块C代码及代码自动生成报告)
  • 5)第五阶段,基于MATLAB工具,对模块C代码进行Software in Loop测试或Processor in Loop测试,得到测试报告。(本阶段交付件:SIL/PIL测试报告)
  • 6)第六阶段,提交项目总结和软件说明文档。(本阶段交付件:项目总结和软件说明文档)

3. 团队项目人员分工、进度和要求:

  • 1)每个团队有一名项目组长,负责在github上创建团队项目,协调团队分工,所有文档和代码都提交到github上。
  • 2)团队项目用三周左右时间完成。
  • 3)团队通过讨论形成软件设计规格书和概要设计文档,具体的建模和设计工作有明确的分工。
  • 4)团队在每个阶段都要提交交付件给老师和助教进行评审,评审通过后进入下一阶段设计。
  • 5)团队在总结报告中,实事求是地说明每个成员所做的工作及完成情况。
  • 6)每名成员每周在个人博客上介绍自己所做的具体工作和取得的进展。

转载于:https://www.cnblogs.com/bingc/p/7683522.html

这篇关于《实时控制软件设计》2017年教学内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/279057

相关文章

读软件设计的要素04概念的关系

1. 概念的关系 1.1. 概念是独立的,彼此间无须相互依赖 1.1.1. 一个概念是应该独立地被理解、设计和实现的 1.1.2. 独立性是概念的简单性和可重用性的关键 1.2. 软件存在依赖性 1.2.1. 不是说一个概念需要依赖另一个概念才能正确运行 1.2.2. 只有当一个概念存在时,包含另一个概念才有意义 1.3. 概念依赖关系图简要概括了软件的概念和概念存在的理

读软件设计的要素03概念的组合

1. 概念的组合 1.1. 概念不像程序那样,可以用较大的包含较小的 1.1.1. 每个概念对用户来说都是平等的,软件或系统就是一组串联运行的概念组合 1.2. 概念是通过操作来同步组合的 1.2.1. 同步并不增加新的概念操作,但会限制已有的操作,从而消除一些独立概念可能会出现的操作序列 1.3. 在自由组合中,概念彼此独立,仅受一些记录的约束,这些约束是为了确保概念对事物观点的一

2017 版本的 WebStorm 永久破解

1.  在IntelliJ官网中下载 最新版本的WebStorm   下载地址:https://www.jetbrains.com/webstorm/download/#section=windows 2. 获取注册码    获取地址:http://idea.lanyus.com/   点击获取注册码,然后将注册码复制,再打开最新版的WebStorm,将注册码粘贴到激活框中就大功告

《论软件设计模式及其应用》通关范文,软考高级系统架构设计师

论文真题 设计模式(Design Pattern)是一套被反复使用的代码设计经验总结,代表了软件开发人员在软件开发过程中面临的一般问题的解决方案和最佳实践。使用设计模式的目的是提高代码的可重用性,让代码更容易被他人理解,并保证代码可靠性。现有的设计模式已经在前人的系统中得以证实并广泛使用,它使代码编写真正实现工程化,将已证实的技术表述成设计模式,也会使新系统开发者更加容易理解其设计思路。根据

软件设计之JDBC(3)

软件设计之JDBC(3) 此篇应在MySQL之后进行学习: 路线图推荐: 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷2024最新JDBC教程 | jdbc基础到高级一套通关! 资料可以去尚硅谷官网免费领取 学习内容: JDBC优化及工具类的封装ThreadLocal概述DAO概念及搭建事务的概述 1、JDBC优化及工具类的封装 JDBC过程中,部分代码存在冗余问题

读软件设计的要素02概念的目的

1. 要素 1.1. 概念的定义包括名称、目的、状态、操作和操作原则 1.2. 操作原则(operational principle) 1.2.1. 操作原则用于展示如何通过操作实现目的,这是理解概念的关键 1.2.2. 展示如何通过操作的组合实现概念的目的,包含一个或多个典型的使用场景 1.2.3. 操作原则并没有增加任何信息,因为你完全可以从操作规范中推理出任何使用场景 1

【软件设计】常用设计模式--工厂模式

软件设计模式(二) 一、工厂模式(Factory Pattern)1. 概念2. 工厂模式的类型3. 实现方式(1)简单工厂模式C# 实现Java 实现 (2)工厂方法模式C# 实现Java 实现 (3)抽象工厂模式C# 实现Java 实现 4. 优点5. 缺点6. 适用场景小结 二、工厂模式变体1. 简单工厂模式的变体变体1: 参数化工厂C# 示例 变体2: 反射工厂C# 示例 2.

【软件设计】常用设计模式--单例模式

设计模式(一) 单例模式(Singleton Pattern)1. 概念2. 单例模式的特点3. 实现方式C#实现Java实现 4. 线程安全的单例模式C# 中的线程安全单例Java 中的线程安全单例 5. 优点6. 缺点 7. 适用场景小结 单例模式(Singleton Pattern) 1. 概念 单例模式的核心目标是确保一个类只有一个实例,并提供一个全局访问点。这意味

基于面向协议MVP模式下的软件设计-iOS篇

//原文地址:http://help.3g.163.com/15/1223/06/BBGISBCJ00964KAD.html 传统模式下的开发 MVC MVVM 基于面向协议MVP的介绍 MVP实战开发 说在前面: 相信就算你是个iOS新手也应该听说过MVC的,MVC是构建iOS App的标准模板。随着时间的推移,在iOS平台上MVC也逐渐开始面临着越来越多的问题,最近又开始流

软件设计之JDBC(1)

软件设计之JDBC(1) 此篇应在MySQL之后进行学习: 路线图推荐: 【Java学习路线-极速版】【Java架构师技术图谱】 尚硅谷2024最新JDBC教程 | jdbc基础到高级一套通关! 资料可以去尚硅谷官网免费领取 学习内容: 前言JDBCPreparedStatement实现CRUD常见问题 1、前言 1、开发Java程序时,数据都是存储在内存中,属于临时存储,当程序停止