本发明属于仿生流体力学及自动控制,具体涉及一种基于cfd-pid实现仿生鱼自动控制自推进的方法。
背景技术:
1、鱼的游动方式分为bcf推进模式(身体和尾鳍为推进部位)和mpf模式(胸鳍、背鳍和腹鳍为推进部位),其中bcf推进模式的优点是高效、快速推进,是自然界大多数鱼类采用的游动方式。基于此仿生原理研制的仿生机器鱼广泛应用于各个领域,流场变化和控制手段对仿生鱼的运动性能有很大影响,数值模拟是研究仿生鱼运动性能成本低且有效的重要方式。
2、当前对于仿生鱼的数值模拟多采用模拟其自推进的方式,仿生鱼由静止加速到某一速度,当速度稳定时,受到平衡的推力和阻力,数值模拟可以展现仿生鱼周围流场的特征,帮助理解仿生鱼的运动性能。但是当前的数值模拟方法由于指定了仿生鱼的运动,其最终的运动形态是固定的,所以不能使仿生鱼达到任意指定的速度。不同于真实的鱼,机器鱼的运动很大程度取决于控制算法,当前机器鱼的运动大多数采用闭环控制方案,其中pid控制算法是最常用的算法之一。
3、然而综合考虑仿生鱼的主动控制运动和流场特征的方法还并未给出,对于研究主动控制下的仿生鱼自推进运动是很有必要的。
技术实现思路
1、为了将pid(比例-积分-微分)控制算法和cfd(计算流体力学)技术结合求解仿生鱼自主推进运动问题,通过主动控制的手段使仿生鱼达到任意特定的速度,弥补传统计算方法中只能考虑人为给定鱼的运动方程的自推进过程,本申请提出一种基于cfd-pid实现仿生鱼自动控制自推进的方法,包括以下步骤:
2、建立仿生鱼体模型,选取合适的仿生类标准翼型结合仿生鱼的初始状态进行模型构建,同时按照流场仿真要求进行流场建模;
3、划分网格,对仿生鱼模型和整个流场进行网格划分;
4、编写udf(用户自定义函数),内容包括实现仿生鱼的运动包括自身的波动和在空间上的移动,其中仿生鱼波动方程中的摆幅受pid算法控制,根据实时的反馈信息随着时间迭代,不断调节摆幅满足速度要求;
5、设置求解参数,选择和鱼游泳环境相匹配的粘性模型,确定边界条件,进行动网格设置,采用网格重构技术以解决仿生鱼模型运动导致的网格变形问题,编译udf,设置时间步长和总时间步进行求解;
6、数据处理,计算仿生鱼的推力系数、升力系数,计算涡流场、压力场等流场信息,导出仿生鱼的速度演化、摆幅变化等过程信息;
7、调参,根据调参法则,改变不同的pid参数,比较速度曲线,确定合适的控制参数。
8、进一步的,仿生鱼体模型的材料选用naca0012翼型,材料选择为固体;流场的材料选择为水,密度1000kg/m3,动力粘度为0.001kg/(ms)。
9、进一步的,使用icem网格划分软件进行网格划分,使用三角非结构化贴体网格对仿生鱼模型和整个流场进行网格划分,并在仿生鱼前缘、尾缘、将要运动的区域进行加密处理。
10、进一步的,
11、仿生鱼的自身波动采用lighthill细长体理论,计算方程如下所示:
12、
13、式中h(x,t)为鱼体中线的位移方程,x为鱼体距离鱼体横坐标,t为时间,a(x)是运动的摆幅,它是关于横坐标的函数,λ是运动波长,t为波动周期,a(x)的方程如下所示:
14、
15、其中a为最大波幅,l为仿生鱼的总长;
16、仿生鱼的位置及速度由牛顿第二定律确定,控制方程为:
17、m(du/dt)=f
18、i(dw/dt)=m
19、式中,m为仿生鱼的质量,u为仿生鱼的瞬时速度,f为仿生鱼受力,i为转动惯量,w为角速度,m为仿生鱼所受力矩,其中u是随着时间变化而不断变化的;
20、在仿生鱼运动过程中,随体坐标系坐标转化为大地坐标系公式如下:
21、x'=(x-x0)cosθ+(y-y0)sinθ
22、y'=-(x-x0)sinθ+(y-y0)cosθ
23、大地坐标系坐标转化为随体坐标系公式如下:
24、x=x0+x'cosθ-y'sinθ
25、y=y0+x'sinθ+y'cosθ
26、式中(x,y)为仿生鱼中线在大地坐标系中的坐标,(x′,x′)为仿生鱼中线在随体坐标系中的坐标,(x0,y0)为仿生鱼中线最前缘在大地坐标系中的坐标;
27、pid控制方程如下所示:
28、
29、式中u(t)为输出值,kp、ki和kd分别为比例系数、积分系数和微分系数,e(t)为输入误差,e(t)的是预定速度与实际速度的差值;
30、pid通过调节最大波幅a间接控制速度,整体过程包括:仿生鱼受力获得加速度向前推进,每个时间步计算仿生鱼实时速度与指定速度的误差,输出新的a,仿生鱼按照新的波动方程运动,根据实时受力获得新的速度,不断循环。
31、进一步的,流场左右边界分别设置为速度进口和压力出口,速度进口来流速度设置为0,上下表面设置为对称平面;动网格设置中采用扩散光顺和网格重构的方法,设定合适的时间步和时间步长;所计算的流场控制方程包括动量守恒方程和质量守恒方程,控制方程如下所示:
32、
33、
34、式中,p和μ分别为速度矢量、压力和水的动态粘度,ρ为水的密度。对流场控制方程使用有限体积法离散化,该方法具有非定常项的隐式一阶时间推进方案,对流项采用二阶迎风格式,扩散项离散化采用二阶中心差分格式。压力和速度耦合使用simple算法实现。
35、进一步的,数据处理中,推力系数和升力系数通过以下公式计算:
36、
37、
38、式中ct和cl分别为推力系数和升力系数,fx和fy分别为仿生鱼在x方向和y方向所受的分力,为收敛速度;
39、速度无因次化为:
40、u=u/l
41、us=u/l。
42、进一步的,最终确定的控制参数kp、ki和kd分别为0.8、0.0001和0.2。
43、本发明与现有技术相比,其有益效果在于:
44、本发明与传统的自推进数值模拟相比,可以使仿生鱼达到任意指定的速度,方法简单,稳定,可靠;本发明可应用于仿生鱼变速、转弯、稳定鱼群阵型等其它运动的数值模拟,求解流场控制方程要比采用简化的动力学模型更加真实,更具工程意义;本发明所提供的流场信息有助于更好的理解仿生鱼的水动力性能,找寻改善提高仿生鱼运动性能的方案。
1.基于cfd-pid实现仿生鱼自动控制自推进的方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于cfd-pid实现仿生鱼自动控制自推进的方法,其特征在于:仿生鱼体模型的材料选用naca0012翼型,材料选择为固体;流场的材料选择为水,密度1000kg/m3,动力粘度为0.001kg/(ms)。
3.根据权利要求2所述的基于cfd-pid实现仿生鱼自动控制自推进的方法,其特征在于:使用icem网格划分软件进行网格划分,使用三角非结构化贴体网格对仿生鱼模型和整个流场进行网格划分,并在仿生鱼前缘、尾缘、将要运动的区域进行加密处理。
4.根据权利要求3所述的基于cfd-pid实现仿生鱼自动控制自推进的方法,其特征在于:
5.根据权利要求4所述的基于cfd-pid实现仿生鱼自动控制自推进的方法,其特征在于:流场左右边界分别设置为速度进口和压力出口,速度进口来流速度设置为0,上下表面设置为对称平面;动网格设置中采用扩散光顺和网格重构的方法,设定合适的时间步和时间步长;所计算的流场控制方程包括动量守恒方程和质量守恒方程,控制方程如下所示:
6.根据权利要求5所述的基于cfd-pid实现仿生鱼自动控制自推进的方法,其特征在于,数据处理中,推力系数和升力系数通过以下公式计算:
7.根据权利要求1所述的基于cfd-pid实现仿生鱼自动控制自推进的方法,其特征在于:最终确定的控制参数kp、ki和kd分别为0.8、0.0001和0.2。