实时控制软件设计第二周作业

JOKER.ISOL JOKER.ISOL     2022-08-16     434

关键词:

一.汽车出入门禁系统状态机设计

状态机所有状态:

入闸传感器(两种状态): Ture  False  (分别用ET和EF表示)

出闸传感器(两种状态): Ture  False  (分别用OT和OF表示)

起落杆(两种状态):     UP DOWN   (分别用UP和DW表示)

通行灯(两种状态):       Red Green   (分别用R和G表示)

 

状态机所接收到的外部事件:

汽车进入和驶离门禁系统区: Enter  Out (分别用E和O表示)

 

状态机所产生的动作:

起落杆的动作:   go up   go down (分别用GU和GD表示)

   

状态机的所有状态跃迁:(原状态、新状态、触发条件、产生动作)

  原状态  触发条件   新状态/动作

EF    - ( E ) ->      ET

OF    - ( O ) ->     OT

 

UP    -( OT ) ->     GW  (动作)

DW   - ( ET ) ->     GP  (动作)

 

R     - ( UP ) ->     G

G     -( DW ) ->     B 

由于matlab的stateflow还正在学习,之前简单建立一个状态流图错误比较多,今天进一步修改并做了仿真,基本实现了门禁系统的功能,如下图:

 

说明: Moter三个值,0表示停止,1表示正转(up),-1表示反转(down)。

         R_G表示表示灯的状态,0表示红灯,1表示绿灯,

 

后续,会继续学习将图详细设计,并纠正错误,并利用matlab直接生成代码。

用c++简单设计小程序表示门禁系统的逻辑工作原理,如下图所示:

#include<iostream>
using namespace std;


//void delay()
//{
//    
//    for (int i=10000; i > 0; i--)
//    {
//        for (int j=10000; j > 0; j--);
//    }
//}

void main()
{
    char enter_or_out;   //1表示入闸ture,0表示出闸ture
    int up_or_downt = 0;    //1表示起落杆up,0表示起落杆down

    cout << "状态初始化..." << '\n';
    cout << "当前状态为红灯,起落杆落下状态,禁止通行" << '\n';

    while (1)
    {
        cout << "检测是否有车进入或离开门禁系统y or n" << '\n';
        cin >> enter_or_out;

        if (enter_or_out == 'y')
        {
            cout << "入闸ture,有车进入" << '\n';
            up_or_downt = 1;
            cout << "起落杆up ture" <<'\n';
            cout << "通行灯为红灯,汽车可通行" << '\n';
            //delay();
        }

        else
        {
            cout << "出闸ture,汽车出闸" << '\n';
            up_or_downt = 0;
            cout << "起落杆down ture" << '\n';
            cout << "通行灯为红灯,汽车禁止通行" << '\n';
            //delay();
        }

    }
}

 

二.其他任务

    实时操作系统应用程序练习,程序能正常运行和停止;

    练习了git的简单命令操作,并将git与guihub已创建关联;

    简单了解了 ODE的功能和案例;

实时控制软件设计第二周作业-停车场门禁控制系统状态机

画出动作转换图为: 使用模块化设计,将起落杆、出入传感器和通行灯设计成四个模块,分别继承设计好的系统模块接口:1//FSM_Interface.h2#pragmaonce34namespaceFSM5{67classISystemUnit//系统单元接口8{9public:1011virtualvoidInitialize()=0;//初始... 查看详情

实时控制软件设计第二周作业-停车场门禁控制系统状态机设计

门禁控制系统的输入信号包括:起落杆位置传感器:有两个位置值信号(升起/落下)汽车入闸传感器:有两个值(True/False)汽车出闸传感器:有两个值(True/False)门禁控制系统的输出信号包括:起落杆电机控制信号:(上升/... 查看详情

实时软件控制第二周作业

停车场门禁控制系统的状态机设计门禁控制系统的输入信号包括:起落杆位置传感器:有两个位置值信号(升起/落下)汽车入闸传感器:有两个值(True/False)汽车出闸传感器:有两个值(True/False)门禁控制系统的输出信号包括... 查看详情

《实时控制软件》第二周作业

首先制定各个变量名称入闸传感器:sensor_in;出闸传感器:sensor_out;起落杆上升:gan.raise();起落杆下降:gan.down();信号灯:light(1为绿,0为红);通行状态:A0为禁止通行,A1为允许通行;竖着写(在状态中判断事件)C代码片段cur_st... 查看详情

软件测试第二周作业wordcounter(代码片段)

Github项目地址WordCounteringithubPSP(PersonalSoftwareProcess)PSP2.1PSP阶段预估耗时实际耗时(分钟)实际耗时(分钟)Planning计划1017Estimate估计这个任务需要多少时间510Development开发545650-Analysis-需求分析(包括学习新技术)120160-DesignSpec-生... 查看详情

《实时控制软件设计》第一周作业

查看详情

软件工程作业第二周--例行报告

...代码9.16晚上6点9:16晚上八点半--150mincoding文件夹读文件/控制台直接读/整合9.17早上9点9:17晚上七点12点午饭/午睡到4点/晚饭,12点-4点以及五点到五点半330min安装装Git,试验已有的git9:17晚上7点9:18晚上7点半9点晚上睡觉/白天... 查看详情

实时控制软件第二次作业

0.Fork例程到自己的GitHub账号:开发环境搭建1.QEMU安装建议使用qemu-system-gnuarmeclipse,该qemu分支对stm32f4有更好的支持,主要面向Eclipse开发环境。到网页 https://github.com/gnu-mcu-eclipse/qemu/releases/tag/gae-2.8.0-20161227 下载二进制文件... 查看详情

《实时控制软件设计》第一周作业欧梓峰u201317662

CNC插补计算程序分析一、该系统有哪些强实时功能需求?需要对哪些实时事件进行实时响应,对允许的实时延迟的数量级进行估计。答:该系统对如何控制刀具或工具的运动有强的实时控制需求,通过插补控制和位置控制以及主... 查看详情

第三次作业-实时控制软件设计

 1.阅读笔记结合本周课堂所讲的实时操作系统知识内容,浏览如下商用和开源实时操作系统网站,写一段文字向其他同学简要介绍下某个实时操作系统的性能特点或进行操作系统间性能的比较:Vxworks:www.windriver.com/products/vxwor... 查看详情

实时控制软件设计第一周作业

... 以汽车ABS系统的软件系统进行案例分析: 一、强实时功能需求有:1.汽车车轮转速的实时监测,实时计算出轮速、参考车速、车轮加速度、滑移率等参数;              &... 查看详情

软件测试第二周作业wordcount(代码片段)

 软件测试第二周作业wordcountGithub地址https://github.com/mxz96102/word_countPSP2.1表格PSP2.1PSP 阶段预估耗时 (分钟)实际耗时 (分钟)Planning计划2530·Estimate·估计这个任务需要多少时间150252Development开发  ·Analysis· 查看详情

软件工程第二周作业

##软件工程第二周作业提出问题1.一般来说,想要自己的程序跑得又快又好,就要减少函数的反复调用,但有所得则必有所失,效能提高就有可能伴随着程序的稳定性的降低,这两者应该如何权衡呢?2.关于5.3.5老板驱动的流程,... 查看详情

《实时控制软件设计》第一周作业

  第一周,老师讲了实时控制系统的历史和实现方法,在做案例分析前我想先通过听课和网上的资料总结一下实时控制系统的特点:  “实时系统是能够在确定的时间内执行计算或处理事务并对外部事件作出响应的... 查看详情

java软件系统功能设计实战训练视频教程

第01节课:整体课程介绍和杂项介绍第02节课:软件功能设计常见理念和方法第03节课:关于软件设计的一些思考第04节课:第一周作业的业务和相应模式:综合应用简单工厂模式、代理模式、中介者模式第05节课:第一周设计作... 查看详情

实时控制软件第二次作业--停车场门禁控制系统状态机

作者:李君威U201310747  状态机图示: 将起落杆的位置状态和通行灯信号作为两个类对象,汽车出入闸传感器信号作为输入,编写代码:1//qichemenjin.cpp2//CopyrightbyJustin.34#include"stdafx.h"5#include<iostream>6usingnamespacestd;7cla... 查看详情

2017-2018-21723《程序设计与数据结构》第九周作业&第二周结对编程总结

作业地址第九次作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1878(作业界面已评分,可随时查看,如果对自己的评分有意见请私聊刘助教)提交情况如图:结对编程第二周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homewor... 查看详情

软件质量与测试第二周作业wordcount(代码片段)

第二周作业WordCount一、Github地址https://github.com/llag9810/Software-Quality-and-Testing-Wordcount二、PSP2.1 表格PSP2.1PSP阶段预估耗时(分钟)实际耗时(分钟)Planning计划 60 25·Estimate·估计这个任务需要多少时间 30 15Dev 查看详情