1.本技术涉及机器鱼控制技术领域,尤其涉及基于攻角法的仿生机器鱼定深控制方法和装置。
背景技术:2.仿生机器鱼是一种水下移动机器人,具有推进效率高、机动性强、隐蔽性能好等优点,已广泛应用于海底勘测、军事侦察、海洋生物研究、水质监测等复杂环境中的水下作业。深度控制是仿生机器鱼完成水下作业所需的基本能力之一,包括上浮控制、下潜控制和巡游控制等。现有的深度控制方法包括形状改变法、储水仓法、重心调节法等,这些方法需要仿生机器鱼调整自身结构或者通过吸水、放水的方式调节自身体积才能实现深度控制,调节的过程比较繁琐,导致方法的实时性较差。
技术实现要素:3.本技术提供一种基于攻角法的仿生机器鱼定深控制方法和装置,可以解决现有的仿生机器鱼定深控制方法的调节过程繁琐、实时性较差的问题。
4.第一方面,本技术实施例提供了一种基于攻角法的仿生机器鱼定深控制方法,该方法包括:
5.当仿生机器鱼在当前时刻的第一深度不在预设深度范围内时,获取仿生机器鱼在当前时刻的俯仰角,以及仿生机器鱼的胸鳍在上一时刻的第一偏转角度;根据第一偏转角度和俯仰角确定仿生机器鱼在当前时刻的实际胸鳍攻角;根据第一深度与预设深度范围的相对位置关系,确定第一期望胸鳍攻角,第一期望胸鳍攻角用于使仿生机器鱼的俯仰力矩大于或等于第一阈值;根据实际胸鳍攻角和第一期望胸鳍攻角将第一偏转角度调节为第二偏转角度,以使仿生机器鱼向预设深度范围运动;
6.当仿生机器鱼从第一深度运动至预设深度范围的边界时,将第一期望胸鳍攻角和胸鳍的第三偏转角度均调节为0,之后,仿生机器鱼在预设深度范围内运动期间,根据仿生机器鱼在当前时刻的第二深度和预设深度调节胸鳍在当前时刻的第四偏转角度,预设深度在预设深度范围内。
7.基于本技术提供的仿生机器鱼定深控制方法,根据第一深度与预设深度范围的相对位置关系,可以确定仿生机器鱼应当下潜还是上浮。根据当前时刻的俯仰角以及胸鳍在上一时刻的第一偏转角度确定仿生机器鱼在当前时刻的实际胸鳍攻角,利用实际胸鳍攻角和第一期望胸鳍攻角可以对第一偏转角度进行调节。通过对胸鳍偏转角度的实时调节,可以调整仿生机器鱼的俯仰角以及运动方向,进而对实际胸鳍攻角进行调节使其趋近于第一期望胸鳍攻角,使得仿生机器鱼可以产生较大的俯仰力矩,从而缩短仿生机器鱼从第一深度向预设深度范围运动的路径,减小仿生机器鱼从第一深度到预设深度范围之间的时间,进而提高定深控制方法的实时性。
8.可选地,根据实际胸鳍攻角和第一期望胸鳍攻角将第一偏转角度调节为第二偏转
角度,包括:确定实际胸鳍攻角和第一期望胸鳍攻角的胸鳍攻角误差与胸鳍攻角误差变化率;利用与相对位置关系对应的预设的第一模糊控制表对胸鳍攻角误差和胸鳍攻角误差变化率进行模糊控制处理,得到实际控制增量;根据实际控制增量对第一偏转角度进行调节,得到当前时刻胸鳍的第二偏转角度。
9.基于上述可选地方式,在仿生机器鱼运动的过程中,实际胸鳍攻角会受到周围水流、运动姿态等因素的影响。利用模糊控制算法在处理非线性控制和不确定性方面的优势,对实际胸鳍攻角和第一期望胸鳍攻角之间的胸鳍攻角误差与胸鳍攻角误差变化率进行处理,得到实际控制增量,以对第一偏转角度进行实时调节,可以提高仿生机器鱼定深控制的准确度。
10.可选地,俯仰力矩包括俯力矩和仰力矩;若第一深度小于预设深度范围的最小值,则第一期望胸鳍攻角用于使仿生机器鱼的俯力矩大于或等于第一阈值,第一模糊控制表为用于控制仿生机器鱼进行下潜运动的下潜模糊控制表;若第一深度大于预设深度范围的最大值,则第一期望胸鳍攻角用于使仿生机器鱼的仰力矩大于或等于第一阈值,第一模糊控制表为用于控制仿生机器鱼进行上浮运动的上浮模糊控制表。
11.可选地,根据仿生机器鱼在当前时刻的第二深度和预设深度调节胸鳍在当前时刻的第四偏转角度包括:确定仿生机器鱼在当前时刻的第二深度和预设深度的深度误差与深度误差变化率;利用预设的第二模糊控制表对深度误差和深度误差变化率进行模糊控制处理,得到胸鳍在当前时刻的第四偏转角度。
12.可选地,定深控制方法还包括:仿生机器鱼从第一深度向预设深度范围运动期间,调节仿生机器鱼的尾鳍的摆动频率和摆动幅度,将仿生机器鱼的运动速度设为第一速度;仿生机器鱼在预设深度范围内运动期间,将第一速度调节为第二速度,第二速度小于第一速度。
13.基于上述可选地方式,尾鳍的摆动频率和摆动幅度会影响仿生机器鱼的运动速度,尾鳍周期性的摆动可以为仿生机器鱼提供推力,通过尾鳍和胸鳍的协同推进可以使仿生机器鱼快速地从第一深度向预设深度范围运动。
14.第二方面,本技术实施例提供了一种基于攻角法的仿生机器鱼定深控制装置,该装置包括:
15.获取单元,用于当仿生机器鱼在当前时刻的第一深度不在预设深度范围内时,获取仿生机器鱼在当前时刻的俯仰角,以及仿生机器鱼的胸鳍在上一时刻的第一偏转角度;
16.控制单元,用于根据第一偏转角度和俯仰角确定仿生机器鱼在当前时刻的实际胸鳍攻角,根据第一深度与预设深度范围的相对位置关系,确定第一期望胸鳍攻角,第一期望胸鳍攻角用于使仿生机器鱼的俯仰力矩大于或等于第一阈值,根据实际胸鳍攻角和第一期望胸鳍攻角将第一偏转角度调节为第二偏转角度,以使仿生机器鱼向预设深度范围运动;当仿生机器鱼从第一深度运动至预设深度范围的边界时,将第一期望胸鳍攻角和胸鳍的第三偏转角度均调节为0,之后,仿生机器鱼在预设深度范围内运动期间,根据仿生机器鱼在当前时刻的第二深度和预设深度调节胸鳍在当前时刻的第四偏转角度,预设深度在预设深度范围内。
17.可选地,根据实际胸鳍攻角和第一期望胸鳍攻角将第一偏转角度调节为第二偏转角度,包括:确定实际胸鳍攻角和第一期望胸鳍攻角的胸鳍攻角误差与胸鳍攻角误差变化
率;利用与所述相对位置关系对应的预设的第一模糊控制表对胸鳍攻角误差和胸鳍攻角误差变化率进行模糊控制处理,得到实际控制增量;根据实际控制增量对第一偏转角度进行调节,得到当前时刻胸鳍的第二偏转角度。
18.可选地,俯仰力矩包括俯力矩和仰力矩;若第一深度小于预设深度范围的最小值,则第一期望胸鳍攻角用于使仿生机器鱼的俯力矩大于或等于第一阈值,第一模糊控制表为用于控制仿生机器鱼进行下潜运动的下潜模糊控制表;若第一深度大于预设深度范围的最大值,则第一期望胸鳍攻角用于使仿生机器鱼的仰力矩大于或等于第一阈值,第一模糊控制表为用于控制仿生机器鱼进行上浮运动的上浮模糊控制表。
19.可选地,根据仿生机器鱼在当前时刻的第二深度和预设深度调节胸鳍在当前时刻的第四偏转角度包括:确定仿生机器鱼在当前时刻的第二深度和预设深度的深度误差与深度误差变化率;利用预设的第二模糊控制表对深度误差和深度误差变化率进行模糊控制处理,得到胸鳍在当前时刻的第四偏转角度。
20.第三方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
21.第四方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项的方法。
22.第五方面,本技术实施例提供了一种仿生机器鱼,仿生机器鱼包括:鱼体、设在鱼体上的尾鳍以及对称设置在鱼体两侧的胸鳍,鱼体内设置有处理器、舵机驱动器、拉线式驱动器、中枢模式发生器、深度传感器和惯性传感器;处理器用于实现上述第一方面中任一项的方法,并通过舵机驱动器调整胸鳍的偏转角度;拉线式驱动器通过中枢模式发生器控制尾鳍的摆动幅度和摆动频率,进而控制仿生机器鱼的运动速度;深度传感器用于检测仿生机器鱼所在的深度;惯性传感器用于检测鱼体的俯仰角。
23.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面和第一方面的各可能的实施方式所带来的有益效果的相关描述,在此不再赘述。
附图说明
24.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
25.图1是本技术一实施例提供的一种仿生机器鱼的结构图;
26.图2是本技术一实施例提供的仿生机器鱼中胸鳍的不同视角的截面图;
27.图3是本技术一实施例提供的一种基于攻角法的仿生机器鱼定深控制方法的流程图;
28.图4是本技术一实施例提供的一种模糊控制方法的流程图;
29.图5是本技术另一实施例提供的一种模糊控制方法的流程图;
30.图6是本技术一实施例提供的一种下潜模糊控制规则表;
31.图7是本技术一实施例提供的一种下潜模糊控制表;
32.图8是本技术一实施例提供的一种上潜模糊控制规则表;
33.图9是本技术一实施例提供的一种上潜模糊控制表;
34.图10是本技术一实施例提供的一种定深巡游模糊控制规则表;
35.图11是本技术一实施例提供的一种定深巡游模糊控制表;
36.图12是本技术一实施例提供的一种基于攻角法的仿生机器鱼定深控制装置的结构示意图。
具体实施方式
37.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
38.深度控制是仿生机器鱼完成水下作业所需的基本能力之一,包括上浮控制、下潜控制和定深巡游控制等。具体地,上浮控制用于在仿生机器鱼的当前深度值大于期望的深度值时,控制仿生机器鱼从当前的深度向期望的深度做上浮运动。下潜控制用于在仿生机器鱼的当前深度值小于期望的深度值时,控制仿生机器鱼从当前的深度向期望的深度做下潜运动。定深巡游控制用于控制仿生机器鱼在期望的深度运动。
39.现有的深度控制方法包括形状改变法、储水仓法、重心调节法等。其中,形状控制法通过改变仿生机器鱼自身的体积,从而改变浮力的大小,以实现上浮和下潜运动;储水仓法是通过吸水或放水改变仿生机器鱼的自重,从而实现上浮和下潜运动。这两种方法受到仿生机器鱼体积的限制,使得仿生机器鱼到达的深度有限,且调整的速度较慢,方法的实时性较差。重心法需搭载配重滑块、丝杆、电机和编码器等器件调整重心,以改变仿生机器鱼鱼头的俯仰角,从而完成上浮和下潜运动,仿生机器鱼的结构较为复杂。这些方法需要设计复杂的机器鱼结构或者需要占据较大的空间,方法的实时性较差且缺乏机动性,机器鱼内部空间的大小导致可搭载的探测仪器数量有限,不利于其他功能任务的扩展。
40.为了解决上述问题,本技术实施例提供了一种基于攻角法的仿生机器鱼定深控制方法和装置。根据当前时刻的俯仰角以及胸鳍在上一时刻的第一偏转角度确定仿生机器鱼在当前时刻的实际胸鳍攻角,利用实际胸鳍攻角和第一期望胸鳍攻角可以对第一偏转角度进行实时调节,进而调整仿生机器鱼的俯仰角以及运动方向,使得仿生机器鱼产生较大的俯仰力矩,从而缩短仿生机器鱼从第一深度向预设深度范围运动的路径,提高定深控制方法的实时性。
41.下面结合附图,对本技术的技术方案进行详细描述。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
42.图1为本技术实施例提供的一种仿生机器鱼的结构图。其中,图1中的(a)为仿生机器鱼的外形结构图,图1中的(b)为仿生机器鱼的内部结构示意图。如图1中的(a)所示,该仿生机器鱼1包括:鱼体11、设在鱼体11上的尾鳍13以及对称设置在鱼体两侧的胸鳍12。
43.如图1中的(b)所示,鱼体11内设置有处理器14以及分别与处理器14连接的存储器19、舵机驱动器17、拉线式驱动器15、中枢模式发生器16、惯性传感器181和深度传感器182。深度传感器182用于实时检测仿生机器鱼1所在的深度。惯性传感器181用于检测鱼体11的姿态参数(例如俯仰角、横滚角等)、角速度、加速度和航向角等。舵机驱动器17与胸鳍12连
接,通过调整舵机驱动器17的旋转角度以调节胸鳍12的偏转角度。拉线式驱动器15通过中枢模式发生器16与尾鳍13连接,拉线式驱动器15用于驱动中枢模式发生器16,并通过中枢模式发生器16控制尾鳍13的摆动幅度和摆动频率,进而控制仿生机器鱼1的运动速度。
44.仿生机器鱼还包括存储器19。存储器19用于存储计算机程序191以及模块,例如本技术提供的基于攻角法的仿真机器鱼定深控制方法。处理器14通过运行存储在存储器19的计算机程序以及模块,从而执行仿真机器鱼的各种功能以及数据处理。处理器14也可以是模糊控制器。处理器14可以根据传感器18等检测到的数据执行本技术提供的基于攻角法的仿真机器鱼定深控制方法,向舵机驱动器发送控制信号,以调节舵机驱动器的偏转角度,进而调节胸鳍12的偏转角度。胸鳍12的偏转角度为胸鳍12的翼弦121与鱼体11的夹角。示例性的,控制信号可以是脉冲宽度调制信号,脉冲宽度调制信号信号的脉宽决定了舵机驱动器的偏转角度。假设脉冲宽度调制信号的信号周期为20ms,其中0.5ms
‑
2.5ms之间的脉冲宽度可以使舵机驱动器的偏转角度从0度线性变化至180度。仿生机器鱼中可以设置有多个舵机驱动器,分别用于控制对应胸鳍的旋转和上下拍翼。
45.需要说明的是,仿生机器鱼在水中进行上浮运动和下潜运动时,随着仿生机器鱼姿态的变化,俯仰角度和胸鳍攻角也会随之改变。如图1中所示,仿生机器鱼1的俯仰角θ为鱼体11与水流方向的夹角。假设水流方向为水平方向,则鱼体11水平悬浮于水中时,仿生机器鱼1的俯仰角为0;仿生机器鱼1向下俯冲时俯仰角为负值;仿生机器鱼2向上浮时俯仰角为正值。
46.图2为仿生机器鱼的胸鳍处于不同偏转状态时的截面图。胸鳍12的截面形状采用机翼的翼型,示例性的,可以用naca 0012或naca 0020类型的翼形曲线生成胸鳍12的截面形状。仿生机器鱼1在水中游动时,作用于胸鳍12上的力主要为升力和阻力。其中,阻力为仿生机器鱼1游动时水阻碍胸鳍12运动产生的力,与胸鳍12速度方向相反;升力为胸鳍12与水流方向形成胸鳍攻角,导致胸鳍12产生了上下压力差,从而产生了升力。仿生机器鱼1依靠胸鳍12与水相互作用从而产生俯仰力矩。如图2中的(a)所示,一般胸鳍翼的升力中心122选为距翼型前缘点0.25翼弦121长处。在胸鳍12和尾鳍13协同驱动仿生机器鱼1运动时,尾鳍13的周期性摆动使仿生机器鱼1产生一定的运动速度,同时通过胸鳍12的偏转角度使仿生机器鱼1产生升力从而产生俯仰力矩,进而实现俯仰运动。当胸鳍攻角为正时仿生机器鱼1产生仰力矩,当胸鳍攻角为负时仿生机器鱼1产生俯力矩,当胸鳍攻角为零时升力为零。
47.如图2中的(b)所示,仿生机器鱼1的胸鳍攻角α为胸鳍12的翼弦121与水流方向之间的夹角。假设水流方向为水平方向,则翼弦121与水流方向在同一水平面时,仿生机器鱼1的胸鳍攻角为0,如图2中的(a)所示;相对水流方向指向胸鳍12的下表面时,仿生机器鱼1的胸鳍攻角为正值,如图2中的(b)所示;相对水流方向指向胸鳍12的上表面时,仿生机器鱼1的胸鳍攻角为负值。
48.此外,如图1中的(b)所示,仿生机器鱼1还包括分别与处理器14连接的声呐、北斗定位、工控板、无线通信模块、摄像机、伺服电机、漏水传感器和动力电池等其他部件。本技术提供的仿生机器鱼的结构是示例性的。对于仿生机器鱼的其他结构此处不再赘述。
49.基于上述实施例提供的仿生机器鱼,本技术实施例还提供了一种基于攻角法的仿生机器鱼定深控制方法。如图3所示,在一种可能的实现方式中,基于攻角法的仿生机器鱼定深控制方法包括以下步骤:
50.s100,当仿生机器鱼在当前时刻的第一深度不在预设深度范围内时,获取仿生机器鱼在当前时刻的俯仰角,以及仿生机器鱼的胸鳍在上一时刻的第一偏转角度。
51.需要说明的是,在利用仿生机器鱼进行水下作业时,一般需要仿生机器鱼能够上浮或者下潜到预设深度,并在预设深度范围内定深巡游以完成水下作业。预设深度范围可以是以预设深度为中心的一个深度范围。示例性的,可以使仿生机器鱼在自身体高的范围内巡游。假设预设深度为h,仿生机器鱼的高度为g,g≤h,则预设深度范围为[h
‑
g,h+g],h
‑
g和h+g即为预设深度范围的边界。
[0052]
示例性的,可以通过仿生机器鱼中的深度传感器实时检测仿生机器鱼的第一深度。利用惯性传感器实时检测仿生机器鱼在当前时刻的俯仰角。舵机驱动器的偏转角度即为胸鳍的偏转角度。
[0053]
在一个实施例中,当仿生机器鱼的第一深度不在预设深度范围内时,可以通过控制仿生机器鱼的尾鳍的摆动频率和摆动幅度,使得仿生机器鱼的运动速度为第一速度,第一速度为可以使仿生机器鱼获得较大的俯仰力矩的俯仰速度。
[0054]
具体地,当仿生机器鱼的第一深度不在预设深度范围内时,需要通过下潜运动或上浮运动使仿生机器鱼从第一深度向预设深度范围运动。尾鳍的摆动频率和摆动幅度会影响仿生机器鱼的运动速度,尾鳍周期性的摆动可以为仿生机器鱼提供推力。仿生机器鱼从第一深度向预设深度范围运动的过程中,仿生机器鱼的俯仰力矩的大小与胸鳍攻角以及运动速度有关,为了使仿生机器鱼在做俯仰运动的过程中产生较大的俯仰力矩,需使鱼体产生较快的俯仰速度。通过尾鳍和胸鳍的协同推进可以使仿生机器鱼快速地从第一深度向预设深度范围运动。因此,可以通过控制仿生机器鱼的尾鳍的摆动频率和摆动幅度,将仿生机器鱼的运动速度设为第一速度。示例性的,可以将仿生机器鱼的尾鳍的摆动频率和摆动幅度分别调节至最大值,使仿生机器鱼获得较大的俯仰速度。
[0055]
s200,根据第一偏转角度和俯仰角确定仿生机器鱼在当前时刻的实际胸鳍攻角;根据第一深度与预设深度范围的相对位置关系,确定第一期望胸鳍攻角,第一期望胸鳍攻角用于使仿生机器鱼的俯仰力矩大于或等于第一阈值;根据实际胸鳍攻角和第一期望胸鳍攻角将第一偏转角度调节为第二偏转角度,以使仿生机器鱼向预设深度范围运动。
[0056]
仿生机器鱼在水中运动的过程中俯仰姿态会随着水流等因素产生变化,仿生机器鱼在每一时刻的胸鳍攻角也会随俯仰角的变化而变化。根据第一偏转角度和俯仰角可以确定仿生机器鱼在当前时刻的实际胸鳍攻角,具体公式为:
[0057]
α
c
(t)=p1(t
‑
1)+θ(t)
[0058]
其中,α
c
(t)表示仿生机器鱼在当前时刻的实际胸鳍攻角;p1(t
‑
1)表示仿生机器鱼在上一时刻的第一偏转角度;θ(t)表示仿生机器鱼在当前时刻的俯仰角。在本技术实施例中,胸鳍攻角、偏转角度和俯仰角均为矢量。
[0059]
在一种可能的实现方式中,根据实际胸鳍攻角和第一期望胸鳍攻角将第一偏转角度调节为第二偏转角度的方法包括以下步骤:
[0060]
步骤一,确定实际胸鳍攻角和第一期望胸鳍攻角的胸鳍攻角误差与胸鳍攻角误差变化率。
[0061]
具体地,胸鳍攻角误差可以表示为:e
α
(t)=α1‑
α
c
(t)。其中,e
α
(t)表示胸鳍攻角误差;α1表示第一期望胸鳍攻角。
[0062]
胸鳍攻角误差变化率ec
α
可以表示为:
[0063]
步骤二,利用预设的第一模糊控制表对胸鳍攻角误差和胸鳍攻角误差变化率进行模糊控制处理,得到实际控制增量。
[0064]
在本技术实施例中,如图4所示,可以利用模糊控制方法对胸鳍攻角误差和胸鳍攻角误差变化率进行处理,得到实际控制增量。具体的方法如下:首先利用第一误差量化因子ke1和第一误差变化率量化因子kec1分别对胸鳍攻角误差e
α
和胸鳍攻角误差变化率ec
α
进行量化处理,得到量化胸鳍攻角误差e
α
和量化胸鳍攻角误差变化率ec
α
;然后根据量化胸鳍攻角误差e
α
和量化胸鳍攻角误差变化率ec
α
查询预设的第一模糊控制表,得到模糊控制增量u;利用重心法以及第一比例因子ku1对模糊控制增量u进行去模糊化处理,得到实际控制增量u。
[0065]
步骤三,根据实际控制增量u将第一偏转角度p1调节为第二偏转角度p2。
[0066]
具体地,将实际控制增量u与仿生机器鱼在上一时刻的第一偏转角度p1相加,得到第二偏转角度p2。
[0067]
基于图1所示的仿生机器鱼,处理器确定第二偏转角度后,可以向舵机控制器发送控制信号,使得舵机控制器的偏转角度调节为第二偏转角度,进而调节胸鳍的偏转角度,使得仿生机器鱼的实际胸鳍攻角接近第一期望胸鳍攻角,使得仿生机器鱼以最短路径从第一深度向预设深度范围运动。可以理解的是,最短路径应趋近于第一深度至预设深度范围之间的垂直距离。
[0068]
在一个实施例中,若仿生机器鱼的第一深度小于预设深度范围的最小值,则说明仿生机器鱼需要从第一深度下潜运动至预设深度范围。此时,第一期望胸鳍攻角用于使仿生机器鱼产生俯力矩,且俯力矩需大于或者等于第一阈值,第一模糊控制表应为用于控制仿生机器鱼进行下潜运动的下潜模糊控制表。
[0069]
在另一个实施例中,若仿生机器鱼的第一深度大于预设深度范围的最大值,则说明仿生机器鱼需要从第一深度上浮运动至预设深度范围。此时,第一期望胸鳍攻角用于使仿生机器鱼产生仰力矩,且仰力矩需大于或者等于第一阈值,第一模糊控制表应为用于控制仿生机器鱼进行上浮运动的上浮模糊控制表。
[0070]
作为示例而非限定,通过试验和仿真分析发现,仿真机器鱼的升力和阻力会随着攻角的变化而变化,升力远大于阻力时,会使仿真机器鱼产生较大的俯仰力矩,从而使得仿生机器鱼快速进行上浮运动和下潜运动,因此,第一阈值可以设置为仿生机器鱼产生的最大的俯仰力矩值,也可以是一个略微小于仿生机器鱼产生的最大的俯仰力矩值的数值。示例性的,基于本技术图1所示的仿真机器鱼,仿真机器鱼在水中运动时,仿真机器鱼的胸鳍攻角的绝对值在1度至15度之间,仿真机器鱼的升力会随绝对值的增大而增大,阻力会随绝对值的增大而基本保持不变;胸鳍攻角的绝对值大于15度时,仿真机器鱼的升力会随绝对值的增大而减小,阻力会随绝对值的增大而增大。因此,胸鳍攻角的绝对值为15度时,仿生机器鱼可以产生最大的俯仰力矩。
[0071]
在另一种可能实现的方式中,当仿生机器鱼从第一深度运动到预设深度范围的边界时,需要将仿生机器鱼的俯仰角逐渐调整为0度,使得仿生机器鱼的鱼体与水流方向平行。在预设深度范围内,仿生机器鱼的鱼体调整为水平状态后,就可以利用尾鳍产生的推力
以及通过胸鳍的的偏转角度,使仿生机器鱼在预设深度范围内定深巡游。因此,在上述步骤s200之后,本技术提供的仿生机器鱼控制方法还包括步骤s300,具体如下:
[0072]
s300,当仿生机器鱼从第一深度运动至预设深度范围的边界时,将第一期望胸鳍攻角和胸鳍的第三偏转角度均调节为0;之后,仿生机器鱼在预设深度范围内运动期间,根据仿生机器鱼在当前时刻的第二深度和预设深度调节胸鳍在当前时刻的第四偏转角度,预设深度在预设深度范围内。
[0073]
在一个实施例中,当第一次检测到仿生机器鱼从第一深度运动到预设深度范围边界值时,可以将第一期望胸鳍攻角调节为第二期望胸鳍攻角;根据第二期望胸鳍攻角和仿生机器鱼在每一时刻的俯仰角,确定胸鳍在对应时刻的第三偏转角度。直至仿生机器鱼的俯仰角为0时,将第三偏转角度也调节为0。
[0074]
根据第二期望胸鳍攻角α2和仿生机器鱼在每一时刻的俯仰角θ(t),确定胸鳍在对应时刻的第三偏转角度p3(t),可以表示为:α2=p3(t)
‑
θ(t)。
[0075]
其中,第二期望胸鳍攻角用于使仿生机器鱼在预设深度范围内将仿生机器鱼的俯仰角调节为0度。
[0076]
在一个示例中,假设仿生机器鱼在第一深度正水平悬浮于水中游动,现需仿生机器鱼从第一深度下潜运动至预设深度范围,可以将第一期望胸鳍攻角设为
‑
15度,使得仿生机器鱼产生最大的俯力矩。那么,在下潜前可以首先将胸鳍的偏转角度调整为第一期望胸鳍攻角
‑
15度,使仿生机器鱼向下俯冲。在下潜的过程中,利用本技术提供的步骤s100和s200实时调整胸鳍的偏转角度,使得仿生机器鱼一直以第一期望胸鳍攻角
‑
15度进行下潜运动。当仿生机器鱼从第一深度下潜运动至预设深度范围的最小值时,将第一期望胸鳍攻角
‑
15度调节为第二期望胸鳍攻角+10度。
[0077]
在另一个实施例中,当仿生机器鱼从第一深度下潜至预设深度范围的最大值时,则利用本技术提供的步骤s300使仿生机器鱼的俯仰角调整为0度后,将胸鳍的偏转角度调为0,并将第二期望胸鳍攻角调节为第三期望胸鳍攻角,第三期望胸鳍攻角为0。第三期望胸鳍攻角用于使仿生机器鱼在预设深度范围内运动,以实现定深巡游。仿生机器鱼在预设深度范围内运动期间,获取仿生机器鱼在当前时刻的深度,根据当前时刻的深度和预设深度并利用模糊控制算法确定仿生机器鱼在当前时刻的第四偏转角度。
[0078]
需要说明的是,当仿生机器鱼的胸鳍攻角为0时才不会产生俯仰力矩,仅依靠尾鳍摆动产生的推力使得仿生机器鱼在预设深度范围内巡游。因此,当仿生机器鱼的俯仰角为0度时,说明鱼体为水平姿态,此时需要将胸鳍的偏转角度调为0度,并将第二期望胸鳍攻角调节为0度。
[0079]
作为示例而非限定,在仿生机器鱼定深巡游的过程中,可以通过减小尾鳍的摆动频率和摆动幅度,使仿生机器鱼的运动速度从第一运动速度降低为第二运动速度。第二运动速度是在仿生机器鱼的供电量有限的情况下为使仿生机器鱼的巡游路程更远而计算的巡游速度。
[0080]
在一个实施例中,根据仿生机器鱼在当前时刻的第二深度和预设深度确定仿生机器鱼在当前时刻的第四偏转角度,包括以下步骤:
[0081]
步骤一,确定第二深度和预设深度的深度误差与深度误差变化率。
[0082]
具体地,深度误差可以表示为:e
h
(t)=h
‑
h
c
(t)。其中,e
h
(t)表示仿生机器鱼在当
前时刻的深度误差;h表示预设深度;h
c
(t)表示仿生机器鱼在当前时刻的第二深度。
[0083]
深度误差变化率ec
h
可以表示为:
[0084]
步骤二,利用预设的第二模糊控制表对深度误差和深度误差变化率进行模糊控制处理,得到仿生机器鱼在当前时刻的第四偏转角度。
[0085]
在本技术实施例中,如图5所示,可以利用模糊控制算法对深度误差和所述深度误差变化率进行处理,确定当前时刻胸鳍的第四偏转角度。具体的实现方式如下:首先利用第二误差量化因子ke2和第二误差变化率量化因子kec2分别对深度误差e
h
和深度误差变化率ec
h
进行模糊化处理(也可以称为量化处理),得到量化深度误差e
h
和量化深度误差变化率ec
h
;然后根据量化深度误差e
h
和量化深度误差变化率ec
h
查询预设的第二模糊控制表,得到模糊控制量a;利用重心法以及第二比例因子ku2对模糊控制量a进行去模糊化处理,得到实际控制量a。实际控制量a即为仿生机器鱼的胸鳍在当前时刻的第四偏转角度p4。
[0086]
需要说明的是,第二模糊控制表为用于使仿生机器鱼可以在预设深度范围内定深巡游的定深巡游模糊控制表。
[0087]
基于图1所示的仿生机器鱼,处理器确定实际控制量a后,可以根据实际控制量a确定控制信号的脉宽,并向舵机控制器发送控制信号,使得舵机控制器的偏转角度调节为第四偏转角度,进而调节胸鳍的偏转角度,使得仿生机器鱼的实际胸鳍攻角接近0度。若a>0,则仿生机器鱼上升;如a<0,则仿生机器鱼下潜,通过上浮下潜过程,可以使仿生机器鱼在预设深度范围内运动,进而使仿生机器鱼可以在预设深度保持定深巡航。
[0088]
下面对本技术实施例中的第一模糊控制表以及第二模糊控制表的制定方法进行详细的介绍。
[0089]
以第一模糊控制表为下潜模糊控制表为例,对第一模糊控制表的设计方法进行示例性的说明。通过仿真和实验经验,将胸鳍攻角误差e
α
的论域设为[
‑
3,3]度,胸鳍攻角误差变化率ec
α
的论域设为[
‑
6,6]度/s,实际控制增量u的论域设为[
‑
3,3]度。在下潜运动中,以仿生机器鱼快速接近预设深度范围为目的,在模糊化的过程中将量化胸鳍攻角误差e
α
、量化胸鳍攻角误差变化率ec
α
和模糊控制增量u均分为7个量化等级,即取变量的模糊子集论域为{
‑
3,
‑
2,
‑
1,0,1,2,3},相应的第一误差量化因子ke1=n/e
α
(max)=3/3=1,第一误差变化率量化因子kec1=n/ec
α
(max)=3/6=0.5,第一比例因子ku1=u(max)/3=3/3=1。
[0090]
此外,将e
α
、ec
α
和u均分为7个模糊状态,由语言变量负大(nb)、负中(nm)、负小(ns)、零(ze)、正小(ps)、正中(pm)、正大(pb)分别表示。确定语言值隶属度函数,对上面各语言给定其模糊化的隶属度函数,这里各语言值的隶属函数采用三角函数。在模糊推理过程中,采用mamdani极大极小法进行推理,得出一组由49条模糊条件语句构成的控制规则,根据控制规则建立下潜模糊控制规则表。下潜模糊控制规则表如图6所示,基于图6所示的下潜模糊控制规则表设计的下潜模糊控制表如图7所示。
[0091]
上浮模糊控制表的设计方法与下潜模糊控制表的设计方法相同。只是上浮模糊控制规则表与下潜模糊控制规则表的部署方式相反。上浮模糊控制规则表如图8所示,基于图8所示的上浮模糊控制规则表设计的上浮模糊控制表如图9所示。上浮模糊控制表中u的数值与下潜模糊控制表中u的数值互为相反数。
[0092]
在定深巡游阶段,通过仿真和实验经验,将深度误差变化率ec
h
的论域设为[
‑
6,6]
cm/s,实际控制量a的论域设为[
‑
6,6]度。为了在定深巡游阶段保持较高的精度,模糊化的过程将量化深度误差e
h
、量化深度误差变化率ec
h
和模糊控制量a均分为13个量化等级,即取变量的模糊子集论域为{
‑
6,
‑
5,
‑
4,
‑
3,
‑
2,
‑
1,0,1,2,3,4,5,6},第二误差量化因子ke2=n/e
h
(max)=6/18=1/3,第二误差变化率量化因子kec2=n/ec
h
(max)=6/6=1,第二比例因子ku2=a(max)/6=6/6=1。
[0093]
此外,将e
h
、ec
h
和a均分为7个模糊状态,由语言变量负大(nb)、负中(nm)、负小(ns)、零(ze)、正小(ps)、正中(pm)、正大(pb)分别表示。确定语言值隶属度函数,对上面各语言给定其模糊化的隶属度函数,这里各语言值的隶属函数采用三角函数。在模糊推理过程中,采用mamdani极大极小法进行推理,定深巡游模糊控制规则表如图10所示,基于图10所示的定深巡游模糊控制规则表设计的定深巡游模糊控制表如图11所示。
[0094]
本技术提供的基于攻角法的仿生机器鱼定深控制方法利用实际胸鳍攻角和第一期望胸鳍攻角可以对第一偏转角度进行实时调节,以调整仿生机器鱼的俯仰角以及运动方向,进而对实际胸鳍攻角进行调节使其趋近于第一期望胸鳍攻角,使得仿生机器鱼可以产生较大的俯仰力矩,并以最短路径从第一深度向预设深度范围运动,从而缩短仿生机器鱼到达预设深度范围的时间。此外,利用模糊控制算法在处理非线性控制和不确定性方面的优势,对上浮运动和下潜运动中对实际胸鳍攻角和第一期望胸鳍攻角之间的胸鳍攻角误差和胸鳍攻角误差变化率进行模糊控制处理得到实际控制增量,以对第一偏转角度进行实时调节。并在定深巡游阶段,对当前攻深度和预设深度之间的深度误差和深度差变化率进行模糊控制处理得到实际控制量,使得仿生机器人在预设深度范围内巡游,以提高仿生机器鱼定深控制的实时性以及准确度。
[0095]
如图12所示,基于同一发明构思,本技术实施例还提供了一种基于攻角法的仿生机器鱼定深控制装置。定深控制装置400包括获取单元401和控制单元402。
[0096]
其中,获取单元401用于当仿生机器鱼在当前时刻的第一深度不在预设深度范围内时,获取仿生机器鱼在当前时刻的俯仰角,以及仿生机器鱼的胸鳍在上一时刻的第一偏转角度。
[0097]
控制单元402用于根据第一偏转角度和俯仰角确定仿生机器鱼在当前时刻的实际胸鳍攻角,根据第一深度与预设深度范围的相对位置关系,确定第一期望胸鳍攻角,第一期望胸鳍攻角用于使仿生机器鱼的俯仰力矩大于或等于第一阈值,根据实际胸鳍攻角和第一期望胸鳍攻角将第一偏转角度调节为第二偏转角度,以使仿生机器鱼向预设深度范围运动;当仿生机器鱼从第一深度运动至预设深度范围的边界时,将第一期望胸鳍攻角和胸鳍的第三偏转角度均调节为0,之后,仿生机器鱼在预设深度范围内运动期间,根据仿生机器鱼在当前时刻的第二深度和预设深度调节胸鳍在当前时刻的第四偏转角度,预设深度在预设深度范围内。
[0098]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单
元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述装置400中各个单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0099]
本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所述的定深控制方法。
[0100]
本技术实施例还提供一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现上述方法实施例所述的定深控制方法。
[0101]
在本技术中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
[0102]
在本技术的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
[0103]
此外,在本技术中,除非另有明确的规定和限定,术语“连接”、“相连”等应做广义理解,例如可以是机械连接,也可以是电连接;可以是直接连接,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定、对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
[0104]
以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。