qwe2231695 发表于 2013-5-10 21:20:35

【庆祝】调了一天PID,终于飞稳了

上周五一,四轴起飞成功(http://www.amobbs.com/thread-5531959-1-1.html)

这周又是一堆杂事,没有空折腾小飞机。上次起飞成功以后,一直是抬轿子晃来晃去。 准备定下心来写C#上位机的,可惜今天周五手痒就玩开了,一遍一遍烧STM32调PID。
经过不懈努力,排除一个数据类型转换错误,加入传感器调零功能。还借用的实验室同学DIY的水平台。

还加入了yaw控制量,利用了陀螺仪的直接输出,很好地控制了自旋。一点点都不会转了。


结合以前调平衡小车的经验: 先调P参数,慢慢加大,等到飞机等幅震荡的时候,再加D微分去抑制震荡。 但是D参数加多了,又会重新引起震荡。 所以:一个P参数就对应一个D参数。震荡的时候要排查出是P多了引起的还是D少了引起的,反正就是参数要配对。

可惜I参数一直没有用上,准备下一步加上方向控制以后,再考虑加入积分。


当然,电机PID的调整是建立在已经解算出姿态的前提上的。我的姿态是四元数融合那段程序。 那段程序有3个参数需要整合Ki Kp halfT。所以:想飞的稳有6个参数需要调整。 后面还有好长的路。。。



http://player.youku.com/player.php/sid/XNTU1MDE2MTI0/v.swf


http://player.youku.com/player.php/sid/XNTU1MDE1ODYw/v.swf




qwe2231695 发表于 2013-10-2 00:56:57

liang_work 发表于 2013-10-2 00:06 static/image/common/back.gif
不知楼主有没有留意过匿名四轴的程式,现在我就是用匿名的硬件及软件,学习调PID,但一直调不好,现在最好 ...

终于有人发现匿名的经典pid的弊端了,那段pid实在太简单太短。努力调好可以稳定的pid后,发现回中是极其缓慢的。甚至是晃荡的。

解决办法:使用串级pid,分为:角度环控制pid环,和角速度控制环稳定环。主调为角度环,副调为角速度环。

qwe2231695 发表于 2013-10-2 12:28:17

本帖最后由 qwe2231695 于 2013-10-2 12:35 编辑

liang_work 发表于 2013-10-2 08:29 static/image/common/back.gif
楼主,不太明你所说的串级,可以用实说明一下吗,多谢。现在你的机器,用的是那一类的PID,经典还是串级 ...

楼主位视频上面的使用的是匿名四轴的那种经典PID。这种pid的特点就是:很容易整合好PD参数,然后就可以飞起来,是平衡车上和水温控制的经典【位置式pid】。

今年4月份到发这篇帖一直在做硬件和角度融合的学习,所以飞起来就发帖了,并没有考虑到pid方面的问题。其实视频里面是没有打摇杆的,一打摇杆,就会感觉很迟钝,有那种老的kk飞控四轴(只有陀螺仪)的感觉。

后来发现,经典位置式pid,这里只用了PD,这样角度的控制就依靠P参数,回中和平衡都就只依靠P参数来拉动。自控方面的理论说来就话长了,简单地说:平衡好,回中就慢。回中快,平衡不好,飞机会抖动起来(抬轿子)。

所以只有PD是不行了,无论怎么调。

要使用改进的pid,我看了国外飞控的代码,没有任何一家是使用这种pid的,都使用的是一种二级pid。典型的就参见:Bitcraze四轴的代码

框图如下:

tongdayusu 发表于 2013-5-10 21:22:00

挺好!   

marshallemon 发表于 2013-5-10 21:42:46

无线控制用的什么?

qwe2231695 发表于 2013-5-10 21:44:00

marshallemon 发表于 2013-5-10 21:42 static/image/common/back.gif
无线控制用的什么?

24L01 +STC小单片机

marshallemon 发表于 2013-5-10 21:46:23

qwe2231695 发表于 2013-5-10 21:44 static/image/common/back.gif
24L01 +STC小单片机

24L01能传输多远的距离?

qwe2231695 发表于 2013-5-10 22:00:39

marshallemon 发表于 2013-5-10 21:46 static/image/common/back.gif
24L01能传输多远的距离?

飞起来以后15m~ 电机没启动的时候20m+

活出自我 发表于 2013-5-10 22:41:22

顶楼主!技术控 啊!

lijieamd 发表于 2013-5-10 22:44:53

原来楼主是个帅锅啊

john800422 发表于 2013-5-10 23:01:57

航向角的調整也是使用PID嗎?

ppocat_check 发表于 2013-5-10 23:22:02

顶一下,楼主机架是怎么做出来的?

qwe2231695 发表于 2013-5-10 23:24:13

john800422 发表于 2013-5-10 23:01 static/image/common/back.gif
航向角的調整也是使用PID嗎?

航向调整是直接用陀螺仪输出,后面加入磁场传感器后会使用pid

qwe2231695 发表于 2013-5-10 23:24:37

ppocat_check 发表于 2013-5-10 23:22 static/image/common/back.gif
顶一下,楼主机架是怎么做出来的?

拿同学的成品迷你四轴的

mtjjjjj 发表于 2013-5-10 23:30:04

不错呀,飞的很平稳

john800422 发表于 2013-5-11 01:23:12

qwe2231695 发表于 2013-5-10 23:24 static/image/common/back.gif
航向调整是直接用陀螺仪输出,后面加入磁场传感器后会使用pid

你說的陀螺儀輸出是類似這個嗎?
GYRO_I.Z = GYRO_I.Z + EXP_ANGLE.Z/3000;
yaw = -10 * GYRO_I.Z;
yaw = yaw - 3 * GYRO_F.Z;

目前已計算出航向
還在調整水平旋轉的PID

qwe2231695 发表于 2013-5-11 03:12:10

john800422 发表于 2013-5-11 01:23 static/image/common/back.gif
你說的陀螺儀輸出是類似這個嗎?
GYRO_I.Z = GYRO_I.Z + EXP_ANGLE.Z/3000;
yaw = -10 * GYRO_I. ...

就一句yaw = D参数 * GYRO_F.Z;

plc_avr 发表于 2013-5-11 07:51:56

飞近很好,呵呵。顶一下,用的应是伟力929机身吧。

Excellence 发表于 2013-5-11 08:20:26

不错。
                  

zhuwenwujy 发表于 2013-5-11 23:45:59

请教一下楼主,四个电机的PWM用PID该怎么给呢?

qwe2231695 发表于 2013-5-11 23:54:21

zhuwenwujy 发表于 2013-5-11 23:45 static/image/common/back.gif
请教一下楼主,四个电机的PWM用PID该怎么给呢?

P乘以角度,i没有加,D为陀螺仪输出

sunky@feeling 发表于 2013-5-13 21:16:13

想问楼主是怎么把控制4个点机的PWM信号转化成期望角度的。

chenjy 发表于 2013-5-15 16:26:19

qwe2231695 发表于 2013-5-11 23:54 static/image/common/back.gif
P乘以角度,i没有加,D为陀螺仪输出

这样做的原理是什么啊??为什么是这样啊?希望大师解答啊!!

YS126 发表于 2013-5-15 16:38:17

毕业到现在都很少diy了~

silencedang 发表于 2013-5-15 17:18:15

我想问下,我整个系统只用了个角度姿态大闭环来控制,控制方式是PI。请问这样的参数调节到电机到什么样子才算合理呢!!

qwe2231695 发表于 2013-5-15 17:21:25

silencedang 发表于 2013-5-15 17:18 static/image/common/back.gif
我想问下,我整个系统只用了个角度姿态大闭环来控制,控制方式是PI。请问这样的参数调节到电机到什么样子才 ...

PI 是MK的主要方式。形象一点说: P是一个按比例来抵抗力,但是会引起震动,因为老是调不对。I是柔和的力,但是这个力会越来越大。

qwe2231695 发表于 2013-5-15 17:23:15

chenjy 发表于 2013-5-15 16:26 static/image/common/back.gif
这样做的原理是什么啊??为什么是这样啊?希望大师解答啊!!

陀螺仪有输出,就证明四轴存在角速度,也就是正在走向不平衡的毁灭路上。加入这个,就可以随时监控有没有不平衡。

silencedang 发表于 2013-5-15 17:28:34

qwe2231695 发表于 2013-5-15 17:21 static/image/common/back.gif
PI 是MK的主要方式。形象一点说: P是一个按比例来抵抗力,但是会引起震动,因为老是调不对。I是柔和的力 ...

是这样的!我在调试单根轴角度的P参数时候,在偏角为零时该轴很平稳,可是稍微给个角度,电机就会震荡。而且这种震荡是发散的!

qwe2231695 发表于 2013-5-15 17:33:19

震荡是发散的,可能数量级不对,多试试吧。做个上位机连续调会快很多。

chenjy 发表于 2013-5-15 18:01:20

qwe2231695 发表于 2013-5-15 17:23 static/image/common/back.gif
陀螺仪有输出,就证明四轴存在角速度,也就是正在走向不平衡的毁灭路上。加入这个,就可以随时监控有没有 ...

我是菜鸟,我想问的是为什么是P乘以四元数融合后的角度 D乘以陀螺仪的加速度而不乘角度 ,你现在的计算公式是这样的么??
PID_OUT=P*(四元数融合角度-期望角度)+i*0+d*当前的陀螺仪数据

qwe2231695 发表于 2013-5-15 18:05:37

chenjy 发表于 2013-5-15 18:01 static/image/common/back.gif
我是菜鸟,我想问的是为什么是P乘以四元数融合后的角度 D乘以陀螺仪的加速度而不乘角度 ,你现在的计算公 ...

就是这样的,i加一点点也可以。因为D参数的含义是微分,也就是调控量的变化率。

WUST_LJS 发表于 2013-5-19 20:16:19

进展不错哦~ 继续加油。呵呵。 用Z直接抵消自旋 还不错吧。呵呵。 咱这个不是最好的办法思密达。

qwe2231695 发表于 2013-5-19 20:19:17

WUST_LJS 发表于 2013-5-19 20:16 static/image/common/back.gif
进展不错哦~ 继续加油。呵呵。 用Z直接抵消自旋 还不错吧。呵呵。 咱这个不是最好的办法思密达。 ...

已经加入了磁场,打死都不会转了,嘿嘿,用的是以前做指南针的原理。

WUST_LJS 发表于 2013-5-19 20:20:58

qwe2231695 发表于 2013-5-19 20:19 static/image/common/back.gif
已经加入了磁场,打死都不会转了,嘿嘿,用的是以前做指南针的原理。

用 5883么? 是用网上流传的那个 AHRS么?

qwe2231695 发表于 2013-5-19 20:23:05

WUST_LJS 发表于 2013-5-19 20:20 static/image/common/back.gif
用 5883么? 是用网上流传的那个 AHRS么?

是5883,得出方位角0-360度,直接套入电机PID。

WUST_LJS 发表于 2013-5-19 20:28:49

本帖最后由 WUST_LJS 于 2013-5-19 20:38 编辑

qwe2231695 发表于 2013-5-19 20:23 static/image/common/back.gif
是5883,得出方位角0-360度,直接套入电机PID。

估计你的大机架 对5883影响还好。
我自己也弄了个板子,出了个新机,还几个问题没解决。
建议弄个 摇杆电位器的 遥控器吧。呵呵。 你按键不好控制它。。
AT我邮箱245806596@扣扣.com 呵呵。你懂得。

CCALM 发表于 2013-5-25 12:25:42

我的PID调不好

灵魂重新 发表于 2013-5-31 10:08:42

直接陀螺仪输出控制PWM不加PID 好办法挖

lucky_jeck 发表于 2013-5-31 12:35:49

恭喜。。。{:lol:}

WUST_LJS 发表于 2013-5-31 13:09:59

你的电机不影响5883么?
我的13CM的 轴距,电机转起来 5883飘了差不多90度。
你的 这种20多CM 轴距的电机转时和 不转时一个样?
本来加了5883了,结果在小四轴上太失望了。电机不转还挺好。

qwe2231695 发表于 2013-5-31 13:40:53

WUST_LJS 发表于 2013-5-31 13:09 static/image/common/back.gif
你的电机不影响5883么?
我的13CM的 轴距,电机转起来 5883飘了差不多90度。
你的 这种20多CM 轴距的电 ...

是的 磁场强度是指数递减的。距离近就没办法了,只能启动时再矫正一次

lidongxin 发表于 2013-6-3 14:21:23

{:smile:}{:smile:}

背负拉天的云 发表于 2013-6-12 15:25:26

请问楼主的数据时如何滤波的呀?
陀螺仪得出的角速度和加速度经四元数融合得出三个欧拉角ROLL Pitch Yaw 是经过什么滤波再给PID的呢?
还有角速度是给PID的D参量 那角速度也要滤波吧?该用什么滤波方法?

qwe2231695 发表于 2013-6-12 15:35:51

背负拉天的云 发表于 2013-6-12 15:25 static/image/common/back.gif
请问楼主的数据时如何滤波的呀?
陀螺仪得出的角速度和加速度经四元数融合得出三个欧拉角ROLL Pitch Yaw 是 ...

三个欧拉角直接反应了飞机状态,不需要滤波,这个角度实时性很重要,有滤波就会滞后。角速度D直接控制的话,也是不用滤波的。滤波是为了滤除震动,但是传感器mpu6050已经自带低通滤波器了。

背负拉天的云 发表于 2013-6-12 15:49:39

qwe2231695 发表于 2013-6-12 15:35 static/image/common/back.gif
三个欧拉角直接反应了飞机状态,不需要滤波,这个角度实时性很重要,有滤波就会滞后。角速度D直接控制的 ...

那么也就是说我从MPU6050那里得到的数据 是可以直接拿来用的 ?
还有个问题想请教你,我做的是大四轴,450轴距的,现在调试PID参数很蛋疼,请问你是怎么调试的啊 ?

gzrldt 发表于 2013-6-12 21:24:35

MARK{:smile:}

ATLAS_chen 发表于 2013-6-12 22:53:41

太漂亮了!

qwe2231695 发表于 2013-6-12 23:01:41

背负拉天的云 发表于 2013-6-12 15:49 static/image/common/back.gif
那么也就是说我从MPU6050那里得到的数据 是可以直接拿来用的 ?
还有个问题想请教你,我做的是大四轴, ...

加速度需要平均值滤波,陀螺一般不需要的。但是数值的大小需要处理,进行单位转换再进行姿态解算。PID要根据不同的飞控程序调法有很大不同,一般是先加p,等幅振荡后,加d抑制。

oyingzi007 发表于 2013-6-14 14:56:46

不错!!谢谢分享。 这几天调试一个四轴,小四轴PCB板子, 姿态已经解析出来了,控制是 P×角度差 + D×陀螺仪的角速度。调试的时候,我将D=0; P稍微一调大,整个四轴好像越晃越严重。 能否分享下你调试P跟D的具体现象吗? 或者这部分代码。

马学家 发表于 2013-8-15 21:27:41

请问楼主的也算大四轴吧?

我挺喜欢你的机架的,能给个淘宝链接吗?还有你的电机需要电调吗?

liliuqun 发表于 2013-8-15 21:47:18

牛,顶你   

ilove305 发表于 2013-8-15 22:44:24

楼主,这个四轴多重呀?我的现在40几克,飞起来还费力。

qinshiysb 发表于 2013-8-16 00:29:19


对比看了下,挺稳的。。。还看见了自制的遥控板,厉害

Lboyve 发表于 2013-8-17 17:33:42

飞的挺稳的哇

Caroline66 发表于 2013-9-4 12:15:57

楼主想请教你一下参数的调试。可以加我QQ吗?

Caroline66 发表于 2013-9-4 12:16:15

求楼主看到这里这里这里~~~~

qwe2231695 发表于 2013-9-4 20:10:21

Caroline66 发表于 2013-9-4 12:16 static/image/common/back.gif
求楼主看到这里这里这里~~~~

你是电赛的吧 进坑了吧?

呵呵,多试试吧,角度波形要稳定才能调PID的

heuchufuyue 发表于 2013-9-5 12:35:54

菜鸟弱弱的问一下。。电机驱动用个啥啊

李莹 发表于 2013-9-5 15:26:54

电池你用的是多大的,输出多大的电压,大概能带动多重的东西,我用的机架和你一样,想问问?

qwe2231695 发表于 2013-9-5 20:18:00

李莹 发表于 2013-9-5 15:26 static/image/common/back.gif
电池你用的是多大的,输出多大的电压,大概能带动多重的东西,我用的机架和你一样,想问问?
...

整机起飞极限大约170克以上,大于130克不好飞。电池500mah 3.7v

李莹 发表于 2013-9-5 20:43:34

qwe2231695 发表于 2013-9-5 20:18 static/image/common/back.gif
整机起飞极限大约170克以上,大于130克不好飞。电池500mah 3.7v

我们的电池是800mah的,我们怕飞行的过程中电力不足,就又买了一个1000mah的电池

neozoic 发表于 2013-9-5 22:19:54

漂亮,非常不粗{:smile:}

zhaojianjiang 发表于 2013-9-14 16:52:10

楼主,问一下,mpu6050还有磁场传感器在四轴上放置的方向有什么要求吗?

qwe2231695 发表于 2013-9-14 16:55:35

zhaojianjiang 发表于 2013-9-14 16:52 static/image/common/back.gif
楼主,问一下,mpu6050还有磁场传感器在四轴上放置的方向有什么要求吗?

远离大电流走线以及电机即可

头上两只角 发表于 2013-9-16 18:41:42

已经很厉害了。

柯里昂老头 发表于 2013-9-16 22:04:17

恭喜{:smile:}{:smile:}{:smile:}{:smile:}

-阿发- 发表于 2013-9-16 23:33:57

好贴,留着过几天参考用嘿嘿

julian 发表于 2013-9-19 11:37:41

你好啊,我在做大四轴,先做个遥控器

用stc12单片机,apc无线串口,还有油门加减两个按键,上下左右四个按键,调参6个按键,一个开关,还有1602显示油门的大小,这样行吗

9*15的洞洞板

您看看可以么,特别是按键的设置,谢谢你啦,给点建议

qwe2231695 发表于 2013-9-19 13:27:03

julian 发表于 2013-9-19 11:37 static/image/common/back.gif
你好啊,我在做大四轴,先做个遥控器

用stc12单片机,apc无线串口,还有油门加减两个按键,上下左右四个按 ...

没有问题的,优先保证无线串口正常工作,stc做遥控器搓搓有余,建议直接上遥杆电位器,按键体现不出动态操控性能。

julian 发表于 2013-9-21 12:39:20

楼主,你的遥控器是洞洞板自己焊的还是?

我的15个按键感觉很难在洞洞板上焊啊

qwe2231695 发表于 2013-9-21 12:44:19

julian 发表于 2013-9-21 12:39 static/image/common/back.gif
楼主,你的遥控器是洞洞板自己焊的还是?

我的15个按键感觉很难在洞洞板上焊啊 ...

我是热转印的,15按键很多啦。后来发现飞机是不能用按键调的。

julian 发表于 2013-9-21 12:47:56

qwe2231695 发表于 2013-9-21 12:44 static/image/common/back.gif
我是热转印的,15按键很多啦。后来发现飞机是不能用按键调的。

不能用按键调?我晕啊,我东西都买好了正在做呢。。

楼主能告诉我为啥不能用按键吗?应该用什么调?

qwe2231695 发表于 2013-9-21 14:06:12

julian 发表于 2013-9-21 12:47 static/image/common/back.gif
不能用按键调?我晕啊,我东西都买好了正在做呢。。

楼主能告诉我为啥不能用按键吗?应该用什么调? ...

飞机是要摇杆调的啊,买摇杆电位器

julian 发表于 2013-9-29 15:42:35

请问是不是要得到四轴在水平时的姿态,然后设定这个姿态为目标,再进行pid?

把四轴放到地上,得到的姿态算是水平的了吧?

qwe2231695 发表于 2013-9-29 15:47:59

julian 发表于 2013-9-29 15:42 static/image/common/back.gif
请问是不是要得到四轴在水平时的姿态,然后设定这个姿态为目标,再进行pid?

把四轴放到地上,得到的姿态 ...

不平的,飞起来会稍微往某个方向加速,这个就需要你微调舵量偏移了。而且你的遥控器要自己记住上次关机时舵量偏移是多少。

julian 发表于 2013-10-1 11:04:36

楼主,你感觉有必要加5883电子罗盘么,我做的是大四轴

我没打算让他像飞机那样按固定的航线飞行

没有5883,只靠6050就能使四轴飞稳了,加了5883无非就是辨别方向啊,而方向可以靠遥控去随意改变

所以没必要加5883,我的理解对吗楼主?

qwe2231695 发表于 2013-10-1 11:54:53

julian 发表于 2013-10-1 11:04 static/image/common/back.gif
楼主,你感觉有必要加5883电子罗盘么,我做的是大四轴

我没打算让他像飞机那样按固定的航线飞行


有必要加的,z轴会因为温漂导致经常要调航向角偏移。加了5883能写出智能模式的飞控,也就是没必要管飞机的朝向。

julian 发表于 2013-10-1 12:12:39

qwe2231695 发表于 2013-10-1 11:54 static/image/common/back.gif
有必要加的,z轴会因为温漂导致经常要调航向角偏移。加了5883能写出智能模式的飞控,也就是没必要管飞机 ...

那我不做只能的转向,只要能飞稳就行,那就没必要加了吧?

qwe2231695 发表于 2013-10-1 14:03:34

julian 发表于 2013-10-1 12:12 static/image/common/back.gif
那我不做只能的转向,只要能飞稳就行,那就没必要加了吧?

嗯 可以不加。但就4块钱嘛,没必要省啦。

liang_work 发表于 2013-10-2 00:06:37

本帖最后由 liang_work 于 2013-10-2 00:10 编辑

不知楼主有没有留意过匿名四轴的程式,现在我就是用匿名的硬件及软件,学习调PID,但一直调不好,现在最好的是能飞,但在摆杆回中后,飞机没有办法回到水平,但如果用一碳杆穿过pitch轴,拿在手上,在摆杆电位器回中后,可以看到飞机是能回中的,但有些慢,且有一点点过冲,调来调去都没有更好的结果,不知可否给些意见。
1.你的控制周期是多少。多少合适。
2.为什么I没有什么用,I不是用来消除静差的吗?但在我上面如果不用D,飞机跟本不可能回中。
3.我的单单用P时,飞机的控制是发散的,越摆越大,再后失控,加了D后,受控,但不理想。
4.现在我用的是out=P*角度差+I*errsum(i=0)+D*6050陀螺仪输出,跟你上面所说的方式,也用过,还是一样。


另:1.可否公开部份PID的程式我参考一下
   2.再可否大约说明一下你的程式流程,也方便我参考一下,现在都有些怀凝我的程式不单单是PID部份的问题了。

liang_work 发表于 2013-10-2 08:29:39

本帖最后由 liang_work 于 2013-10-2 08:47 编辑

qwe2231695 发表于 2013-10-2 00:56 static/image/common/back.gif
终于有人发现匿名的经典pid的弊端了,那段pid实在太简单太短。努力调好可以稳定的pid后,发现回中是极其 ...

楼主,不太明你所说的串级,可以用实说明一下吗,多谢。现在你的机器,用的是那一类的PID,经典还是串级,从你的视频中,觉得飞得很不错。
另:奇怪的是,为什么匿名用经典的PID,不能用,是由于硬件的原因吗?

wazihe 发表于 2013-10-2 14:10:59

mark 一下

气球 发表于 2013-10-2 16:15:08

{:smile:}{:smile:}{:smile:}{:smile:}{:smile:}

liang_work 发表于 2013-10-2 16:45:59

多谢,但还是没有办法下手,哈哈!!

liang_work 发表于 2013-10-2 21:07:08

本帖最后由 liang_work 于 2013-10-2 23:06 编辑

还有一个问题,为什么我的匿名四轴,固定一碳杆在机上,拿在手上,动摆杆,回中,还是能明显看到回水平,但飞起来后,动摆杆,却回不了水平,还是侧向一边,这种现象如何解释?
另:用上面的方面我对比测试了成品的四轴(JD385),动摆杆,回中,机体回水平,感觉上两者差不多,或匿名要差一些,但飞起来后,JD358的回水平能力很好。为什么会有这么大的差别?现在搞PID,头都大了。本来以为十一几天假可以搞好的。唉!!

qwe2231695 发表于 2013-10-2 22:50:08

liang_work 发表于 2013-10-2 21:07 static/image/common/back.gif
还有一个问题,为什么我的匿名四轴,固定一碳杆在机上,拿在手上,动摆杆,回中,还是能明显看到回水平,但 ...

只有换算法了,我说的方法,回中的力度是可以单独调的。

mahengyu 发表于 2013-10-4 15:44:59

楼主,四轴pid用位置式好还是增量式好?

你提到了经典的位置式算法,这个和增量式其实是一样的吧?是不是只是形式不同?

还有,楼主是哪个专业的学生啊,感觉老强了

qwerwe 发表于 2013-10-4 16:04:15

mark一下

qwe2231695 发表于 2013-10-4 19:34:01

mahengyu 发表于 2013-10-4 15:44 static/image/common/back.gif
楼主,四轴pid用位置式好还是增量式好?

你提到了经典的位置式算法,这个和增量式其实是一样的吧?是不是 ...

两种是一样的,但是增量的理解起来绕个弯。

嘿嘿,本人就是课余爱好,学的是自动化。 也是常来论坛感受气氛,学东西。

可以说四轴和平衡车带我进入自动控制的世界。

mahengyu 发表于 2013-10-4 19:42:01

qwe2231695 发表于 2013-10-4 19:34 static/image/common/back.gif
两种是一样的,但是增量的理解起来绕个弯。

嘿嘿,本人就是课余爱好,学的是自动化。 也是常来论坛感受 ...

我猜对了,你果然也是自动化的嘿嘿。

教科书《计算机控制》等一些文献上说增量式的更好些,可是我看到很多人都在用位置式的。

对了,这两种方式调参方式一样么?

mahengyu 发表于 2013-10-5 11:51:00

楼主,假如说目标姿态是俯仰和横滚都是0度,但是离地1米,或离地2米,上升或下降,都可能是0度,那pid到底把他调到了哪种状态?

或者说,pid输出怎么和遥控器的油门等信号结合起来?

qwe2231695 发表于 2013-10-5 12:56:45

mahengyu 发表于 2013-10-5 11:51 static/image/common/back.gif
楼主,假如说目标姿态是俯仰和横滚都是0度,但是离地1米,或离地2米,上升或下降,都可能是0度,那pid到底 ...

离地1米,或离地2米都是零度的话,,上升下降依靠调节油门。油门不受pid控制,是马达pwm的一个基数。

马达pwm=油门+pid控制量

pid控制量=【期望角度-测量角度】进行PID运算

期望角度=遥控量(不遥控为0度)

mahengyu 发表于 2013-10-5 13:17:31

qwe2231695 发表于 2013-10-5 12:56 static/image/common/back.gif
离地1米,或离地2米都是零度的话,,上升下降依靠调节油门。油门不受pid控制,是马达pwm的一个基数。

马 ...

谢谢楼主啊,想起来了,四轴是可以看成线性系统,遵循叠加定理,呵呵。

mahengyu 发表于 2013-10-6 14:59:36

楼主,是不是调好pid就能悬停了?

还有,pid是不是只需要调俯仰和横滚就行啊?

qwe2231695 发表于 2013-10-6 18:24:10

mahengyu 发表于 2013-10-6 14:59 static/image/common/back.gif
楼主,是不是调好pid就能悬停了?

还有,pid是不是只需要调俯仰和横滚就行啊? ...

调之前,肯定要融合好角度,因为你的角度不准不实时(失真),都会造成飞机不正常,这样你就不知道是pid问题还是角度问题。

还要对好控制极性,也就是那条X模式公式。

然后就可以飞了~ 祝你成功

mahengyu 发表于 2013-10-6 18:28:25

qwe2231695 发表于 2013-10-6 18:24 static/image/common/back.gif
调之前,肯定要融合好角度,因为你的角度不准不实时(失真),都会造成飞机不正常,这样你就不知道是pid ...

十字的模式是不是不稳啊,还是不好控制,为啥大家都抛弃它啦?

mahengyu 发表于 2013-10-7 16:31:18

楼主,pd的参数大概是怎么个范围?是几十还是个位数还是精确到小数几位?

qwe2231695 发表于 2013-10-7 17:12:00

mahengyu 发表于 2013-10-7 16:31 static/image/common/back.gif
楼主,pd的参数大概是怎么个范围?是几十还是个位数还是精确到小数几位? ...

根据你的pwm数量级,控制时间,马达特性都不同。你先把p从0.1开始加。翻倍翻倍地找。

mahengyu 发表于 2013-10-18 17:49:38

楼主,如果只加D 应该是啥反应?我有点怀疑自己程序的D正负弄反了

qwe2231695 发表于 2013-10-18 23:10:35

mahengyu 发表于 2013-10-18 17:49 static/image/common/back.gif
楼主,如果只加D 应该是啥反应?我有点怀疑自己程序的D正负弄反了

这个的确容易弄反,只加d,飞机会很难掰动,带有反抗力。反了的话,你朝哪个方向动,那就更加帮你动~
页: [1] 2
查看完整版本: 【庆祝】调了一天PID,终于飞稳了