zoukankan      html  css  js  c++  java
  • 实时控制软件设计第二周作业

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

    状态机所有状态:

    入闸传感器(两种状态): 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的功能和案例;

  • 相关阅读:
    Java数组的使用
    Java的栈堆以及数组两种不同类型的定义
    Java数组声明的创建
    JAVA递归
    Java可变参数
    Java方法(类--------对象--------方法)
    html块元素和内联元素的区别
    HTML基础介绍
    CSS网页美化元素属性介绍
    ArrayList类的remove(Object o)方法简述
  • 原文地址:https://www.cnblogs.com/jokerisol/p/6135878.html
Copyright © 2011-2022 走看看