Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PID仿真可视化程序

PID仿真可视化程序 —— 基于 PyQt5 的 PID 控制器参数调优与系统响应仿真工具。
该项目提供直观的图形界面,允许用户实时调整 PID 参数(Kp、Ki、Kd),并即时观察被控系统(如热辐射耗散系统)对阶跃目标的响应曲线。

✨ 主要功能

  • 三参数滑块调节:为 Kp、Ki、Kd 分别提供垂直滑块,并可独立设置上下限,支持精细调节(精度 1/10000)。
  • 实时数值显示:当前参数值同步显示在数字框中,支持键盘输入微调。
  • 物理模型仿真:内置多种物理系统模型,包括:
    • 零延迟传递系统
    • 延迟传递系统
    • 积分系统
    • 耗散积分系统
    • 辐射耗散系统(专用于激光焊接加热模拟,基于四次方辐射定律)
  • 动态响应绘图:每当 PID 参数发生变化,自动重新计算并绘制系统输出(测量值)随时间的变化曲线,并叠加上目标值虚线。
  • 曲线自适应缩放:纵坐标根据初始值与目标值自动调整,保证曲线始终居中显示。
  • 高性能绘图:使用 Matplotlib 绘制并转换为 OpenCV 图像,再通过 QGraphicsView 高效显示。

🧪 适用场景

  • PID 控制原理教学与实验
  • 控制系统参数整定练习(如齐格勒-尼科尔斯法)
  • 特定物理对象(如热过程)的 PID 控制效果预研

📦 依赖项

  • Python 3.6+
  • PyQt5
  • numpy
  • opencv-python (cv2)
  • matplotlib

建议使用虚拟环境安装。

🚀 安装与运行

# 1. 克隆仓库
git clone https://github.com/Zixu-Toby-He/python-pid-simulation.git
cd python-pid-simulation/pid仿真

# 2. 安装依赖(推荐使用 pip)
pip install PyQt5 numpy opencv-python matplotlib

# 3. 运行程序
python main.pyw

若系统默认关联 .pyw 文件,亦可直接双击 main.pyw 启动。

🖥️ 使用说明

  1. 启动程序后,主窗口分为左右两区:
    • 左侧:三个垂直滑块,分别对应 Kp(红色)、Ki(绿色)、Kd(蓝色)。每个滑块上方有上限调节框,下方有下限调节框,可拖动滑块或直接输入数值改变 PID 参数。
    • 右侧:上方信息面板显示当前参数值,下方为曲线显示区。
  2. 调节参数:拖动任一滑块或修改数字框数值,曲线会自动重新生成并刷新。
  3. 观察响应:曲线图显示系统从初始状态(默认 0 mV)跟踪目标值(默认 3200 mV)的过程,并包含一条水平虚线表示目标值。
  4. 调整物理模型(高级):若需更换物理模型或修改参数,可在 main.pyw 中修改 物理系统 的实例化参数(如热辐射系数、绝对零度电压值等)。

📁 项目结构

pid仿真/
├── main.pyw              # 程序入口,构建主窗口并控制模拟循环
├── 窗口界面.py           # 定义 PID窗口 类,包含所有 GUI 控件和显示逻辑
├── 控制系统.py           # 基础PID控制系统 类,生成响应数据并绘制曲线
├── 物理系统.py           # 定义各类物理系统模型(基类及派生类)
├── 旧版本/               # 早期实现代码(仅作参考)
├── LICENSE               # MIT 许可证
└── README.md             # 本文件

⚙️ 自定义与扩展

  • 更换物理模型:在 main.pyw功能窗口.__init__ 中,将 物理系统 替换为其他类(如 积分系统),并调整相应参数。
  • 修改目标值:更改 self.目标测量值 即可。
  • 调整仿真时长与精度:在 控制系统.生成测量量变化曲线 调用中修改 结束时刻控制精细度 参数。

📄 许可证

本项目采用 MIT License 授权,详情请参阅 LICENSE 文件。

🤝 贡献

欢迎提交 Issue 或 Pull Request。
若有任何疑问,请联系作者:Zixu-Toby-He。

About

pid仿真可视化程序

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages