分享

【工程控制杂论6】从无人机说起

 自在3333 2023-05-11 发布于四川

说着说着,慢慢就要进入实际控制问题了。

在闭环控制的应用方面,有运动控制和过程控制这样的分类,这不是本质性分类,都是闭环控制,自动控制原理对两者都适用,差别只在控制对象不同,一个是针对各种机械运动参数的控制,另一个是针对生产过程中的一些参数的控制,比如温度、压力、液位等等。

我打算先说说运动控制,因为它应用很广,而且许多过程控制的执行环节,会用到运动控制,也因为我在这方面做的工程多一些。

现在我先用两个例子,来为运动控制提供一点感性认识,一个是四旋翼无人机的控制,另一个是六关节工业机器人的控制。

四旋翼无人机的动力部分,是X型对称分布的四个旋翼,由四台小电动机驱动,我这么一说,相信大家都知道我在说什么了。

这种无人机很久前我玩了一下,有点印象,记得是用一只好像游戏操作杆的遥控器,上面有两个双作用操作杆,一个是用来操作平移运动的,向前推是前进,向后拉后退,向右和向左是横向侧飞,另一个操作升降和回转,向后拉应该是上升,向前下降,左右操作分别是逆时针和顺时针方向回转。

操作杆的角度对应速度,比如向前,把操作杆推到最前就意味着最快速度向前飞行,以此类推。

从这个操作方式,我就可以去猜测这个玩意儿的控制都有什么功能了,或者说,我可以把自己想象成它的控制方案设计者,来胡说八道一番了。

想要控制的,有升降,进退,左右回转以及左右侧飞四个功能,可以控制的,有四个机械上彼此独立的驱动旋翼,很明显,四个想要控制的目标,和四个可以控制的机构,彼此之间并没有一一对应的关系。

就我自己的感觉,无人机的整体控制思路,适合采用一种被称为递阶控制的分级结构。

这种结构的上层,称为组织级,用来接收操作者的指令,然后完成整体的控制决策。它的下层,称为执行级,用来对最终的执行手段实施控制,而这两个层级的中间,还需要一个把组织级的决策分配落实给执行级各个部分的协调级。

先来分析一下组织级的功能,升降、进退、回转还有侧飞,这四个功能本身,就是对无人机整体的运动控制,而且它们都应该是闭环控制类型,因为当所有操作杆都在零位,就对应于无人机空中悬停,这时必须采入四个参数的速度信号,判断是不是零速,否则搞不定。

这算是一个特例,即在递阶控制的组织级,本身就由闭环控制来完成,这并不是普遍现象,比如后面要讲的工业机器人控制就不是这种情况了。

现在我先拿升降控制分析一下,四个旋翼会提供升力,升力的大小应该和旋转速度大致成正比,如果总的升力大于无人机的总重量,就会获得一个向上的加速度,开始加速上升,当上升速度达到操作杆对应速度时,转速就应该降下来,只需要让升力略大于重量,在平衡重量的同时,克服上升时的空气阻力,就能实现匀速上升。

如果放开操作杆,就相当于给了零速命令,旋翼转速会先降低,让升力小于重量,正在上升的无人机上升速度就降下来了,然后转速恢复到升力和重量平衡的水平,无人机就零速悬停在空中了。

下降的情况与此类似,就不细讲了。

这属于速度恒值控制,一方面操作者应该不会不停地来回拨弄操作杆,因此速度命令应该是比较稳定的,另一方面,我们也不会在意无人机的升降速度是不是特别准确和快速的跟踪操作杆的操作,时间上有一点延迟是可以接受的。

由于升力和旋翼的转速有直接的关联,所以,升降控制的控制策略输出,可以直接选择为旋翼转速。

这是同时针对四个旋翼的,升降控制的输出,会同时给出四个旋翼的转速,而且是相同的。

但给出的转速不能直接执行,因为四个旋翼不仅仅为升降控制系统服务,所以先放在这里,我们先看看其他三个控制系统。

再来看一看回转控制,这个操作就相当于汽车转弯时的方向,回转的结果,就重新定义了前进后退和左右侧飞这些操作的实际方向。

旋翼转动的时候,不仅会提供升力,还会对主体产生一个与旋转方向相反的回转力矩,这是旋转运动中的作用力和反作用力效应。这个回转力矩需要抵消掉,不然无人机就会不停的打转。因为有四个旋翼,解决起来就很简单,让一条对角线布置的两个旋翼正旋,另一个对角线上的两个旋翼反旋,回转力矩就抵消掉了。

那么,当我们需要控制它回转的时候,只需要让两组旋翼有一个速度差,导致力矩不能完全抵消,就又有了回转动力,因此,回转控制的控制输出,是一个差速命令。

比如说,想要让无人机逆时针回转,那么就让顺时针旋转的一对旋翼转快一点,另一对转慢一点,就会剩余一部分逆时针方向的反作用力矩,可以让无人机有一个回转加速度,等回转速度达到操作杆的设定数值,就把差速降下来,实现匀速回转,最后想要停止回转,则需要提供一个反方向差速,然后在停止回转后让差速消失。

再来看看前进后退控制。

四个垂直安装的旋翼并不提供水平方向的动力,除非让无人机发生整体倾斜,那么旋翼产生的力就会分成垂直方向的升力和一个水平方向的驱动力。

因此,前进后退控制系统的控制输出,应该是前后方向的动力,然后需要一个简单的计算,把动力换算成整体的倾斜角度。

从倾斜角度可以算出旋翼动力的水平分量比例,再乘以当前旋翼转速产生的力,水平动力就知道了,现在是要把对水平动力的需求,换算成倾斜角度,只需要反过来算就可以了。

这就是外环也就是速度环的情况,控制输出是倾斜角,即前后方向与地面的倾角,如果是前进的话,就意味着无人机前面低后面高的一个倾斜姿态。

倾斜角肯定需要一个内环来控制,这属于位置控制的范围,控制输出是角速度,这个也没有直接的执行手段,所以,还需要第三环,角速度环,它的控制输出是力矩,即在前后方向的翻转力矩,这个力矩可以由前组旋翼和后组旋翼的差速提供。

那么,前进后退控制的构成,可以是一个三闭环结构,最外环是飞行速度环,控制输出是水平驱动力,换算之后变成倾斜角。中间环是倾角环,控制输出是倾斜角速度。内环是角速度环,控制输出是前后旋翼组的差速命令。

左右侧向飞行的控制和前后飞行是一样的,只不过方向变了九十度而已,最终的控制输出是左右旋翼组的差速。

这样,这个无人机的整体控制就考虑完了,升降控制产生四个旋翼的转速指令,其余三个系统产生的都是差速信号,而每一个旋翼都要同时接受一个转速指令和三个差速指令的指挥,这就涉及到协调级了。

协调级的任务,在这个例子里其实很简单,就是把四个婆婆的命令汇总起来,然后分别分配给四个媳妇去照办。

比如说,升降控制给出了每分钟1000转的转速,回转控制给出了每分钟20转的差速,前进控制给出了每分钟30转的差速,左右控制给出了负的每分钟10转的差速,那么左前方的旋翼应该多少转速?这个计算工作,就是协调级的任务了。假设我们把左前方和右后方的旋翼定为正旋,那么20的差速就是做加法了,在前进控制里,正的差速对应于前低后高,左前方的旋翼位于前组,这30的差速就该做减法。左右控制如果以向右侧飞为正方向,那么正的差速就对应于右低左高,负的差速对应于左低右高,左前方的旋翼位于左组,因此也要做减法。

最后左前方的旋翼转速目标是1000+20-30-10=980/分,这就是这个旋翼当前要提供的转速,其他三个旋翼的转速计算以此类推,计算结果分别是96010601000,四个旋翼的平均转速,还是1000。负责计算的程序就是协调级,在这个例子里,协调级的工作特别简单。

下面的执行级就简单了,就是四个旋翼的转速控制系统,不过这不是恒值控制了,是随动控制,目标转速肯定是不断变化的,实际上,作为内环的控制都属于随动控制,执行级的控制,对于上面的组织级的控制而言,都属于执行手段的性质,相当于是内环的作用。

无人机的控制,差不多就这些了吧,其中执行级是四个转速随动控制,可能需要双闭环,内环是力矩随动控制,协调级只是一个简单的分配程序,组织级有两个单闭环的速度恒值控制,还有两个三闭环的速度恒值控制,中间环是倾角控制,属于位置随动控制,内环是倾角的角速度控制,也是随动控制。

这里出现了速度的恒值控制和随动控制、位置随动控制、力矩随动控制等类型,都属于运动控制范围。

看上去很简单的,如果仅仅从控制类型而言,四旋翼无人机的这些控制并没有什么挑战性,只需要用PID调节就可以搞定,当然,前提是有足够靠谱的反馈信号。

组织级的反馈信号,涉及到升降、进退、侧飞三个维度上的速度反馈,这些反馈信号并不容易获取,因为不了解情况,除开利用GPS信号外,我想不出别的途径。另外还涉及到回转角度,前后倾角以及左右倾角这三个维度的姿态角度信号,这个用电子陀螺仪可以搞定。

GPS信号里获得速度信号,以及利用电子陀螺仪获得姿态角度信号,智能手机里都实现了的,所以不管是体积大小还是价格,应该都不是问题。

执行级的反馈信号是转速,这个就很常规了。

所以,无人机的控制至少表面看起来是可以这么干的,不过这只是我的一个猜测性的想法,实际的控制方案可能不是这样的,比如说,进退控制的那个三闭环结构,我自己就比较怀疑,会不会在实时性方面达不到要求,这就不是简单分析一下可以回答的了,只有在真正的具体工程实践中才能知道。

现在再来说说工业机器人的控制。

先建立一个直观印象,你想象把一个人腰部以下固定在底座上,而且他只有一只手臂,这差不多就是一台六关节工业机器人的尊容了。

六个关节的前面三个,分别相当于腰部、肩关节和肘关节,这三个关节的角度确定后,前臂末端的三维坐标就确定了。第四个关节是前臂旋转,模拟我们前臂的扭转,如果你拿着一支毛笔左右摆动,用到的就是这个功能。第五个关节是腕部俯仰,相当于让毛笔前后摆动时用到的功能。最后一个关节是腕部末端的旋转,如果你写毛笔字时有捻管的习惯,用到的就是类似的功能。

后面这三个关节的作用,是前三个关节参数确定之后,确定机器人末端安装的工具的三维姿态,即中轴的两个方向角度,以及围绕中轴旋转的角度,但同时,因为我们用到的三维位置坐标不是前臂末端的,而是工具的工作部位的,比如毛笔笔尖的位置,因此,后面三个关节的参数,一样也要影响到三维位置。

反过来,在后面三个关节参数确定后,如果前面三个关节参数有变化,那么机器人末端安装的工具的三个姿态角度,一样会有变化。

简单的说,工具的三个姿态角以及工具末端的三维位置坐标,一共六个自由度,是由机器人六个关节的参数联合决定的,但并没有一一对应关系,每个关节参数的变化,几乎会影响所有的自由度,而每改变一个自由度的参数,又几乎需要改变所有的关节参数。

又是一个多个整体目标由多个具体执行环节实现的情况,所以,递阶控制仍然应该是一个好主意。

那么,工业机器人控制的组织级功能是什么呢?

工业机器人是按照'路径控制’的方式工作的,简单说,它得到的命令是这样的形式:从当前位置出发,经过A点到达B点暂时停留,然后经过C点到达D点暂时停留……

这里每一个'点’的坐标,都是由六个自由度参数组成的,同时包含了位置和姿态信息。

B点停留的时候可能会用附加的机械爪抓取一个工件,然后在D点位置放下,这样来完成工作,不过抓取和放下的动作是机械爪的控制程序要完成的事情,那是额外的,并不属于工业机器人本身的控制,机器人本身的控制,就是一连串的路径而已,在上面的例子里,从当前位置到B点是一条路径,从B点到D点是第二条路径……

所谓路径,就是把一连串的六自由度'位置坐标’按时间串联起来形成的一个时间—空间轨迹,很明显,上面描述的从当前位置经过A点到B点的描述,不足以完整的构成一个路径的全部数据。

所以就需要做一件事情,把一系列中间点的六维坐标插补进去,构成一个足够密集的轨迹曲线,这应该就是组织级的工作了,至于具体怎么插补,比如说可以做成平滑的二次曲线轨迹,是一个数学工作。

这个轨迹可以直接拆分成六个自由度参数各自的时间函数曲线。

再下来,根据机器人各部分的尺寸关系,用解析几何的方式,把六个自由度的时间函数,变换成机器人六个关节参数的时间函数,这一步要麻烦很多,但终归是一个数学问题而已。

上面这一步就属于协调级的工作了。

然后,就是各个关节的控制了,让六个关节的驱动电动机按照协调级发送的各自的角度—时间函数去运行,而且要准确实现时间同步,因此这是属于位置随动控制,这就是执行级的控制情况。

在无人机的例子里,组织级对应于整体的运动控制,协调级是一个简单的计算程序,执行级则对应于四个旋翼的运动控制,在机器人的例子里,组织级和协调级都是比较复杂的数学运算程序,执行级对应于六个关节的运动控制。

现在你应该知道我说的运动控制指的是什么了,它的控制对象是力学里的运动参数,包括速度或者角速度,加速度或者角加速度,力或者力矩,以及位置或者角度,可能是恒值控制,也可能是随动控制。

和生产过程参数相比,运动参数的变化要快很多,比如温度,一个变化过程一般需要若干分钟,而一个运动参数变化过程,很可能在一两秒内就完成了。

所以,运动控制如果出现难点,往往都和快速性有关,要么是对系统的动态性能要求太高,要么就是实时性难以满足。

到这里,关于运动控制的直观印象,应该就算建立起来了,后面我就要具体的进入运动控制的讨论了。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多