分布式飞行控制系统中使用优化的推力分配的制作方法

分布式飞行控制系统中使用优化的推力分配
技术背景
1.诸如电动竖直起飞和降落(evtol)多旋翼直升机之类的私人飞行器提供了一种绕过拥挤的高速公路和城市街道的方式。然而,安全性是这样的载具的重要考虑因素。特别是,一些evtol多旋翼直升机不具有机翼,并且因此在电机熄火或其他紧急的事件中,它们不能滑行。使诸如evtol多旋翼直升机之类的飞行器更安全的新技术和/或系统是合期望的。
附图说明
2.在以下详细描述和附图中公开了本发明的各种实施例。
3.图1是图示使用具有单个解的优化问题来生成推力值并使电机执行那些推力值的过程实施例的流程图。
4.图2是图示电动竖直起飞和降落(evtol)多旋翼直升机的实施例的图解。
5.图3a是图示正在以所示的相关联旋翼旋转方向和速率悬停的evtol多旋翼直升机的实施例的俯视图。
6.图3b是图示正在以所示的相关联旋翼旋转方向和速率右转的evtol多旋翼直升机的实施例的俯视图。
7.图3c是图示正在以所示的相关联旋翼旋转方向和速率向前俯仰的evtol多旋翼直升机的实施例的俯视图。
8.图4是图示具有冗余飞行控制器和决策块的飞行控制系统的示例的图解。
9.图5是图示分布式飞行控制系统的实施例的图解。在该示例中,飞行控制器的数量等于电机的数量。
10.图6是图示具有电机熄火的evtol多旋翼直升机的实施例的俯视图。
11.图7是图示分阶段推力分配过程的示例的图解。在该推力分配的示例中,推力是分阶段分配的。
12.图8是图示包括通过使用最大推力向量来生成推力值的过程实施例的流程图。
13.图9是图示包括通过跟踪任何推力值是否被主动约束来生成推力值的过程实施例的流程图。
14.图10是图示包括通过使用轴加权参数来生成推力值的过程实施例的流程图。
15.图11是图示生成推力值的过程实施例的流程图,其中优化问题具有与不同目标相关联的多个部分或项。
具体实施方式
16.本发明可以以多种方式实现,包括作为过程;装置;系统;物质的组成;体现在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置为执行存储在耦合到处理器的存储器上和/或由耦合到处理器的存储器提供的指令的处理器。在本说明书中,这些实现或者本发明可以采取的任何其他形式可以被称为技术。一般而言,在本发明的范围内,所
公开的过程的步骤次序可以变更。除非另有说明,否则被描述为被配置为执行任务的诸如处理器或存储器的部件可以被实现为被临时配置为在给定时间执行任务的通用部件,或者被制造成执行该任务的特定部件。如本文使用的,术语“处理器”指代被配置为处理诸如计算机程序指令的数据的一个或多个设备、电路和/或处理核心。
17.下面提供了本发明的一个或多个实施例的详细描述,连同图示本发明原理的附图。结合这样的实施例描述了本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明包含许多替代、修改和等同物。为了提供对本发明的透彻理解,在以下描述中阐述了许多具体细节。这些细节是出于示例的目的而提供的,并且本发明可以在没有这些具体细节中的一些或全部的情况下根据权利要求来实践。出于清楚的目的,没有详细描述与本发明相关的技术领域中已知的技术材料,以免不必要地模糊本发明。
18.本文描述了分布式飞行控制系统的各种实施例,该分布式飞行控制系统使用具有单个解的优化问题来执行推力分配(即,为载具中的电机生成推力值)。在本文描述的一些示例中,载具是电动竖直起飞和降落(evtol)多旋翼直升机,其中每个旋翼(电机)是可独立控制,并且使用本文描述的技术生成推力值。如将在下面更详细描述的,如果存在电机熄火,则本文描述的系统和/或技术的益处可能尤其清楚和/或有用。例如,本文所述的系统和/或技术可以在一个或多个电机熄火的事件中以准许更安全和/或更受控的紧急降落的方式分配推力。下图描述了分布式飞行控制系统的一个这样的实施例,其使用凸优化来执行推力分配。
19.图1是图示使用具有单个解的优化问题来生成推力值并使电机执行那些推力值的过程实施例的流程图。如上所述,在一些实施例中,该过程由evtol飞行器执行和/或在该evtol飞行器中执行。
20.在100,使用多个飞行控制器为飞行器中的多个电机生成推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为多个电机中的每个电机生成推力值。例如,假设飞行器中存在n个电机和n个飞行控制器。每个飞行控制器使用严格凸或严格凹优化问题(例如,寻严格凸优化函数的最小值,下面更详细地描述)来生成推力值。因为优化问题(例如,由飞行控制器执行的)是严格凸的或严格凹的,所以存在单个唯一解。这准许所有的飞行计算机并行地执行推力分配,但仍然得到相同的解,从而准许分布式飞行控制系统架构。在各种实施例中,飞行控制器可以用硬件(例如,专用集成电路(asic)、现场可编程门阵列(fpga))或软件(例如,在嵌入式微处理器上运行的固件)来实现。
21.在102,对于多个飞行控制器中的每个飞行控制器,生成的推力值中的一个被传递到多个电机中的对应电机,其中用于该飞行控制器的其它生成的推力值终止于该飞行控制器。例如,假设第一飞行控制器为索引或编号为1-10的电机分别生成10个推力值。(与第一电机相关联和/或意图用于第一电机的)第一生成的推力值被传递给该第一电机。来自第一飞行控制器的其他生成的推力值不连接到任何电机,并且终止于第一飞行控制器。在第二飞行控制器处,第二生成的推力值被传递到第二电机,但是其他生成的推力值不连接到任何电机,以此类推。
22.在104,使用多个电机执行传递的推力值。换句话说,电机执行它们接收的推力值(例如,第一电机执行来自第一飞行控制器的第一推力值,第二电机执行来自第二飞行控制器的第二推力值,等等)。如将在下面更详细描述的,在电机熄火的事件中,该过程可以更好
地能够执行紧急降落(例如,紧急降落更安全和/或更可控下降)。
23.为了更好地理解图1的过程,描述执行上述过程的示例性载具可能是有帮助的。下图描述了使用图1的过程来控制其电机的示例性evtol飞行器。
24.图2是图示电动竖直起飞和降落(evtol)多旋翼直升机的实施例的图解。在该示例中,evtol飞行器(200)是具有10个旋翼(例如,旋翼202)的多旋翼直升机。10个旋翼中的每个都由这里未示出的它自己的电机和它自己的电池独立供电和/或控制。该独立的可控性准许evtol飞行器执行各种机动。旋翼处于固定的位置和角度。照此,为了机动或以其他方式使飞行器飞行,电机被独立控制以产生期望的力和力矩。下面描述了一些示例机动。
25.图3a是图示正在以所示的相关联旋翼旋转方向和速率悬停的evtol多旋翼直升机的实施例的俯视图。在该示例中,其中(图2中所示的)载具正在悬停,外部的八个旋翼(300a-307a)近似相等地旋转,不提供总体力矩。注意,例如,与旋翼300a-307a相关联的弯曲箭头的量值近似是相同长度。箭头方向指示给定旋翼的旋转方向。给定电机(旋翼)的旋转速率(例如,由弯曲箭头的长度表示)由为该电机生成的推力值(例如,在图1中的步骤100处生成)控制。
26.图3b是图示正在以所示的相关联旋翼旋转方向和速率右转的evtol多旋翼直升机的实施例的俯视图。在该示例中,载具正在右转,并且因此以顺时针方向旋转的旋翼(例如,旋翼302b、304b、306b和307b)以比逆时针方向旋转的旋翼(例如,旋翼300b、301b、303b和305b)更快的速率旋转。这维持了总体竖直力(例如,因此维持稳定的高度),同时增加了总体偏航力矩(例如,使得载具转弯)。
27.图3c是图示正在以所示的相关联旋翼旋转方向和速率向前俯仰的evtol多旋翼直升机的实施例的俯视图。为了提供必要的俯仰力矩,位于质心后面的后旋翼(例如旋翼302c-305c)比前旋翼(例如旋翼300c、301c、306c和307c)旋转得更快。
28.用于控制电机的控制推力值可以由多种(控制)系统生成。下图描述了具有冗余飞行控制器和决策块的较旧系统的示例。
29.图4是图示具有冗余飞行控制器和决策块的飞行控制系统的示例的图解。在该其他系统如何执行推力分配的示例中,三个飞行计算机(400a-400c)用于提供冗余。飞行计算机输入(期望的)力和力矩(例如fz、m
x
、my和mz)。每个飞行计算机执行推力分配(即生成推力值)以产生输入和/或期望的力和力矩。例如,飞行控制器a(400a)分别为电机1至10生成推力值1a-10a。类似地,飞行控制器b(400b)分别为电机1至10生成推力值1b-10b,依此类推。
30.所有生成的推力值从飞行计算机(400a-400c)传递到决策块(402)。决策块使用所有生成的推力值来决定将什么样的推力值传递给电机。例如,可以使用投票方案,其中决策块可以比较用于来自每个飞行计算机的给定电机的推力值(例如,对于电机1,将比较推力值1a-1c)。如果对于给定的电机,两个或更多个推力值相同,则该推力值作为第一一致推力值(例如,一致推力1)被输出,并被传递给该电机(例如,电机1(404a))。例如,在来自飞行控制器a(400a)的推力1a和来自飞行控制器b(400b)的推力1b对于第一电机(404a)而言相同但是来自飞行控制器c(400c)的推力1c不同的事件中,则决策块402(至少在该投票方案示例中)传递推力1a/1b的多数投票推力值。
31.类似地,决策块(402)基于第二电机(404b)的输入推力值(例如,分别来自飞行控制器a(400a)、飞行控制器b(400b)和飞行控制器c(400c)的推力2a、2b和2c)为第二电机
(404b)生成第二一致推力值(例如,一致推力2)。这是为系统中的每个电机完成的。
32.与这里所示的控制系统相关联的一个缺点是决策块(402)可能很复杂。例如,为了冗余,可能还必须复制决策块,这需要更多的通信信道和/或对决策投票的另一层。更一般地说,决策块倾向于是复杂的。下图示出了一个改进的和/或更简单的(控制)系统,后来发现该(控制)系统更快和/或更好地实现所期望的力和力矩。
33.图5是图示分布式飞行控制系统的实施例的图解。在该示例中,飞行控制器的数量等于电机的数量。照此,在该示例中存在10个飞行控制器(500a-500d),因为存在10个电机。相比之下,图4的示例中的飞行控制器的数量是根据其他设计目标来选择的:大于或等于2(例如,为了冗余)的奇数(例如,因为在该示例中使用了投票系统),所以使用3个飞行控制器。
34.在该示例中,10个飞行控制器中的每一个都输入相同的期望力和力矩,并为每个电机生成推力值。不是使用决策块,而是仅选择生成的推力值连接到电机和/或用于控制电机。例如,来自第一飞行控制器(500a)的第一推力值(与第一电机(502a)相关联和/或意图用于第一电机(502a))被传递到第一电机(502a)。来自第一飞行控制器(500a)的其他生成的推力值是未连接的和/或未使用的。由第二飞行控制器(500b)至第十飞行控制器(500d)生成的用于第一电机(502a)的其它生成的推力值不连接到第一电机(502a)和/或用于控制第一电机(502a)。短暂地回到图1,这是一些生成的推力值如何终止于飞行控制器的示例(例如,从飞行控制器1(500a)出来的第二-第十推力值不连接到任何电机)。换句话说,每个飞行计算机认为它正在使整个载具飞行,并且因此解决了全推力分配问题(即,为载具中的所有电机生成推力值,在该示例中为10)。然而,仅单个电机(例如,对应于该飞行控制器的电机)的推力值实际上被发送到电机。
35.类似地,来自第二飞行控制器(500b)的第二推力值(与第二电机(502b)相关联和/或意图用于第二电机(502b))被传递和/或连接到第二电机(502b)。来自第二飞行控制器(500b)的其他九个生成的推力值不被连接(例如,第一和第三-第十推力值)。该模式针对剩余的飞行控制器和剩余的电机重复。
36.这里示出的对系统的要求或约束是,它取决于所有飞行控制器达到相同的解和/或推力值。实际上,推力值不需要精确。只要生成的推力值全部都在彼此的小公差范围内(例如,电机推力分辨率,在1n的力范围内,等等)(例如,这是由于因传感器和/或过程噪声所致的稍微不同的状态估计),系统就将工作。另一种说法是,飞行计算机执行相同的推力分配过程,使得它们可以产生(接近)相同的推力值。该属性允许飞行计算机独立运行。
37.一般来说,已经发现,与图4中所示的控制系统相比,由这里所示的分布式控制系统执行的推力分配(即,给定输入和/或期望的力和力矩的推力值的生成)产生了更好的结果。例如,它使用更少和/或更简单的(电子)部件(例如,不存在倾向于复杂的决策块)。
38.注意,本文描述的技术和/或系统适用于自主飞行以及有人驾驶的飞行。换句话说,输入力和力矩可能来自飞行员经由手动控制,或者来自自主飞行控制器。如本文已经描述的,该系统的益处在电机熄火状况期间尤其明显。在一些有人驾驶的应用中,如果检测到电机熄火,则载具从有人驾驶的飞行模式(例如,其中飞行员控制飞行器)切换到自主飞行模式。自主飞行控制器然后可以将与紧急飞行计划相关联的输入力和力矩传递给飞行控制器,以尽可能安全地使载具尽快降落。
39.如上所述,本文描述的技术和/或系统在一个或多个电机熄火的事件中尤其有益和/或有用。下图示出了示例电机熄火状况,使得可以描述与本文描述的技术和/或系统相关联的一些益处和/或改进。
40.图6是图示具有电机熄火的evtol多旋翼直升机的实施例的俯视图。在该示例中,示例性的evtol多旋翼直升机没有机翼来执行翼载飞行(例如,参见图2中所示的透视图),并且照此必须完全依赖于旋翼来保持在空中飞行。本文示出的evtol多旋翼直升机也是一种具有严格重量限制的超轻型载具,这可能妨碍这样的机翼的添加。由于这些原因,能够在电机熄火状况的事件中在不需要附加和/或更重的零件的情况下更好地使evtol飞行器降落的改进的(控制)系统(例如,以更可控的方式,具有更小的冲击,等等)对于该超轻型应用和/或示例载具而言是更合期望的。自然地,本文描述的技术在其他载具中具有应用,并且可以在其他载具中实现。
41.在该示例中,当一个电机(600)熄火时,载具向前俯仰。例如,系统从图3c中所示的状态进入这里所示的状态。即使利用图5中所示的分布式控制系统,利用一些推力分配技术,推力分配也可能不是最优的。下图示出了先前如何执行分配推力的示例,其中,如果一些电机熄火,则多旋翼直升机可能坠毁。
42.图7是图示分阶段推力分配过程的示例的图解。在该推力分配的示例中,推力是分阶段分配的。输入和/或期望的力和力矩(fz、m
x
、my和mz)被用作至过程的输入。例如,在图6中,与向前俯仰相关联的力和力矩将输入推力分配过程。
43.在700,分配推力以实现竖直力(fz)、滚转力矩(m
x
)和俯仰力矩(my)。例如,在图6中,存在生成推力值的10个电机,并且这10个推力值被赋予大于或等于零的值,以便实现输入竖直力(f
zdes
)、滚转力矩(m
xdes
)和俯仰力矩(m
ydes
)。注意,在该步骤,不考虑偏航控制(例如,由期望的偏航力矩m
zdes
表示)。
44.在702,如果需要,则推力值基于最大可实现推力均匀减小。在步骤700,在(初始)推力分配期间没有考虑的另一个因素是电机可实现的最大推力。饱和是当一个或多个电机处于最大可实现的推力时。如果发生这种情况,则在该示例中,在步骤700生成的推力值被均匀减小,使得它们不超过最大可实现的推力。这有时被称为限幅。
45.在704,分配任何剩余推力以实现偏航力矩(mz)。例如,在步骤702输出的推力值可能不一定产生输入和/或期望的偏航力矩(m
zdes
),并且如果存在任何剩余推力(例如,在最大推力可实现的极限内),则该剩余推力被分配给一个或多个电机以实现(或至少更接近)输入和/或期望的偏航力矩(m
zdes
)。
46.图7的分阶段过程快速并且高效,但是具有一些缺点。最严重的问题是,某些电机(例如,甚至一个电机)的损失可能引起示例性的evtol多旋翼直升机坠毁。在电机熄火的事件中(例如,参见图6),图7中描述的推力分配过程将简单地按比例增加输入和/或要求的竖直力(f
zdes
)。在图6的示例中,(原始)请求的f
zdes
按比例增加到10/9倍,因为总共存在10个电机,其中10个电机中的9个在操作。输入到图7的过程的新的期望竖直力然后将是f
zdes
。该方法是次优的,因为求解器继续分配推力(例如,在步骤700),好像所有10个电机都可用。由于不运转的电机被用于分配推力,不运转的电机对竖直力(fz)、滚转力矩(m
x
)和俯仰力矩(my)(例如,在步骤700)的任何贡献都将丢失或缺乏,并且所得的推力值可能不实现期望的
控制。在一些情况下(例如,如果某些电机熄火),这导致evtol多旋翼直升机坠毁。
47.即使载具没有坠毁,飞行体验也可能是不舒适的和/或次优的,特别是在饱和发生的情况下。在该示例中,为了校正饱和,需要限幅(例如,在图7中的步骤702),这是一种粗略的校正技术。由于限幅,高度可能不匹配(即,限幅的推力值可能产生与期望的竖直力不匹配的竖直力,并且因此载具可能不合期望地上升或下降)。在步骤702的限幅也可能引起滚转力矩和/或俯仰力矩类似地不匹配。限幅的推力值可能产生与期望的滚转力矩和/或俯仰力矩不匹配的滚转力矩和/或俯仰力矩,并且因此载具可能不合期望地滚转和/或俯仰。这通常引起振荡,这增加对乘客的风险并增加驾驶难度。换句话说,生成的推力值可能不产生期望的力和力矩,并且/或者飞行体验对于乘员来说可能是不舒适的和/或危险的。
48.相比之下,使用具有单个解的优化问题(例如,严格凸优化问题)来分配推力(例如,在图1的步骤100)提供了更安全的飞行体验,即使一个或多个电机熄火。下面的方程是用于分配推力的示例凸优化问题(例如,在图1中的步骤100)。方程1:推力分配中使用的示例严格凸优化问题。
49.在该示例中,方程1是凸优化问题(在这种情况下,是严格凸且二次函数),其中是电机推力的向量,是期望的力和力矩的向量,是将电机推力映射成实现的力和力矩的负载余弦矩阵,是对角加权矩阵,是来自的奇异值分解的酉矩阵的子矩阵,其将投影到力和力矩的零空间中,并且是小的正值(例如,相对于第一项减少第二项的量值(即,确保函数是严格凸的)(即,实现期望的力和力矩))。注意,尽管该示例优化问题到(严格)凸函数的最小值,但是在一些实施例中,优化问题到(严格)凹函数的最大值。
50.在输入和输出的上下文中,(电机推力的向量)是凸优化问题求解的输出和输出,并且(期望的力和力矩的向量)和电机熄火(如果有的话)是输入。任何电机熄火都反映在最大推力向量数组中。例如,如果第i个电机熄火,则中的第i个分量被置零,这进而迫使中的第i个分量也为零,对应于在第i个电机没有推力。
51.方程1中所示的示例凸优化问题的最重要属性中的一个是示例evtol多旋翼直升机不再容易受到某些电机熄火影响。利用在分布式飞行控制系统上运行的示例凸优化问题(例如,参见图5),evtol多旋翼直升机可以在任何一个电机熄火的情况下保持在空中飞行。在一些情况下,取决于电机对,evtol多旋翼直升机甚至可以在两个电机熄火的情况下保持在空中飞行。注意,在一个或多个电机熄火的事件中,其他优化问题类似地改进了载具的适航性。
52.注意,本文描述的示例优化问题(例如,方程1、方程2等)关于电机的数量和/或它们在飞行器上的放置或配置都是不可知的。例如,如果在下一代evtol多旋翼直升机的开发期间,决定从它们当前的配置改变电机的数量、大小和/或放置或布置,则相同的优化问题和/或推力分配过程可以重复使用。这是有帮助的,因为飞行控制系统将是已知的、可预测的,并且与如果系统不可扩展和/或不可适应则将必须开发的新系统相比,已经过彻底测试。
53.为了解释的方便和容易,方程1具有与其相关联的多个属性和/或特性(例如,严格凸的、二次的等)。该凸优化问题仅仅是示例性的,并且其他凸优化问题可以具有一些其他组合或属性和/或特性(例如,严格凸但不是二次的)。通过简单的推导来说明与方程1中包括的各种输入、参数等相关联的益处可能是有帮助的。下面的方程示出了更简单的凸优化问题的示例。方程2:示例最小二乘凸优化问题。
54.在方程2的示例中,最小二乘目标用于最小化期望的力和力矩(即,)与实现的力和力矩(即,)之间的差,其服从电机推力非负(即,约束)并且至多(即,约束)的约束。
55.和如果任何一个电机熄火则使中的对应元素置零的约束意味着使用本文描述的示例性凸优化问题(例如,方程1、方程2等)生成的推力值总是可行的。也就是说,飞行控制器将总是产生可行的电机推力集(例如,非负的并且从不超过),即使在电机熄火的事件中。此外,本文描述的示例优化问题无论如何总是可行的,因此不存在要单独处理的极端情况(下面将更详细地描述)。从概念上讲,这首先避免了饱和问题,而图6的分阶段过程准许生成不可行的电机推力值集(即饱和),并且然后需要在事后解决该问题(例如,通过限幅,这是一种不良和/或粗略的解决方案)。
56.将任何电机熄火并入最大推力向量()的另一个益处是,这使得电机熄火信息能够以更好和/或更清楚的方式被并入。例如,一些其他技术可能试图将电机熄火信息并入设计变量中,或者可能以其他方式重新表述该问题(例如,如果发生电机熄火,则切换到不同的优化问题),这两者都可能使推力分配更复杂和/或更慢以产生可接受的推力值集。向量需要存在以反映电机的推力限制,并且因此优化函数中的现有元素服务于多个目的。
57.下图更正式地描述了该示例。
58.图8是图示包括通过使用最大推力向量来生成推力值的过程实施例的流程图。图8与图1相关,并且为了方便起见,相同或相似的附图标记用于示出相同或相关的步骤。
59.在800,使用多个飞行控制器为飞行器中的多个电机生成推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为多个电机中的每个电机生成推力值,并且生成推力值包括使用最大推力向量(例如,)将推力值约束为可行的,其中任何电机熄火都反映在最大推力向量中。在步骤800的一些实施例中,将推力值约束为可行进一步包括将推力值约束为大于或等于零(例如,除了之外,)。
60.如上所述,将推力值约束为可行迫使优化器直接对饱和进行推理,从而产生更好且更快的结果。此外,使用最大推力向量来反映电机熄火准许更简单的设计(例如,没有附加的参数、输入等是必需的)。在一些实施例中,如果电机熄火被检测到或以其他方式被标记,则中的对应值(例如,对应于检测到的电机熄火的值)被立即置零。例如,电机熄火
可能是由于多种原因。在一些情况下,存在电机的通信损失,这意味着不知道电机在多久前熄火。此外,即使(例如,对应于检测到的电机熄火的)非零值逐渐衰减或以其他方式置零,电机旋转频率也相对快,因此衰减将类似地相对快地发生,并且因此任何益处都很小。
61.在102,对于多个飞行控制器中的每个飞行控制器,生成的推力值中的一个被传递到多个电机中的对应电机,其中用于该飞行控制器的其它生成的推力值终止于该飞行控制器。
62.在104,使用多个电机执行传递的推力值。
63.短暂地回到方程2,在一些实施例中,使用主动集技术、方法或过程来求解凸优化问题(例如,方程1、方程2等)。主动集技术从可行点(例如,要求并因此可行的电机推力的初始向量)和约束集(例如,在任何推力值处于由定义的饱和值的情况下,诸如当给定电机在操作时,给定推力值处于中的非零饱和值,当给定电机熄火时,中的置零饱和值,或者当推力值为零并且中的对应元素为非零时)开始。另一种说法是,在推力值受到上限或下限所约束的情况下。为了更高效地解决问题,通过保持跟踪哪些约束是主动的(即,主动地约束给定的推力值),推力值在有限数量的步骤中迭代更新,以获得最优解。例如,如果已知电机3在前一步骤中是饱和的(例如,用于电机3的电机推力值在向量中的第三个值处达到最大),则它也将可能在下一次迭代中饱和。下一次迭代在不改变该推力(例如,受约束的推力)的情况下解决了该问题,但是然后验证了所得的解决方案对于示例性的饱和第三电机确实继续是最优的。这减少了需要在下一次迭代中考虑、评估和/或调整的推力值的数量,从而减少了该过程考虑的事情的数量,并导致快得多的平均求解时间。
64.下图更正式地描述了该示例。
65.图9是图示包括通过跟踪任何推力值是否被主动约束来生成推力值的过程实施例的流程图。图9与图1相关,并且为了方便起见,相同或相似的附图标记用于示出相同或相关的步骤。
66.在900,使用多个飞行控制器为飞行器中的多个电机生成推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为多个电机中的每个电机生成推力值,并且生成推力值包括使用主动集技术,其包括通过跟踪任何推力值是否被主动约束,其中任何电机熄火被反映在最大推力向量中。
67.如上所述,这简化了推力分配过程,因为主动约束的推力值(例如,在内它们相应的最大元素处或在零处)首先被假设为在下一次迭代中被主动约束,并且因此推力值将(再次)是最大值,从而简化了处理。
68.在一些实施例中,热启动与主动集技术组合使用(图9中未示出)。例如,假设在第一时间点t(替代地,在离散时间应用中的索引i)生成第一推力值集,或者以其他方式将第一推力值集传递给针对期望力和力矩的第i个集的电机。在热启动的情况下,期望力和力矩的第一个集被用作初始且可行的推力值集,当生成针对与第二(下一)时间点或索引相关联的期望力和力矩的第二个集的第二推力值集时,主动集过程以该初始且可行的推力值集开始。这可以帮助主动集处理更快地到要输出的推力值集,从而减少处理时间。
69.如上所述,在一些实施例中,步骤900进一步包括(图9中未示出)如下限制:当生成
针对期望力和力矩的第二随后集的推力值时,针对期望力和力矩的第一个集生成的第一推力值集被用作初始推力值集。
70.在102,对于多个飞行控制器中的每个飞行控制器,生成的推力值中的一个被传递到多个电机中的对应电机,其中用于该飞行控制器的其它生成的推力值终止于该飞行控制器。
71.在104,使用多个电机执行传递的推力值。
72.短暂地回到方程2,方程2的缺点是沿不同轴的控制不能被优先化和/或加权。例如,在图2中所示的evtol多旋翼直升机的开放式座舱的情况下,非常重要的是载具不上下翻转,因为任何乘员都可能严重受伤或死亡。照此,滚转控制(例如,与期望的滚转力矩m
xdes
相关联)和俯仰控制(例如,与期望的俯仰力矩m
ydes
相关联)可能比偏航控制(例如,与偏航力矩m
zdes
相关联)和高度控制(例如,与竖直力f
zdes
相关联)更重要。换句话说,不翻转过来可能更重要,即使以载具下降(例如,缓慢)和像旋转煎饼一样旋转为代价来防止载具翻转过来。方程2不准许这种情况也不具有该能力。下面的示例方程将这样的加权和/或优先化引入方程2的优化函数中。方程3:具有加权的示例最小二乘优化问题。
73.在方程3中,是对角加权矩阵(更一般地称为轴加权参数)。利用这样的轴加权参数,关于更重要的一个或多个轴(例如,上述示例中的滚动和俯仰)的控制可以优先于一个或多个不太重要的轴(例如,偏航)。如上所述,关于滚转和俯仰轴的控制对于防止示例性的开放式座舱evtol多旋翼直升机翻转过来是很重要的,即使是以牺牲一些偏航控制为代价。换句话说,在执行紧急降落时,对于载具而言在它防止evtol多旋翼直升机翻转过来的情况下绕偏航(竖直)轴(例如缓慢)旋转可以是可接受的。此外,轴加权参数(例如,)是可参数化的(例如,与严格的二进制开/关相反,是可调整的)并且是连续的(例如,这是有益的,因为不存在中的不连续性引起系统不到对于推力值的解和/或由于不连续性而延迟对解的搜索的风险)。在一个示例中,,其最重地加权或优先满足期望的滚转和俯仰力矩(例如,两个1000值),然后是期望的竖直力(例如,在左上角的值100),并且最后最低优先级是期望的偏航力矩(例如,在右下角的值10)。在各种实施例中,权重被选择或以其他方式选择为更积极或更不积极、定制以适应特定应用(例如,对于有人驾驶飞行相对于无人驾驶/自主飞行更保守)和/或动态改变(例如,在飞行期间)。
74.下图更正式地描述了该示例。
75.图10是图示包括通过使用轴加权参数来生成推力值的过程实施例的流程图。图10与图1相关,并且为了方便起见,相同或相似的附图标记用于示出相同或相关的步骤。
76.在1000,使用多个飞行控制器为飞行器中的多个电机生成推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为多个电机中的每个电机生成推
力值,并且优化问题包括轴加权参数,该轴加权参数被设置为与使滚转和俯仰控制优先于偏航(以及在一些实施例中也是高度)控制相关联的值。
77.在102,对于多个飞行控制器中的每个飞行控制器,生成的推力值中的一个被传递到多个电机中的对应电机,其中用于该飞行控制器的其它生成的推力值终止于该飞行控制器。
78.在104,使用多个电机执行传递的推力值。
79.短暂地回到方程3,方程3让存在多个解的可能性开放。这对于本文描述的分布式控制系统是不合期望的,因为它要求所有的飞行控制器(例如,参见图5)为电机生成相同的推力值集。下面的方程示出了具有正则项的优化函数的示例,以确保仅存在一个解(或者,换句话说,该函数是严格凸的)。方程4:具有加权和正则项的示例最小二乘优化问题。
80.第二项(即,)确保仅存在单个解,并且与满足期望的力和力矩的更重要的目标(即,第一项)相比,的值保持满足第二项(例如,确保单个解)的重要性相对小。不幸的是,新添加的第二项(即,)不具有与第一项相同的目标,并且因此该函数在两个不同的目标之间进行权衡。
81.短暂地回到方程1,其中的第二项(即,)仍然实施单解约束,但是也移除了该项对最小化和/或优化操作的影响(例如,因为在项中,推力向量被投影到力和力矩的零空间上,使得该项不影响哪个推力值产生最小值(或者更一般地,最优值))。注意,在方程1中不是绝对必要的,但是可能合期望的是将保持在方程1中(例如,使得来自第二项的贡献更清楚地保持较小,以便更好地将概念传达给读者或实现该特征的人,用于检查和/或原则上)。这与方程4相反,在方程4中,使用来保持第二项的权重相对小的实际重要性重要得多。
82.下图更正式地描述了该示例。
83.图11是图示生成推力值的过程实施例的流程图,其中优化问题具有与不同目标相关联的多个部分或项。图11与图1相关,并且为了方便起见,相同或相似的附图标记用于示出相同或相关的步骤。
84.在1100,使用多个飞行控制器为飞行器中的多个电机生成推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为多个电机中的每个电机生成推力值,优化问题的一部分与确保对优化问题存在单个解相关联,并且与确保存在单个解相关联的凸优化问题的部分包括与将推力值投影到与一个或多个期望的力和/或力矩相关联的零空间相关联的矩阵,使得生成推力值独立于与确保存在单个解相关联的凸优化问题的部分。例如,参见方程1中的第二项。
85.例如,在方程1中,是与确保优化问题具有单个解相关联的优化问题的一部分的示例。如上所述,将推力值()投影到零空间,使得项或部分在上是常
数,并且优化问题独立于问题的该项或部分。
86.在102,对于多个飞行控制器中的每个飞行控制器,生成的推力值中的一个被传递到多个电机中的对应电机,其中用于该飞行控制器的其它生成的推力值终止于该飞行控制器。
87.在104,使用多个电机执行传递的推力值。
88.尽管为了清楚理解的目的,已经用一些细节描述了前述实施例,但是本发明不限于所提供的细节。存在实现本发明的许多替代方式。所公开的实施例是说明性的,并且不是限制性的。

技术特征:


1.一种飞行器,包括:多个飞行控制器,被配置为:为飞行器中的多个电机生成推力值,其中所述多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为所述多个电机中的每个电机生成推力值;和对于所述多个飞行控制器中的每个飞行控制器,将生成的推力值中的一个传递给所述多个电机中的对应电机,其中为所述飞行控制器生成的其他推力值终止于所述飞行控制器;和所述多个电机被配置为执行传递的推力值。2.根据权利要求1所述的飞行器,其中,生成推力值包括使用最大推力向量将推力值约束为可行,其中任何电机熄火都反映在最大推力向量中。3.根据权利要求1所述的飞行器,其中:生成推力值包括使用最大推力向量将推力值约束为可行,其中任何电机熄火都反映在最大推力向量中;并且将推力值约束为可行进一步包括将推力值约束为大于或等于零。4.根据权利要求1所述的飞行器,其中,生成推力值包括使用主动集技术,其包括通过跟踪任何推力值是否受到最大推力向量中的对应最大推力值主动约束,其中任何电机熄火都反映在最大推力向量中。5.根据权利要求1所述的飞行器,其中,生成推力值包括使用主动集技术,其包括通过跟踪任何推力值是否受到最大推力向量中的对应最大推力值主动约束,其中:任何电机熄火都反映在最大推力向量中;并且当生成针对期望力和力矩的第二随后集的推力值时,针对期望力和力矩的第一个集生成的第一推力值集被用作初始推力值集。6.根据权利要求1所述的飞行器,其中:优化问题的一部分与确保对优化问题存在单个解相关联;并且与确保存在单个解相关联的优化问题的部分包括与将推力值投影到与一个或多个期望的力和/或力矩相关联的零空间相关联的矩阵,使得生成推力值独立于与确保存在单个解相关联的优化问题的部分。7.一种方法,包括:为飞行器中的多个电机生成推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为所述多个电机中的每个电机生成推力值;对于所述多个飞行控制器中的每个飞行控制器,将生成的推力值中的一个传递给所述多个电机中的对应电机,其中为所述飞行控制器生成的其他推力值终止于所述飞行控制器;和使用所述多个电机执行传递的推力值。8.根据权利要求7所述的方法,其中,生成推力值包括使用最大推力向量将推力值约束为可行,其中任何电机熄火都反映在最大推力向量中。9.根据权利要求7所述的方法,其中:生成推力值包括使用最大推力向量将推力值约束为可行,其中任何电机熄火都反映在最大推力向量中;并且
将推力值约束为可行进一步包括将推力值约束为大于或等于零。10.根据权利要求7所述的方法,其中,生成推力值包括使用主动集技术,其包括通过跟踪任何推力值是否受到最大推力向量中的对应最大推力值主动约束,其中任何电机熄火都反映在最大推力向量中。11.根据权利要求7所述的方法,其中,生成推力值包括使用主动集技术,其包括通过跟踪任何推力值是否受到最大推力向量中的对应最大推力值主动约束,其中:任何电机熄火都反映在最大推力向量中;并且当生成针对期望力和力矩的第二随后集的推力值时,针对期望力和力矩的第一个集生成的第一推力值集被用作初始推力值集。12.根据权利要求7所述的方法,其中:优化问题的一部分与确保对优化问题存在单个解相关联;并且与确保存在单个解相关联的优化问题的部分包括与将推力值投影到与一个或多个期望的力和/或力矩相关联的零空间相关联的矩阵,使得生成推力值独立于与确保存在单个解相关联的优化问题的部分。13.一种计算机程序产品,所述计算机程序产品体现在非暂时性计算机可读存储介质中,并且包括用于以下各项的计算机指令:为飞行器中的多个电机生成推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为所述多个电机中的每个电机生成推力值;对于所述多个飞行控制器中的每个飞行控制器,将生成的推力值中的一个传递给所述多个电机中的对应电机,其中为所述飞行控制器生成的其他推力值终止于所述飞行控制器;和使用所述多个电机执行传递的推力值。14.根据权利要求13所述的计算机程序产品,其中,用于生成推力值的计算机指令包括用于使用最大推力向量将推力值约束为可行的计算机指令,其中任何电机熄火都反映在最大推力向量中。15.根据权利要求13所述的计算机程序产品,其中:用于生成推力值的计算机指令包括用于使用最大推力向量将推力值约束为可行的计算机指令,其中任何电机熄火都反映在最大推力向量中;并且用于将推力值约束为可行的计算机指令进一步包括用于将推力值约束为大于或等于零的计算机指令。16.根据权利要求13所述的计算机程序产品,其中,用于生成推力值的计算机指令包括用于使用主动集技术的计算机指令,其包括通过跟踪任何推力值是否受到最大推力向量中的对应最大推力值主动约束,其中任何电机熄火都反映在最大推力向量中。17.根据权利要求13所述的计算机程序产品,其中,用于生成推力值的计算机指令包括用于使用主动集技术的计算机指令,其包括通过跟踪任何推力值是否受到最大推力向量中的对应最大推力值主动约束,其中:任何电机熄火都反映在最大推力向量中;并且当生成针对期望力和力矩的第二随后集的推力值时,针对期望力和力矩的第一个集生成的第一推力值集被用作初始推力值集。
18.根据权利要求13所述的计算机程序产品,其中:优化问题的一部分与确保对优化问题存在单个解相关联;并且与确保存在单个解相关联的优化问题的部分包括与将推力值投影到与一个或多个期望的力和/或力矩相关联的零空间相关联的矩阵,使得生成推力值独立于与确保存在单个解相关联的优化问题的部分。

技术总结


生成用于飞行器中电机的推力值,其中多个飞行控制器中的每个飞行控制器使用具有单个解的优化问题为多个电机中的每个电机生成推力值。多个飞行控制器中的每个飞行控制器将生成的推力值中的一个传递给多个电机中的对应电机,其中用于该飞行控制器的其它生成的推力值终止于该飞行控制器。多个电机执行传递的推力值。力值。力值。


技术研发人员:

T

受保护的技术使用者:

小鹰公司

技术研发日:

2021.02.01

技术公布日:

2022/9/16

本文发布于:2024-09-25 05:24:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/24277.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:推力   电机   多个   力矩
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议