来自系列:无人机仿真与控制
布莱恩杜格拉斯
在最后一个视频中,我们展示了我们可以通过将其滚动,俯仰,偏航和改变其推力来操纵四个Quadcopter的四个电机来操纵3D空间中的操纵。我们还涵盖了我们所提供的四个传感器,以估计系统状态。在这段视频中,我们将利用这些知识来设计一个控制系统架构来实现四轴飞行器的悬停。我们将弄清楚我们需要反馈的哪些状态,我们需要构建多少控制器,以及这些控制器如何相互交互。
在上个视频中,我展示了我们可以操纵四轴飞行器的四个马达在3D空间中操纵它通过让它滚动,俯仰,偏航和改变推力。我们还介绍了用于估计系统状态的四个传感器。在这段视频中,我们将利用这些知识来设计一个控制系统架构来实现四轴飞行器的悬停。这意味着,我们要弄清楚我们需要反馈哪些状态,我们需要构建多少控制器以及这些控制器如何相互作用。我是Brian,欢迎来到MATLAB技术讲座。
在我们正在开发的控制系统中,该工厂是Minidrone本身。它需要FourMotor速度作为输入,然后旋转螺旋桨,产生影响其输出状态的力和扭矩。我们想要的输出是将Minidrone悬停在固定的高度。所以问题变得了,我们如何自主地命令这四个电机,以便发生这种情况?
嗯,开始,让我们假设,而不是自主地做到,我们想手动命令minidrone。也就是说,我们有一个远程控制,切换,直接控制所有四个电机速度。左切换将控制两个前电机,右切换将控制两个后电机。这让您参加了反馈路径,因为您可以看到无人机在哪里,然后通过以非常具体的方式移动四个切换来对其位置和姿态作出反应。
如果您想增加推力,您可以通过在此方向上移动两个切换来加速所有四个电机。横摆要求两个相对的电动机提高速度,另外两个减少速度使得例如偏航,例如,需要这种切换运动。然后滚动车辆,您将增加左/右对的一个,并减少另一个。为了推动车辆,您将增加前/后对并减少另一个。通过这种方式,您作为反馈控制器,可以通过专业地将命令更改为这四个电机来获取无人机来悬停。
虽然可能,在电机速度方面思考似乎非常困难,我们希望更轻松地使我们的工作更容易,所以我们可以使用我们在最后一个视频和命令推力,滚动,俯仰和偏航中创建的电机混合算法。例如,当我们命令推力时,这种单个推力命令将均匀地分开到所有四个电机,偏航命令被向两个电机分发,并向其他两个电机分配负极,等等。
现在,我们的远程控制开关与直观的滚动、俯仰、偏航和推力一致,而不是思维弯曲的电机速度。这是很多操作人员在手动操纵四轴飞行器时使用的控制器配置。但事实证明,考虑到滚转,俯仰,偏航和推力在我们开发自主控制系统时也是有益的。所以我们将保持电机混合算法,并建立一个反馈控制系统,它也在循环中。
好吧,让我们摆脱人类的运营商,并考虑我们如何自主完成同样的事情。我们首先关注推力命令。推力始终处于相对于无人机机身的方向相同,它沿着X型X轴的X型X轴。这意味着如果无人机是飞行水平,并且z轴与重力矢量对齐,则增加推力会使无人机增加其高度率,这是上升的速度,并且推力下降的速度是多么快。这非常直接。但是,如果我们的无人机以陡峭的俯仰或滚角飞行,则增加推力耦合到海拔率和水平速度。
如果我们正在为赛车的控制器构建一个可能在极端卷和俯仰角度飞行的赛车寄生器,那么我们需要考虑这个耦合。但是,对于我们的简单悬停控制器,我将假设滚动和俯仰角始终非常小。这样,改变推力只有有意义地影响高度率,没有别的。有了这些信息,我们可以启动我们的控制设计。
首先,让我们构建一个使用推力来调整高度的控制器。如果我们能够测量无人机海拔地,那么我们就可以将其送回以将其与高度引用进行比较。然后将产生的错误馈入使用该信息以确定如何增加或减少推力的高度控制器。目前,我们可以将该控制器视为某种形式的PID控制器,我们将在本系列中的未来视频中讨论调整。
有了这个控制器,如果无人机悬停过低,高度误差将是正的,推力命令将增加,导致所有四个发动机同时加速,无人机将上升。如果无人机飞得太高,那么所有四个马达都会减速,这样无人机就会下降。
就是这样,对吧?我们的任务完成了。我们开发了简单的高度控制器可以让迷你无人机悬停。而且它是完美的!除了你知道事实并非如此,因为有障碍,像阵风一样,这将引起辊或投入系统,当这种情况发生时,推力不仅调整高度,还将创建一些水平运动和无人机将会远离你。一个悬停控制器能保持高度,但需要你追逐它,否则它会撞到墙上,有什么好处呢?这是很难盘旋。
不,我们显然需要一个更好的控制系统架构,我们应该开始尝试通过控制滚转和俯仰角度到0度来保持水平飞行。如果我们能让迷你无人机保持水平,那么推力再次只会影响高度,无人机就不会飞走了。
从上个视频中我们知道,我们能够独立地控制推力,滚转,俯仰和偏航,也就是说,我们可以在不影响其他动作的情况下控制一个动作。知道了这一点,我们可以创建另外三个反馈控制器,一个用于滚转、俯仰和偏航,就像我们对推力所做的一样。为了给我们更多的空间,我将重画框图并将电机混合算法块压缩为MMA。
现在,植物的输出不仅仅是高度,我们还需要测量或估计滚转,俯仰和偏航角度。我会反馈所有的系统状态然后标记每个控制器使用的状态希望你们能理解。我把估计的滚转角输入滚转控制器,把偏航角输入偏航控制器,等等。
现在,我们有什么?
我们有四个独立的或解耦的控制器,一个用于推力,这实际上是一个高度控制器因为我们声称滚动和俯仰角度很小。然后三个控制器分别试图保持滚转,俯仰和偏航为0度。这应该保持高度,保持微型无人机向前并与地面水平。
这是一个更好的悬浮控制器比我们的第一个。但是,它仍然不完美。为了理解原因,让我们在这个系统中玩假设的阵风。风一开始可能会带来一些滚动角度,但我们的滚动控制器会消除这个错误,让无人机回到水平飞行。然而,在一个非常短的时间内,在滚动期间,推力矢量不是垂直向上和向下的,因此无人机将水平移动了一点。然后另一股阵风袭来,导致另一次滚转或俯仰错误,无人机离开的时间更长一些。所以即使无人机不会像我们的第一个控制器那样持续地跑掉,这个控制器仍然会允许它慢慢地走掉。在我们的控制系统架构中没有任何东西能让无人机回到起始位置。
让我们改进这个控制系统来做到这一点。我将再次清理我们的框图,为额外的控制逻辑腾出一些空间。好了,现在我们有了一些空间,让我们考虑一下在悬停时,翻滚和倾斜是怎么做的。这两个角度都应该是0,这就是我们如何建立当前版本的控制器。然而,为了悬浮,它们可能需要非零。例如,如果我们想在持续的强风中悬停,那么无人机将不得不倾斜到风,以某种角度,以保持它的地面位置。所以不是指定我们想要水平飞行,我们真正需要的是一个地面位置控制器,它会识别无人机何时偏离并做出必要的修正将它带回参考点X和Y。
但只是因为我们不想挑选特定的卷和俯仰角,这并不意味着我们不需要滚动和俯仰控制器。从第一个视频记住,即Quadcopter无法在没有先滚动或俯仰所需的行进方向的情况下移动左,右前进或向后移动。因此,我们的控制系统需要将位置误差与滚动和音调耦合。
这是一组听起来很复杂的操作,但幸运的是结果控制器非常容易理解。我们可以反馈微型无人机测量到的X、Y位置,并将其与基准进行比较,得到位置误差。现在,我们说参考位置是(0,0)这样我们的控制器将使无人机在起飞点的正上方盘旋。
位置控制器以位置误差为输入,输出横摇角和俯仰角。这些是我们的滚转和俯仰控制器试图遵循的参考角度。所以我们作为设计师,不是选择滚动和俯仰参考角度,而是让位置控制器为我们创造它们。这样,位置控制器是外环,它为内环滚转和俯仰控制器生成参考命令。这些是级联环路。
作为一个快速的边注,测量的偏航角也馈入位置控制器。原因,很简单,是X, Y位置误差相对于地面,或世界参考系,而滚转和俯仰是相对于无人机的身体。因此,俯仰并不总是让无人机向X世界的方向移动,而滚动并不总是让无人机向Y世界的方向移动。这取决于无人机是如何旋转的,或者它的偏航角度。所以,如果我们需要将无人机移动到房间里一个非常特定的位置,那么它就需要知道偏航,以便确定是否需要滚转,俯仰或两者的结合来实现这个目标。我们的位置控制器使用偏航在世界X, Y和身体X, Y坐标系之间转换。
好吧,让我们走过思想练习,看看所有这些控制器如何共同努力,以保持地位和高度。让我们说迷你无人机是正确的海拔的飞行水平,但剩下的左边有点太远。这将导致馈入位置控制器的位置错误。控制器的比例部分将通过常量乘以误差,这将请求右侧的无人机滚动。滚动控制器将看到有一个滚动误差,因为无人机仍然是水平并请求滚动扭矩。这将通过电机混合算法进行播放,并请求驱动器左侧的电机加速和右侧的电机减速。这将使无人机滚到命令角度。现在无人机将开始向右移动,但由于滚动时推力的垂直分量略小略小,因此无人机将also开始失去高度。高度控制器将感知此错误并相应地增加推力命令。
当无人机继续向右移动时,位置误差下降,因此通过比例路径所要求的滚转角也下降,使无人机回到水平位置。但如果无人机飞行太快,那么在飞行方向上就会有一些水平动量需要移除。这就是位置控制器的导数项有用的地方。它可以感觉到无人机正在快速接近参考位置,并开始更早地移除滚动,甚至导致它在相反的方向滚动,以减慢无人机,并在我们想要它的地方停止。
这是我们悬停控制系统的一个很好的架构,但创建和调整它有两个明显的障碍。首先,这需要一种方法来估计状态偏航,滚转,俯仰,高度和XY位置。这些是我们反馈的信号。第二,我们需要调整六个相互作用的PID控制器,特别是其中四个直接耦合在级联环路中。我们处理第一个问题的方法是结合四个传感器的测量结果在某些情况下使用模型和卡尔曼滤波器来估计每个反馈状态。对于第二个问题,我们需要一个好的系统模型,这样我们就可以使用基于模型的设计,MATLAB和Simulink来调整我们的六个PID控制器。金宝app
实际上,如果我们只看了本反馈系统的控制器部分,您可以看到Simulink模型具有我们在此视频中建立的完全相同的控制器体系结构。金宝app外环XY位置控制器正在为内环间距/辊控制器产生参考音调和辊角。还有偏航和高度控制器以及它们中的每一个都进入电机混合算法。在下一个视频中,我们将离开概念和图纸的世界,并转移到这个Simulink模型,查看该控制系统的实际软件和工厂和环境动态。金宝app
因此,如果您不想错过下一个技术谈话视频,请不要忘记订阅此频道。此外,如果您想查看我的频道,控制系统讲座,我还涵盖了更多的控制理论主题。谢谢你的观点,我下次见到你。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。