数据结构——电梯模拟的报告

合集下载

模拟电梯模型设计总结及报告

模拟电梯模型设计总结及报告

目录1.系统方案设计与论证 (2)1.1设计要求 (2)1.2系统基本方案 (3)1.2.1系统硬件结构设计 (3)1.2.2总体实现方案的选择和论证 (3)1.2.1.1各个模块方案选择和论证 (3)1.2.1.1.1主控制器模块 (3)1.2.1.2电机驱动模块 (4)1.2.1.3平层检测模块 (4)1.2.1.4通信模块 (4)1.2.1.5备用电源模块 (4)1.2.1.6语音提示模块 (5)1.2.1.7人机交互模块 (5)2.系统硬件设计与实现 (5)2.1逻辑控制部分 (5)2.2后台监测控制部分 (6)2.2.1人机交互 (6)2.3通信 (6)2.4备用电源 (6)3.系统软件设计与实现 (7)3.1电梯运行逻辑 (7)4. 系统测试及实现功能 (8)5.结语 (9)附录 (9)附录1各部分原理图以及PCB图 (9)附录2部分程序清单 (12)摘要:电梯系统是运用于高层建筑的复杂运输设备。

它涉及机械工程、电子技术、电力电子技术、自动控制理论、微机技术、MCU 技术和土建工程等多个科学领域。

目前,我国是世界最大的新装电梯市场和最大的电梯生产国,而且还有着巨大的潜在市场和发展空间。

因此,深入学习和研究电梯控制系统有着重要的现实意义。

设计并制作了基于三个AVR单片机和直流电机的五层电梯模型控制系统,具体阐述了系统的总体结构、硬件设计和软件调试。

本着系统控制的理念,稳定可靠的原则,系统实现了题目要求的各种基本功能,在保证系统稳定性和可靠性的基础上,电梯模型实现了语音提示、语音命令、电源切换等拓展功能。

各项测试结果表明该电梯模型系统可靠性高、系统成本低、人机交互性良好,较为真实的模拟出一台单厢电梯模型控制系统的运行状况,对实际电梯的控制系统设计有一定借鉴意义。

ABSTRACT:The elevator system is utilizes in the high-rise construction complex transport vehicle. It involves the mechanical engineering, the electronic technology, the electric power electronic technology, the automatic control theory, the microcomputer technology, the MCU technology and the civil engineering and so on many scientific fields. At present, our country is the world biggest new clothing elevator market and the biggest elevator producer country, moreover also has the giant potential market and the development opportunities. Therefore, the thorough study and the research lift control system has the vital practical significance.designed and has manufactured based on three AVR monolithic integrated circuits and direct current machine's five elevator model control system, elaborated system's gross structure, the hardware design and the software debugging specifically. In line with systems control's idea, the stable reliable principle, the system has realized topic request each kind of basic function, in t 1.系统方案设计与论证1.1设计要求基本要求:1.当某层有呼叫并有呼叫信号显示时,轿厢模型作相应的运动,并准确平层,平层的位置误差 5mm。

模拟电梯问题实验报告

模拟电梯问题实验报告

电梯模拟问题一、目的与要求1. 掌握线性结构的逻辑特点及存储实现;2. 根据选题,按规范化流程完成课程设计报告:⑴.提供需求分析。

(15分)⑵.列出概要设计。

(包括:抽象数据类型的描述;程序结构图或功能模块图)(20分)⑶.给出详细设计。

(包括:①存储结构的描述;②算法的详细设计,对复杂算法,最好画出其N-S流程图;③函数的调用关系图)(30分)⑷.进行调试分析(注:调试时遇到的问题及解决方法,程序的输出结果及对结果的分析)。

(15分)⑸. 整理设计总结。

(设计心得体会,以及其他总结信息等)(10分)⑹.附有程序清单(注:代码可具有适当注释,用来说明程序的功能、结构)。

(10分)二、设计步骤1、线性结构是有序数据元素的集合,存在着“一对一”的线性关系且只有一个首结点,一个尾结点,首结点只有后继没有前趋,尾结点只有前趋没有后继。

顺序表的存储结构包括顺序表和链表,顺序存储是指将线性表元素按照逻辑顺序依次存储在一组连续的地址单元中。

链式存储是通过结点中的链域将线性表中n个结点按其逻辑顺序链接在一起。

分为:单向链表,双向链表,循环链表。

2、(1)设计一个电梯模拟系统。

这是一个离散的模拟程序,因为电梯系统是乘客和电梯等“活动体”够成的集合,虽然他们彼此交互作用,但是他们的行为是基本独立的。

在离散的模拟中,一模拟时钟决定每个活动体的动作发生的时刻和顺序,系统在某个模拟瞬间处理有待完成的各种事情,然后把模拟时钟推进到某个动作预定要发生的下一个时刻。

可模拟某校五层教学楼的电梯系统,或者九层教学楼的电梯系统。

此程序的关键是模拟好电梯运行状态的转换与乘客进出的同步进行,需要一个函数判断电梯的运行状态,决定电梯的下一个运行状态如电梯的开门,关门,上升,下降,减速,加速等,也需要模拟时钟的函数来判断该运行哪个函数,也需要定义几个结构体存放结点信息。

(2)时钟函数:void DoTime(){//此函数用于模拟时钟while(1){if(Time>MaxTime)return;TestPeople();//两个始终都会被调用的函数Controler();struct Activity* p=activity.next;if(p==NULL){Time=MaxTime;}if(p&&Time>=p->time){//取出活动队头的,检测定时是否到了activity.next=p->next;p->fn();free(p);}Time++;}}其中activity是关键,它是一个链表在链表的头部是计时器时间最小的函数,根据模拟时钟判断是否调用这个函数以及删除这个节点。

数据结构(Python课程)课程项目2-1(电梯系统模拟)

数据结构(Python课程)课程项目2-1(电梯系统模拟)

数据结构(Python课程)课程项目2-1(电梯系统模拟)(北京大学数学学院,2014年11月20日)本项目要求以项目组为单位独立完成下面工作。

一个项目组由两位同学组成,12月5日前将完成的程序和所写报告(打包)提交辅导老师。

评分要求包括:1. 所提交的程序应该完整,包括一个demo程序(演示程序)展示所开发系统的情况;程序的模块划分和采用的数据结构合理,代码清晰,格式合适,易读易理解;2. 所提交报告对项目工作描述应清晰准确,说明为什么采用有关的结构设计,其中的想法和解决的问题等;报告应包含对所完成的项目的分析,考虑其优点和缺点;3. 在用Python完成这一项目过程中的体会和遇到的困难(本条不作为强制性要求);4. 其他要求见下面项目说明。

项目描述:请开发一个简单的电梯模拟系统,具体要求如下:假设电梯所在的建筑共计4层(例如,就是目前数学学院所在的一号楼),从地面层(按习惯称1楼)直至最上层(4楼)。

这里的4应该是一个参数,可以修改。

例如可以方便地转去模拟7层楼的电梯(如信息科学技术学院那边)。

每层电梯门边有一个上行按钮和一个下行按钮,最下层和最上层只有一个按钮。

电梯里有一组按钮,供乘电梯人选择目标楼层。

电梯从一层到其相邻层需要k秒时间。

乘客按一定时间间隔到达某楼层,按电梯门边按钮表示要求上行或下行。

乘客到达的时间间隔是区间 [a, b] 里的某个随机值,到达楼层是 [1, 4] 中的随机值。

乘客进电梯后选择搭乘的目标楼层(随机值)。

乘客在电梯到达其目标楼层后离开电梯。

我们希望模拟N秒的电梯运行情况,并在模拟中做一些统计。

考虑下面的数据统计:模拟期间完成服务的共计人数;平均等电梯时间;电梯的平均负荷人数(请提出一种适当的统计方法);其他有意义的统计结果(自己考虑)。

项目要求:根据题目要求设计并实现所需的功能,1,设计所需的数据结构,根据需要定义有用的类(class)。

例如,用什么数据结构表示乘客、电梯、按钮等,模拟中的各种事件,怎样把它们组织起来形成完整的系统;2,可以参考课堂上给的实例,采用类似的实现技术。

数据结构课程设计:电梯模拟

数据结构课程设计:电梯模拟

问题描述:模拟某校九层教学楼的电梯系统。

该楼有一个自动电梯,能在每层停留。

九个楼层由下至上依次称为地下一层、第一层、第二层、……第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯“空闲”时,将来到该层候命。

乘客可随时地进出于任何层。

对于每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。

模拟时钟从0开始,时间单位为0.1秒。

人和电梯的各种动作均要消耗一定的时间单位(简记为t),比如:有人进出时,电梯每隔40t检测一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均需要25t;如果电梯在某层精致时间超过300t,则驶回1层候命。

基本要求:按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。

需求分析:(1)用系统计时,每当有新的动作要输入时要暂停计时,等输入完成后即可继续计时。

(2)输入各个动作,最后,输入完毕后,可以保存所有动作序列,并有序输出。

设计:设计思想(1)存储结构根据问题描述,可采用单链表结构。

结点描述:定义如下:typedef struct Node{char a[1000];//信息int mytime;//时间struct Node *next;}SLNode;(2)基本思想a.用time.h 里面的clock()来计时,当有输入时,记录下开始输入的时间和结束输入的时间,之后就可以算出动作的时间了。

b.将各个动作发生的时间进行处理,算出每个事件的发生顺序和时间。

c.将各个数据插入链表,即可实现题目要求。

设计表示法(1)过程或函数调用的关系图mainyunxingprintListInsertLinListSort各个动作函数(n个)ge)ListInitiat eDestroy(2)基于数据结构的操作组主要在于yunxing()函数,它将各个时间动作处理成时间事件,并将事件插入到链表中。

(3)过程与接口规格说明无实现注释未实现。

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告数据结构——电梯模拟的报告⒈引言在现代社会,电梯已经成为了人们生活中不可或缺的一部分。

电梯的运行和调度涉及到众多复杂的算法和数据结构。

为了提高电梯的运行效率和用户体验,本报告将介绍一种电梯模拟的数据结构设计。

⒉背景和目标在城市高楼大厦中,电梯的运行和调度是一个极其重要的问题。

每天数以万计的乘客需要借助电梯上下楼,所以我们需要设计一种电梯调度算法来保证乘客能够快速、方便地到达目的地。

本报告旨在介绍一种基于数据结构的电梯模拟方案,提高电梯的运行效率和用户体验。

⒊系统架构在电梯模拟系统中,主要包括以下几个部分:电梯控制器、电梯队列、乘客请求队列和电梯状态管理模块。

电梯控制器负责接收乘客的请求并将其分配给特定的电梯,电梯队列记录电梯所在楼层和运行方向,乘客请求队列保存尚未得到满足的乘客请求,电梯状态管理模块负责监控电梯的状态和运行情况。

⒋数据结构设计⑴电梯队列电梯队列使用循环数组来保存电梯所在楼层和运行方向。

每个电梯对应一个循环数组,数组中的每个元素表示一个楼层的状态,包括空闲、上升和下降。

⑵乘客请求队列乘客请求队列使用链表来保存尚未得到满足的乘客请求。

每个节点表示一个乘客请求,包括乘客所在楼层和目标楼层。

⑶电梯状态管理模块电梯状态管理模块使用状态机来管理电梯的状态和运行情况。

状态机包括电梯的空闲状态、运行状态和停止状态。

⒌算法设计⑴电梯调度算法电梯调度算法负责根据乘客的请求选择最佳的电梯响应。

常用的电梯调度算法包括最短路径算法、最佳负载均衡算法等。

⑵电梯运行算法电梯运行算法负责根据电梯的状态和所运载乘客的请求,确定电梯下一步的行动。

常用的电梯运行算法包括最近停靠楼层算法、深度优先搜索算法等。

⒍实现和测试在本章节中,将介绍电梯模拟系统的实现细节和测试方法。

主要包括编程语言的选择、具体实现算法的具体实现和性能测试。

⒎总结和展望在本章节中,将总结本文提出的电梯模拟方案的优点和不足,提出可能的改进方向,并展望未来可能的研究方向。

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告

数据结构——电梯模拟的报告数据结构——电梯模拟的报告1. 简介本文档将介绍电梯模拟的实现过程和基本原理。

通过模拟电梯的行为,我们可以更好地理解数据结构在实际应用中的作用和效果。

2. 问题描述在楼房中,电梯通常被用来运送乘客。

电梯内部有多个按钮,表示不同楼层的乘客需求。

乘客可以按下按钮来请求乘坐电梯到达特定楼层。

电梯的运行顺序应该是合理的,比如不会从高楼层下降到低楼层。

本模拟的电梯系统需要满足以下要求:- 电梯能接收来自乘客的请求。

- 电梯能根据请求的楼层,按照合理的顺序运行,将乘客送到目标楼层。

- 当电梯到达目标楼层,乘客可以进入或离开电梯。

- 电梯需要实时更新运行状态,如目标楼层、当前楼层等。

3. 数据结构设计为了实现电梯模拟,我们需要设计合适的数据结构来存储电梯的状态和乘客请求。

以下是我们设计的关键数据结构:3.1 电梯状态电梯的状态包括当前楼层、目标楼层和运行方向等信息。

我们可以使用一个结构体来表示电梯的状态:```c++struct ElevatorState {int currentFloor;int targetFloor;Direction direction;};```其中,`currentFloor`表示当前所在楼层,`targetFloor`表示目标楼层,`direction`表示电梯的运行方向。

3.2 乘客请求乘客请求包括乘客所在楼层和目标楼层。

我们可以使用一个结构体来表示乘客请求:```c++struct Request {int fromFloor;int toFloor;};```其中,`fromFloor`表示乘客所在楼层,`toFloor`表示目标楼层。

3.3 电梯控制器电梯控制器用于管理电梯的状态和乘客请求。

我们可以使用一个队列来存储乘客请求,使用一个变量来保存电梯的当前状态。

以下是电梯控制器的设计:```c++class ElevatorController {private:std::queue<Request> requests;ElevatorState state;public:void addRequest(Request request);void processRequests();};```其中,`addRequest`方法用于添加乘客请求到队列中,`processRequests`用于处理乘客请求并控制电梯的运行。

数据结构设计--电梯模拟系统

数据结构设计--电梯模拟系统

[目录1.引言 ...................................................... 错误!未定义书签。

2.需求分析................................................... 错误!未定义书签。

3. 概要设计.................................................. 错误!未定义书签。

数据结构描述............................................. 错误!未定义书签。

模块设计................................................. 错误!未定义书签。

电梯的模拟流程图......................................... 错误!未定义书签。

4详细设计及实现............................................. 错误!未定义书签。

%全局变量的定义........................................... 错误!未定义书签。

人具体情况的定义......................................... 错误!未定义书签。

队、栈的类型............................................. 错误!未定义书签。

.电梯类型................................................ 错误!未定义书签。

系统类的定义............................................. 错误!未定义书签。

5.调试分析................................................... 错误!未定义书签。

仿真电梯实训报告

仿真电梯实训报告

一、实训目的随着城市化进程的加快,电梯作为高层建筑中不可或缺的交通工具,其安全性、舒适性和智能化水平越来越受到人们的关注。

为了提高我国电梯行业从业人员的专业技能,本实训旨在通过仿真电梯系统的操作和调试,让学生掌握电梯的基本结构、工作原理和操作技能,提高学生的实际动手能力和故障排除能力。

二、实训时间2023年3月15日——2023年3月20日三、实训地点XX职业技术学院电气工程系电梯实训室四、实训内容1. 仿真电梯系统概述仿真电梯系统主要由以下几部分组成:控制系统、驱动系统、轿厢、门系统、井道等。

通过仿真电梯系统,学生可以了解电梯的基本结构和工作原理,掌握电梯的安装、调试和维护技能。

2. 仿真电梯控制系统操作(1)系统启动:打开电源,进入电梯控制系统界面。

(2)设置参数:根据实际需求设置电梯的运行参数,如速度、楼层、开门时间等。

(3)操作电梯:通过控制面板上的按钮进行电梯的启动、停止、开门、关门等操作。

(4)故障排除:根据电梯运行过程中的故障现象,分析故障原因,进行相应的处理。

3. 仿真电梯驱动系统操作(1)检查驱动系统:检查电机、电缆、减速器等部件的完好情况。

(2)调整驱动系统:根据实际需求调整驱动系统的参数,如电机转速、减速器传动比等。

(3)运行测试:启动电梯,进行驱动系统的运行测试,确保系统运行正常。

4. 仿真电梯轿厢、门系统和井道操作(1)检查轿厢、门系统和井道:检查轿厢、门系统和井道的完好情况。

(2)调整轿厢、门系统和井道:根据实际需求调整轿厢、门系统和井道的参数,如轿厢尺寸、门开合速度等。

(3)运行测试:启动电梯,进行轿厢、门系统和井道的运行测试,确保系统运行正常。

五、实训成果1. 学生掌握了仿真电梯的基本结构和工作原理。

2. 学生熟悉了仿真电梯控制系统的操作方法。

3. 学生具备了一定的故障排除能力。

4. 学生提高了实际动手能力和团队协作能力。

六、实训心得1. 仿真电梯实训有助于提高学生的专业技能,为今后从事电梯行业打下坚实基础。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

联系也非常重要。

本设计中涉及时间函数的使用,由于刚开始接触,这方面的使用相当有难度。

使用不当就容易造成编译不通过或者运行时发送错误报告。

还有在电梯调度方面不能按照预定的想法实现,所以和现实中的电梯有出入。

没有显示电梯的运行到哪里,而是用有乘客进入电梯时显示乘客进入到哪层楼来告知电梯运行到几楼。

开门,关门时需要精心思考,此处记时及判断是否要开门也是难点,所以这些看似很平常的动作却是最难也是最容易错的地方。

此外在指针的使用方面也是难点,很多地方比如乘客进队出队以及放弃乘坐电梯时均涉及指针的使用,也经常在这些地方通不过编译。

为了便于控制循环,设计了电梯运行时间,则在时间到达时即可退出系统。

由于开始为了简化程序而定义了很多变量,结果发现并不实际,有的变量仅是在某些函数中赋予其值罢了,于是就将这些变量删除,比如开始按照提示设置了D1—表示人们正在进出电梯等等。

由于将程序分块,将不同部分写入不同源文件中,这样出错后便于查找及修改,这是分模块的优点之一也是编写和调试的一个小技巧。

五用户手册
程序运行后输入程序的运行时间,电梯开始运行。

在本设计中,用0—4分别表示地下一楼至四楼,用户只要按照提示依次输入正确的数值,每次按下回车键即认为已经输入信息。

此后只需等待系统自行进行处理,若未显示乘客放弃乘坐电梯即认为该乘客已达目的楼层。

此间程序会一直运行到开始时输入的运行时间,此时整个程序运行结束,按任意键退出。

此操作可参考测试成果中的效果图。

六测试成果
从测试结果看,乘客放弃数的大小和平均等待时间的长短还与乘客出现的密度和乘客的平均容忍时间有关系。

七附录(源程序清单)
#include <stdlib.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdio.h>
#include <windows.h>
#include <conio.h>
#include <time.h>
//所有常量,全局变量和类型定义
#define NULL 0 //空指针
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define INT_MAX 32767
//Status是函数类型,其值是函数结果状态代码
typedef int Status;
#define Empty 0
//------------------------------------------------------
//电梯状态
enum EleStatus{Opening,Opened,Closing,Closed,Moving,Decelerate,Waiting}; enum Action{DoorOpened,DoorClosed,GoingUp,GoingDown,Achieved,None}; enum EleStage{Up,Down,OpenDoor,Stop};
enum ClientStatus{New,GiveUp,In,Out,Finish};
#define CloseTest 40 //电梯关门测试时间
#define OverTime 300 //电梯停候超时时间
#define Accelerate 15 //加速时间
#define UpTime 51 //上升时间
#define DownTime 61 //下降时间
#define UpDecelerate 14 //上升减速
数据结构课程设计报告第13 页,共页
数据结构课程设计报告第16 页,共页
数据结构课程设计报告第17 页,共页
数据结构课程设计报告第18 页,共页
数据结构课程设计报告第19 页,共页
数据结构课程设计报告第20 页,共页
数据结构课程设计报告第21 页,共页。

相关文档
最新文档