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


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

    状态机所有状态:

    入闸传感器(两种状态): 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 << "状态初始化..." << '
    ';
        cout << "当前状态为红灯,起落杆落下状态,禁止通行" << '
    ';
    
        while (1)
        {
            cout << "检测是否有车进入或离开门禁系统y or n" << '
    ';
            cin >> enter_or_out;
    
            if (enter_or_out == 'y')
            {
                cout << "入闸ture,有车进入" << '
    ';
                up_or_downt = 1;
                cout << "起落杆up ture" <<'
    ';
                cout << "通行灯为红灯,汽车可通行" << '
    ';
                //delay();
            }
    
            else
            {
                cout << "出闸ture,汽车出闸" << '
    ';
                up_or_downt = 0;
                cout << "起落杆down ture" << '
    ';
                cout << "通行灯为红灯,汽车禁止通行" << '
    ';
                //delay();
            }
    
        }
    }

    二.其他任务

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

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

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

  • 相关阅读:
    DevExpress XtraReport报表预览时可编辑的功能
    vim编辑器的常用命令
    git 的一些常用命令
    ASP.NET MVC过滤器粗略总结
    违法占耕辅助处理软件
    三调管理信息系统
    java学习随笔源码day01
    Java学习笔记Day01-004之static关键字
    人事工资信息管理系统(核心代码实现、操作视频)
    人事工资信息管理系统之数据库设计
  • 原文地址:https://www.cnblogs.com/jokerisol/p/6135878.html
Copyright © 2020-2023  润新知