这是一个集成了驾驶仿真和实时评价的完整列车操作系统。通过实时TCP网络通信,系统可以对驾驶员的操作进行即时评估,同时支持离线数据分析和评价报告生成。
- 💻 实时仿真与评价联动
- 🔄 自动/手动驾驶模式切换
- 📊 动态数据可视化
- 📝 智能评价生成
- 🔍 详细的运行日志记录
|
|
Python >= 3.7
PyQt5
pandas
numpy
matplotlib
scipy
1️⃣ 克隆项目仓库
git clone [repository-url]
cd train-simulation-system2️⃣ 安装依赖
pip install -r requirements.txt对于exe版本的文件,直接双击运行即可,以下为源码版本的使用指南。
1️⃣ 启动评价系统
python evaluation.py2️⃣ 启动仿真系统
python main.py| 按键 | 功能 |
|---|---|
| Q | 切换至牵引工况 |
| W | 切换至惰行工况 |
| E | 切换至制动工况 |
| O | 增加当前工况力度 |
| P | 减小当前工况力度 |
最后一次仿真结束时,将生成三个文件:
- 一个是🖼️ PNG文件,记录了最后的速度曲线图。
- 一个是📜 LOG文件,记录了整个仿真过程的操作。
- 一个是📊 CSV文件,记录了仿真过程的具体数据。
定义: 实际速度超过目标速度的百分比
公式:overshoot = (actual_speed - target_speed) / target_speed * 100
| 等级 | 加速度范围 | 描述 |
|---|---|---|
| 🟢 | ≤ 0.28 m/s² | 极舒适 |
| 🟡 | 0.28 ~ 1.23 m/s² | 舒适 |
| 🟠 | 1.23 ~ 2.12 m/s² | 不舒适 |
| 🔴 | > 2.12 m/s² | 无法忍受 |
标准: 允许偏差 ±180秒(3分钟)
计算:
error = |actual_position - target_position|
graph TD
A[train-simulation-system] --> B[simulation]
A --> C[evaluation]
A --> D[data]
A --> E[logs]
B --> B1[main.py]
B --> B2[gui.py]
B --> B3[simulation.py]
B --> B4[pid.py]
B --> B5[widgets.py]
B --> B6[network_client.py]
C --> C1[evaluation_system.py]
C --> C2[metrics.py]
D --> D1[列车目标速度曲线.xlsx]
D --> D2[ATP顶棚速度数据.xls]
D --> D3[制动特性曲线.xls]
D --> D4[牵引特性曲线.xls]
TrainSimulation/
├── TrainSimulation_App/ # 可执行文件目录
│ ├── TrainEvaluator.exe # 仿真驾驶评价软件
│ ├── TrainSimulator.exe # 列车驾驶仿真软件
│ └── logs/ # 仿真输出目录
│ ├── *.png # 速度曲线图
│ ├── *.log # 操作日志
│ └── *.csv # 运行数据
│
└── TrainSimulation_Code/ # 源代码目录
├── evaluate.py # 评价系统源码
├── main.py # 主程序
├── gui.py # 图形界面
├── widgets.py # 界面组件
├── simulation.py # 仿真逻辑
└── pid.py # PID控制器
- 🔵 确保所有数据文件完整
- 🔵 日志自动保存在logs目录
- 🔵 支持CSV格式数据导出
- 🔵 由于输入数据仅为课程用不方便外传,所以请联系课程教师欧冬秀老师获取(或联系我获得一个虚拟的测试数据)
💥 系统无法启动
- ✅ 检查Python版本 (>= 3.7)
- ✅ 验证依赖安装情况
- ✅ 确认数据文件完整性
🌐 网络连接失败
- ✅ 确认评价系统已启动
- ✅ 检查端口5000占用情况
- ✅ 查看防火墙设置
-
🎓 罗晨凯 - 2021级交通工程信控系,同济大学
- 📧 Email: 2151216@tongji.edu.cn
- 🔗 GitHub: ryan11njr
-
🎓 胡家晗 - 2021级交通工程交规系,同济大学
-
🎓 陈彦宇 - 2021级交通工程交规系,同济大学
本项目采用 MIT 许可证。
Copyright © 2024 Chenkai Luo at Tongji University