# pid-simple **Repository Path**: yunlong/pid-simple ## Basic Information - **Project Name**: pid-simple - **Description**: No description available - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-05-20 - **Last Updated**: 2025-06-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PID简单控制器 这是一个简单的PID控制器实现项目,用于演示PID控制算法的基本原理和应用。 ## 项目简介 本项目实现了一个基础的PID(比例-积分-微分)控制器,可用于各种控制系统应用。PID控制器通过调节比例(P)、积分(I)和微分(D)三个参数来实现对系统的精确控制。 ## 功能特点 - 简单易用的PID控制器实现 - 支持参数动态调整 - 包含基本的控制算法演示 - 适合学习和教学使用 ## 目录结构 ``` ├── app/ # 应用层代码 │ ├── pid.* # PID控制器核心实现 │ ├── app_distance_pid.* # 距离控制PID应用 │ └── app_speed_pid.* # 速度控制PID应用 ├── hardware/ # 硬件驱动层 │ ├── key/ # 按键驱动 │ ├── lcd/ # LCD显示驱动 │ ├── led/ # LED驱动 │ ├── motor/ # 电机及编码器驱动 │ └── mpu6050/ # MPU6050传感器驱动 ├── os/ # 操作系统层 ├── ui/ # 用户界面层 └── utils/ # 工具函数库 ``` ## 开发环境 - Code Composer Studio (CCS) IDE - MSPM0G3507 微控制器 - 标准C语言开发环境 ## 编译和运行 1. 使用CCS打开项目 2. 编译项目代码 3. 将程序下载到目标板 4. 运行程序 ## PID参数调整 本项目提供了两种PID控制模式: 1. 距离控制模式 - 通过调整P、I、D参数实现精确的位置控制 - 适用于定位控制场景 2. 速度控制模式 - 通过调整P、I、D参数实现稳定的速度控制 - 适用于恒速控制场景 ### 参数调整建议 - P(比例):增大可提高响应速度,但过大会导致震荡 - I(积分):消除稳态误差,但过大会导致超调 - D(微分):抑制震荡,但过大会放大噪声 ## 硬件接口定义 ### 引脚配置 1. 电机接口 - PWM输出:P1.0(电机1)、P1.1(电机2) - 方向控制:P2.0(电机1)、P2.1(电机2) 2. 编码器接口 - 编码器A相:P3.0(电机1)、P3.2(电机2) - 编码器B相:P3.1(电机1)、P3.3(电机2) 3. LCD显示屏 - SPI接口:MOSI(P4.0)、SCK(P4.1) - DC:P4.2 - RST:P4.3 - CS:P4.4 4. 按键接口 - KEY1:P5.0(模式切换) - KEY2:P5.1(参数增加) - KEY3:P5.2(参数减少) - KEY4:P5.3(确认/返回) ## 调试方法和步骤 1. 基础检查 - 确认所有硬件连接正确 - 检查电源供电是否稳定(建议5V-12V) - 验证编码器信号是否正常 2. PID参数调试流程 - 从P参数开始调试,初始值设为0.1 - 逐步增加P值直到系统有轻微振荡 - 加入D参数抑制振荡,初始值为P值的1/10 - 最后加入I参数消除稳态误差,初始值很小(如0.01) 3. 性能测试 - 使用示波器观察系统响应曲线 - 记录上升时间、超调量、稳态误差等指标 - 根据实际应用场景微调参数 ## 性能指标 1. 速度控制模式 - 调节时间:< 500ms - 超调量:< 10% - 稳态误差:< 2% 2. 位置控制模式 - 定位精度:± 1mm - 响应时间:< 1s - 稳定性:无明显振荡 ## 常见问题及解决方案 1. 电机不转动 - 检查电机驱动器供电 - 确认PWM和方向信号输出正常 - 验证电机接线是否正确 2. 位置/速度波动大 - 降低P参数值 - 适当增加D参数 - 检查机械安装是否牢固 3. 无法达到目标值 - 适当增加I参数 - 检查系统是否存在机械阻力 - 确认电机功率是否足够 ## 项目贡献指南 1. 代码贡献 - Fork本项目 - 创建特性分支 - 提交变更 - 发起Pull Request 2. 问题反馈 - 使用GitHub Issues提交问题 - 详细描述问题现象和复现步骤 - 提供相关的日志和测试数据 ## 注意事项 1. 首次使用时请仔细阅读硬件连接说明 2. 调试PID参数时建议从小值开始逐步调整 3. 运行前确保电机和编码器连接正确 4. 更新固件时注意备份原有参数 5. 进行长时间测试时注意散热