一个有用的信号控制小程序

这个信号控制小程序是我的一个课程作业,要求根据交叉口单点配时理论设计一个小程序,之后用python的wx库实现了可视化。
wx的官方文档在这里

信号控制策略

周期时长

未饱和交叉口周期时长由韦伯斯特延误优化模型确定的周期时长、最大周期时长、满足行人过街的最小周期时长共同决定 。

最大周期时长

当交叉口的信号周期达到一定阈值后,等待的人易产生急躁情绪,等待的车队也会过长,因此通常设定一个阈值作为周期时长的界限。 如果周期太长,则某一方向的绿灯时间可能大于实际需要时长,而另外方向的红灯时间不合理的延长必然导致该方向车流等待时间的延长。本软件中设定的最大周期时长取为 180s。

满足行人过街的周期时长

在设置每一相位的最小绿灯时长时,最小绿灯时长应取行人过街的最小绿灯时长和按照车流量得到的配时方案决定的最小绿灯时长两者中的较大值。 在得到所有相位的最小绿灯时长后, 对所有相位的最小绿灯时长、红灯、黄灯时间进行加和,得到满足行人过街的最小周期时长 。

绿信比分配原则


软件中采用的是各个相位有效绿灯时间按照等饱和度原则(等流量比原则)确定的方法,即各相位绿信比按各相位关键车道流量比的比例进行分配,因此最终各相位的饱和度也相同。

损失时间

饱和流率

(2)当无法实测路口各类车道的饱和流率时,则饱和流率可以根据 HCM2010(Page18-35)中的方法进行估算。 车道饱和流率与道路条件、交通条件、渠化条件、信号条件、环境条件等有关系。饱和流率应当尽量采用实测数据,在无法取得实测数据时,如新建交叉口设计时,才考虑采用估算方法。估算时, 校正后的每车道饱和流率如公式(9)所示。

行人相位和非机动车相位

在参考文献[5]中,有这部分的详细说明

软件设计

这里写了几个比较重要的语句
1.对软件界面上一些要素的定义,例如

def __init__(self):##定义名称wx.Frame.__init__(self, None, -1, '信号交叉口配时参数计算',size=(1190, 800))  ##静态文本显示self.panel = wx.Panel(self, -1) self.rev = wx.StaticText(self.panel, -1, "信号交叉口配时参数计算", (460,10))  self.rev.SetForegroundColour('black')  self.rev.SetBackgroundColour('white')###定义静态文本字体font = wx.Font(18, wx.DECORATIVE,wx.ITALIC, wx.NORMAL)  self.rev.SetFont(font)  ##建立相位个数选项框#self.dict = {'1':2,'2':3,'3':4,'4':4,'5':4}authors = ['2','3','4']text1 = wx.StaticText(self.panel,-1,"请输入相位数:",(20,60))self.choose = wx.ComboBox(self.panel,-1,'', pos=(100, 60), size=(130, -1), choices=authors , style=wx.CB_SORT)self.button=wx.Button(parent=self.panel,id=-1,label=u'确定',pos=(280,60))##插入相位图img3=wx.Image('相位方案图.jpg',wx.BITMAP_TYPE_ANY)show3=wx.StaticBitmap(self.panel,-1,wx.BitmapFromImage(img3),pos=(20,130))self.Bind(wx.EVT_BUTTON,self.Settings,self.button)sb=wx.StaticBox(self.panel, label='预定义参数',pos = (10,38),size = (520,180))

2.对[确定]、[计算]按钮的定义

 ##绘制“计算”buttonself.button1=wx.Button(parent=self.panel,id=-1,label=u'计算',pos=(670,600))         self.Bind(wx.EVT_BUTTON,self.CloseMe,self.button1)
 ##绘制第二部分的确定按钮self.button5=wx.Button(parent=self.panel,id=-1,label=u'确定',pos=(210,665))self.Bind(wx.EVT_BUTTON,self.Settings3,self.button5)

3.对用户输入信息的提取
使用GetValue(),如:

        non_auto1 = self.isisnumber(self.non_auto1.GetValue()) 

4.将计算结果写入对话框
使用SetValue(),如:

            self.output[i].SetValue(str(y2[i]))

信号策略的表达其实十分简单,在进行可视化时,只需要实际上将这些组件进行结合,并对组件进行定义,最终可以得到很好的效果,还可以自己添加一些功能,例如输出信号配时图和信号配时方案的文字等。

python 一个有用的信号控制小程序相关推荐

  1. python自动填写小程序表单_新年好!教大家用Python写一个自动回复拜年信息的小程序!...

    原标题:新年好!教大家用Python写一个自动回复拜年信息的小程序! 过年期间,想必大家都收到很多拜年信息吧!有没有也被拜年短信(大部分是群发)搞得很焦虑?不回复似乎显得很没有礼貌,一一回复又累心劳神 ...

  2. 用python做一个数据查询软件_使用Python实现NBA球员数据查询小程序功能

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于早起Python ,作者投稿君 一.前言 有时将代码转成带有界面的程序,会极大地方便 ...

  3. 图文列表+欢迎页面+音乐控制小程序模板

    介绍: 图文列表+欢迎页面+音乐控制小程序模板,带微信小程序项目导入使用说明. 安装方式介绍: 1:安装后图标: 登录,随意一个微信号,扫描后即可登录 2:选择无appid:项目名称随意,地址选择下载 ...

  4. 【课程设计】基于Taro+React+Springboot+TaroUI+Python爬虫的网络音乐播放小程序详细设计实现

    [课程设计]基于Taro+React+Springboot+TaroUI+Python爬虫的网络音乐播放小程序详细设计实现 解决触摸穿透 自定义导航栏 文章目录 项目简介 功能截图 1.用户登录注册 ...

  5. python实现音乐播放和下载小程序功能

    更多编程教程请到:菜鸟教程 https://www.piaodoo.com/ 友情链接: 高州阳光论坛https://www.hnthzk.com/ 人人影视http://www.sfkyty.com ...

  6. C语言时间管理小程序,写了一个时间管理的微信小程序

    原标题:写了一个时间管理的微信小程序 前言 以前看过<把时间当作朋友>这本书,里面有个管理时间的观点个人觉得很有用,就是养成记录自己每天的时间消耗的一个习惯,这样有助于更有效地管理自己的时 ...

  7. python进行数据查询_使用Python实现NBA球员数据查询小程序功能

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于早起Python ,作者投稿君 一.前言 有时将代码转成带有界面的程序,会极大地方便 ...

  8. 计算机毕业设计Python+uniapp“宠到家”宠物领养小程序(小程序+源码+LW)

    计算机毕业设计Python+uniapp"宠到家"宠物领养小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pyc ...

  9. 计算机毕业设计Python+uniapp快递寄取微信小程序(小程序+源码+LW)

    计算机毕业设计Python+uniapp快递寄取微信小程序(小程序+源码+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: Pychram社区版+ pyth ...

最新文章

  1. java签名算法阻止 设置_java数字签名算法之RSA
  2. php 让字体闪烁,js实现文字闪烁特效的方法
  3. 深度学习和目标检测系列教程 15-300:在 Python 中使用 OpenCV 执行 YOLOv3 对象检测
  4. win7蓝屏_win7电脑蓝屏怎么办
  5. 申通快递机器人上岗_申通快速分拣机器人未来有70%人会失业
  6. Ubuntu 首次给root用户设置密码
  7. Python_目录的简单操作(新建/查看/删除)
  8. oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包
  9. 征服Java面试官!mysql索引树结构
  10. 记录:添加trace_event埋点并调用
  11. 打开VsCode经常弹出:尝试在目标目录创建文件时发生一个错误:拒绝访问:重试 跳过这个文件(不推荐),关闭安装程序
  12. hdb3编码规则波形_求HDB3码编码后波形,编码后功率谱密度图形,求解啊
  13. java生成emf_推荐一款java代码生成的插件EMF
  14. Python初级双层for循环嵌套求素数合数和循环打印**
  15. python中scale啥意思_scale什么意思
  16. 你必须知道的3D建模流程,最后一步是关键
  17. 二维动态规划降维误差一般为多少_数学建模常用算法模型
  18. git创建本地分支以及推送本地分之至远程分支
  19. linux格式化时设备或资源忙,Linux下使用fdisk命令和partprobe命令,在不重启系统的状况下新建分区并格式化...
  20. PEDOT:PSS/甘油酸胆碱([Ch][Glyce])离子液体混合材料

热门文章

  1. vivoX30是android5的吗,虽然vivoX30Pro很火,但仍然不建议入手
  2. 荣耀20能不能支持鸿蒙,华为鸿蒙os2.0系统适用哪些机型
  3. 全国计算机奥赛决赛试题及答案,2017年cad竞赛试题及答案
  4. Android系统之ViewTree的创建与绘制
  5. CorelDraw插件开发-VBA-常用功能-全可显示-全可打印-全可编辑-CDR插件
  6. 【STM32】STM32 F4系列时钟树与RCC寄存器
  7. 公司网络配置2020
  8. 美国运通利用i2c技术提高金融科技公司在其网络上发卡的速度
  9. 基本数据类型和它们之间的运算规则
  10. 物联网是自动化还是计算机,工业物联网和传统自动化的区别是什么