CN112632454A - 一种基于自适应卡尔曼滤波算法的mems陀螺滤波方法 - Google Patents
一种基于自适应卡尔曼滤波算法的mems陀螺滤波方法 Download PDFInfo
- Publication number
- CN112632454A CN112632454A CN202011492935.8A CN202011492935A CN112632454A CN 112632454 A CN112632454 A CN 112632454A CN 202011492935 A CN202011492935 A CN 202011492935A CN 112632454 A CN112632454 A CN 112632454A
- Authority
- CN
- China
- Prior art keywords
- filtering
- mems gyroscope
- noise variance
- kalman
- process noise
- 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.)
- Granted
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 13
- 239000011159 matrix material Substances 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 47
- 238000005259 measurement Methods 0.000 claims abstract description 30
- 230000003068 static effect Effects 0.000 claims abstract description 14
- 230000001133 acceleration Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000005070 sampling Methods 0.000 claims description 2
- 230000007704 transition Effects 0.000 claims description 2
- 238000003491 array Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 240000006829 Ficus sundaica Species 0.000 description 1
- 238000012300 Sequence Analysis Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C19/00—Gyroscopes; Turn-sensitive devices using vibrating masses; Turn-sensitive devices without moving masses; Measuring angular rate using gyroscopic effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Computing Systems (AREA)
- Operations Research (AREA)
- Gyroscopes (AREA)
Abstract
本发明涉及一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法,包括以下步骤:步骤一:建立卡尔曼滤波器的状态方程和测量方程;步骤二:根据MEMS陀螺的静态角速度数据计算得到卡尔曼滤波算法的测量噪声方差阵,及迭代计算得到卡尔曼滤波算法的过程噪声方差阵;步骤三:利用卡尔曼滤波算法对MEMS陀螺的数据进行滤波;步骤四:根据滤波结果计算过程噪声方差阵的迭代系数,返回步骤二,对过程噪声方差阵进行更新迭代,直至完成MEMS陀螺的数据滤波。本发明的滤波方法对模型精度要求不高,可以自主迭代计算过程噪声方差阵,能够有效降低MEMS陀螺的随机噪声,实时提高MEMS陀螺动态数据输出精度,从而提高卫星的姿态稳定度。
Description
技术领域
本发明涉及信号处理技术领域,特别是涉及一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法。
背景技术
MEMS陀螺由于成本低、尺寸小、重量轻、可靠性高等优点,近年来在微纳卫星上的应用越来越广泛。然而受到现阶段工艺、材料等因素的制约,MEMS陀螺仪的输出精度较低。MEMS陀螺的误差源中随机噪声含量较大,并且容易受环境影响,具有慢时变、非平稳的特点。因此,如何对MEMS陀螺仪输出数据进行有效处理以提高其测量精度,已经成为商业航天领域重要研究方向。
目前针对陀螺随机噪声处理广泛采用的方法是基于时间序列分析法等方法对陀螺进行建模,然后使用卡尔曼滤波算法进行数字滤波。
然而传统卡尔曼滤波对MEMS陀螺模型精度、过程噪声方差阵精度和测量噪声方差阵精度要求很高,而基于地面测试数据获得的陀螺模型和过程噪声方差阵随着卫星在轨环境变化、运行时间推移将不再准确,所以将导致算法精度降低甚至发散,从而降低MEMS陀螺动态数据输出精度。
发明内容
为解决现有技术中传统卡尔曼滤波算法存在对MEMS陀螺模型精度、过程噪声方差阵精度和测量噪声方差阵精度依赖过高,算法精度容易降低甚至发散的问题,本发明提供一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法。
为解决上述问题,本发明采取如下的技术方案:
一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法,包括以下步骤:
步骤一:根据MEMS陀螺的数据采集周期建立卡尔曼滤波器的状态方程和测量方程;
步骤二:获取所述MEMS陀螺的静态角速度数据,根据所述静态角速度数据计算得到卡尔曼滤波算法的测量噪声方差阵Rk,以及使用公式进行迭代计算得到卡尔曼滤波算法的过程噪声方差阵Qk,其中为过程噪声方差阵Qk在k时刻的估计值,αk为迭代系数,在第一次运算时给任意值,α0取1;
步骤三:利用所述卡尔曼滤波算法对所述MEMS陀螺的数据进行滤波;
步骤四:根据步骤三得到的滤波结果计算所述过程噪声方差阵Qk的迭代系数,然后返回步骤二,对所述过程噪声方差阵Qk进行更新迭代,直至完成所述MEMS陀螺的数据滤波。
与现有技术相比,本发明具有以下有益效果:
本发明所提出的一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法对模型精度要求不高,可以自主迭代计算过程噪声方差阵,能够有效降低MEMS陀螺的随机噪声,实时提高MEMS陀螺动态数据输出精度,从而提高卫星的姿态稳定度,同时该滤波方法结构简单、易于实现,可应用于航空航天、惯性导航等领域,对于实际工程应用具有很大的现实意义。
附图说明
图1为本发明实施例提供的一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法流程示意图;
图2为MEMS陀螺的静态角速度数据示意图;
图3为实施例二滤波前后MEMS陀螺角速度对比图;
图4为实施例二过程噪声方差阵更新结果示意图;
图5为实施例三滤波前后MEMS陀螺角速度对比图;
图6为实施例三过程噪声方差阵更新结果示意图。
具体实施方式
下面将结合附图及较佳实施例对本发明的技术方案进行详细描述。
实施例一
在本实施例中,如图1所示,本发明提供一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法,该方法包括以下步骤:
步骤一(S1):根据MEMS陀螺的数据采集周期建立卡尔曼滤波器的状态方程和测量方程;
步骤二(S2):获取MEMS陀螺的静态角速度数据,根据静态角速度数据计算得到卡尔曼滤波算法的测量噪声方差阵Rk,以及使用公式进行迭代计算得到卡尔曼滤波算法的过程噪声方差阵Qk,其中为过程噪声方差阵Qk在k时刻的估计值,αk为迭代系数,在第一次运算时给任意值,α0取1;
步骤三(S3):利用卡尔曼滤波算法对MEMS陀螺的数据进行滤波;
步骤四(S4):根据步骤三得到的滤波结果计算过程噪声方差阵Qk的迭代系数,然后返回步骤二,对过程噪声方差阵Qk进行更新迭代,直至完成MEMS陀螺的数据滤波。
具体地,步骤S1,建立卡尔曼滤波器的状态方程和测量方程:
利用MEMS陀螺的角速度和角加速度关系建立状态方程:
其中,wk是MEMS陀螺在k时刻的角速度,ΔT为MEMS陀螺的采样周期,δk是MEMS陀螺在k时刻的角加速度,ν1,k、ν2,k是零均值的高斯白噪声信号,用于表征系统过程噪声,其对应过程噪声方差阵为Q11,k为ν1,k的方差,Q22,k为ν2,k的方差。
定义卡尔曼滤波器k时刻的状态量Xk=[wk αk]T,则卡尔曼滤波器的状态方程如下:
Xk=φk|k-1Xk-1+νk
Zk=HkXk+εk
其中,Hk=[1 0]为系统观测矩阵,εk是与ν1,k、ν2,k不相关的零均值高斯白噪声信号,用于表征系统测量噪声,其方差构成Rk。
步骤S2,确定测量噪声方差阵Rk和过程噪声方差阵Qk:
对于测量噪声方差阵Rk,直接选取一段零均值静态数据,求其方差即可。具体地,通过获取MEMS陀螺的静态角速度数据,根据静态角速度数据计算得到卡尔曼滤波算法的测量噪声方差阵Rk。
对于过程噪声方差阵Qk,由于建模的不准确以及在轨环境的变化无法实时准确获取,本发明采用如下公式进行迭代计算得到:
步骤3,使用卡尔曼滤波算法对MEMS陀螺数据进行滤波:
根据如下卡尔曼滤波原理进行滤波:
步骤S4,计算过程噪声方差阵Qk的迭代系数,完成算法迭代;
根据步骤S3得到的滤波结果计算过程噪声方差阵Qk的迭代系数αk,然后返回步骤S2,对过程噪声方差阵Qk进行更新迭代,重复步骤S2~S4,直至完成MEMS陀螺的数据滤波。
可选地,根据步骤S3得到的滤波结果计算过程噪声方差阵的迭代系数包括以下步骤:
步骤四一:计算更新序列:
其中,b=2·π·fc·ΔT,ΔT为数据采集周期,fc为一阶低通滤波器的截止频率,fc的取值范围界于系统带宽和陀螺奈奎斯特频率之间。
步骤四三:计算过程噪声方差阵Qk的迭代系数,计算公式如下:
其中,trace为求矩阵的迹。在完成以上运算后,重新运行步骤2~4,完成算法迭代。
本实施例所提出的一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法对模型精度要求不高,可以自主迭代计算过程噪声方差阵,能够有效降低MEMS陀螺的随机噪声,实时提高MEMS陀螺动态数据输出精度,从而提高卫星的姿态稳定度,同时该滤波方法结构简单、易于实现,可应用于航空航天、惯性导航等领域,对于实际工程应用具有很大的现实意义。
接下来结合具体实施例对本发明的技术方案作进一步说明。
实施例二
步骤一,根据MEMS陀螺数据采集周期建立卡尔曼滤波器的状态方程和测量方程,此实施例中MEMS陀螺的采集周期为0.01s,所以滤波器的状态方程转移矩阵观测矩阵Hk=[1 0],状态量Xk=[wk δk]T。
步骤二,获取MEMS陀螺的静态角速度数据,剔除均值和趋势项,得到如图2所示数据,求取静态角速度数据方差作为后续滤波使用的测量噪声方差阵,例如在施例二中选择的某一款MEMS陀螺的噪声方差为4.9963e-04,所以选择的测量噪声方差阵Rk=5e-04。
考虑到过程模型存在误差,尤其角加速度更新过程误差更大,所以本实施例选择的过程噪声方差阵初值(第一次运算时)为迭代系数初值取1,后续每一步过程噪声方差阵使用公式计算,其中为过程噪声方差阵Qk在k时刻的估计值,αk为迭代系数。
步骤四,首先计算滤波更新序列然后通过一阶低通滤波器对更新序列的平方和进行滤波,本实施例滤波选择的滤波器截止频率为0.5Hz,所以滤波器系数中b=0.0314。然后根据公式计算噪声方差阵的迭代系数。由于和计算结果为单维变量,所以矩阵的迹等于数据本身,所以运算量及其简化。最终,在完成迭代系数计算后,重新进行步骤三和步骤四的运算。图3为采用本实施例的滤波方法滤波前后MEMS陀螺角速度对比图,图4为过程噪声方差阵更新结果示意图。
实施例三
实施例三的实施过程和参数设置与实施例二基本一致,区别在于陀螺数据在前100s的噪声特性与实施例二一致,在后100s时陀螺的随机噪声幅值增大2倍。图5为采用本实施例的滤波方法滤波前后MEMS陀螺角速度对比图,图6为过程噪声方差阵更新结果示意图。在实施过程中只需要同步将测量噪声方差阵Rk放大四倍,可依然保持与100s前近似的滤波效果。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (3)
1.一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法,其特征在于,包括以下步骤:
步骤一:根据MEMS陀螺的数据采集周期建立卡尔曼滤波器的状态方程和测量方程;
步骤二:获取所述MEMS陀螺的静态角速度数据,根据所述静态角速度数据计算得到卡尔曼滤波算法的测量噪声方差阵Rk,以及使用公式进行迭代计算得到卡尔曼滤波算法的过程噪声方差阵Qk,其中为过程噪声方差阵Qk在k时刻的估计值,αk为迭代系数,在第一次运算时给任意值,α0取1;
步骤三:利用所述卡尔曼滤波算法对所述MEMS陀螺的数据进行滤波;
步骤四:根据步骤三得到的滤波结果计算所述过程噪声方差阵Qk的迭代系数,然后返回步骤二,对所述过程噪声方差阵Qk进行更新迭代,直至完成所述MEMS陀螺的数据滤波。
3.根据权利要求1或2所述的一种基于自适应卡尔曼滤波算法的MEMS陀螺滤波方法,其特征在于:
利用所述MEMS陀螺的角速度和角加速度关系建立状态方程:
其中,wk是所述MEMS陀螺在k时刻的角速度,ΔT为所述MEMS陀螺的采样周期,δk是所述MEMS陀螺在k时刻的角加速度,ν1,k、ν2,k是零均值的高斯白噪声信号,用于表征过程噪声;
定义卡尔曼滤波器k时刻的状态量Xk=[wk ak]T,则卡尔曼滤波器的状态方程如下:
Xk=φk|k-1Xk-1+νk
卡尔曼滤波器的测量方程为:
Zk=HkXk+εk
其中,Hk=[1 0]为系统观测矩阵,εk是与ν1,k、ν2,k不相关的零均值高斯白噪声信号,用于表征测量噪声。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492935.8A CN112632454B (zh) | 2020-12-17 | 2020-12-17 | 一种基于自适应卡尔曼滤波算法的mems陀螺滤波方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011492935.8A CN112632454B (zh) | 2020-12-17 | 2020-12-17 | 一种基于自适应卡尔曼滤波算法的mems陀螺滤波方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112632454A true CN112632454A (zh) | 2021-04-09 |
CN112632454B CN112632454B (zh) | 2024-10-11 |
Family
ID=75316671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011492935.8A Active CN112632454B (zh) | 2020-12-17 | 2020-12-17 | 一种基于自适应卡尔曼滤波算法的mems陀螺滤波方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112632454B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113665849A (zh) * | 2021-09-29 | 2021-11-19 | 长光卫星技术有限公司 | 一种ekf滤波算法与神经网络联合的自主相位控制方法 |
CN114440926A (zh) * | 2022-01-18 | 2022-05-06 | 武汉元生创新科技有限公司 | 一种陀螺仪检测量程扩展方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104596514A (zh) * | 2015-01-12 | 2015-05-06 | 东南大学 | 加速度计和陀螺仪的实时降噪系统和方法 |
CN104729492A (zh) * | 2013-12-18 | 2015-06-24 | 广西大学 | 一种基于卡尔曼滤波的光纤陀螺仪信号处理方法 |
CN108120452A (zh) * | 2017-12-21 | 2018-06-05 | 吉林大学 | Mems陀螺仪动态数据的滤波方法 |
US20190129044A1 (en) * | 2016-07-19 | 2019-05-02 | Southeast University | Cubature Kalman Filtering Method Suitable for High-dimensional GNSS/INS Deep Coupling |
CN110132271A (zh) * | 2019-01-02 | 2019-08-16 | 中国船舶重工集团公司第七0七研究所 | 一种自适应卡尔曼滤波姿态估计算法 |
-
2020
- 2020-12-17 CN CN202011492935.8A patent/CN112632454B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104729492A (zh) * | 2013-12-18 | 2015-06-24 | 广西大学 | 一种基于卡尔曼滤波的光纤陀螺仪信号处理方法 |
CN104596514A (zh) * | 2015-01-12 | 2015-05-06 | 东南大学 | 加速度计和陀螺仪的实时降噪系统和方法 |
US20190129044A1 (en) * | 2016-07-19 | 2019-05-02 | Southeast University | Cubature Kalman Filtering Method Suitable for High-dimensional GNSS/INS Deep Coupling |
CN108120452A (zh) * | 2017-12-21 | 2018-06-05 | 吉林大学 | Mems陀螺仪动态数据的滤波方法 |
CN110132271A (zh) * | 2019-01-02 | 2019-08-16 | 中国船舶重工集团公司第七0七研究所 | 一种自适应卡尔曼滤波姿态估计算法 |
Non-Patent Citations (2)
Title |
---|
JIANG, XW ,MA, L,CAO, J,ZHANG, XY,XIE, XW, JIN, YF,SHI, GY: "Research of On-Line Modeling and Real-Time Filtering for MEMS Gyroscope Random Noise", 2017 IEEE INTERNATIONAL CONFERENCE ON REAL-TIME COMPUTING AND ROBOTICS (RCAR), 31 July 2017 (2017-07-31) * |
李鲁明;赵鲁阳;唐晓红;何为;李凤荣;: "基于改进卡尔曼滤波的陀螺仪误差补偿算法", 传感技术学报, no. 04, 27 April 2018 (2018-04-27) * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113665849A (zh) * | 2021-09-29 | 2021-11-19 | 长光卫星技术有限公司 | 一种ekf滤波算法与神经网络联合的自主相位控制方法 |
CN114440926A (zh) * | 2022-01-18 | 2022-05-06 | 武汉元生创新科技有限公司 | 一种陀螺仪检测量程扩展方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112632454B (zh) | 2024-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020087845A1 (zh) | 基于gpr与改进的srckf的sins初始对准方法 | |
CN108225337B (zh) | 基于sr-ukf滤波的星敏感器和陀螺组合定姿方法 | |
WO2018014602A1 (zh) | 适于高维gnss/ins深耦合的容积卡尔曼滤波方法 | |
CN106772524B (zh) | 一种基于秩滤波的农业机器人组合导航信息融合方法 | |
CN108507568B (zh) | 补偿温度漂移误差的方法、装置和组合导航系统 | |
CN101982732B (zh) | 一种基于esoqpf和ukf主从滤波的微小卫星姿态确定方法 | |
CN107063245B (zh) | 一种基于5阶ssrckf的sins/dvl组合导航滤波方法 | |
CN109507706B (zh) | 一种gps信号丢失的预测定位方法 | |
CN112632454A (zh) | 一种基于自适应卡尔曼滤波算法的mems陀螺滤波方法 | |
CN107339987B (zh) | 一种基于函数迭代积分的刚体姿态解算方法 | |
CN110174123B (zh) | 一种磁传感器实时标定方法 | |
WO2024016369A1 (zh) | 面向桥梁变形监测的gnss和加速度计实时融合算法 | |
JPH06510114A (ja) | センサーシステムの目盛り定めの為の装置と方法 | |
CN108562290B (zh) | 导航数据的滤波方法、装置、计算机设备及存储介质 | |
CN108508463B (zh) | 基于Fourier-Hermite正交多项式扩展椭球集员滤波方法 | |
CN107830872A (zh) | 一种舰船捷联惯性导航系统自适应初始对准方法 | |
CN116007620A (zh) | 一种组合导航滤波方法、系统、电子设备及存储介质 | |
CN111649747A (zh) | 一种基于imu的自适应ekf姿态测量改进方法 | |
CN111126466A (zh) | 一种多源pwv数据融合方法 | |
CN114139109A (zh) | 一种目标跟踪方法、系统、设备、介质及数据处理终端 | |
CN112284388B (zh) | 一种无人机多源信息融合导航方法 | |
CN113432612A (zh) | 飞行体的导航方法、装置及系统 | |
CN110186483B (zh) | 提高惯性制导航天器落点精度的方法 | |
CN109655057B (zh) | 一种六推无人机加速器测量值的滤波优化方法及其系统 | |
CN116952224A (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 | ||
CB02 | Change of applicant information |
Country or region after: China Address after: No. 1299, Mingxi Road, Beihu science and Technology Development Zone, Changchun City, Jilin Province Applicant after: Changguang Satellite Technology Co.,Ltd. Address before: No. 1299, Mingxi Road, Beihu science and Technology Development Zone, Changchun City, Jilin Province Applicant before: CHANG GUANG SATELLITE TECHNOLOGY Co.,Ltd. Country or region before: China |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant |