[go: up one dir, main page]

CN108459655B - 一种基于mcu的spwm脉冲信号实现方法 - Google Patents

一种基于mcu的spwm脉冲信号实现方法 Download PDF

Info

Publication number
CN108459655B
CN108459655B CN201810049765.2A CN201810049765A CN108459655B CN 108459655 B CN108459655 B CN 108459655B CN 201810049765 A CN201810049765 A CN 201810049765A CN 108459655 B CN108459655 B CN 108459655B
Authority
CN
China
Prior art keywords
spwm
wave
array
phase
comparison time
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
Application number
CN201810049765.2A
Other languages
English (en)
Other versions
CN108459655A (zh
Inventor
唐滢淇
董树锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201810049765.2A priority Critical patent/CN108459655B/zh
Publication of CN108459655A publication Critical patent/CN108459655A/zh
Application granted granted Critical
Publication of CN108459655B publication Critical patent/CN108459655B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/025Digital function generators for functions having two-valued amplitude, e.g. Walsh functions
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02MAPPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
    • H02M1/00Details of apparatus for conversion
    • H02M1/08Circuits specially adapted for the generation of control voltages for semiconductor devices incorporated in static converters
    • H02M1/081Circuits specially adapted for the generation of control voltages for semiconductor devices incorporated in static converters wherein the phase of the control voltage is adjustable with reference to the AC source
    • H02M1/082Circuits specially adapted for the generation of control voltages for semiconductor devices incorporated in static converters wherein the phase of the control voltage is adjustable with reference to the AC source with digital control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Inverter Devices (AREA)

Abstract

本发明公开了一种基于MCU的SPWM脉冲信号实现方法,首先采用对称规则采样法确定SPWM波的生成方式。然后,先计算在后续实际控制中并不会改变的含有正弦函数的一项,并存放入数组中。根据SPWM波形占空比计算公式计算A相1/4个正弦波周期的SPWM波比较时间存入A相SPWM波比较时间数组的前1/4部分。根据正弦波的对称性,得到A相后3/4部分的比较时间,再根据三相SPWM波的相位差特性,得到B相SPWM波比较时间数组和C相SPWM波比较时间数组,最后通过三角波截取得到占空比按照正弦规律变化的方波。本发明的方法可以减小产生SPWM波形过程中的运算量,加快计算过程,减少处理器和内存资源的消耗,提高在同等条件下生成SPWM波形的精度。

Description

一种基于MCU的SPWM脉冲信号实现方法
技术领域
本发明属于机电变换器的控制或调节技术领域,具体涉及一种基于MCU的SPWM脉冲信号实现方法,特别是为工业上的快速控制提供SPWM数字脉冲。
背景技术
正弦脉冲宽度调制(Sinusoidal Pulse Width Modulation,SPWM)法是一种比较成熟的,目前使用较广泛的PWM法。这种方法是将每一正弦周期内的多个脉冲作自然或规则的宽度调制,使其依次调制出相当于正弦函数值的相位角和面积,等效于正弦波的脉冲序列,形成等幅不等宽的正弦化电流输出。
目前,产生SPWM波形的方法很多,可以用运算放大器组成SPWM模拟电路;也可以用数字电路或者模数混合电路形成多级梯度三角波或正弦波来生成SPWM波;也可以采用MCU、FPGA等芯片或处理器通过程序编写的方法来生成SPWM波形。
但采用运算放大器的模拟电路或数模混合电路产生SPWM波形时,由于元器件本身的精度不高,会导致产生的SPWM波形存在畸变现象,精度不高。而用计算机或单片机实现SPWM控制,受系统主频、处理器资源、内存资源等限制,在需要更改控制参数时重新计算产生SPWM波形的速度有限,受到运算速度的限制导致精度较差;采用专用逻辑电路则调试困难,会造成大量人力和经济成本的浪费。
总的来说,当前的SPWM波形产生技术要么采用的是运算放大器的模拟电路或数模混合电路,得到的波形质量差、精度低;要么采用的是计算机或单片机实现SPWM控制,算法没有经过优化,参数更改后重新计算产生SPWM波形的速度有限,受到运算速度的限制导致精度较差;要么需要采用专用逻辑电路,调试困难,并且会造成大量人力和经济成本的浪费。这些缺点和不足,使得对SPWM波形产生方法的综合改进成为本发明的核心。
发明内容
为了解决传统正弦脉冲宽度调制波形产生方法中存在的问题和不足,本发明设计了一种基于MCU的SPWM脉冲信号实现方法,以减小产生SPWM波形过程中的运算量,加快计算过程,减少处理器和内存资源的消耗,提高在同等条件下生成SPWM波形的精度,并应用于低性能处理器或单片机的目的。
本发明的目的是通过以下技术方案来实现的:
一种基于MCU的SPWM脉冲信号实现方法,是采用对称规则采样法,确定SPWM波占空比计算的数学基础,先确定该数学基础中含有正弦函数的一项,且只计算该项前1/4个正弦波周期,根据正弦波的对称性,得到一相的SPWM波完整比较时间数组,再根据三相SPWM波的相位差特性,得到另两相的SPWM波完整比较时间数组,产生SPWM脉冲信号。
具体包括以下步骤:
步骤1:采用对称规则采样法确定SPWM波的生成方式;A相SPWM波占空比的数学表达式为:
DutyA[i]=(0.25-a_m*sin(2πi/M))*CLOCK/Fc
其中DutyA为A相SPWM波的比较时间数组,i为数组元素序号,取值范围从0~(M-1),a_m为调制度,M为载波比,CLOCK为主控时钟频率,单位为Hz,Fc为单片机定时器产生的三角波(即载波)频率,单位为Hz;
步骤2:先取数组元素序号i的范围为0~(M-1)/4,计算在上述公式中含有正弦函数的一项sin(2πi/M);
步骤3:根据所述计算A相SPWM波占空比的数学表达式计算A相SPWM波前1/4正弦波周期的比较时间,并存入A相SPWM波比较时间数组的前1/4部分;
步骤4:根据正弦波的对称性,通过数学对称变换和符号变换得到A相后3/4部分的比较时间,并存入A相SPWM波比较时间数组的后3/4部分;
步骤5:根据三相SPWM波的相位差特性,通过数学平移变换,将A相SPWM波比较时间数组作循环平移处理,得到B相SPWM波比较时间数组;
步骤6:根据三相SPWM波的相位差特性,通过数学平移变换,将A相SPWM波比较时间数组作循环平移处理,即得到C相SPWM波比较时间数组;
步骤7:将计算得到的SPWM比较时间数组传入MCU定时器对应寄存器,通过三角波截取得到占空比按照正弦规律变化的方波。
为了解决卡顿问题,该方法采用MCU软件模拟多线程并行计算的方法。所述的MCU软件模拟多线程并行计算的方法基于定时器中断实现,在每一次进入定时器中断时只计算5-10个采样点,直至完成所有采样点的计算。
上述技术方案中,步骤5中所述的循环平移处理为:获得A相SPWM波比较时间数组后,向数组末端将所有数组元素平移1/3的数组长度,溢出的数组元素按顺序补入数组首端,即得到B相SPWM波比较时间数组。
步骤6中所述的循环平移处理为:获得A相SPWM波比较时间数组后,向数组末端将所有数组元素平移2/3的数组长度,溢出的数组元素按顺序补入数组首端,即得到C相SPWM波比较时间数组。
本发明的有益效果是:
1.采用运算量较少的对称规则采样法生成SPWM波形,为减少计算过程中的运算量打下了基础。
2.采用优化的SPWM波形生成算法,程序初始化时完成部分系数的计算,在控制参数改变后,只计算一相中1/4周期的SPWM波形比较系数,通过数学对称变换和符号变换得到剩下此相3/4部分的比较系数,再根据三相SPWM波的相位差特性,通过数学平移变换,将此相SPWM波比较时间数组作循环平移处理,加快了SPWM波运算过程中的计算速度,减少了资源消耗,提升了实时控制能力。
3.采用MCU软件模拟多线程的算法,在每一次进入定时器中断时只计算5-10个采样点,多次进入定时器中断后即可完成对于所有采样点的计算,提高了运算效率和实时控制能力。
附图说明
图1是本发明实施例的SPWM平均对称规则采样法示意图;
图2是本发明实施例的根据正弦波的对称性,通过数学对称变换计算A相SPWM波比较时间数组第二个1/4周期部分的示意图;
图3是本发明实施例的根据正弦波的对称性,通过数学符号变换计算A相SPWM波比较时间数组后1/2周期部分的示意图;
图4是本发明实施例的SPWM波形和原始正弦波的MATLAB程序仿真结果图;
图5是本发明实施例的基于MCU的SPWM脉冲信号波形产生的程序流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施此发明,下面结合附图及实施例对本发明作进一步的详细阐述,应当理解,此处所描述的实施示例仅用于说明和解释本发明,并不用于限定本发明。
本发明是一个采用对称规则采样法,在程序编写过程中采用优化的SPWM波形生成算法,并在实际嵌入式开发中采用MCU软件模拟多线程的方法来产生SPWM波形的方案。
本发明采用对称规则采样法,确定了SPWM波计算的数学基础,在数学层面上减少了计算量。
本发明采用的优化SPWM波形生成算法,根据正弦波的对称性,通过数学对称变换和符号变换得到一相的SPWM波完整比较时间数组,再根据三相SPWM波的相位差特性,通过数学平移变换得到另两相的SPWM波完整比较时间数组,提高了程序运行的效率,加快了SPWM波运算过程中的计算速度,减少了资源消耗,提升了实时控制能力。
本发明在实际嵌入式开发中采用的MCU软件模拟多线程的方法,提高了并行计算能力、运算效率和实时控制能力,保证了程序运行过程中的连续性。
本实施例以双极性SPWM波的产生过程对本发明进行详细说明。
请见图5,本发明提供的一种基于MCU的SPWM脉冲信号实现方法,包括以下步骤:
步骤1:请见图1,采用运算量较少的对称规则采样法,确定SPWM波的生成方式,获得用于计算A相SPWM波占空比的数学表达式。所述计算A相SPWM波占空比的数学表达式为:
DutyA[i]=(0.25-a_m*sin(2πi/M))*CLOCK/Fc
其中DutyA为A相SPWM波的比较时间数组,i为数组元素序号,取值范围从0~(M-1),a_m为调制度,M为载波比,CLOCK为主控时钟频率,单位为Hz,Fc为单片机定时器产生的三角波(即载波)频率,单位为Hz。
步骤2:程序初始化时,先计算在后续实际控制中并不会改变的含有正弦函数的一项sin(2πi/M),并存放入数组中以备后来使用取数组元素序号i的范围为0~(M-1)/4。
步骤3:根据所述计算A相SPWM波占空比的数学表达式计算A相SPWM波前1/4正弦波周期的比较时间,并存入A相SPWM波比较时间数组的前1/4部分。
步骤4:根据正弦波的对称性,通过数学对称变换和数学符号变换得到A相后3/4部分的比较时间,并存入A相SPWM波比较时间数组的后3/4部分。所述的数学对称变换的具体实施方案如下:请见图2,将数组前1/4周期对应的数组元素按图中箭头所示填充到第二个1/4周期,符号保持不变。所述的数学符号变换的具体实施方案如下:请见图3,将数组前1/2周期对应的数组元素按图中箭头所示填充到后1/2周期的对应位置,符号改为相反。
步骤5:根据三相SPWM波的相位差特性,通过数学平移变换,将A相SPWM波比较时间数组作循环平移处理,向数组末端将所有数组元素平移1/3的数组长度,溢出的数组元素按顺序补入数组首端,即得到B相SPWM波比较时间数组。
步骤6:根据三相SPWM波的相位差特性,通过数学平移变换,将A相SPWM波比较时间数组作循环平移处理,向数组末端将所有数组元素平移2/3的数组长度,溢出的数组元素按顺序补入数组首端,即得到C相SPWM波比较时间数组。
步骤7:通过MCU的定时器生成三角波载波,利用在设定值比较、高低电平自动翻转的功能,令SPWM波形输出的六个端口在达到SPWM比较数组中数值时电平自动翻转,从而得到占空比可变的方波信号。在每次定时器溢出时,即一个三角波周期结束时,可更改六个寄存器的比较值,从而生成一系列脉冲宽度不同的方波信号。如果SPWM波比较数组中的整数变化按照正弦规律变化,那么输出方波占空比也是按照正弦规律变化的。
步骤8:为进一步解决卡顿问题,所述一种基于MCU的SPWM脉冲信号实现方法,可采用MCU软件模拟多线程并行计算的方法。在每一次进入定时器中断时只计算5-10个采样点,在多次进入中断后即可以完成所有采样点的计算,这样在计算过程中不会影响其他任务,提高了运算效率。
本实施例可以对SPWM产生过程中的三角波频率Fc、调制度a_m、载波比M和死区时间DeadTime等进行设置,适应不同控制条件下对于SPWM波的波形需求。通过在MATLAB中编写程序进行仿真实验(请见图4)和在MSP430F5438A单片机上进行实际嵌入式开发,产生三相双极性SPWM波形,可以看到在载波比M为249、定时器中断周期设置为10ms的情况下,当控制参数改变后,只需要不到0.3s的时间即可以完成一次SPWM的重新赋值计算,随后更改计算完成标志位,给实际的U、V、W数组重新赋值,就可以完成更改SPWM频率实现控制的功能。而采用传统的SPWM波比较时间数组的计算方法,在所述MSP430F5438A单片机上进行实际嵌入式开发,产生三相双极性SPWM波形,在所有控制参数相同的情况下,根据三相SPWM波占空比的数学表达式完整地计算A、B、C三相SPWM波比较时间数组,需要经过5s左右的时间才能完成三相SPWM波比较时间数组的计算,而在控制参数改变后,也需要经过同样长的时间才能完成所述三相SPWM波比较时间数组的计算,计算的效率大幅降低。
经过实验分析,使用了改进算法和多线程的SPWM计算程序运行效率高,控制的实时性有了很大的提高。而且,在计算过程中由于采用了优化算法,计算过程中对于处理器和内存资源的消耗大幅减小,适用于在低性能处理器或单片机上采用本实施例中说明的SPWM波形产生算法。
应当理解的是,本说明书未详细阐述的部分均属于现有技术。
应当理解的是,上述针对实施例的描述较为详细,并不能因此而认为是对本发明专利保护范围的限制,本领域的普通人员在本发明的启示下,在不脱离本发明权利要求所保护的范围情况下,还可以作出替换或变形,均落入本发明的保护范围之内,本发明的请求保护范围应该以所附权利要求为准。

Claims (6)

1.一种基于MCU的SPWM脉冲信号实现方法,其特征在于,采用对称规则采样法,确定SPWM波占空比计算的数学基础,先确定该数学基础中含有正弦函数的一项,且只计算该项前1/4个正弦波周期,根据正弦波的对称性,得到一相的SPWM波完整比较时间数组,再根据三相SPWM波的相位差特性,得到另两相的SPWM波完整比较时间数组,产生SPWM脉冲信号。
2.根据权利要求1所述的基于MCU的SPWM脉冲信号实现方法,其特征在于,具体包括以下步骤:
步骤1:采用对称规则采样法确定SPWM波的生成方式,A相SPWM波占空比的数学表达式为:
DutyA[i]=(0.25-a_m*sin(2πi/M))*CLOCK/Fc
其中DutyA为A相SPWM波的比较时间数组,i为数组元素序号,取值范围从0~(M-1),a_m为调制度,M为载波比,CLOCK为主控时钟频率,单位为Hz,Fc为单片机定时器产生的三角波(即载波)频率,单位为Hz;
步骤2:先取数组元素序号i的范围为0~(M-1)/4,计算在上述公式中含有正弦函数的一项sin(2πi/M);
步骤3:根据所述计算A相SPWM波占空比的数学表达式计算A相SPWM波前1/4正弦波周期的比较时间,并存入A相SPWM波比较时间数组的前1/4部分;
步骤4:根据正弦波的对称性,通过数学对称变换和符号变换得到A相后3/4部分的比较时间,并存入A相SPWM波比较时间数组的后3/4部分;
步骤5:根据三相SPWM波的相位差特性,通过数学平移变换,将A相SPWM波比较时间数组作循环平移处理,得到B相SPWM波比较时间数组;
步骤6:根据三相SPWM波的相位差特性,通过数学平移变换,将A相SPWM波比较时间数组作循环平移处理,即得到C相SPWM波比较时间数组;
步骤7:将计算得到的SPWM比较时间数组传入MCU定时器对应寄存器,通过三角波截取得到占空比按照正弦规律变化的方波。
3.根据权利要求1或2所述的基于MCU的SPWM脉冲信号实现方法,其特征在于,该方法采用MCU软件模拟多线程并行计算的方法。
4.根据权利要求3所述的基于MCU的SPWM脉冲信号实现方法,其特征在于,所述的MCU软件模拟多线程并行计算的方法基于定时器中断实现,在每一次进入定时器中断时只计算5-10个采样点,直至完成所有采样点的计算。
5.根据权利要求2所述的基于MCU的SPWM脉冲信号实现方法,其特征在于,步骤5中所述的循环平移处理为:获得A相SPWM波比较时间数组后,向数组末端将所有数组元素平移1/3的数组长度,溢出的数组元素按顺序补入数组首端,即得到B相SPWM波比较时间数组。
6.根据权利要求2所述的基于MCU的SPWM脉冲信号实现方法,其特征在于,步骤6中所述的循环平移处理为:获得A相SPWM波比较时间数组后,向数组末端将所有数组元素平移2/3的数组长度,溢出的数组元素按顺序补入数组首端,即得到C相SPWM波比较时间数组。
CN201810049765.2A 2018-01-18 2018-01-18 一种基于mcu的spwm脉冲信号实现方法 Active CN108459655B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810049765.2A CN108459655B (zh) 2018-01-18 2018-01-18 一种基于mcu的spwm脉冲信号实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810049765.2A CN108459655B (zh) 2018-01-18 2018-01-18 一种基于mcu的spwm脉冲信号实现方法

Publications (2)

Publication Number Publication Date
CN108459655A CN108459655A (zh) 2018-08-28
CN108459655B true CN108459655B (zh) 2020-12-08

Family

ID=63220881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810049765.2A Active CN108459655B (zh) 2018-01-18 2018-01-18 一种基于mcu的spwm脉冲信号实现方法

Country Status (1)

Country Link
CN (1) CN108459655B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599738A (zh) * 2009-07-14 2009-12-09 北京慧摩森电子系统技术有限公司 三相交流电动机pwm控制的通用脉宽占空比确定方法
CN103607127A (zh) * 2013-11-20 2014-02-26 天津电气传动设计研究所有限公司 一种在闭环控制系统中实现同步对称pwm调制的方法
CN106910140A (zh) * 2017-01-09 2017-06-30 浙江大学 一种基于svg格式电力系统接线图网络拓扑分析的方法
CN107063080A (zh) * 2017-03-23 2017-08-18 天津大学 用于正弦相位调制的锁相检测方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7733073B2 (en) * 2007-09-28 2010-06-08 Infineon Technologies Ag Current regulator with current threshold dependent duty cycle

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101599738A (zh) * 2009-07-14 2009-12-09 北京慧摩森电子系统技术有限公司 三相交流电动机pwm控制的通用脉宽占空比确定方法
CN103607127A (zh) * 2013-11-20 2014-02-26 天津电气传动设计研究所有限公司 一种在闭环控制系统中实现同步对称pwm调制的方法
CN106910140A (zh) * 2017-01-09 2017-06-30 浙江大学 一种基于svg格式电力系统接线图网络拓扑分析的方法
CN107063080A (zh) * 2017-03-23 2017-08-18 天津大学 用于正弦相位调制的锁相检测方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A two-stage pattern recognition method for electric customer classification in smart grid;Shufeng Dong;《IEEE》;20161212;第1-6页 *
一种基于MCU单片机的感应电动机新型SPWM产生方法;汤碧翔 等;《微电机》;20090630(第2006年第6期);第55-58页 *
结合负荷形态指标的电力负荷曲线两部聚类算法;董树锋 等;《电力建设》;20160630(第2016年06期);第96-102页 *

Also Published As

Publication number Publication date
CN108459655A (zh) 2018-08-28

Similar Documents

Publication Publication Date Title
CN102811012B (zh) 基于fpga的多轴伺服电机电流环控制系统及控制方法
CN103178851B (zh) 一种产生spwm控制信号的新型采样方法
CN103178815B (zh) 一种基于fpga的pwm发生器
CN104753502B (zh) 一种基于fpga的dds信号发生器及其实现方法
CN101997524B (zh) 一种产生多路spwm信号的方法和数字芯片
CN101272123A (zh) 基于fpga的空间矢量脉宽调制方法
CN102142784A (zh) 一种全数字化五电平逆变器spwm控制方法
CN101162479A (zh) 基于软核cpu技术的电能质量监测专用集成电路的设计方法
CN101701985B (zh) 定频变点电网谐波检测方法及其测量仪
CN106502308A (zh) 一种超声脉冲激励信号的波形产生系统及产生方法
CN108459655B (zh) 一种基于mcu的spwm脉冲信号实现方法
CN103532170B (zh) 用于并网电流滞环控制算法的开关周期固定控制方法
CN103457502A (zh) 一种新型的五电平逆变器七段式svpwm调制方法
CN106155177B (zh) 基于数字处理器实现spwm波形的方法
CN109901382B (zh) 一种数字控制系统的规则采样pwm优化方法
CN102346219A (zh) 电压源逆变器接入点电压三相软件锁相环相位检测方法
CN101272104A (zh) 一种空间矢量调制方法
CN103746677B (zh) 一种svpwm实现方法
CN105893326A (zh) 基于fpga实现65536点fft的装置和方法
CN203872098U (zh) 低载波比在线计算多模式空间矢量脉宽调制软核
CN102710100A (zh) 用于纺机变频器的实时正弦值计算产生spwm的方法
CN103018558A (zh) 主从式多处理器实时信号分析方法
CN111987920A (zh) 一种三电平空间矢量调制方法
CN109066699B (zh) 一种判断过调制对微源逆变器串联微电网电压影响的方法
CN101478254A (zh) 基于dsp的三电平spwm波形的产生方法

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