Skip to content

ChlorophyTeio/ZPW2000_Simulation_zh

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZPW-2000 移频轨道电路仿真系统

项目简介

本项目是一个简简单单的移频轨道电路仿真课设,基于 ZPW-2000 移频轨道电路 的列车仿真系统。系统使用 Python 编程语言和 PyQt6 框架实现,旨在通过直观的图形界面展示列车仿真运行过程。项目包含轨道信号仿真、列车实时速度显示、限速控制以及轨道电路状态等功能,便于用户理解和学习轨道电路原理及其控制逻辑。


功能特性

1. 主界面功能

  • 动态显示列车位置、速度、剩余时间、限速等信息。
  • 支持列车起始轨道、初始速度和位置的用户自定义设置。
  • 提供仿真控制按钮,包括:
    • 开始仿真
    • 暂停仿真
    • 继续仿真
  • 倍速控制滑块,支持从 0.1x 到 11x 的动态倍速调整。

2. 轨道电路与信号模拟

  • 模拟 ZPW-2000 轨道电路的 低频信号载频信号
  • 轨道信号状态与列车位置联动,动态更新轨道信号灯状态:
    • 红色:停车信号。
    • 黄色:限速信号。
    • 绿色:通行信号。
  • 支持自定义绘制轨道的状态与方向(左倾或右倾斜线)。

3. 列车仿真逻辑

  • 动态更新列车在轨道上的位置、速度、尾部轨道信息等。
  • 支持多个列车的仿真运行,避免轨道占用冲突。
  • 实现了轨道信号对列车速度的限速控制:
    • 无限速模式
    • 限速 160 km/h 模式
    • 限速 80 km/h 模式
    • 紧急停车模式

4. 界面实时数据显示

  • 轨道状态
    • 各轨道占用情况(空闲/占用)。
    • 低频信号和载频信号动态更新。
  • 列车状态
    • 列车实时速度(km/h)。
    • 列车限速显示。
    • 剩余距离和到达时间。

技术实现

1. 界面设计

  • 使用 Qt Designer 设计界面,保存为 .ui 文件,通过 pyuic 转换为 Python 代码。
  • 固定窗口分辨率:1366 x 768。
  • 主要组件:
    • 按钮:开始仿真暂停仿真 等。
    • 滑块:控制时间倍速(范围:-10 ~ 10)。
    • 标签:显示列车限速、时速、剩余距离等信息。
    • 输入框:设置列车初始速度与位置。
    • 下拉框:选择列车编组(如 4M4T、5M7T)。

2. 仿真逻辑

  • 使用 PyQt6 的 QTimer 定时器实现仿真循环。
  • 核心逻辑:
    • 更新列车头部和尾部轨道信息。
    • 动态计算列车速度、限速及剩余距离。
    • 联动更新轨道信号灯及轨道状态显示。

3. 自定义绘图

  • 使用 PyQt6 的 QPainter 实现轨道斜线绘制,支持颜色、方向和粗细的动态调整。
  • 自定义控件(CustomWidget)用以显示轨道状态。

环境配置

1. 环境要求

  • Python >= 3.9
  • 安装依赖库:
    • PyQt6
    • PyQt6-tools(用于运行 Qt Designer)

2. 安装步骤

  1. 创建虚拟环境
    conda create -n zpw2000_simulation python=3.9
    conda activate zpw2000_simulation
  2. 安装依赖
    pip install PyQt6
    pip install pyqt6-tools
  3. 运行程序
    python main.py

文件结构

├── main.py              # 主程序入口,控制仿真逻辑
├── QtGui
│   ├── simulationUi.py      # 由 Qt Designer 转换生成的 UI 文件
│   └── simulationUi.ui     # Qt Designer 设计的界面文件
├── README.md            # 项目说明文档
├── requirements.txt     # 依赖库清单
└── LICENSE              # 开源协议

运行演示

1. 主界面

  • 启动程序后,加载主界面,用户可以设置列车的初始轨道、速度和位置。
  • 功能模块
    • 轨道状态:显示轨道信号灯和低频信号。
    • 列车状态:实时更新速度、限速和距离等信息。
    • 仿真控制:通过按钮和滑块控制仿真进度。

2. 仿真控制

  • 开始仿真
    • 按下 开始仿真 按钮,列车开始按照设置的初始状态运行。
    • 轨道信号灯会根据列车位置动态变化。
  • 倍速调整
    • 拖动倍速滑块,调整时间倍速,支持加速和减速。
  • 暂停与继续
    • 仿真运行中,可按下 暂停仿真 按钮暂停,再次按下恢复运行。

开源协议

本项目遵循 GPL v3.0 开源协议。若需闭源开发,请考虑使用 PySide6 替代 PyQt6。


改进方向

  1. 界面优化
    • 增加动态轨道图和列车动画。
    • 支持全屏模式和分辨率自适应布局。
  2. 功能扩展
    • 添加轨道占用冲突检测和报警功能。
    • 实现更多轨道信号模式(如车站信号)。
  3. 性能优化
    • 使用多线程处理复杂仿真逻辑,提升运行效率。

联系方式

如有任何问题或建议,请联系:

  • 作者:ChlorophyTeio
  • 邮箱:chlorophyimo@gmail.com
  • 开源地址:here

Thanks♪(・ω・)ノ

About

一个简简单单的移频轨道电路仿真课设

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages