1558582190 发表于 2016-6-18 13:45:17

我的四轴不管怎么调PID摆动的幅度都是越来越大 求解啊

我用的是十字的飞行方式,采样的是单环PID,不管我怎么调P都是摆动越来大。

wye11083 发表于 2016-6-18 14:25:53

阻尼系数过小了吧。

helislayer 发表于 2016-6-18 15:42:31

调 Kp 的时候先把 Ki 和 Kd 设置为 0。
然后如果振荡的话就调低 Kp.
应该可以搞到一个最大的 Kp。
应该可以找到一个 Kp 是大概差不多的,
但是有固定的误差偏移。引入 Ki 就可以消除
那个固定的偏移。

1558582190 发表于 2016-6-18 17:09:58

helislayer 发表于 2016-6-18 15:42
调 Kp 的时候先把 Ki 和 Kd 设置为 0。
然后如果振荡的话就调低 Kp.
应该可以搞到一个最大的 Kp。


你调PID的时候有没有出现这种情况

oner 发表于 2016-6-18 18:11:43

如果把P调小,还越摆越大,那就检查你的姿态部分是否有延迟。

helislayer 发表于 2016-6-18 20:01:12

oner 发表于 2016-6-18 18:11
如果把P调小,还越摆越大,那就检查你的姿态部分是否有延迟。

延迟减少 Kp 应该是有帮助的。

哈,还有一个比较愚昧的问题,楼主检查一下
是不是反馈的信号给反了变成正反馈了。

helislayer 发表于 2016-6-18 20:02:37

1558582190 发表于 2016-6-18 17:09
你调PID的时候有没有出现这种情况

我也没有调过很多 PID, 提醒你检查一下反馈方向。

1558582190 发表于 2016-6-18 21:10:15

helislayer 发表于 2016-6-18 20:02
我也没有调过很多 PID, 提醒你检查一下反馈方向。

反馈方向是负反馈,我现在直接先调I,再调P,现在能抑制摆动了

1558582190 发表于 2016-6-18 21:12:39

oner 发表于 2016-6-18 18:11
如果把P调小,还越摆越大,那就检查你的姿态部分是否有延迟。

我的姿态更新频率是100Hz, 我觉得可能是电调和电机的问题

helislayer 发表于 2016-6-19 01:15:28

1558582190 发表于 2016-6-18 21:10
反馈方向是负反馈,我现在直接先调I,再调P,现在能抑制摆动了

为什么不先关闭 I 和 D 来调 P 呢?能抑制摆动最好。

先不要假定是电机和电调问题,如果你没有调过 pid
这个摆动很正常。

zouyf12 发表于 2016-6-19 11:06:19

1558582190 发表于 2016-6-18 21:10
反馈方向是负反馈,我现在直接先调I,再调P,现在能抑制摆动了

    四轴这个东西,角速度环是关键,原因很简单,如果只有角度环的话,当角度有偏差出现时,   控制器控制电机产生转速差, 然后由于转速差使机身产生一个往平衡位置转动的角速度。
那么问题来了,在只有P或者PI的角度环控制器中, 机身从偏差位置转动到平衡位置这个过程中,控制器的输出都是正的, 也就是机身转动的角速度一直都在加速,
当机身达到平衡位置时,虽然控制器的输出为0了,但是那个转动的角速度仍然存在, 所以势必会转过平衡位置往另一边运动,然后控制器再输出反向的角度差减速,如此以往。
所以说,只有角度环的控制器理论上不可能能保持机身平稳,虽然加D有些效果, 但是也不如直接加角速度环效果好。

bitcoin2 发表于 2016-6-19 13:21:07

阻尼系数过小

qwe2231695 发表于 2016-6-19 15:38:14

单环pid不好调,建议控制频率200hz,电机是调速器还是pwm直接驱动?

oner 发表于 2016-6-19 17:50:33

1558582190 发表于 2016-6-18 21:10
反馈方向是负反馈,我现在直接先调I,再调P,现在能抑制摆动了

不清楚你的调法的依据。
说说我的调法,或许你可以参考一二。
我之前做的小四轴,十字型,单级PID的调试方法是:
姿态检测没滞后是前提,烤机模式下,
PID先调Kp,从小加大,会发现Kp过小时推尽油门,四轴也没啥变化,给个干扰,不会摆动;
Kp过大时,会出现等幅摆动,无法停止;
调到一个刚好出现摆动的Kp值,再加Kd,如果Kd反馈极性不对,会加速四轴摆动旋转,如果极性正确,从小到大加Kd,会发现四轴摆动减弱,阻尼加强,再调至完全不摆动;
此时,因为我在烤机模式下,没对陀螺仪做校正,四轴会偏一定角度,加入Ki值可以抵消这偏差,跟你的积分限制值和后面有没做归一化处理有关系。限制值大,Ki可能比较小。Ki作用和Kp类似,如果你发现能抵消偏差,但是又开始摆动,可以减弱Kp值。

码字真麻烦,以上是我的十字型小四轴单级PID调试的经验,FYI,good luck,baby。

大风吹不倒 发表于 2016-6-20 22:12:17

减小p或者增加d

1558582190 发表于 2016-6-21 19:52:14

oner 发表于 2016-6-19 17:50
不清楚你的调法的依据。
说说我的调法,或许你可以参考一二。
我之前做的小四轴,十字型,单级PID的调试 ...

按照你说的去调现在只有很小的摆动 非常感谢{:smile:}

1558582190 发表于 2016-6-21 19:53:45

qwe2231695 发表于 2016-6-19 15:38
单环pid不好调,建议控制频率200hz,电机是调速器还是pwm直接驱动?

PWM的   但是频率是50Hz

1558582190 发表于 2016-6-21 20:06:17

zouyf12 发表于 2016-6-19 11:06
四轴这个东西,角速度环是关键,原因很简单,如果只有角度环的话,当角度有偏差出现时,   控制 ...

一个PID的参数就调到我吐血,再加一个我怕我会放弃

qwe2231695 发表于 2016-6-22 22:20:17

50hz执行频率?是否有调速器?

1558582190 发表于 2016-6-23 21:40:22

qwe2231695 发表于 2016-6-22 22:20
50hz执行频率?是否有调速器?

用新西达的电调,他的是20ms一个周期, 正脉冲信号最大宽度1ms最小0.5ms

qwe2231695 发表于 2016-6-24 00:17:20

1558582190 发表于 2016-6-23 21:40
用新西达的电调,他的是20ms一个周期, 正脉冲信号最大宽度1ms最小0.5ms

这种开环的调速器做出来的飞机不会很好的,只能做比较缓慢的动作,换100hz以上的调速器会有一点改善,自己写200hz闭环bldc能达到最好效果

1558582190 发表于 2016-6-24 10:39:37

qwe2231695 发表于 2016-6-24 00:17
这种开环的调速器做出来的飞机不会很好的,只能做比较缓慢的动作,换100hz以上的调速器会有一点改善,自 ...

我也觉得电机响应慢

Tyr 发表于 2016-6-24 23:18:46

楼主怎么得到这种曲线的?这个数据取什么情况下的数据?是角度吗?是在飞起来稳定之后的角度吗?
以前一直想通过曲线调PID,后来不了了之了。

CK345 发表于 2016-6-25 07:26:02

为什么你们调 pid不用matlab仿真一把,参数不能完全靠试。

1558582190 发表于 2016-6-25 15:58:37

CK345 发表于 2016-6-25 07:26
为什么你们调 pid不用matlab仿真一把,参数不能完全靠试。

不会用MATLAB

soos 发表于 2016-6-25 19:23:27

1558582190 发表于 2016-6-25 15:58
不会用MATLAB

楼主的图是如何得来的?

zouyf12 发表于 2016-6-26 08:25:03

1558582190 发表于 2016-6-21 20:06
一个PID的参数就调到我吐血,再加一个我怕我会放弃

       以我有限的经验告诉你,你用串级的话,真正要调的是角速度环的PID,当你把角速度环调好以后, 角度环基本上就是随便估一个P或者再加点I就OK了。
另外,再以我有限的经验告诉你, 搞四轴还是先用开源的程序来上手,先能飞起来,也给自己增加信心,后续再摸清它的原理进而模仿、改进它, 因为,所谓你自己的程序,很多地方无非就是把别人已经写好的东西用自己的话复述一遍,而且很多时候还会“复述”错,
比如帖子里说的,你说你现在输出给电调PWM频率为50Hz,而实际上普通电调的输入的PWM频率是可以达到400Hz的(2ms H0.5ms L), 这个差异很可能就是能飞与不能飞的区别。
就这一个你自己给自己挖的坑,就够你爬的了。

1558582190 发表于 2016-6-26 15:32:47

zouyf12 发表于 2016-6-26 08:25
以我有限的经验告诉你,你用串级的话,真正要调的是角速度环的PID,当你把角速度环调好以后, 角 ...

谢谢前辈指点,我也觉得是这个的电调的原因,因为我调的最好的时候在水平位置上还是有小幅度的摆动

1558582190 发表于 2016-6-26 15:33:30

soos 发表于 2016-6-25 19:23
楼主的图是如何得来的?

Excel表格制图

destiny、 发表于 2016-8-16 14:32:07

helislayer 发表于 2016-6-18 15:42
调 Kp 的时候先把 Ki 和 Kd 设置为 0。
然后如果振荡的话就调低 Kp.
应该可以搞到一个最大的 Kp。


请问单调Kp怎么才能确定Kp这个值是最好的,我在调的时候加入Kp好像越大越震荡,因为Kp控制恢复力。

destiny、 发表于 2016-8-16 14:35:09

oner 发表于 2016-6-18 18:11
如果把P调小,还越摆越大,那就检查你的姿态部分是否有延迟。

先给一个固定的速度,在此之上叠加PID输出,置调P,无论怎么调震荡好像都会越来越大,请问这种情况怎么解决?

helislayer 发表于 2016-8-16 14:45:27

destiny、 发表于 2016-8-16 14:32
请问单调Kp怎么才能确定Kp这个值是最好的,我在调的时候加入Kp好像越大越震荡,因为Kp控制恢复力。 ...

目标是不震荡的最大 Kp 是一个不错的起点。
Kp 有震荡就不合适了,说明 Kp 太大,调小点。
页: [1]
查看完整版本: 我的四轴不管怎么调PID摆动的幅度都是越来越大 求解啊