前言

  前一篇中对自抗扰控制算法的原理及扩张状态观测器的参数整定问题进行了详解。同时,提出了一种基于自抗扰控制算法的多旋翼飞行器控制系统设计方案。
  在系统辨识专题中,我们提到了控制效率方程的作用及重要性。

控制分配矩阵的必要性分析

  我们往往针对单一控制回路进行控制器设计及性能分析。对于被控对象而言,最终驱动执行机构的控制指令,由多个控制回路的控制器输出的某种组合关系决定。该组合关系称之为控制分配矩阵。许多开源飞控对于各控制器输出的组合,通常采用线性函数的组合方式,如:
{Ω1=kF∗F−kMx∗Mx−kMy∗My+kMz∗MzΩ2=kF∗F+kMx∗Mx+kMy∗My+kMz∗MzΩ3=kF∗F+kMx∗Mx−kMy∗My−kMz∗MzΩ4=kF∗F−kMx∗Mx+kMy∗My−kMz∗Mz\begin{cases} \Omega_{1}=k_{F}*F-k_{M_{x}}*M_{x}-k_{M_{y}}*M_{y}+k_{M_{z}}*M_{z}\\[2ex] \Omega_{2}=k_{F}*F+k_{M_{x}}*M_{x}+k_{M_{y}}*M_{y}+k_{M_{z}}*M_{z}\\[2ex] \Omega_{3}=k_{F}*F+k_{M_{x}}*M_{x}-k_{M_{y}}*M_{y}-k_{M_{z}}*M_{z}\\[2ex] \Omega_{4}=k_{F}*F-k_{M_{x}}*M_{x}+k_{M_{y}}*M_{y}-k_{M_{z}}*M_{z} \end{cases}⎩⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎧​Ω1​=kF​∗F−kMx​​∗Mx​−kMy​​∗My​+kMz​​∗Mz​Ω2​=kF​∗F+kMx​​∗Mx​+kMy​​∗My​+kMz​​∗Mz​Ω3​=kF​∗F+kMx​​∗Mx​−kMy​​∗My​−kMz​​∗Mz​Ω4​=kF​∗F−kMx​​∗Mx​+kMy​​∗My​−kMz​​∗Mz​​
  控制分配最先在飞行控制系统设计中提出,其基本思想是,将控制指令根据某些优化目标分配给执行机构,并满足执行机构的约束条件。本质上,求解控制分配矩阵的同时,也是求解动力系统对于控制器的约束方程问题。
  由于多旋翼飞行器拥有多个动力执行机构,根据不同的几何分布结构,能够产生多种动力组合方式。因此,针对不同的结构布局,我们需要求解不同的控制分配矩阵,以给出最合理的控制输出组合方式。求解控制分配矩阵,有以下作用:

  • 当动力系统出现故障时,能够切换控制分配矩阵,以当前动力系统的实际情况,选择最合理的动力分配方式,避免出现各动力系统饱和的现象,提高飞行器的鲁棒性。
  • 当动力系统正常时,合理的控制分配矩阵,能够最大化动力系统的执行效率。

控制分配矩阵的求解

  对于四旋翼飞行器而言,其控制效率矩阵为方阵。因此,其逆矩阵存在,我们可以对其控制效率矩阵求逆,从而得到唯一的控制分配矩阵。
  然而,对于旋翼数量大于4的多旋翼飞行器而言,其控制效率矩阵不存在逆矩阵,我们需要求其伪逆来得到控制分配矩阵。
首先将一个标准多旋翼的控制效率矩阵定义为如下矩阵:
Mnr(cT,cM,d)=[cTcT⋯cT−d1cTsinφ1−d2cTsinφ2⋯−dncTsinφnrd1cTcosφ1d2cTcosφ2⋯dncTcosφnrcMδ1cMδ2⋯cMδnr]M_{nr}(c_{T},c_{M},d)= \begin{bmatrix} c_{T} &c_{T}&\cdots&c_{T}\\ -d_{1}c_{T}sin\varphi_{1}&-d_{2}c_{T}sin\varphi_{2}&\cdots&-d_{n}c_{T}sin\varphi_{nr}\\ d_{1}c_{T}cos\varphi_{1}&d_{2}c_{T}cos\varphi_{2}&\cdots&d_{n}c_{T}cos\varphi_{nr}\\ c_{M}\delta_{1}&c_{M}\delta_{2}&\cdots&c_{M}\delta_{nr} \end{bmatrix}Mnr​(cT​,cM​,d)=⎣⎢⎢⎡​cT​−d1​cT​sinφ1​d1​cT​cosφ1​cM​δ1​​cT​−d2​cT​sinφ2​d2​cT​cosφ2​cM​δ2​​⋯⋯⋯⋯​cT​−dn​cT​sinφnr​dn​cT​cosφnr​cM​δnr​​⎦⎥⎥⎤​
它满足
Mnr(cT,cM,d)=PaMnr(1,1,1)M_{nr}(c_{T},c_{M},d)=P_{a}M_{nr}(1,1,1)Mnr​(cT​,cM​,d)=Pa​Mnr​(1,1,1)
其中 Pa=diag(cT,dcT,dcT,cM),cT,cM,dP_{a}=diag(c_{T},dc_{T},dc_{T},c_{M}) , c_{T},c_{M},dPa​=diag(cT​,dcT​,dcT​,cM​),cT​,cM​,d 分别为升力系数,扭矩系数以及等效力臂长度。由此,有如下关系:
Mnr−1(cT,cM,d)=Mnr−1(1,1,1)Pa−1M_{nr}^{-1}(c_{T},c_{M},d)=M_{nr}^{-1}(1,1,1)P_{a}^{-1}Mnr−1​(cT​,cM​,d)=Mnr−1​(1,1,1)Pa−1​
以下图为例的六旋翼飞行器为例,M6(cT,cM,d)M_{6}(c_{T},c_{M},d)M6​(cT​,cM​,d) 可以表示为


M6(cT,cM,d)=[cTcTcTcTcTcT0−3dcT2−3dcT203dcT23dcT2dcTdcT2−dcT2−dcT−dcT2dcT2cM−cMcM−cMcM−cM]M_{6}(c_{T},c_{M},d)= \begin{bmatrix} c_{T}&c_{T}&c_{T}&c_{T}&c_{T}&c_{T}\\ 0&-\frac{\sqrt{3}dc_{T}}{2}&-\frac{\sqrt{3}dc_{T}}{2}&0&\frac{\sqrt{3}dc_{T}}{2}&\frac{\sqrt{3}dc_{T}}{2}\\ dc_{T}&\frac{dc_{T}}{2}&-\frac{dc_{T}}{2}&-dc_{T}&-\frac{dc_{T}}{2}&\frac{dc_{T}}{2}\\ c_{M}&-c_{M}&c_{M}&-c_{M}&c_{M}&-c_{M} \end{bmatrix}M6​(cT​,cM​,d)=⎣⎢⎢⎡​cT​0dcT​cM​​cT​−23​dcT​​2dcT​​−cM​​cT​−23​dcT​​−2dcT​​cM​​cT​0−dcT​−cM​​cT​23​dcT​​−2dcT​​cM​​cT​23​dcT​​2dcT​​−cM​​⎦⎥⎥⎤​

由此可得,
M6(1,1,1)=[1111110−32−3203232112−12−1−12121−11−11−1]M_{6}(1,1,1)= \begin{bmatrix} 1&1&1&1&1&1\\ 0&-\frac{\sqrt{3}}{2}&-\frac{\sqrt{3}}{2}&0&\frac{\sqrt{3}}{2}&\frac{\sqrt{3}}{2}\\ 1&\frac{1}{2}&-\frac{1}{2}&-1&-\frac{1}{2}&\frac{1}{2}\\ 1&-1&1&-1&1&-1 \end{bmatrix}M6​(1,1,1)=⎣⎢⎢⎡​1011​1−23​​21​−1​1−23​​−21​1​10−1−1​123​​−21​1​123​​21​−1​⎦⎥⎥⎤​
易知其伪逆矩阵为:
M6−1(1,1,1)=16[10211−31−11−3−1110−2−113−11131−1]M^{-1}_{6}(1,1,1)=\frac{1}{6} \begin{bmatrix} 1&0&2&1\\ 1&-\sqrt{3}&1&-1\\ 1&-\sqrt{3}&-1&1\\ 1&0&-2&-1\\ 1&\sqrt{3}&-1&1\\ 1&\sqrt{3}&1&-1 \end{bmatrix}M6−1​(1,1,1)=61​⎣⎢⎢⎢⎢⎢⎢⎡​111111​0−3​−3​03​3​​21−1−2−11​1−11−11−1​⎦⎥⎥⎥⎥⎥⎥⎤​
因此, [Ωd,12Ωd,22...Ωd,62]=M6−1(1,1,1)Pa−1[Fdτd]=M6−1(1,1,1)[Fd/cTτdx/(dcT)τdy/(dcT)τdz/(dcT)]\begin{bmatrix} \Omega_{d,1}^{2}\\ \Omega_{d,2}^{2}\\ ...\\ \Omega_{d,6}^{2}\\ \end{bmatrix} = M^{-1}_{6}(1,1,1)P^{-1}_{a}\begin{bmatrix} F_{d}\\ \tau_{d} \end{bmatrix} =M^{-1}_{6}(1,1,1) \begin{bmatrix} F_{d}/c_{T}\\ \tau_{dx}/(dc_{T})\\ \tau_{dy}/(dc_{T})\\ \tau_{dz}/(dc_{T})\\ \end{bmatrix}⎣⎢⎢⎡​Ωd,12​Ωd,22​...Ωd,62​​⎦⎥⎥⎤​=M6−1​(1,1,1)Pa−1​[Fd​τd​​]=M6−1​(1,1,1)⎣⎢⎢⎡​Fd​/cT​τdx​/(dcT​)τdy​/(dcT​)τdz​/(dcT​)​⎦⎥⎥⎤​
令控制输出指令为U1,U2,...U6U_{1},U_{2},...U_{6}U1​,U2​,...U6​ ,则
[U1U2...U6]=k∗[Ωd,1Ωd,2...Ωd,6]\begin{bmatrix} U_{1}\\ U_{2}\\ ...\\ U_{6}\\ \end{bmatrix} = k* \begin{bmatrix} \Omega_{d,1}\\ \Omega_{d,2}\\ ...\\ \Omega_{d,6}\\ \end{bmatrix}⎣⎢⎢⎡​U1​U2​...U6​​⎦⎥⎥⎤​=k∗⎣⎢⎢⎡​Ωd,1​Ωd,2​...Ωd,6​​⎦⎥⎥⎤​
[U1U2...U6]=k∗M6−1(1,1,1)[Fd/cTτdx/(dcT)τdy/(dcT)τdz/(dcT)]\begin{bmatrix} U_{1}\\ U_{2}\\ ...\\ U_{6}\\ \end{bmatrix} = k* \sqrt{M^{-1}_{6}(1,1,1) \begin{bmatrix} F_{d}/c_{T}\\ \tau_{dx}/(dc_{T})\\ \tau_{dy}/(dc_{T})\\ \tau_{dz}/(dc_{T})\\ \end{bmatrix}}⎣⎢⎢⎡​U1​U2​...U6​​⎦⎥⎥⎤​=k∗M6−1​(1,1,1)⎣⎢⎢⎡​Fd​/cT​τdx​/(dcT​)τdy​/(dcT​)τdz​/(dcT​)​⎦⎥⎥⎤​​

总结

  本篇围绕控制分配矩阵展开,阐述了控制分配矩阵的作用及必要性,以多旋翼飞行器为例,推导其控制分配矩阵的求解过程。
  在实际工程中,控制分配矩阵的重要性不亚于控制器设计本身,一个合理的控制分配矩阵能够大大减轻控制器的压力,提高系统的鲁棒性。


作者简介: 一个被Coding耽误的无人机算法工程师,控制、导航略懂一二,热衷技术,喜欢乒乓、音乐、电影,欢迎交流。

知乎: @遥远的乌托邦

GitHub: https://github.com/DistantUtopia

微信公众号: @遥远的乌托邦

控制系统设计专题(四)——控制分配矩阵的求解及相关问题相关推荐

  1. 基于PLC的智能农业温室大棚控制系统设计大棚电气控制组态 温室大棚组态 温室组态

    基于PLC的智能农业温室大棚控制系统设计大棚电气控制组态 温室大棚组态 温室组态 ID:6959673043692432

  2. 基于c语言智能空调控制系统设计,智能温室控制系统设计复习课程.docx

    单片机开发与设计工程师考试文档 学校: 湖南人文科技学院 题目: 智能温室控制系统设计 姓名: 杨情红孙静 学号:07409224 日期: 2010年6月27日 摘要 智能温室控制技术是现代农业技术研 ...

  3. 基于c语言智能空调控制系统设计,智能温室控制系统设计.doc

    PAGE 单片机开发与设计工程师考试文档 学校: 湖南人文科技学院 题目: 智能温室控制系统设计 姓名: 杨情红 孙静 学号: 日期: 20 摘 要 智能温室控制技术是现代农业技术研究的重要内容,通过 ...

  4. 控制系统设计_PLC自动化控制系统设计基本原则

    PLC自动化控制系统(automatic control systems)是在无人直接参与下可使生产过程或其他过程按期望规律或预定程序进行的控制系统.自动控制系统是实现自动化的主要手段,简称自控系统. ...

  5. 基于8086简易电子琴系统仿真设计-基于8086红外自动门控制系统设计-基于单片机8x8矩阵键盘两机串口通信-基于单片机8层电梯控制系统仿真设计-基于单片机ADC0809和DAC0832模数和数模设计

    1189基于8086简易电子琴系统仿真设计-设计资料 编写一实现电子琴的程序,并实现若干扩展功能. 基本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶: 扩展功 ...

  6. 双缸四柱液压机的液压系统设计和PLC控制【说明书(论文)+CAD (PLC控制框图+PLC输入输出接线图+液压系统原理图+梯形图+任务书……)】

    摘要 双缸四柱液压机应用广泛,是在加工工艺过程中极为常用的一种机械设备.该液压机的组成部分包括主机和一个控制机构,其中主机部分包括机架.主缸.顶出缸和它的充液装置等.控制机构则包括动力系统和液压控制系 ...

  7. 控制系统设计指南第四版

    控制系统设计指南第四版PDF需要的可以联系我,可以加我vx,准备组建一个自动驾驶相关技术群

  8. 200T四柱式液压机结构及控制系统设计(设计说明书+CAD 液压机+液压站+油箱+主缸+主缸缸筒+液压系统原理图+液压机电气控制系统+梯形图)

    摘  要 本次毕业设计的主要任务为200T三梁四柱式液压机的结构设计及控制系统设计.液压机的应用较广泛,在日常生活中到处可以见到,其基本工作原理为根据帕斯卡原理.以液体作为传递介质,达到实现能量的转换 ...

  9. 【设计方案分享】基于单片机温度监测监控报警系统设计-基于单片机钞票自动智能识别系统设计-基于单片机乒乓球游戏机控制系统设计-基于单片机温度监测监控报警系统设计-基于单片机矩阵键盘的电子密码锁设计

    820基于单片机温度监测监控报警系统设计-设计资料 温度监测器功能描述: 1.主控芯片用的是51单片机(STC89C51). 2.使用温度传感器DS18b20采集温度. 3.用1602液晶显示显示温度 ...

最新文章

  1. C++异常实现与longjmp, setjmp,栈指针EBP, Active Record
  2. 【ABAP】SAP供应商自定义决裁生成实现
  3. php 数组到字符串的转换,php – 数组到字符串到数组的转换
  4. 【解析】1057 数零壹 (20分)(进制转换)
  5. 市面主要远场语音交互技术架构
  6. java jooq_将Java EE与jOOQ结合使用的初学者指南
  7. 关于单纤与双纤光端机的区别介绍
  8. Dockerfile最佳实践
  9. SQL笔记之开天辟地
  10. Kafka面试题(附答案)
  11. Dell 电脑插入耳机无声音或重启后有声音
  12. android手机陀螺仪传感器,10.12 传感器专题(3)——加速度/陀螺仪传感器
  13. thinkpad笔记本电脑怎么关闭触摸板
  14. 设为首页,收藏本站代码
  15. Java---Map详解
  16. 二叉树的创建——递归与非递归
  17. 什么是一个可执行文件?
  18. POE交换机供电线序及连结方法
  19. Java8 List removeIf用法技巧
  20. 【附源码】计算机毕业设计SSM天润律师事务所管理系统

热门文章

  1. node内存溢出:JavaScript heap out of memory
  2. python 安装问题
  3. LabWindows的TEXTBOX和TABLE操作
  4. 复制淘宝店需要设置那些?
  5. QT里的函数void Q_INIT_RESOURCE ( name )
  6. 【FFmpeg】通过编解码ID(AV_CODEC_ID_*)获取编解码器AVCodec指针的过程分析
  7. 基于Joplin和WebDAV搭建私有云笔记
  8. 数字化时代,企业应该如何看待商业智能BI
  9. word文档中设置的行距一样但实际显示的不一样
  10. Mysql通过binlog恢复误删数据