单轴PID调节测试,距离做无人机又近了一步

博主利用树莓派3b、mpu6050和PCA9685等硬件,进行了单轴PID调节实验,通过调整比例、积分和微分参数,逐步优化控制效果。目前实现了无刷电机的初步控制,下一步目标是构建四轴无人机并实现悬空飞行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过几个星期的修改代码,单轴PID调节有点意思了。
硬件:
树莓派3b
mpu6050
pca9685
无刷电机 X 2
在这里插入图片描述```
struct PID
{
float kp; //< proportional gain调整比例参数
float ki; //< integral gain调整积分参数
float kd; //< derivative gain调整微分参数
float pregyro;
//float desired; //< set point 期望值
float integ; //< integral积分参数
float iLimit; //< integral limit积分限制范围
float deriv; //< derivative微分参数
float preerror; //< previous error 上一次误差
float output;
float error; //< error 误差
float lastoutput;
} ;
PID Roll_Suit;

PID调节算法:measured是MPU6050的测量值, desired,是期望,这里期望是0.1, inital_Error是误差值0.38。

float Pid_Calc(PID &pidsuite,float measured,float desired,float Inital_Error)
{
    
    pidsuite.error = desired - measured + Inital_Error ;//偏差:期望-测量值
    pidsuite.error = pidsuite.error; 
    pidsuite.integ +
### 模型搭建 在 Simulink 中实现单轴姿态 PID 控制系统的建模与仿真,需要明确系统的基本组成模块,包括控制器(PID)、被控对象(动力学模型)、传感器反馈等部分。以下为具体实现步骤: 1. **建立被控对象模型** 以单轴无人机俯仰角控制为例,假设其动力学方程为: $$ I\ddot{\theta} + b\dot{\theta} = u $$ 其中,$ I $ 为转动惯量,$ b $ 为阻尼系数,$ u $ 为输入力矩,$ \theta $ 为俯仰角。该系统可以通过二阶微分方程描述,并在 Simulink 中使用积分器、增益和加法模块构建。 2. **设计 PID 控制器** 在 Simulink 中使用内置的 PID Controller 模块,设置比例(P)、积分(I)、微分(D)参数。控制器的输入为期望角度与实际角度的误差信号,输出为控制力矩 $ u $。根据实际控制需求,可以采用 PI、PD 或 PID 结构[^3]。 3. **添加反馈回路** 使用一个传感器模块(如 Gain 模块模拟角度测量)将被控对象的输出反馈至控制器输入端,形成闭环控制系统。此时,误差信号即为设定值与反馈值之差。 4. **设定参考输入信号** 可通过 Step 模块或 Signal Generator 模块提供目标姿态角作为参考输入,驱动控制系统进行响应。 5. **仿真设置与调试** 设置合适的仿真时间,在仿真运行过程中观察输出波形,使用 Scope 模块查看角度响应曲线。通过调整 PID 参数优化系统性能,例如提高响应速度、减小超调量或消除稳态误差。 ### 示例代码结构 ```matlab % 设置初始参数 Kp = 10; Ki = 0.1; Kd = 0.01; ``` ```simulink % Simulink 模块连接示意 Step -> Sum (reference - feedback) -> PID Controller -> Plant (Second-Order System) -> Scope ↑ └────── Sensor (Gain) ─────┘ ``` ### 性能分析与优化 在完成基本建模后,可通过改变 PID 参数组合,观察系统响应特性。Simulink 提供了自动调参工具(如 PID Tuner),可根据系统开环响应自动推荐合适的参数设置。此外,也可以结合模糊控制策略对 PID 参数进行在线调整,提升控制精度和鲁棒性[^1]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值