CN109946976B - 一种宽航速auv运动控制方法 - Google Patents
一种宽航速auv运动控制方法 Download PDFInfo
- Publication number
- CN109946976B CN109946976B CN201910299240.9A CN201910299240A CN109946976B CN 109946976 B CN109946976 B CN 109946976B CN 201910299240 A CN201910299240 A CN 201910299240A CN 109946976 B CN109946976 B CN 109946976B
- Authority
- CN
- China
- Prior art keywords
- auv
- speed
- wide
- depth
- navigational
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000008859 change Effects 0.000 claims description 6
- 238000013016 damping Methods 0.000 claims description 6
- 230000005484 gravity Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 238000013459 approach Methods 0.000 claims description 3
- 238000006073 displacement reaction Methods 0.000 claims description 3
- 230000009189 diving Effects 0.000 claims description 3
- 238000005096 rolling process Methods 0.000 claims description 3
- 239000013535 sea water Substances 0.000 claims description 3
- 239000000126 substance Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- -1 OXy Chemical class 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Landscapes
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Feedback Control In General (AREA)
Abstract
本发明提出一种宽航速AUV运动控制方法,包括:该方法首先建立了宽航速AUV的动力学模型方程;对宽航速AUV的时变动力学模型进行化简,建立垂直面运动简化的时变动力学模型;采用改进的滑模变结构控制方法,多普勒测速仪测得宽航速AUV的u0,惯导测速仪宽航速AUV的纵倾角速度和垂向速度,并将测得的结果传递给改进的滑模变结构控制器,通过深度计测得航速AUV的实际深度,目标深度与实际深度之差传递给改进的滑模变结构控制器,达到闭环控制的目的;该方法可用于控制宽航速AUV在海洋环境中更好地执行任务。本发明能够保证宽航速AUV在控制精度提高的情况下,有效减弱滑模控制系统的抖振。
Description
技术领域
本发明属于自主水下机器人控制领域领域,具体涉及一种宽航速AUV运动控制方法。
背景技术
随着人类对海洋开发需求的日益增加,AUV作为一种可以完成多种复杂任务的海洋探索工具,无论在军用领域还是在民用领域,它都具有非常广阔的应用前景。然而,传统的水下机器人普遍具有航速较低、环境适应能力不强等方面的问题,围绕海洋快速应急搜探、水下环境快速评估等迫切需求,为了更好适应从低速到高速的各种航速要求,探索航速适应能力较强的宽航速AUV的实现原理与技术是研究的重要方向。控制技术作为宽航速AUV的关键技术,尤其是实施高精度的深度控制是宽航速AUV有效作业的关键。但由于海洋环境中存在各种未知的干扰以及此类型宽航速AUV的自身复杂特性,导致建立精确的宽航速AUV运动控制模型具有较大难度。从而,高精度控制的实现往往会导致控制器的高频振动。因此,通过某种手段在保证宽航速AUV的控制精度满足要求的情况下有效削弱控制器的抖振是宽航速AUV面临的一大挑战。
PID控制(Proportion Integration Differentiation Control)、反步法控制(Back Stepping Control)、模糊控制(Fuzzy Control)、滑模控制(Sliding ModeControl)、神经网络控制(Neural Networks Control)等是当今AUV常用的一些控制方法,而近年来,深度学习(Deep Learning)在控制领域的应用也极大地推动了控制技术的发展。PID控制只能适用于一些AUV弱机动下的简单控制,但它对环境参数变化敏感,整定优化比较麻烦;反步法控制依赖于精确的数学模型,但此类新型宽航速AUV的精确模型很难获得;滑模变结构控制虽具有响应速度快的特点,但是其容易引起抖振;模糊控制器依赖于先验知识;神经网络控制虽然具有很强的非线性逼近能力,但是其网络层数以及每层的节点数较难确定;深度学习具有强大的复杂非线性建模能力,但是其训练耗时,模型正确性验证复杂且麻烦。
现今,为了实现对宽航速AUV的深度控制,考虑到滑模变结构控制的实时性和强鲁棒性,对传统滑模变结构控制(SMC,Sliding Mode Control)进行改进以达到削弱抖振的目的,已成为一种新的趋势。
发明内容
针对现有技术中存在的上述不足之处,本发明要解决的技术问题是提供一种基于ISMC算法的宽航速AUV深度控制方法。本发明为实现上述目的所采用的技术方案是:建立宽航速AUV简化的时变动力学模型,并提出一种宽航速AUV深度控制方法。
具体步骤如下:
步骤1:建立宽航速AUV的时变动力学模型;
所述宽航速AUV的时变动力学模型包括:动力学方程和运动学方程:
其中,υ=[u,v,w,p,q,r]T,η=[ξ,η,ζ,φ,θ,ψ]T;J(η)=diag{J1(η),J2(η)},其中,
其中,u、v、w、p、q、r分别表示宽航速AUV的纵向、横向、垂向速度以及横倾、纵倾、艏向角速度。C(υ),D(υ)矩阵中的元素并非常数,其每个元素是以纵向速度u为变量的函数,u=u0/cosθ,u0为多普勒测速仪测得的速度;为系统惯性矩阵,为科里奥利向心力矩阵,为阻尼矩阵,为重力/浮力和力矩向量,τ'为控制输入向量,ξ,η,ζ为分别表示坐标系E-ξηζ中沿北、东、下指向的位移;φ,θ,ψ为分别表示横倾角、纵倾角和艏向角;υ表示坐标系O-xyz中沿Ox,Oy,Oz轴的移动速度和转动速度;J(η)从载体坐标系到惯性坐标系的坐标转换矩阵。
步骤2:对宽航速AUV的时变动力学模型进行化简,建立垂直面运动简化的时变动力学模型;
所述垂直面运动简化的时变动力学模型如下:
将(3)式改为:
Z(·)为宽航速AUV的水动力系数,m为宽航速AUV的质量,w为垂向速度,q为纵倾角速度,Z为深度值,δb为艏舵舵角。
其中,宽航速AUV的水动力参数通过多项式拟合获得:
Zw=0.5ρL2(a0+a1u+a2u2) (5)
式中,u为宽航速AUV的纵向速度,ρ为海水密度,L为宽航速AUV的长度,a0、a1、a3均为多项式系数;
步骤3:采用改进的滑模变结构控制方法(ISMC),多普勒测速仪测得宽航速AUV的u0,惯导测速仪宽航速AUV的纵倾角速度q和垂向速度w,并将测得的结果传递给改进的滑模变结构控制器,通过深度计测得航速AUV的实际深度z,目标深度zd与实际深度z之差传递给改进的滑模变结构控制器,达到闭环控制的目的。
所述ISMC方法,具体过程如下:
选取深度控制误差为:
其中,zd为目标深度,z为深度计测得的实际深度,e为深度偏差。
选择切换面:
选取趋近律:
其中,c、ε、k为大于零的常数,s为切换面;
对式(7)求导得
由(4)式和(9)式得
由(8)式和(10)式得
其中,f(s)为连续函数:
其中,arctan(σs)为反正切函数,σ为正常数。
有益技术效果:
(1)本发明通过对滑模结构控制(SMC)进行改进,在保证系统的强鲁棒性的情况下,有效削弱SMC控制器的抖振。
(2)本发明的方法中,系统模型以及控制器中的水动力系数并非固定常数,而是随宽航速AUV纵向速度变化的函数,更接近宽航速AUV本体的特性,能够保证宽航速AUV的控制精度满足要求。
(3)本发明实现方便,只需将SMC的sgn(s)用连续函数f(s)取代即可,不需要对宽航速AUV的控制系统进行过多的改动。
附图说明
图1为本发明实施例的宽航速AUV定深控制的工作原理图;
图2为本发明实施例的一种宽航速AUV深度控制方法流程图;
图3为本发明实施例的惯性坐标系和载体坐标系转换图;
图4为本发明实施例的ISMC和SMC的宽航速AUV进行变速下潜的深度对比图;
图5为本发明实施例的ISMC和SMC的宽航速AUV进行变速下潜的舵角对比图。
具体实施方式
下面结合附图和具体实施实例对发明做进一步说明:宽航速AUV空间运动坐标系通常采用两种坐标系,即惯性坐标系和载体坐标系。惯性坐标系固定于地球,用于描述宽航速AUV的运动轨迹和姿态;载体坐标系固定于宽航速AUV上,与载体一起运动,用于描述宽航速AUV运动的水动力特性。如图3所示。
惯性坐标系E-ξηζ:又称固定坐标系或地面坐标系,可选海平面上或海中任意一点为原点E,Eξ轴指向地理北,按右手法则将Eξ轴沿顺时针方向旋转90度得到Eη轴,Eη轴指向地理东,Eζ轴垂直于Eξ轴和Eη轴所在的水平面,并指向地心。
载体坐标系O-xyz:又称运动坐标系或非惯性坐标系,原点O与宽航速AUV的重心重合,Ox轴与宽航速AUV的主对称轴平行,并指向宽航速AUV的艏部,Oy轴平行于基面指向宽航速AUV的右舷,Oz轴垂直于Oxy平面指向宽航速AUV底部。
对宽航速AUV进行运动分析时,首先在惯性坐标系下建立运动方程,再将惯性坐标系下的各参数转换为用载体坐标系的分量来表示,从而得到载体坐标系下的运动方程。
参照附图1为本发明方案中宽航速AUV定深控制的工作原理图。对宽航速AUV的动力学模型进行适当简化,在水动力参数随航速变化的情况下,利用基于ISMC的控制方法,对宽航速AUV在不同航速情况下进行深度控制,实现在不同航速情况下的定深控制。
在不同航速下对宽航速AUV进行深度控制的实现过程:
提供一种基于ISMC算法的宽航速AUV深度控制方法,如图2所示,具体步骤如下:
步骤1:建立宽航速AUV的时变动力学模型;
所述宽航速AUV的时变动力学模型包括:动力学方程和运动学方程:
其中,υ=[u,v,w,p,q,r]T,η=[ξ,η,ζ,φ,θ,ψ]T;J(η)=diag{J1(η),J2(η)},其中,
其中,u、v、w、p、q、r分别表示宽航速AUV的纵向、横向、垂向速度以及横倾、纵倾、艏向角速度。C(υ),D(υ)矩阵中的元素并非常数,其每个元素是以纵向速度u为变量的函数,u=u0/cosθ,u0为多普勒测速仪测得的速度;为系统惯性矩阵为科里奥利向心力矩阵,为阻尼矩阵,为重力/浮力和力矩向量,τ'为控制输入向量,ξ,η,ζ为分别表示坐标系E-ξηζ中沿北、东、下指向的位移;φ,θ,ψ为分别表示横倾角、纵倾角和艏向角;υ表示坐标系O-xyz中沿Ox,Oy,Oz轴的移动速度和转动速度;J(η)从载体坐标系到惯性坐标系的坐标转换矩阵。
步骤2:对宽航速AUV的时变动力学模型进行化简,建立垂直面运动简化的时变动力学模型;
所述垂直面运动简化的时变动力学模型如下:
将(3)式改为:
Z(·)为宽航速AUV的水动力系数,m为宽航速AUV的质量,w为垂向速度,q为纵倾角速度,Z为深度值,δb为艏舵舵角。
其中,宽航速AUV的水动力参数通过多项式拟合获得:
Zw=0.5ρL2(a0+a1u+a2u2) (5)
式中,u为宽航速AUV的纵向速度,ρ为海水密度,L为宽航速AUV的长度,a0、a1、a3均为多项式系数;
步骤3:采用改进的滑模变结构控制方法(ISMC),多普勒测速仪测得宽航速AUV的u0,惯导测速仪宽航速AUV的纵倾角速度q和垂向速度w,并将测得的结果传递给改进的滑模变结构控制器,通过深度计测得航速AUV的实际深度z,目标深度zd与实际深度z之差传递给改进的滑模变结构控制器,达到闭环控制的目的。
所述ISMC方法,具体过程如下:
选取深度控制误差为:
其中,zd为目标深度,z为深度计测得的实际深度,e为深度偏差。
选择切换面:
选取趋近律:
其中,c、ε、k为大于零的常数,s为切换面;
对式(7)求导得
由(4)式和(9)式得
由(8)式和(10)式得
其中,f(s)为连续函数:
其中,arctan(σs)为反正切函数,σ为正常数。
本发明的效果通过以下实验加以验证。
为了验证本发明方法的有效性,假定宽航速AUV以8节航速(4.116米/秒)下潜到30米,再以10节航速(5.145米/秒)下潜到40米,最后以12节航速(6.174米/秒)下潜到50米。图4为ISMC和SMC的宽航速AUV进行变速下潜的深度对比图,表明ISMC相比于SMC具有更高的控制精度。图5为ISMC和SMC的宽航速AUV进行变速下潜的舵角对比图,表明ISMC相比于SMC具有更好的抖振削弱效果。通过以上实验分析得到如下结论:ISMC可以提高宽航速AUV深度控制的控制精度,有效地削弱抖振,提高宽航速AUV深度控制算法的实用性。
Claims (2)
1.一种宽航速AUV运动控制方法,其特征在于,具体步骤如下:
步骤1:建立宽航速AUV的时变动力学模型;
所述宽航速AUV的时变动力学模型包括:动力学方程和运动学方程:
其中,υ=[u,v,w,p,q,r]T,η=[ξ,η,ζ,φ,θ,ψ]T;J(η)=diag{J1(η),J2(η)},其中,
其中,u、v、w、p、q、r分别表示宽航速AUV的纵向、横向、垂向速度以及横倾、纵倾、艏向角速度,C(υ),D(υ)矩阵中的元素并非常数,其每个元素是以纵向速度u为变量的函数,u=u0/cosθ,u0为多普勒测速仪测得的速度;为系统惯性矩阵,为科里奥利向心力矩阵,为阻尼矩阵,为重力/浮力和力矩向量,τ'为控制输入向量,ξ,η,ζ为分别表示坐标系E-ξηζ中沿北、东、下指向的位移;φ,θ,ψ为分别表示横倾角、纵倾角和艏向角;υ表示坐标系O-xyz中沿Ox,Oy,Oz轴的移动速度和转动速度;J(η)从载体坐标系到惯性坐标系的坐标转换矩阵;
步骤2:对宽航速AUV的时变动力学模型进行化简,建立垂直面运动简化的时变动力学模型;
所述垂直面运动简化的时变动力学模型如下:
将(3)式改为:
Z(·)为宽航速AUV的水动力系数,m为宽航速AUV的质量,w为垂向速度,q为纵倾角速度,Z为深度值,δb为艏舵舵角;
步骤3:采用改进的滑模变结构控制方法,多普勒测速仪测得宽航速AUV的u0,惯导测速仪宽航速AUV的纵倾角速度q和垂向速度w,并将测得的结果传递给改进的滑模变结构控制器,通过深度计测得航速AUV的实际深度z,目标深度zd与该实际深度z之差传递给改进的滑模变结构控制器,达到闭环控制的目的;
所述改进的滑模变结构控制方法,具体过程如下:
选取深度控制误差为:
其中,zd为目标深度,z为深度计测得的实际深度,e为深度偏差;
选择切换面:
选取趋近律:
其中,c、ε、k为大于零的常数,s为切换面;
对式(7)求导得
由(4)式和(9)式得
由(8)式和(10)式得
其中,f(s)为连续函数:
其中,arctan(σs)为反正切函数,σ为正常数。
2.根据权利要求1所述一种宽航速AUV运动控制方法,其特征在于,步骤2中所述宽航速AUV的水动力参数通过多项式拟合获得:
Zw=0.5ρL2(a0+a1u+a2u2) (5)
式中,u为宽航速AUV的纵向速度,ρ为海水密度,L为宽航速AUV的长度,a0、a1、a3均为多项式系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910299240.9A CN109946976B (zh) | 2019-04-15 | 2019-04-15 | 一种宽航速auv运动控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910299240.9A CN109946976B (zh) | 2019-04-15 | 2019-04-15 | 一种宽航速auv运动控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109946976A CN109946976A (zh) | 2019-06-28 |
CN109946976B true CN109946976B (zh) | 2021-07-27 |
Family
ID=67015113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910299240.9A Expired - Fee Related CN109946976B (zh) | 2019-04-15 | 2019-04-15 | 一种宽航速auv运动控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109946976B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110321639B (zh) * | 2019-07-05 | 2022-09-16 | 大连海事大学 | 实现水下机器人四自由度垂直面自航下潜预报的类物理数值方法 |
CN110427040B (zh) * | 2019-07-16 | 2022-07-15 | 哈尔滨工程大学 | 一种基于动态面滑模的欠驱动无缆水下机器人深度反步控制方法 |
CN111638722B (zh) * | 2020-05-12 | 2023-04-28 | 国网天津市电力公司电力科学研究院 | 一种油浸式变压器微型仿生鱼姿态控制方法 |
CN113820956B (zh) * | 2021-11-23 | 2022-02-22 | 之江实验室 | 一种高速auv运动控制方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105573327A (zh) * | 2016-03-02 | 2016-05-11 | 哈尔滨工程大学 | 基于t-s模糊时滞模型的欠驱动uuv垂直面控制方法 |
CN105808911A (zh) * | 2014-12-31 | 2016-07-27 | 中国科学院沈阳自动化研究所 | 一种深海潜水器导航方法 |
CN106444794A (zh) * | 2016-09-20 | 2017-02-22 | 哈尔滨工程大学 | 一种无参数欠驱动uuv垂直面路径跟踪滑模控制方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10183732B2 (en) * | 2015-04-09 | 2019-01-22 | University of New Hamphire | Pose detection and control of unmanned underwater vehicles (UUVs) utilizing an optical detector array |
-
2019
- 2019-04-15 CN CN201910299240.9A patent/CN109946976B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808911A (zh) * | 2014-12-31 | 2016-07-27 | 中国科学院沈阳自动化研究所 | 一种深海潜水器导航方法 |
CN105573327A (zh) * | 2016-03-02 | 2016-05-11 | 哈尔滨工程大学 | 基于t-s模糊时滞模型的欠驱动uuv垂直面控制方法 |
CN106444794A (zh) * | 2016-09-20 | 2017-02-22 | 哈尔滨工程大学 | 一种无参数欠驱动uuv垂直面路径跟踪滑模控制方法 |
Non-Patent Citations (3)
Title |
---|
Design and Implementation of Manned Submersible Semi Physical Simulation System;Tao Xue,Yang Zhao,Shengguo Cui,Yanzhu Zhang,Guanhua Feng,Kaizhou;《2016 IEEE International Conference on Robotics and Biomimetics (ROBIO)》;20170302;全文 * |
Efficient collision-free path planning for autonomous underwater vehicles in dynamic environments with a hybrid optimization algorithm;Yufei Zhuang, Sanjay Sharma, Bidyadhar Subudhi, Haibin Huan;《Ocean Engineering》;20161012;全文 * |
梁志成.基于自适应滑模的欠驱动UUV路径跟踪控制研究.《全国优秀硕士学位论文全文数据库· 工程科技Ⅱ辑》.2018, * |
Also Published As
Publication number | Publication date |
---|---|
CN109946976A (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109946976B (zh) | 一种宽航速auv运动控制方法 | |
CN107168312B (zh) | 一种补偿uuv运动学和动力学干扰的空间轨迹跟踪控制方法 | |
CN101033973B (zh) | 微小型飞行器微惯性组合导航系统的姿态确定方法 | |
CN102768539B (zh) | 基于迭代的自主水下航行器三维曲线路径跟踪控制方法 | |
CN106950974B (zh) | 欠驱动自主水下航行器的对三维路径进行理解及跟踪控制方法 | |
Han et al. | Nonlinear modeling for a water-jet propulsion USV: An experimental study | |
CN107991872B (zh) | 欠驱动auv的虚拟锚泊水平面区域镇定控制方法及实现方法 | |
Fan et al. | Impact of current disturbances on AUV docking: Model-based motion prediction and countering approaches | |
CN111857165B (zh) | 一种水下航行器的轨迹跟踪控制方法 | |
CN113467231A (zh) | 基于侧滑补偿ilos制导律的无人艇路径跟踪方法 | |
CN113608534B (zh) | 一种无人艇跟踪控制方法及系统 | |
CN112015086B (zh) | 一种欠驱动水面船有限时间路径跟踪输出反馈控制方法 | |
CN109901402B (zh) | 一种基于航向平滑技术的自主水下机器人路径跟踪方法 | |
CN114967714A (zh) | 一种自主式水下机器人抗扰运动控制方法及系统 | |
CN117389312B (zh) | 一种基于模型的水下航行器抗横滚三维跟踪控制方法 | |
Wang et al. | Dynamic model-aided localization of underwater autonomous gliders | |
CN113296505A (zh) | 一种基于速变los的无人船多模式路径跟踪控制方法 | |
CN110376891B (zh) | 一种基于模糊切换增益的反步滑模的纵平面轨迹跟踪无人潜航器控制方法 | |
Nguyen et al. | Robust Adaptive Depth Control of hybrid underwater glider in vertical plane | |
Mousazadeh et al. | Experimental evaluation of a new developed algorithm for an autonomous surface vehicle and comparison with simulink results | |
CN115755939A (zh) | 一种四旋翼水下航行器前进运动状态估计方法 | |
CN115480580A (zh) | 一种基于nmpc的水下机器人路径跟踪与避障的控制方法 | |
CN113820956B (zh) | 一种高速auv运动控制方法 | |
Liu et al. | Steady State Analysis and Optimization for AUV Using Washout Filter Root Locus Correction Method | |
CN113190025B (zh) | 一种适用于变结构水下机器人的运动控制方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210727 |