技术领域technical field
本发明涉及电力系统数据分析领域,具体涉及一种基于面向对象的PSD潮流数据与稳定数据编辑和校正方法。The invention relates to the field of power system data analysis, in particular to an object-oriented PSD power flow data and stability data editing and correction method.
背景技术Background technique
PSD电力系统分析程序是由中国电力科学研究院开发的电力系统分析软件包,包含潮流、稳定、短路电流、小干扰计算分析等多个计算程序,广泛应用于电力系统分析、规划等领域。PSD power system analysis program is a power system analysis software package developed by China Electric Power Research Institute. It includes multiple calculation programs such as power flow, stability, short-circuit current, and small disturbance calculation and analysis. It is widely used in power system analysis, planning and other fields.
潮流数据和稳定数据是PSD分析计算的两大基础数据,其数据填写需按照卡片分别进行,使用时要分别填写元件对应的潮流数据、稳定数据、稳定计算输出部分,以线路元件为例:先打开潮流文件,填写线路卡(L卡)的两侧母线名称、两侧电压、平行码、正序参数等;然后打开稳定文件,对应填写线路零序卡(LO卡)的两侧母线名称、两侧电压、平行码、零序参数等;最后填写稳定计算输出部分,还要在稳定文件中再填写输出线路卡(L卡和LC卡),L卡和LC卡都需要再次填写线路两侧母线名称、两侧电压、平行码。线路两侧母线名称、两侧电压和平行码确定了线路的唯一性,上述四处卡片的名称和电压必须统一,如有不同则卡片无效。Power flow data and stability data are the two basic data for PSD analysis and calculation. The data filling needs to be carried out separately according to the card. When using it, it is necessary to fill in the power flow data, stability data, and stability calculation output corresponding to the component. Take the line component as an example: first Open the power flow file, fill in the names of the buses on both sides of the line card (L card), the voltage on both sides, parallel codes, positive sequence parameters, etc.; then open the stable file, and fill in the names of the buses on both sides of the line zero sequence card (LO card), Voltage on both sides, parallel code, zero-sequence parameters, etc.; finally fill in the output part of the stability calculation, and then fill in the output line card (L card and LC card) in the stability file. Both the L card and the LC card need to fill in the two sides of the line again Bus name, voltage on both sides, parallel code. The name of the bus on both sides of the line, the voltage on both sides and the parallel code determine the uniqueness of the line. The names and voltages of the above four cards must be unified. If they are different, the cards will be invalid.
传统数据填写过程操作重复,在大量数据录入过程效率低下,容易因人为错误导致同一元器件在不同卡片中参数不对应导致参数无效或错误,一些元器件的部分卡片或者卡片中的部分参数(如变压器的零序参数)允许缺失,一些元器件的部分参数存在缺省值(如线路的零序参数),因此一旦给定参数无效 或者错误,并不影响PSD开展计算,而且这种使用无效或者错误的参数进行计算的结果难以发觉,给计算工作带来巨大的隐患。The operation of the traditional data filling process is repetitive, and the efficiency of a large amount of data entry process is low. It is easy to cause the parameters of the same component in different cards to be inconsistent due to human error, resulting in invalid or wrong parameters. Some cards of some components or some parameters in the card (such as Zero-sequence parameters of transformers) are allowed to be missing, and some parameters of some components have default values (such as zero-sequence parameters of lines), so once the given parameters are invalid or wrong, it will not affect the calculation of PSD, and this use is invalid or It is difficult to detect the result of calculation with wrong parameters, which brings huge hidden dangers to the calculation work.
传统的参数填写方法全部是文本,需要人工解析,如稳定计算输出部分的输出选择,填写的参数为数字0-7,这8种类型表示是否输出到3种类型的文件,很不直观。The traditional method of filling in parameters is all text, which requires manual analysis. For example, in the output selection of the stable calculation output part, the parameters to be filled in are numbers 0-7. These 8 types indicate whether to output to 3 types of files, which is not intuitive.
本发明提出的基于面向对象变成思想完善了PSD数据编辑功能,通过采用面向对象思想,将PSD元器件的潮流参数、稳定参数、稳定计算输出部分通过控件形式提供给用户进行统一编辑,实现了潮流数据、稳定数据、稳定计算输出部分同步编辑和校正,避免了人为失误导致数据无效或者错误,增强了PSD数据的准确性,提高了PSD数据的录入效率和准确性。The object-oriented idea proposed by the present invention improves the PSD data editing function. By adopting the object-oriented idea, the power flow parameters, stable parameters, and stable calculation output parts of PSD components are provided to users in the form of controls for unified editing. The tidal current data, stable data, and stable calculation output are edited and corrected synchronously, which avoids data invalidation or errors caused by human errors, enhances the accuracy of PSD data, and improves the efficiency and accuracy of PSD data entry.
发明内容Contents of the invention
本发明的发明目的在于:针对现有技术的不足,提供一种基于面向对象的PSD潮流数据与稳定数据编辑和校正方法,本发明实现了潮流数据、稳定数据、稳定计算机输出部分同步编辑和校正提高了PSD数据的录入效率和准确性。The purpose of the present invention is to provide a method for editing and correcting object-oriented PSD power flow data and stable data based on the deficiencies of the prior art. The present invention realizes synchronous editing and correction of power flow data, stable data, and stable computer output Improve the efficiency and accuracy of PSD data entry.
为解决上述技术问题,本发明采用的技术方案是:In order to solve the problems of the technologies described above, the technical solution adopted in the present invention is:
一种基于面向对象的PSD潮流数据与稳定数据编辑和校正方法,包括以下步骤:An object-oriented method for editing and correcting PSD power flow data and stability data, comprising the following steps:
(1)创建元器件的对象,对象的属性有潮流数据与稳定数据参数,对象的方法包含属性转PSD数据,PSD数据转属性,新建元器件、添加元器件到稳定计算结果输出部分、检测元器件错误、元器件校正;(1) Create an object of components. The properties of the object include power flow data and stable data parameters. The methods of the object include converting properties to PSD data, converting PSD data to properties, creating new components, adding components to the output part of stable calculation results, and detecting components. Device error, component correction;
(2)提供人机交互界面给用户编辑;(2) Provide a human-computer interaction interface for users to edit;
(3)编辑潮流数据,查找稳定数据,存在对应稳定数据,将PSD数据转对象方法,不存在对应稳定数据则指定对应稳定数据并读入,再将PSD数据转对 象;(3) Edit trend data, search for stable data, if there is corresponding stable data, transfer PSD data to object method, if there is no corresponding stable data, specify corresponding stable data and read in, and then transfer PSD data to object;
(4)编辑步骤3所得的对象数据,检测数据格式,格式不正确返回继续编辑,格式正确,再检查有无重复卡片,有重复卡片返回继续编辑,无重复卡片,则将对象转成PSD数据,生成潮流数据卡片,找到对应的位置更新潮流数据;(4) Edit the object data obtained in step 3, check the data format, if the format is incorrect, return to continue editing, if the format is correct, check whether there are duplicate cards, return to continue editing if there are duplicate cards, and convert the object into PSD data if there are no duplicate cards , generate a power flow data card, and find the corresponding location to update the power flow data;
(5)编辑稳定数据,查找潮流数据,存在对应潮流数据,将PSD数据转对象,不存在对应潮流数据则指定对应潮流数据并读入,再将PSD数据转对象;(5) Edit stable data, search power flow data, if there is corresponding power flow data, transfer the PSD data to the object, if there is no corresponding power flow data, specify the corresponding power flow data and read it in, and then transfer the PSD data to the object;
(6)将步骤5)PSD数据输出稳定数据,生成稳定计算输出稳定数据卡片,检索稳定文件是否存在所述稳定数据卡片,不存在,则插入稳定数据卡片,更新稳定数据,将步骤5)对象数据直接生成稳定数据卡片,检索是否存在该卡片,不存在,则直接插入稳定数据卡片,更新稳定数据文件,存在稳定数据卡片,则更新稳定数据卡片,找到对应的位置,更新稳定数据。(6) Output stable data with step 5) PSD data, generate stable calculation and output stable data card, search whether stable file exists described stable data card, do not exist, then insert stable data card, update stable data, step 5) object The data directly generates a stable data card, and retrieves whether the card exists. If it does not exist, insert the stable data card directly, update the stable data file, and if there is a stable data card, update the stable data card, find the corresponding position, and update the stable data.
进一步的,所述创建元器件方法为将潮流数据参数按照潮流数据格式存入潮流数据文件,将稳定数据参数按照稳定数据格式存入稳定数据文件。Further, the method for creating components is to store the power flow data parameters into the power flow data file according to the power flow data format, and store the stable data parameters into the stable data file according to the stable data format.
进一步的,所述新建元器件方法,提供包含元器件对象属性的人机交互界面供用户编辑,编辑完成后将对象属性转为PSD数据卡片保存。Further, the method for creating a new component provides a human-computer interaction interface including component object attributes for users to edit, and after the editing is completed, the object attributes are converted into PSD data cards for storage.
进一步的,所述元器件校正方法为,检查数据卡片格式,检查信息是否为空,检查约束条件。Further, the component correction method includes checking the format of the data card, checking whether the information is empty, and checking the constraints.
进一步的,所述方法新建元器件包括以下步骤:①选择元器件类型,提供给用户填写参数;②用户对数据进行编辑,程序默认给定卡片插入位置,所述位置可以人工更改;③编辑完成后将属性转为PSD数据;④、将步骤③的结果存入给潮流数据,检索稳定数据中是否存在对应卡片,存在则更新数据,不存 在则在相对应位置插入数据卡。Further, the method for creating a new component includes the following steps: ① select the type of component and provide it to the user to fill in the parameters; ② the user edits the data, and the program defaults to the card insertion position, and the position can be manually changed; ③ the editing is completed Finally, convert the attributes into PSD data; ④, store the results of step ③ into the power flow data, search whether there is a corresponding card in the stable data, update the data if it exists, or insert a data card at the corresponding position if it does not exist.
综上所述,由于采用了上述技术方案,本发明的有益效果是:In summary, owing to adopting above-mentioned technical scheme, the beneficial effect of the present invention is:
本发明采用面向对象思想,将潮流数据、稳定数据以及稳定计算输出部分通过人机页面形式提供给用户进行统一编辑,实现了潮流数据、稳定数据、稳定计算输出部分同步编辑与校正,减少人为失误导致数据无效或者错误,增强了PSD数据的准确性。The present invention adopts the object-oriented thought, and provides the tidal current data, stable data, and stable calculation output parts to the user for unified editing in the form of a man-machine page, realizes synchronous editing and correction of the tidal current data, stable data, and stable calculation output parts, and reduces human errors Lead to invalid or wrong data, enhancing the accuracy of PSD data.
附图说明Description of drawings
图1是本发明工作流程图;Fig. 1 is a work flow diagram of the present invention;
图2是本发明各个数据的参数结构图。Fig. 2 is a parameter structure diagram of each data in the present invention.
具体实施方式Detailed ways
下面结合附图对本发明的具体实施方式作进一步详细说明,其中所有附图中相同的标号代表相同或类似的部件,说明书中的附图为简化形式,仅供理解本发明的具体结构。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能限制本发明的保护范围。The specific embodiment of the present invention will be described in further detail below in conjunction with the drawings, wherein the same symbols in all the drawings represent the same or similar components, and the drawings in the description are in simplified form and are only for understanding the specific structure of the present invention. The following examples are only used to illustrate the technical solutions of the present invention more clearly, but not to limit the protection scope of the present invention.
如图1所示:一种基于面向对象的PSD潮流数据与稳定数据编辑和校正方法:As shown in Figure 1: an object-oriented editing and correction method for PSD power flow data and stability data:
(1)创建元器件的对象,对象的属性有潮流数据与稳定数据参数,对象的方法包含属性转PSD数据,PSD数据转属性,新建元器件、添加元器件到稳定计算结果输出部分、检测元器件错误、元器件校正;(1) Create an object of components. The properties of the object include power flow data and stable data parameters. The methods of the object include converting properties to PSD data, converting PSD data to properties, creating new components, adding components to the output part of stable calculation results, and detecting components. Device error, component correction;
(2)提供人机交互界面给用户编辑;(2) Provide a human-computer interaction interface for users to edit;
(3)编辑潮流数据,查找有无稳定数据,存在对应稳定数据,将PSD数据转对象,不存在对应稳定数据则指定对应稳定数据并读入,再将PSD数据转对象;(3) Edit the tidal current data, find whether there is stable data, if there is corresponding stable data, transfer the PSD data to the object, if there is no corresponding stable data, specify the corresponding stable data and read in, and then transfer the PSD data to the object;
(4)编辑步骤3所得的对象数据,检测数据格式,格式不正确返回继续编 辑,格式正确,再检查有无重复卡片,有重复卡片返回继续编辑,无重复卡片,则将对象转成PSD数据,生成潮流数据卡片,找到对应的位置更新潮流数据;(4) Edit the object data obtained in step 3, check the data format, if the format is incorrect, return to continue editing, if the format is correct, then check whether there are duplicate cards, return to continue editing if there are duplicate cards, and convert the object to PSD if there are no duplicate cards data, generate a tidal current data card, and find the corresponding location to update the tidal current data;
(5)编辑稳定数据,查找潮流数据,存在对应潮流数据,将PSD数据转对象,不存在对应潮流数据则指定对应潮流数据并读入,再将PSD数据转对象;(5) Edit stable data, search power flow data, if there is corresponding power flow data, transfer the PSD data to the object, if there is no corresponding power flow data, specify the corresponding power flow data and read it in, and then transfer the PSD data to the object;
(6)将步骤5)PSD数据输出稳定数据,生成稳定计算输出稳定数据卡片,检索稳定文件是否存在所述稳定数据卡片,不存在,则插入稳定数据卡片,更新稳定数据,将步骤5)对象数据直接生成稳定数据卡片,检索是否存在该卡片,不存在,则直接插入稳定数据卡片,更新稳定数据文件,存在稳定数据卡片,则更新稳定数据卡片,找到对应的位置,更新稳定数据。(6) Output stable data with step 5) PSD data, generate stable calculation and output stable data card, search whether stable file exists described stable data card, do not exist, then insert stable data card, update stable data, step 5) object The data directly generates a stable data card, and retrieves whether the card exists. If it does not exist, insert the stable data card directly, update the stable data file, and if there is a stable data card, update the stable data card, find the corresponding position, and update the stable data.
进一步的,所述创建元器件方法为将潮流数据参数按照潮流数据格式存入潮流数据文件,将稳定数据参数按照稳定数据格式存入稳定数据文件。Further, the method for creating components is to store the power flow data parameters into the power flow data file according to the power flow data format, and store the stable data parameters into the stable data file according to the stable data format.
进一步的,所述新建元器件方法,提供包含元器件对象属性的人机交互界面供用户编辑,编辑完成后将对象属性转为PSD数据卡片保存。Further, the method for creating a new component provides a human-computer interaction interface including component object attributes for users to edit, and after the editing is completed, the object attributes are converted into PSD data cards for storage.
进一步的,所述元器件校正方法为,检查数据卡片格式,检查信息是否为空,检查约束条件。Further, the component correction method includes checking the format of the data card, checking whether the information is empty, and checking the constraints.
进一步的,所述方法新建元器件包括以下步骤:①选择元器件类型,提供给用户填写参数;②用户对数据进行编辑,程序默认给定卡片插入位置,所述位置可以人工更改;③编辑完成后将属性转为PSD数据;④、将步骤③的结果存入给潮流数据,检索稳定数据中是否存在对应卡片,存在则更新数据,不存在则在相对应位置插入数据卡。Further, the method for creating a new component includes the following steps: ① select the type of component and provide it to the user to fill in the parameters; ② the user edits the data, and the program defaults to the card insertion position, and the position can be manually changed; ③ the editing is completed Finally, convert the attributes into PSD data; ④, store the results of step ③ into the trend data, search whether there is a corresponding card in the stable data, update the data if it exists, or insert a data card at the corresponding position if it does not exist.
以下为采用上述技术方案进行具体操作:The following is the specific operation of adopting the above-mentioned technical scheme:
以编辑一条线路的A端母线名并添加到稳定计算输出为例:Take editing the A-side bus name of a line and adding it to the stable calculation output as an example:
1)从潮流数据文件2015D.dat中读取第3965行线路参数卡 1) Read the 3965th line parameter card from the power flow data file 2015D.dat
L BAIS21 230.GAOWA22 230.2 1782.00076.00903.0160316.1 L BAIS21 230.GAOWA22 230.2 1782.00076.00903.0160316.1
选择稳定数据文件2015D.swi,自动读入第24080行数据Select the stable data file 2015D.swi, and automatically read in the 24080th line of data
LO BAIS21 230.GAOWA22 230.1 0.0022.0271 0.0159 LO BAIS21 230.GAOWA22 230.1 0.0022.0271 0.0159
该文件中没有对应的输出卡片There is no corresponding output card in the file
2)将上述两个卡片转为线路属性。2) Convert the above two cards to line attributes.
3)校对现有值是否存在格式错误或不满足约束条件的错误数据,将错误数据提交用户处理。3) Check whether the existing value has format error or wrong data that does not meet the constraints, and submit the wrong data to the user for processing.
4)创建一个窗口,将属性在窗口中显示,供用户编辑,编辑完后如图2所示,将母线名称A改为BAI S22,勾选了6个输出选项。检索2015D.swi中现有的L卡行号,获取最后一行为34526,设置新建L卡的行号为34526,LC卡的行号为34567。4) Create a window and display the attributes in the window for users to edit. After editing, as shown in Figure 2, change the bus name A to BAI S22, and check 6 output options. Retrieve the existing L card line number in 2015D.swi, get the last line 34526, set the new L card line number to 34526, and the LC card line number to 34567.
5)将属性转变为PSD卡片,其中潮流数据卡片1张:5) Change attributes into PSD cards, including 1 trend data card:
L BAI S22 230.GAOWA22 230.2 1782.00076.00903.0160316.1 L BAI S22 230.GAOWA22 230.2 1782.00076.00903.0160316.1
稳定数据卡片1张:1 stable data card:
LO BAI S22 230.GAOWA22 230.1 0.0022.0271 0.0159 LO BAI S22 230.GAOWA22 230.1 0.0022.0271 0.0159
稳定结果输出卡片2张:Stable result output card 2:
L BAI S22 230.GAOWA22 230.11 1 1 L BAI S22 230.GAOWA22 230.11 1 1
LC BAI S22 230.GAOWA22 230 11 1 1 LC BAI S22 230.GAOWA22 230 11 1 1
6)将2015D.dat中第3965行、2015D.swi第24080行更新为上述对应卡片,在2015D.swi第34526行、第34527行插入对应卡片。6) Update line 3965 in 2015D.dat and line 24080 in 2015D.swi to the above corresponding cards, and insert corresponding cards in lines 34526 and 34527 in 2015D.swi.
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510266401.6ACN104933513B (en) | 2015-05-22 | 2015-05-22 | A kind of PSD flow data based on object-oriented and stablize data edition and bearing calibration |
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201510266401.6ACN104933513B (en) | 2015-05-22 | 2015-05-22 | A kind of PSD flow data based on object-oriented and stablize data edition and bearing calibration |
| Publication Number | Publication Date |
|---|---|
| CN104933513Atrue CN104933513A (en) | 2015-09-23 |
| CN104933513B CN104933513B (en) | 2019-01-08 |
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201510266401.6AActiveCN104933513B (en) | 2015-05-22 | 2015-05-22 | A kind of PSD flow data based on object-oriented and stablize data edition and bearing calibration |
| Country | Link |
|---|---|
| CN (1) | CN104933513B (en) |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040254949A1 (en)* | 2003-06-13 | 2004-12-16 | Abb Inc. | Frame work for storing, retrieving and displaying real-time data |
| US20080219557A1 (en)* | 2007-03-02 | 2008-09-11 | Adi, Llc | Process Performance Evaluation for Enterprise Data Systems |
| CN103715685A (en)* | 2013-12-25 | 2014-04-09 | 大连理工大学 | Graph visualization system used for electric system load flow and stability analysis |
| CN103729557A (en)* | 2013-12-25 | 2014-04-16 | 大连理工大学 | Static N-X batch processing method on basis of PSD-BPA |
| CN103970862A (en)* | 2014-05-08 | 2014-08-06 | 国家电网公司 | Automatic generating system and method of power grid operation mode data |
| CN104063519A (en)* | 2014-07-16 | 2014-09-24 | 国家电网公司 | BPA power grid data analyzing and managing method and system based on EXCEL |
| CN104391692A (en)* | 2014-11-10 | 2015-03-04 | 上海交通大学 | Object-oriented programming method for reading and writing PSD-BPA data file |
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040254949A1 (en)* | 2003-06-13 | 2004-12-16 | Abb Inc. | Frame work for storing, retrieving and displaying real-time data |
| US20080219557A1 (en)* | 2007-03-02 | 2008-09-11 | Adi, Llc | Process Performance Evaluation for Enterprise Data Systems |
| CN103715685A (en)* | 2013-12-25 | 2014-04-09 | 大连理工大学 | Graph visualization system used for electric system load flow and stability analysis |
| CN103729557A (en)* | 2013-12-25 | 2014-04-16 | 大连理工大学 | Static N-X batch processing method on basis of PSD-BPA |
| CN103970862A (en)* | 2014-05-08 | 2014-08-06 | 国家电网公司 | Automatic generating system and method of power grid operation mode data |
| CN104063519A (en)* | 2014-07-16 | 2014-09-24 | 国家电网公司 | BPA power grid data analyzing and managing method and system based on EXCEL |
| CN104391692A (en)* | 2014-11-10 | 2015-03-04 | 上海交通大学 | Object-oriented programming method for reading and writing PSD-BPA data file |
| Publication number | Publication date |
|---|---|
| CN104933513B (en) | 2019-01-08 |
| Publication | Publication Date | Title |
|---|---|---|
| CN103605660B (en) | Graphic processing method for SCD (Substation Configuration Description) file | |
| CN106383958B (en) | A substation anti-error locking logic intelligent acceptance system | |
| CN104008223B (en) | Graphical expressing method for connection of virtual terminals of secondary system of intelligent substation | |
| CN104391692B (en) | For reading and writing the face-objected programming method of PSD BPA data files | |
| CN103268325A (en) | Dynamic checking method of IED model configuration correctness in intelligent substation based on SCD file | |
| CN105354036A (en) | Database operation code generating method and apparatus | |
| CN107861868A (en) | A kind of method and system for extracting automation test object | |
| CN104732041A (en) | Automatic virtual terminal generation method based on multiple SCD templates | |
| CN103499737A (en) | Method for obtaining false-wiring back-fill electric quantity of three-phase three-wire electric energy meter | |
| CN114398857B (en) | Automatic batch filling method for attribute information of frame title bar of CAD drawing | |
| CN111858730A (en) | A data import and export device, method, device and medium for graph database | |
| CN105512392A (en) | State grid ERP material device coding and application system | |
| CN113076618A (en) | Power distribution network single line diagram correction method, system, terminal equipment and storage medium | |
| CN105743221A (en) | Black-start comprehensive verification system of power system and method of black-start comprehensive verification system | |
| CN107069742B (en) | Power System Continuous Power Flow Calculation System Based on Python and PSD-BPA | |
| CN117057284A (en) | Conversion data processing equivalent adjustment method and device for electromagnetic transient model | |
| CN119150843A (en) | File analysis method and related device for photovoltaic measurement and calculation | |
| CN105069265A (en) | System for achieving automatic generation and operation of ATP electric power system simulation calculation model | |
| CN104933513A (en) | PSD (Power System Department) tide data and stable data editing and correction method based on object orientation | |
| CN103020162B (en) | Method of CC2000 model conversion and import into D5000 system | |
| CN117131847A (en) | An ARM Kirin WORD table extraction method and system | |
| CN114860582B (en) | Web page test auxiliary method and system | |
| CN107578218B (en) | PSD-BPA (phase-sensitive Detector-BPA) -based rated current data batch modification method and system | |
| CN104331839A (en) | CIM ontology modeling calibration system and method by utilizing high-speed IO technology | |
| CN103207795B (en) | A kind of electric flux collocation method based on lightweight WEB server |
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |