四轴专用PID参数整定方法及原理

上传人:枫** 文档编号:552685016 上传时间:2023-12-14 格式:DOC 页数:17 大小:1.02MB
返回 下载 相关 举报
四轴专用PID参数整定方法及原理_第1页
第1页 / 共17页
四轴专用PID参数整定方法及原理_第2页
第2页 / 共17页
四轴专用PID参数整定方法及原理_第3页
第3页 / 共17页
四轴专用PID参数整定方法及原理_第4页
第4页 / 共17页
四轴专用PID参数整定方法及原理_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《四轴专用PID参数整定方法及原理》由会员分享,可在线阅读,更多相关《四轴专用PID参数整定方法及原理(17页珍藏版)》请在金锄头文库上搜索。

1、给四轴调了好久的PID,总算是调好了,现分享PID参数整定的心得给大家,还请大家喷的时候手下留情。首先说明一下,这篇文章的主旨并不是直接教你怎么调,而是告诉你这么调有什么道理,还要告诉大家为什么只使用PID的四轴会在飞行中震荡,告诉大家为什么光使用PID并不能实现对四轴姿态足够好的控制。文章中还是涉及了不少自控原理和其他控制相关的姿势,没有一点底子的话确实会看着很困惑(不然那么些人花好几年学控制还有什么意义?)。如果你只想知道结论的话,直接看文章开头和结尾部分就好了(作者也支持大家这么做,这样被喷的几率就小了=_=)。本人是刚刚转行学控制,思考错误的地方还请各位大神批评指正。PS:用wps画系

2、统框图太费劲了,于是就一个豆没有画,大家不会怪罪我吧?PID控制器是什么?我想每一个看到这里的人都对PID的概念有了足够的了解,我一遍遍叽歪比例积分微分没有任何意义。这里我只想说一些大家提的较少的重点内容:PID控制器是一个线性的控制器!从这里开始我们进入正题了,虽然若干年来PID已然成为了世界上使用最普遍的控制方法,也逐渐被人们神话到几乎可以控制一切但是,从理论上来说,只有线性的,符合要求的被控系统才能在PID控制下实现良好的控制效果。所以说,我们首先第一步,要保证我们的被控系统在被PID控制的区域表现为一个线性系统才行。于是这里有人会说了,现实中没有哪个系统是线性的,自然,我们的四轴飞行器

3、在大范围内是一个非常典型的非线性系统(随便按照理论推推模型就会出现漫天的三角函数),也就是说,我们仅使用标准PID控制的话是不可能让四轴从各个姿态回到目标状态的过程都能保持稳定。于是这里出现我们使用PID时要注意的第一个问题:我们的PID控制只能工作在四轴角度偏移不大的一个近似线性的区域内。这个区域没有定论,不过你要是飞机偏了90的话想用PID调回到水平状态指定是非常危险的事情。PID的模型相关问题非常重要也比较费口舌,我们等下认真讨论,现在要先说另一个非常重要的非线性问题:要保证我的控制通道与电机的输出力矩是线性的。如果我们的控制通道与电机输出力矩都不是线性的的话,我们的PID控制就很难起作

4、用了,节省时间不举例子了,不明白的自行补脑吧,于是我这里要提醒大家的事情是:我们的航模电调调整的都是力矩而不是转速(虽然它叫做电子调速器),这是我们的福音,因为大家知道,螺旋桨产生的升力与转速的平方成正比,而角加速度与力矩成正比,正是因为我们的电调让电机产生的升力与我们输出的油门量成正比了我们才能使用PID控制器对四轴的姿态进行控制。这里可以看下我的四轴使用的四合一电调输出的升力与油门的对应曲线:图中横坐标是输出油门的百分比,纵坐标是四个电机产生的总拉力(单位暂定kg),可以看到,具有非常好的线性关系,所以我们可以使用PID对大四轴实现比较好的控制。于是我们首先发现了第一个问题,有人反映小四轴

5、不好调参数,因为小四轴没有专用的电子调速器,所以油门与输出力矩并不是严格线性的(这里我没有实践过,请大家随意批评指正),这时使用PID控制性能就会明显下降,当你的电机输出力矩与你的控制信号不是线性关系的时候,请先使用软件补偿的方法对油门做一下分段的线性仿射变化,再设计PID控制器。不过对于大四轴而言貌似就不用那么麻烦了,那我们直接进入PID的控制模型环节。PID控制器的数学模型在标准的控制类书籍上PID算法是这么定义的:这个公式是连续系统用的,我们单片机的控制是用不了的,我们的单片机使用的是离散的控制模型也叫0阶保持器的离散系统,就是需要把上面的公式离散化,而这个离散化的过程我们使用的是后项差

6、分法。首先把上面的积分传递函数转化为连续的s域模型:使用后向差分法可以得到s域到z域的映射关系:于是可以得到:其札这里特地给出了KpKiKd这三个参数,这三个参数就是大家最常看到的那个离散的PID公式,也就是说你在这里既可以使用KpTiTd的参数来建模也可以使用KpKiKd的参数来建模,到这里就总算是可以把我们的传递函数放在系统中用自控原理的相应工具来分析了。分析之前要先声明一个事情,有人发现(比如在MWC和其他许多飞控中)用陀螺仪的输出来当做PID中的微分项,会取得比标准PID更好的控制效果,乍一看这么做与用前后两次欧拉角作差没有区别(因为角速度整好就是角度的微分),控制效果不一样就说不通了

7、。其实是这个样子的,如果我们在程序中做了非常好的线程安全的处理并且控制频率和姿态解算读陀螺的频率是一样的的情况下二者确实是没有任何差别的,但是大家的飞控都写的非常简单,姿态解算频率都高于控制频率,于是读到的陀螺仪的数据并不是当前使用的姿态前一时刻的数据而是后一时刻的数据,这时候PID控制的微分部分就不再是后项差分而是前向差分了(这就是我前面要强调使用后项差分法的原因),那这个时候就尴尬了,我们不能全部使用前向差分模型来建模(因为积分还是使用的后向模型)两边分开用又会出现模型阶次不匹配的问题,所以这时候是无法使用PID模型来考虑接下来的问题的,你使用的其实是两个独立的控制器并联,一个是角度的PI

8、控制器,而另一个是角速度的P控制器,二者采样时间不一样,于是得当做两个独立的控制回路调整参数,这是使用这种控制器时的参数调整方法。也就道出了为什么部分情况下使用角度微分和角速度控制效果不一样的问题,这种方法固然是很好的(可以有效的降低振动),当然前提是你按照二者独立控制的思路来设计参数。但是很不幸,大家都没有这么做,依然是把整体作为PID控制器来考虑,那么,我只能说这是个近似的PID控制器了,手调固然可以(万能的实验调参啊)但是通过建模的方式算出优化的参数就不可能了。我们接下来看会怎样:从系统的零极点图理解PID控制的原理有了上面的PID传递函数的离散系统模型我们就可以开始下一步了,将上面的分

9、式上下做因式分解可以得到系统的零极点,在自控原理中我们知道,系统的极点确定系统的稳定性情况,零点不影响系统稳定性,零点和极点共同决定系统的响应。这里说的有些模糊,在现代控制理论中会提到一种控制器叫零极点配置控制器,能更好的阐述零点的作用:系统中的零点可以用来与系统中的不稳定(或者不想要)的极点对消来设计出理想的控制器(数学上),工程中我们考虑的是让零点与我们不想要的极点尽可能的靠近,就能削弱这个不想要的极点对系统的影响。下面我们用极点配置的方法来设计PID控制器,这里提前声明我们使用的并不是最标准的闭环极点配置方法,因为我们的PID控制器只有两个零点可以配置(如果使用PI控制器的话就只有一个零

10、点可以自由配置了)而且还多了一个临界稳定的极点,反馈又使用的是单位负反馈极大的限制了极点配置的自由度,于是我们为了简单起见仅从开环部分进行极点配置,这么做有许多不严谨的地方,但是会简化许多工程上的应用(在做自适应PID控制器的时候会用到完整的极点配置方法,到那里就会发现是多么复杂的一件事儿了)。.8oQ.-4o.2o,2o0020.40.60.31RealAxisPol&-ZeroMap上图是PID控制器开环部分(就是上面推导的数学模型)常见的零极点分布情况,有两个固定在(0,0)和(1,0)位置的极点,两个对称分布的零点(手调参数时很难出现两个零点都在实轴上的情况而且我们也不希望那样),这两

11、个零点的位置是可调的,微分时间常数Td主管零点位置的左右移(注意是主管,也就是说对虚轴的位置还是有影响的),常数越大越靠右(也就是说临界稳定极点的影响越弱,抗噪声性能越好但到达0误差的稳态也就越困难,因为这个临界稳定的极点是在闭环系统中让系统到达稳态0误差的关键但很影响稳定性),积分常数Ti越大零点越靠近实轴,Ti在实际控制中的作用不好说明,留在后面再说,但是到这里大家也就看出我为什么要使用标准的KpTiTd参数而不是KpKiKd参数了,因为使用这种参数时Kp对开环系统的稳定性(注意仅指开环系统)没有影响,我们就可以降低系统对这个参数的敏感性而主要考虑另外两个参数就好。大家在手调参数的看到的图

12、形和这个都应该没有多少区别接下来我们看一下我们被控系统的数学模型:被控系统的小范围线性化模型正如我前面所述,想要分析PID的控制性能必须得得到被控系统的线性近似模型(非线性系统下的分析工具没个正经能用的),这里大家可以通过动力学建模得到系统的非线性模型(像几乎所有的硕士博士论文那样)再泰勒展开,但是这样做往往得到的模型跟实际情况差异太大以至于没有参考价值,这里我推荐使用系统辨识的方法来得到系统的线性模型,因为这么做如果能做到正确的辨识的话还能得到系统的误差模型,于是现在在控制界很流行,只是实际用的时候就发现难度颇高,尽管有许多现成的工具但是依然特别难掌握,也难怪很多热会把这个当做是看家本领,作

13、者在这方面也算是连皮毛都没摸全,不敢乱讲,这里就为了解释PID方便直接把我的大四轴辨识出来的Pitch轴模型拿出来当做例子来讲了:-4.584*1沪I1.312*1旷才19.171*1()7尹卜2.2沪1旷八l-2.54r+2.0872-3-0.5657z-3画出来的系统阶跃响应是这个样子的:检验系统建模的相似程度就靠这个了,给我的飞机一个阶跃信号反映出来的情况和这个确实差不多。关键是下面,它的零极点分布情况:II1.1.p1h_*1.11111J11.1-11111I11R.111111- ri111 ii i. ii- 111!-:kiiiiiiPole:0.MS+0.125iDamp-i

14、ng:0.31E-wershoot(临):SE-.2Frequencyrad/sS.547iH*A-;ii1:乂-:1|11111111,|1】11111*-1111.111111-11.1.1111亍1I1Pole-ZeroM叩O.B0.60.40.20-0.2-0.4-0.6-O.S2ReaIAxis可以看到辨识出来的结果又两个很靠近不稳定边界的主导极点(气泡框那里)表现明显的零点又和这几个极点8杆子打不着,如果我们消灭那两个主导极点,我们的四轴理论上就可以控制的非常完美了,众所周知,主导极点越靠近0则系统稳定性越好,那么按照极点配置的方法(当然我这里指的还是开环的极点配置),那么我们接下

15、来开始看用这种建模的方法怎么实现PID参数的配置:用极点配置PID实现对系统的控制那么按照上面的介绍我们来尝试消除这两个主导极点,前面说过,PID模型中两个对称零点的位置是可以任意调整的,不用计算,直接手试出如下的参数:Kp=1:Ti=0.12;Id=4?;那么得到的开环零极点图是这样的:ajbucteePale-ZeroMap025i0.201E0.10.D5-0-0.05-0.1-015-0.2-0.25-00.20.40.60.E11.4-0.4-0.2RealAxis.那么闭环响应是这个样子的:HI(Dp3-dLUVTime宙託1.s.6&o.4.2Oo.o.2n-看着很漂亮啊,我们加大Kp到4试试,其他参数都不变QG,2J1.8O28O2O哟,完美嘛,0.5s即可到达稳态,0稳态误差,超调量也不过10%而已,相当的理想,而且从这里可以看出使用K

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号