双环PID角度控制简单粗暴调参经验

本文介绍了双环PID控制系统的调参方法,通过先调整速度环的PID参数以获得阻尼感和减少杂波,再逐步增加角度环的参数以优化响应速度和抗扰性能,最后可能需要微调KI以处理静态误差。

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

一、简介

双环PID角度控制一般由角度环和速度环组成,内环为速度环,外环为角度环。一般控制框图如下图所示:

二、粗暴调参

这里介绍一种粗暴调参方法,一般只需要调节速度环和角度环的kp即可获得较好的控制效果。

1、将角度环的PID全部给0,先对速度环参数进行调节。

        此时速度环的Speed_ref为0(角度环输出为0),逐渐增大速度环的kp,直至转动电机能够感受到足够强烈的阻尼感。

        或者增大速度环的kp,直至电机开始震动(这里建议把速度反馈做一个低通滤波,以减少杂波),则速度环的kp取此时kp的70%~90%。

        速度环参数调试完成。

2、逐渐增大角度环的kp直至得到较好的相应速度和抗扰性能。(角度反馈和角度期望也建议做一个较弱的低通滤波

3、如果存在静态误差,可以稍微给点ki,一般先给速度环。

<think>好的,我现在需要处理用户关于位置环和角速度环串级PID的问题。首先,用户之前已经询问过角速度环,现在进一步扩展到位置环和角速度环的串级结构,说明他们可能正在设计一个需要精确位置控制的系统,比如机器人、无人机或者机械臂。 首先,我需要回顾用户之前的对话历史。用户之前得到的是关于角速度环的详细解释,包括结构、作用、数学描述和调参步骤。现在用户的问题更广泛,涉及到位置环和角速度环的结合,所以需要将两者结合起来解释,并突出串级PID的结构。 接下来,我应该确定回答的结构。通常,这样的问题需要分步骤解释,先介绍基本结构,然后每个环的作用,接着数学描述,参数整定步骤,设计要点,实例,以及常见问题。这样结构清晰,便于用户理解。 我需要确保符合用户给出的系统级指令,比如使用正确的中文,数学公式用$...$和$$...$$格式。同时,内容要准确,比如位置环作为外环输出目标角速度,而角速度环作为内环输出扭矩或PWM信号。还要注意调参的顺序,先内环后外环,这一点在之前的回答中已经提到,现在需要再次强。 用户可能的深层需求是理解如何将位置和角速度环结合起来,应用于实际系统,比如平衡车或机械臂。因此,实例部分需要具体,比如使用平衡车或机械臂关节控制作为例子,这样用户能更直观地理解应用场景。 另外,用户可能遇到的实际问题,如振荡、响应慢或静差,需要总结成表格,方便他们快速查阅解决方法。这部分在之前的回答中也有,但需要根据位置环的情况进行整,比如位置环的积分饱和问题可能需要不同的处理方式。 需要注意数学模型的准确性。位置环的模型可能涉及积分关系,位置是角速度的积分,因此传递函数或状态方程需要正确表达这一点。同时,控制律的公式要正确,位置环的PID输出作为角速度环的设定值,而角速度环PID输出最终控制执行器。 还要考虑带宽匹配的问题,内环(角速度)的带宽必须高于外环(位置),以确保内环能快速响应外环的指令。这一点对于系统稳定性至关重要,需要详细说明。 最后,确保回答语言简洁,避免专业术语过多,但又要准确。可能需要检查是否有遗漏的关键点,比如传感器融合、抗积分饱和措施,或者实际试中的注意事项,如使用阶跃响应测试等。</think>好的,我来详细解释**位置环与角速度环的串级PID控制**设计原理和应用方法。以下是逐步分析: --- ### 一、基本控制结构 **串级PID的层级关系**: ``` 位置环(外环) → 角速度环(内环) → 执行器(电机/舵机) ``` - **位置环**:接收目标位置$θ_{target}$,计算位置偏差,输出**目标角速度**$ω_{target}$ - **角速度环**:接收$ω_{target}$,结合当前角速度$ω$,输出**扭矩/PWM信号**控制执行器 --- ### 二、各环核心作用 #### 1. **位置环(外环)** - **目标**:精确跟踪位置(如机械臂关节角度、平衡车倾斜角度) - **特点**: - 响应较慢(涉及积分过程) - 主要消除**稳态误差** - 输出量是角速度指令(非直接控制执行器) #### 2. **角速度环(内环)** - **目标**:快速响应扰动,实现角速度精准跟踪 - **特点**: - 响应速度快(直接控制电机扭矩) - 抑制**高频干扰**(如电机振动、负载突变) - 需要高带宽(通常为外环带宽的3~5倍) --- ### 三、数学模型 #### 1. 物理关系 - 位置与角速度的积分关系: $$θ(t) = \int_{0}^{t} ω(τ)dτ$$ - 动力学方程(以旋转系统为例): $$J\dot{ω} + Bω = τ_{motor} - τ_{disturbance}$$ 其中: - $J$:转动惯量 - $B$:阻尼系数 - $τ_{motor}$:电机输出扭矩 - $τ_{disturbance}$:外部干扰扭矩 #### 2. 控制律公式 - **位置环PID**: $$ω_{target} = K_{p\_pos}(θ_{target}-θ) + K_{i\_pos}\int(θ_{target}-θ)dt + K_{d\_pos}\frac{d}{dt}(θ_{target}-θ)$$ - **角速度环PID**: $$τ_{motor} = K_{p\_vel}(ω_{target}-ω) + K_{i\_vel}\int(ω_{target}-ω)dt + K_{d\_vel}\frac{d}{dt}(ω_{target}-ω)$$ --- ### 四、参数整定步骤 1. **先角速度环(内环)**: - 固定位置环PID参数为0(关闭外环) - **比例项$K_{p\_vel}$**:逐步增大直至系统出现轻微振荡 - **微分项$K_{d\_vel}$**:加入以抑制振荡,提升稳定性 - **积分项$K_{i\_vel}$**:消除角速度静差(如电机受恒定阻力时) 2. **再位置环(外环)**: - 保持角速度环参数不变 - **比例项$K_{p\_pos}$**:增加至系统开始快速跟踪目标位置 - **积分项$K_{i\_pos}$**:消除位置稳态误差(如机械臂到位后的残留偏移) - **微分项$K_{d\_pos}$**:通常较小,用于抑制位置超 --- ### 五、设计要点 1. **带宽匹配**: - 角速度环带宽 > 位置环带宽(建议3~5倍) - 例:若位置环带宽10Hz,角速度环需30~50Hz 2. **抗饱和处理**: - 对位置环积分项限幅,防止长期累积导致角速度指令超限 - 例:设定$ω_{target}$最大值为电机允许的±300°/s 3. **传感器融合**: - 位置信号:来自编码器或视觉定位(低频高精度) - 角速度信号:来自陀螺仪(高频但可能有漂移) - 需融合滤波(如互补滤波/Kalman滤波) --- ### 六、实例:机械臂关节控制 1. **控制流程**: - 输入:目标关节角度$θ_{target}$ - 位置环计算→输出目标角速度$ω_{target}$ - 角速度环计算→输出电机电流(扭矩) - 电机驱动关节转动→编码器反馈实际角度$θ$ 2. **效果对比**: - **单位置环PID**:受负载变化影响大,响应慢 - **串级PID**: - 负载突变时,角速度环快速补偿扭矩 - 位置环专注消除累积误差 --- ### 七、试工具与方法 | 工具 | 用途 | |---------------|--------------------------| | 阶跃响应测试 | 观察超量、稳定时间 | | 扫频仪 | 测量系统带宽 | | 示波器 | 捕获干扰脉冲信号 | | MATLAB仿真 | 预调参数,降低硬件风险 | --- ### 八、典型问题与对策 | 现象 | 原因 | 解决方案 | |--------------------|-----------------------|--------------------------| | 位置持续低频振荡 | 角速度环带宽不足 | 提高$K_{p\_vel}$或降低$K_{i\_pos}$ | | 到位后抖动 | 位置环微分增益过高 | 降低$K_{d\_pos}$ | | 响应延迟明显 | 角速度环$K_{p\_vel}$过小 | 逐步增大$K_{p\_vel}$ | | 静差无法消除 | 位置环积分限幅过紧 | 放宽积分限幅或增大$K_{i\_pos}$ | --- 如果需要具体场景(如无人机高度控制、平衡车、云台稳定等)的详细参数设置,可以进一步说明!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

本人不帅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值