PID-Agent是一个创新的智能PID控制系统优化工具,它结合了传统PID控制理论与现代人工智能技术。通过整合LangChain、大语言模型(LLM)、FastAPI和Streamlit,我们打造了一个直观、高效的PID参数调优平台,实现了温度控制系统的智能化与可视化。
- AI驱动优化: 利用LangChain和大语言模型分析温度曲线,提供专业的PID参数优化建议
- 自适应调节: 根据系统响应特性,自动调整控制参数
- 专家级分析: 提供详细的性能指标分析和优化建议
- 动态曲线: 实时绘制温度变化曲线
- 参数跟踪: 监控PID参数变化及其影响
- 性能指标: 显示响应时间、超调量、稳态误差等关键指标
- 串口通信: 支持多达16个独立控制通道
- 实时数据: 毫秒级数据采集和处理
- 即时控制: 参数修改实时同步到硬件
- 可视化控制: 基于Streamlit的直观操作界面
- 实时反馈: 即时查看系统响应和控制效果
- 数据导出: 支持历史数据导出和分析
-
前端: Streamlit
- 实时数据可视化
- 交互式参数调节
- 系统状态监控
-
后端: FastAPI
- RESTful API设计
- 异步数据处理
- WebSocket实时通信
-
AI引擎: LangChain + LLM
- 智能参数优化
- 性能分析
- 优化建议生成
-
硬件通信: PySerial
- 多通道支持
- 实时数据采集
- 可靠的命令传输
-
工业加热控制
- 精密温度控制
- 多区域协同控制
- 生产过程优化
-
实验室设备
- 精确温度控制
- 实验数据记录
- 参数优化研究
-
教育培训
- PID控制原理演示
- 参数调节实践
- 系统响应分析
-
AI辅助决策
- 智能分析系统响应
- 自动生成优化建议
- 持续学习改进
-
全流程可视化
- 实时温度曲线
- 参数影响分析
- 性能指标跟踪
-
灵活配置
- 多通道独立控制
- 参数范围可调
- 控制策略可配置
-
用户友好
- 直观的操作界面
- 清晰的数据展示
- 详细的优化建议
-
实时性能
- 毫秒级数据采集
- 实时参数调整
- 即时响应分析
-
可扩展性
- 模块化设计
- 易于集成
- 支持多种硬件
-
可靠性
- 异常处理机制
- 数据备份恢复
- 稳定性保障
-
智能化
- AI辅助优化
- 自适应调节
- 专家经验积累
-
深度学习增强
- 引入预测控制
- 优化策略学习
- 智能故障诊断
-
功能扩展
- 多参数协同优化
- 高级控制策略
- 远程监控管理
-
生态建设
- 开源社区建设
- 应用案例分享
- 技术经验交流
- 复制配置模板文件:
cp .env.example .env
- 编辑
.env
文件,设置必要的配置项:
SERIAL_PORT
: 串口设备路径BAUD_RATE
: 串口波特率API_PORT
: FastAPI服务端口STREAMLIT_PORT
: Streamlit前端端口DEEPSEEK_API_KEY
: apikey
修改config/llm_config.yaml 输入deepseek的apikey 用于知识库检索
- 安装依赖
pip install uv
uv pip install -r requirments.txt
- 启动后端API服务:
uvicorn fastapi_app.main:app --reload --port 8000
- 启动Streamlit前端面板:
streamlit run streamlit_app/main.py
$ pkill -f "uvicorn fastapi_app.main:app"; pkill -f "streamlit run streamlit_app/main.py"
这个演示程序包含以下功能:
生成模拟的温度数据,模拟了一个典型的 PID 控制响应曲线,包括: 指数上升部分(系统响应) 衰减振荡(PID 控制特性) 随机噪声(真实系统中的干扰) 创建一个模拟的系统状态,包含: 当前的 PID 参数(Kp、Ki、Kd) 目标温度 时间戳 使用 PIDAgent 分析系统状态并获取优化建议,输出: 温度曲线分析结果(上升时间、超调量等指标) AI 生成的 PID 参数优化建议 您可以直接运行这个文件来测试 PIDAgent 的功能: python -m core.agent.pid_agent
系统使用JSON格式进行串口通信,支持多达16个独立的温度控制通道。
{
"channels": [
{
"id": 0,
"temperature": 25.0,
"pid_params": {
"kp": 1.0,
"ki": 0.1,
"kd": 0.05,
"target_temp": 25.0
},
"heating": true
},
// ... 最多16个通道
],
"timestamp": "2025-01-31T20:53:34",
"status": "running"
}
字段说明:
channels
: 通道数组,每个通道包含:id
: 通道ID(0-15)temperature
: 当前温度pid_params
: 当前PID参数kp
: 比例系数ki
: 积分系数kd
: 微分系数target_temp
: 目标温度
heating
: 是否正在加热
timestamp
: 数据时间戳status
: 系统状态(running/error)
PID:<channel>,<kp>,<ki>,<kd>,<target_temp>,<control_period>,<max_duty>\n
示例:PID:0,1.0,0.1,0.05,25.0,100,60\n
参数说明:
- channel: 通道ID(0-15)
- kp: 比例系数
- ki: 积分系数
- kd: 微分系数
- target_temp: 目标温度
- control_period: PID控制周期(毫秒),范围[10, 1000]
- max_duty: 最大占空比(%),范围[0, 100]
开始加热:HEAT_ON:<channel>\n
停止加热:HEAT_OFF:<channel>\n
示例:
HEAT_ON:0 # 开始加热通道0
HEAT_OFF:0 # 停止加热通道0
- 如果接收到无效的JSON数据,系统将返回一个包含所有通道默认值的数据包
- 通道ID超出范围(0-15)的命令将被忽略
- 所有浮点数参数都会被限制在合理范围内:
- kp: [0.1, 100.0]
- ki: [0.0, 10.0]
- kd: [0.0, 10.0]
- temperature: [-273.15, 1000.0]
- 波特率:根据配置文件设置(默认9600)
- 数据位:8
- 停止位:1
- 校验位:无
- 流控制:无
- 行结束符:\n(LF)
PID-Agent代表了传统控制理论与现代AI技术的完美结合,为工业控制、实验室研究等领域提供了一个智能、高效、易用的PID调优解决方案。通过持续的技术创新和实践应用,我们期待与用户一起探索更多可能性,推动控制技术的进步与发展。