CN110824988B - 一种基于1553b总线冗余的姿控输出信号表决方法 - Google Patents
一种基于1553b总线冗余的姿控输出信号表决方法 Download PDFInfo
- Publication number
- CN110824988B CN110824988B CN201911077229.4A CN201911077229A CN110824988B CN 110824988 B CN110824988 B CN 110824988B CN 201911077229 A CN201911077229 A CN 201911077229A CN 110824988 B CN110824988 B CN 110824988B
- Authority
- CN
- China
- Prior art keywords
- attitude control
- instruction data
- cpu
- control instruction
- received
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0421—Multiprocessor system
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24182—Redundancy
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Hardware Redundancy (AREA)
- Safety Devices In Control Systems (AREA)
Abstract
一种基于1553B总线冗余的姿控输出信号表决方法,首先控制姿态控制执行机构内部各CPU分别向其它内部CPU周期发送工作状态信息,并判断姿态控制执行机构内部各个CPU的通信是否正常,然后根据各CPU接收的姿控指令数据、通信情况判断姿控指令数据的有效性,当三路姿控指令数据均有效时,将中间值作为姿控输出信号,当两路有效时,将均值作为姿控输出信号,当一路有效时,延时K1毫秒其它两路均通信异常,直接执行接收到的姿控指令数据,否则等待下一周期完成姿控输出信号表决。本发明方法解决了基于1553B总线通信的三冗余火箭姿态控制系统中姿态输出信号冗余表决处理的问题,达到了可靠、容错的工程应用效果。
Description
技术领域
本发明涉及运载火箭控制系统设计领域,具体涉及一种基于三套1553B总线冗余的姿控输出信号表决方法。
背景技术
新一代运载火箭控制系统采用三套独立的1553B总线进行控制信息和遥测信息的传输;控制系统各单机采用三冗余设计,即每个单机均有三个总线接口和三个处理单元,通过1553B总线实现互联,每个处理器对应一套单独的1553B总线。
如图1所示为控制系统单机三冗余设计示意图,在三冗余控制系统中,箭载计算机作为1553B总线的总线控制终端(简称BC),周期性的从三套总线上分别采集惯组、速率陀螺等姿态、位置传感器信息,箭载计算机的3个CPU分别进行导航、姿控计算,并将计算得到的姿态控制指令信号通过总线发送给姿态控制执行机构,姿态控制执行机构作为远程终端(简称RT)。各单机内部CPU通过内部总线进行通信,实现单机内部各处理器的数据交互。
但是在姿控指令数据执行过程中可能存在以下故障情况,导致错误执行姿态控制指令信号:1)箭载计算机CPU控制指令数据发送错误;2)箭载计算机故障无法发送姿控指令数据;3)箭载计算机发送姿控指令不同步的情况;4)箭载计算机发送姿控指令不一致的情况;4)总线通路故障的情况;5)姿态控制执行机构CPU故障的情况;6)姿态控制执行机构内一个CPU内部通信故障,无法接收其它两个CPU信号。
发明内容
本发明针对运载火箭三冗余控制系统指令执行过程中可能存在的故障情况,提出一种基于三套1553B总线冗余的姿控输出信号表决方法,实现正确执行姿态控制指令信号的目的。
本发明的技术解决方案是:一种基于1553B总线冗余的姿控输出信号表决方法,包括如下步骤:
(1)控制姿态控制执行机构内部的各个CPU通过内部总线分别向其它2个内部CPU周期性发送工作状态信息,其中,姿态控制执行机构内部设有3个CPU,3个CPU分别通过对应的1553B总线接收箭载计算机发送的姿控指令;
(2)判断姿态控制执行机构内部各个CPU的通信是否正常;
(3)判断姿态控制执行机构内部各个CPU接收到的姿控指令数据是否可靠,当CPU通信正常,且接收到的姿控指令数据可靠时,当前CPU接收的姿控指令数据有效;
(4)判断姿态控制执行机构内部每个CPU接收到的各自的三路姿控指令数据,当三路姿控指令数据均有效时,转入步骤(5),当两路姿控指令数据有效时,转入步骤(6),当一路的指令数据有效时,转入步骤(7);
(5)对姿控指令数据进行三取二表决,将中间值作为姿控输出信号;
(6)对姿控指令数据进行平均处理,将均值作为姿控输出信号;
(7)若延时K1毫秒其它两路均通信异常时,则直接执行接收到的姿控指令数据,否则进入下一处理周期,其中,K1为正数;
(8)在每个姿控输出信号周期内,每个CPU均执行一次步骤(1)~步骤(7),直至完成全部姿控输出信号表决。
所述步骤(1)中的工作状态信息包括与当前CPU对应的1553B总线通信是否正常、当前CPU工作是否正常,工作状态信息发送频率不小于姿控指令数据的发送频率。
所述步骤(2)中,如果姿态控制执行机构内部某个CPU连续K2时间未收到另1个CPU的工作状态信息,或者连续K2时间收到的另1个CPU的工作状态信息与正常值不符,则判断另1个CPU的通信路数通信异常,其中,K2不小于姿控指令发送周期。
所述步骤(3)中判断姿态控制执行机构内部各个CPU接收到的姿控指令数据是否可靠的方法为:
(31)判断CPU是否收到箭载计算机通过1553B总线发送的姿控指令数据;
(32)判断CPU是否收到箭载计算机通过1553B总线发送的心跳信号;
(33)若CPU收到姿控指令数据、心跳信号,转入步骤(34),否则转入步骤(35);
(34)计算接收的姿控指令数据的校验码,若计算得到的校验码与姿控指令数据自带校验码值不一致,则转入步骤(35),否则转入步骤(36);
(35)判定当前CPU未收到可靠的姿控指令数据,并转入步骤(37);
(36)判定当前CPU收到的姿控指令数据可靠,将姿控指令数据通过内部总线发送给其它2个CPU,转入步骤(37);
(37)判断当前CPU从其它CPU接收的姿控指令的校验码,若从其它CPU接收的姿控指令计算得到的校验码与从其它CPU接收的姿控指令数据自带的校验码值不一致,则判定其它CPU未收到可靠姿控指令,否则认为其他CPU的姿控指令数据可靠,进而完成接收到的各个CPU发送的指令数据是否可靠的判断。
所述步骤(4)中三取二表决的方法为:
(41)将三路有效指令数据分别记为Dc1(nT)、Dc2(nT)、Dc3(nT),对Dc1(nT)、Dc2(nT)和Dc3(nT)按大小进行排序,得到D1≥D2≥D3,其中,T表示控制周期,nT表示第n个周期;
(42)将中间值Dc(nT)=D2作为姿控指令数据,完成表决处理。
所述的K1为60ms,K2为40ms。
本发明与现有技术相比的优点在于:
(1)本发明按照姿控输出信号表决方法的先后步骤,将姿态控制执行机构各种可能发生的情况归纳总结后,提出流程化,自动化的处理步骤,最终执行输出的姿态控制指令安全可靠,可信度高;
(2)本发明采用姿控指令数据转发措施,适应CPU通信正确下无法收到有效姿控数据的情况,能够适应故障模式的组合情况;
(3)本发明采用多重判断和校验措施,通信可靠性和数据可靠性判断,保证指令数据可信度;
(4)本发明方法考虑正常工作模式、一度故障模式,两度故障模式,灵活方便、容错性强。
附图说明
图1为现有控制系统单机三冗余设计示意图;
图2为本发明方法步骤示意图;
图3为本发明方法中指令数据可靠性流程示意图。
具体实施方式
本发明针对运载火箭三冗余控制系统指令执行过程中可能存在的故障情况,提出一种基于三套1553B总线冗余的姿控输出信号表决方法,实现正确执行姿态控制指令信号的目的。下面结合附图对本发明方法进行详细的解释和说明,如图2所示是本发明方法步骤示意图,如图3所示为本发明方法中指令数据可靠性流程示意图。
以CPU_A、CPU_B、CPU_C区分三个CPU,以1553B_A、1553B_B、1553B_C区分三套1553B总线。控制系统箭载计算机总线控制器发送姿态控制指令数据周期为20毫秒。以下以CPU_A处理流程为例。本发明提出的基于三套1553B总线冗余的姿控输出信号表决方法,具体实施步骤如下:
1、姿态控制执行机构各CPU通过内部总线向其它两个CPU周期性发送工作状态信息
工作状态信息包含本套1553B总线通信是否正常,以0xAA表示正常状态,0x55表示异常状态,其余数据表示无效状态。CPU工作是否正常的信息,以0xBB表示正常状态;0x44表示异常状态,其余数据表示无效状态。发送CPU工作状态信息用以表征本路CPU工作状态是否正常,同时也表征两两CPU之间内部通信是否正常;内部总线发送工作状态信息频率为1ms。对于判断而言,工作状态信息的内容不等于正常状态,则判定为通信异常。
2、姿态控制执行机构各CPU之间通信正常与否进行判断
姿态控制执行机构的CPU如果连续K2毫秒未收到其它CPU的工作状态信息,则认为对方CPU所处的通信路数通信异常,K2典型值为40。或者连续K2毫秒收到其它CPU的工作状态信息与正常值不符,则认为对方CPU所处的通信路数通信异常。
以CPU_A为例,CPU_A连续40毫秒未收到CPU_B的工作状态信息,或连续40毫秒收到CPU_B的工作状态信息为异常信息,CPU_A认为B套系统总线通信异常。CPU_A连续40毫秒未收到CPU_C的工作状态信息,或连续40毫秒收到CPU_C的工作状态信息为异常信息,CPU_A认为C套系统通信异常。
姿态控制执行机构各CPU通过综合分析其它2个CPU的工作状态信息,判别出与其它2个CPU通信是否正常;各个CPU之间通信默认值为正常工作状态;判断与某一路CPU通信异常后,若后续过程该CPU通信恢复正常,则判定该CPU所处的通信路数正常。
3、姿态控制执行机构各CPU对接收的指令数据可靠性进行判别处理
姿态控制执行机构姿控指令数据的周期为10ms。
步骤3.1:对指令周期内CPU是否收到姿控指令数据进行判断。
步骤3.2:对CPU是否收到1553B总线上总线控制器发送的心跳信号进行判断。
步骤3.3:同时满足步骤3.1,步骤3.2的情况下,对CPU从本套1553B总线接收的姿控指令数据的正确性进行校验判断,进入步骤3.4,否则进入步骤3.5。
步骤3.4:计算姿控指令数据的校验码,当计算得到的校验码值与1553B总线姿控指令数据中自带的校验码值不一致时,进入步骤3.5;当计算得到的校验码值与1553B总线姿控指令数据中自带的校验码值一致时,进入步骤3.6。
步骤3.5:判定该CPU所处的通信路数未收到可靠的姿控指令数据,进入步骤3.7;
步骤3.6:判定该CPU所处的通信路数收到的姿控指令数据可靠,将姿控指令数据通过姿态控制执行机构内部总线发送给其它2个CPU,进入步骤3.7;
步骤3.7:对本CPU从其它CPU接收的姿控指令数据的校验码进行判断,当计算得到的校验码值与姿控指令数据中自带的校验码值不一致时,则认为对方CPU处所的通信路数未收到可靠姿控指令;当计算得到的校验码值与姿控指令数据中自带的校验码值一致时,则认为对方CPU处所的通信路数的姿控指令数据可靠。
以CPU_A为例,在收到有效的姿控指令数据情况下,将姿控指令数据通过姿态控制执行机构内部总线发送给CPU_B、CPU_C。CPU_A对从CPU_B、CPU_C通过内部总线发给CPU_A的姿控指令可靠性进行判断。若从CPU_B发给CPU_A的姿控指令校验码值正确,则认为B套系统收到可靠的姿控指令,其它情况视为B套系统未收到可靠的姿控指令;若从CPU_C发给CPU_A的姿控指令校验码值正确,则认为C套系统收到可靠的姿控指令,其它情况判定C套系统未收到可靠的姿控指令。
4、姿态控制执行机构三路指令数据均有效的情况下对指令数据进行三取二表决处理
当前CPU同时满足CPU路数通信正常和姿控指令数据可靠的条件时,判定接收的指令数据有效;否则判定接收到指令数据无效。
三取二表决处理处理过程如下:
步骤4.1:三路有效指令数据分别为:Dc1(nT)、Dc2(nT)、Dc3(nT),其中T表示控制周期,nT表示第n个周期,对Dc1(nT)、Dc2(nT)和Dc3(nT)按大小进行排序,得到D1≥D2≥D3;
步骤4.2:表决处理得到最终执行输出的姿控指令数据Dc(nT)=D2;
设定A套系统收到的姿控指令为2、B套系统收到姿控指令为4,C套系统收到姿控指令为5。则:
Dc1(nT)=2、Dc2(nT)=4、Dc3(nT)=5
Dc(nT)=D2=4。
最终执行输出的姿控指令数据为4。
5、姿态控制执行机构两路指令数据有效的情况下对指令数据进行平均处理。
姿态控制执行机构两路有效指令数据平均处理过程如下:设定两路有效指令数据分别为Dc1(nT)、Dc2(nT),最终执行输出的姿控指令数据Dc(nT)计算如下:
Dc(nT)=(Dc1(nT)+Dc2(nT))/2
设定A路收到的姿控指令数据为2,B路收到姿控指令数据为4,C路未收到有效指令。则
Dc(nT)=(Dc1(nT)+Dc2(nT))/2=3
最终执行输出的姿控指令数据为3。
6、姿态控制执行机构在一路的指令数据有效情况下延时K1毫秒后且判断其它两路通信异常条件下,直接执行接收到的指令数据。
姿态控制执行机构延时K1毫秒取值必须大于指令发送周期,K1典型值为60;姿态控制执行机构在一路的指令数据有效条件下,如果延时未超过K1毫秒,或者当前处理周期无法判断出其它两路通信异常的情况,则进入下一处理周期再处理。
设定A套系统收到的姿控指令数据为2,在60毫秒内未收到CPU_B、CPU_C发给CPU_A的姿控指令,且其它两路通信异常,最终执行输出的姿控指令数据为2。若未超过60ms,则进入下一处理周期。若当前周期无法判断出其他两路均通信异常,则进入下一周期。
综上所述,本发明一种基于三套1553B总线冗余的姿控输出信号表决方法,按照姿控输出信号表决方法的先后步骤,将姿态控制执行机构各种可能发生的情况归纳总结后,提出流程化,自动化的处理步骤,实现输出准确可靠,尽可能多的故障模式,满足姿控指令数据控制可靠性和实时性的要求。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (2)
1.一种基于1553B总线冗余的姿控输出信号表决方法,其特征在于:包括如下步骤:
(1)控制姿态控制执行机构内部的各个CPU通过内部总线分别向其它2个内部CPU周期性发送工作状态信息,其中,姿态控制执行机构内部设有3个CPU,3个CPU分别通过对应的1553B总线接收箭载计算机发送的姿控指令;工作状态信息包括与当前CPU对应的1553B总线通信是否正常、当前CPU工作是否正常,工作状态信息发送频率不小于姿控指令数据的发送频率;
(2)判断姿态控制执行机构内部各个CPU的通信是否正常;如果姿态控制执行机构内部某个CPU连续K2时间未收到另1个CPU的工作状态信息,或者连续K2时间收到的另1个CPU的工作状态信息与正常值不符,则判断另1个CPU的通信路数通信异常,其中,K2不小于姿控指令发送周期;
(3)判断姿态控制执行机构内部各个CPU接收到的姿控指令数据是否可靠,当CPU通信正常,且接收到的姿控指令数据可靠时,当前CPU接收的姿控指令数据有效;判断姿态控制执行机构内部各个CPU接收到的姿控指令数据是否可靠的方法为:
(31)判断CPU是否收到箭载计算机通过1553B总线发送的姿控指令数据;
(32)判断CPU是否收到箭载计算机通过1553B总线发送的心跳信号;
(33)若CPU收到姿控指令数据、心跳信号,转入步骤(34),否则转入步骤(35);
(34)计算接收的姿控指令数据的校验码,若计算得到的校验码与姿控指令数据自带校验码值不一致,则转入步骤(35),否则转入步骤(36);
(35)判定当前CPU未收到可靠的姿控指令数据,并转入步骤(37);
(36)判定当前CPU收到的姿控指令数据可靠,将姿控指令数据通过内部总线发送给其它2个CPU,转入步骤(37);
(37)判断当前CPU从其它CPU接收的姿控指令的校验码,若从其它CPU接收的姿控指令计算得到的校验码与从其它CPU接收的姿控指令数据自带的校验码值不一致,则判定其它CPU未收到可靠姿控指令,否则认为其他CPU的姿控指令数据可靠,进而完成接收到的各个CPU发送的指令数据是否可靠的判断;
(4)判断姿态控制执行机构内部每个CPU接收到的各自的三路姿控指令数据,当三路姿控指令数据均有效时,转入步骤(5),当两路姿控指令数据有效时,转入步骤(6),当一路的指令数据有效时,转入步骤(7);
(5)对姿控指令数据进行三取二表决,将中间值作为姿控输出信号;
所述三取二表决的方法为:
(51)将三路有效指令数据分别记为Dc1(nT)、Dc2(nT)、Dc3(nT),对Dc1(nT)、Dc2(nT)和Dc3(nT)按大小进行排序,得到D1≥D2≥D3,其中,T表示控制周期,nT表示第n个周期;
(52)将中间值Dc(nT)=D2作为姿控指令数据,完成表决处理;
(6)对姿控指令数据进行平均处理,将均值作为姿控输出信号;
(7)若延时K1毫秒其它两路均通信异常时,则直接执行接收到的姿控指令数据,否则进入下一处理周期,其中,K1为正数;
(8)在每个姿控输出信号周期内,每个CPU均执行一次步骤(1)~步骤(7),直至完成全部姿控输出信号表决。
2.根据权利要求1所述的一种基于1553B总线冗余的姿控输出信号表决方法,其特征在于:所述的K1为60ms,K2为40ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911077229.4A CN110824988B (zh) | 2019-11-06 | 2019-11-06 | 一种基于1553b总线冗余的姿控输出信号表决方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911077229.4A CN110824988B (zh) | 2019-11-06 | 2019-11-06 | 一种基于1553b总线冗余的姿控输出信号表决方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110824988A CN110824988A (zh) | 2020-02-21 |
CN110824988B true CN110824988B (zh) | 2021-02-09 |
Family
ID=69552889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911077229.4A Active CN110824988B (zh) | 2019-11-06 | 2019-11-06 | 一种基于1553b总线冗余的姿控输出信号表决方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110824988B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112947041A (zh) * | 2021-02-18 | 2021-06-11 | 上海航天控制技术研究所 | 一种高可靠的运载火箭前后端主机双冗余表决方法 |
CN113008270B (zh) * | 2021-02-22 | 2022-12-27 | 上海航天控制技术研究所 | 一种基于三总线接口的十表光纤惯组合成精度测试方法 |
CN113960920A (zh) * | 2021-09-15 | 2022-01-21 | 中国航空工业集团公司西安飞机设计研究所 | 一种1553b总线双余度总线控制器切换方法 |
CN115946875B (zh) * | 2023-01-28 | 2023-07-14 | 北京星途探索科技有限公司 | 一种箭载计算机决策方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778750B2 (ja) * | 1985-12-24 | 1995-08-23 | 日本電気株式会社 | 高信頼性コンピュータ方式 |
CN104238435B (zh) * | 2014-05-27 | 2017-01-18 | 北京航天自动控制研究所 | 一种三冗余控制计算机及容错控制系统 |
CN104199440B (zh) * | 2014-08-20 | 2017-05-03 | 中国运载火箭技术研究院 | 一种四机三总线冗余异构gnc系统 |
CN108413984A (zh) * | 2018-02-02 | 2018-08-17 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种三余度机载陀螺信号余度管理方法 |
CN108983682B (zh) * | 2018-09-12 | 2020-04-21 | 上海航天计算机技术研究所 | 一种基于双总线的冗余表决控制方法 |
-
2019
- 2019-11-06 CN CN201911077229.4A patent/CN110824988B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110824988A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110824988B (zh) | 一种基于1553b总线冗余的姿控输出信号表决方法 | |
EP0760973B1 (en) | Method and apparatus for implementing a databus voter to select the command signals from one of several redundant asynchronous digital processing units | |
CN100375044C (zh) | 信息处理系统及其控制方法、控制程序以及冗余控制装置 | |
US9563523B2 (en) | Architecture for scalable fault tolerance in integrated fail-silent and fail-operational systems | |
US6820213B1 (en) | Fault-tolerant computer system with voter delay buffer | |
EP2924578B1 (en) | Monitor processor authentication key for critical data | |
CN106573626B (zh) | 用于处理用于车辆的行驶功能的数据的方法 | |
CN110958073B (zh) | 一种基于三套1553b总线冗余的时间同步表决方法 | |
WO2023045067A1 (zh) | 飞控单元、飞行器控制系统、方法及飞行器 | |
EP2482149B1 (en) | Electronic control unit | |
US20220009353A1 (en) | Security system and method for operating a security system | |
JPH10513286A (ja) | プログラム制御回路の機能をモニタするための処理及び回路構成 | |
CN108983682B (zh) | 一种基于双总线的冗余表决控制方法 | |
JPH08314744A (ja) | フォールトトレラントシステム | |
US11080161B2 (en) | Control device, and processing method in event of failure in control device | |
JP4477739B2 (ja) | 冗長系情報処理システム | |
JP2003097344A (ja) | 車両用電子制御装置 | |
JPH0799516B2 (ja) | 計算機制御装置の多重系制御方法 | |
JPS6020202A (ja) | 多重系制御システムのデ−タ管理方式 | |
JPS62226736A (ja) | 二重化システムのデ−タ等値化方法 | |
US11507478B2 (en) | Method for operating a redundant automation system | |
JP2003140704A (ja) | プロセス制御装置 | |
JP2654072B2 (ja) | 故障容認計算機装置 | |
JPS60245001A (ja) | 多重化制御装置 | |
JP2002108638A (ja) | マイクロコンピュータのエラー検出方法及びエラー検出回路及びマイクロコンピュータシステム |
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 |