CN107395074A - 基于fpga实现的永磁直流电机多分辨率控制器 - Google Patents

基于fpga实现的永磁直流电机多分辨率控制器 Download PDF

Info

Publication number
CN107395074A
CN107395074A CN201710604174.2A CN201710604174A CN107395074A CN 107395074 A CN107395074 A CN 107395074A CN 201710604174 A CN201710604174 A CN 201710604174A CN 107395074 A CN107395074 A CN 107395074A
Authority
CN
China
Prior art keywords
mrow
msub
signal
munder
controller
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.)
Pending
Application number
CN201710604174.2A
Other languages
English (en)
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.)
Jilin University
Original Assignee
Jilin University
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 Jilin University filed Critical Jilin University
Priority to CN201710604174.2A priority Critical patent/CN107395074A/zh
Publication of CN107395074A publication Critical patent/CN107395074A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02PCONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
    • H02P7/00Arrangements for regulating or controlling the speed or torque of electric DC motors
    • H02P7/06Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current
    • H02P7/18Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power
    • H02P7/24Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices
    • H02P7/28Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices using semiconductor devices
    • H02P7/285Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices using semiconductor devices controlling armature supply only
    • H02P7/29Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices using semiconductor devices controlling armature supply only using pulse modulation
    • H02P7/2913Arrangements for regulating or controlling the speed or torque of electric DC motors for regulating or controlling an individual dc dynamo-electric motor by varying field or armature current by master control with auxiliary power using discharge tubes or semiconductor devices using semiconductor devices controlling armature supply only using pulse modulation whereby the speed is regulated by measuring the motor speed and comparing it with a given physical value

Landscapes

  • Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Other Investigation Or Analysis Of Materials By Electrical Means (AREA)

Abstract

一种基于FPGA实现的永磁直流电机多分辨率控制器,属于控制技术领域。本发明的目的是利用FPGA平台进行控制器开发,以满足电机转速的快速跟踪需求的基于FPGA实现的永磁直流电机多分辨率控制器。本发明步骤是:设计多分辨率控制器、PID控制器对偏差信号进行线性分解后,再进行加权以得到控制器控制输出、进行信号获取、信号的多频率分解与重构、结合式前面流程得到离散小波变换的滤波器。本发明不仅可以很好地解决传统PID对直流有刷电机控制精度较低,无法对误差信号进行细节分析的问题,而且充分利用了FPGA的并行计算能力,提高了控制器的实时性,克服了目前现有永磁直流电机电控系统的不足。

Description

基于FPGA实现的永磁直流电机多分辨率控制器
技术领域
本发明属于控制技术领域。
背景技术
永磁直流力矩电机是有刷直流电机的一种,励磁磁场为永磁体,它除了具有较宽的 调速范围、线性度好、刚性的机械特性以及容易控制的特点外,还具有输出转矩大、体积小、 响应速度快、结构简单等优点,是一种能够带动较大负载,并且在较低转速下能够安全运行 的伺服电动机。因而其在机械加工、生活办公、军事装备等领域都有较为广泛的应用。作为 大部分控制系统的执行机构,电机控制在整个控制系统中发挥着至关重要的作用。但是由于 有刷直流电机在控制过程中存在噪声干扰的问题,尤其是在低速控制中,噪声干扰对于转速 的影响特别大,随着现代控制领域中控制精度要求的提高,对于电机的转速控制精度要求也 在不断提高,然而传统的PID由于其自身的局限性难以满足日益增长的控制需求,且基于传 统单片机实现的传统控制系统无法处理计算量较大的控制算法,因此需要开发出一种能够有 效提高控制精度,并且保证整个控制系统足够稳定,处理速度较快的控制器。
永磁直流力矩电机的主要控制目标为在保证上升时间的同时,能够实现转速的快速 稳定跟踪,解决永磁直流电机低速区测量噪声以及电机本身带有的固定频率的齿槽转矩噪声 对转速造成扰动的问题。本发明从频率方向出发,利用小波变换的多频率分析的优势,设计 了多分辨率控制器,传统PID控制器的比例项、积分项和微分项可以认为是对误差信号的三 个频段进行线性加权求取控制输出,而小波变换的正好可以根据控制需求自由选取对控制信 号进行多少个频率段的分解与重构,这样可以对电机低速区控制中存在的噪声干扰实现很好 的抑制作用。由于在小波变换对信号的多频率分解和单向重构过程存在较多的累乘加计算过 程,计算量较大。
发明内容
本发明的目的是利用FPGA平台进行控制器开发,以满足电机转速的快速跟踪需求的基于FPGA实现的永磁直流电机多分辨率控制器。
本发明步骤是:
①多分辨率控制器:
利用小波变换对转速误差信号进行各个频率段的分解与单向重构,在单向重构的过程中对各 频段的信号进行加权求和,求出控制输出电压;
小波变换将原始信号分解成不同分辨率组成部分进行表示:
通过对各个分辨率上的信号进行加权后相加得到控制器的输出,具体式子如下:
②PID控制器对偏差信号进行线性分解后,再进行加权以得到控制器控制输出
增量式离散PID控制算法如下:
u(k)=u(k-1)+kp[e(k)-e(k-1)]+kie(k)+kd(e(k)-2e(k-1)+e(k-2))(4)
③信号获取:
为了保证控制器的实时性与准确性,降低多分辨率控制器设计中Mallat算法的边界效应,采 用以下方式进行信号获取:
⑴选择合适的数据缓存的长度N;
⑵初始数据缓存为0,在当前采样时刻,当前数据以流水线形式先入先出方式进入缓存;
⑶将缓存的数据进行镜像存储,最新数据靠近缓存中心,即设在k时刻的转速误差为e(k),经 对称添加形成的数据缓存窗数据为e(k-N+1),…e(k-2),e(k-1),e(k),e(k-1),e(k-2),…e(k-N+1);
④信号的多频率分解与重构:
对一个连续的转速误差信号e(t)属于L2空间,在m尺度下产生下面的近似序列
即每个近似序列可以表示为同一个函数e(t)进行缩放和平移后的加权之和,其中φ(τ)被称为尺 度函数,如果用第(m+1)层的近似值来重定义第m层的近似值,这样函数φ(2mt)应该是第 (m+1)层基函数φ(2m+1t)的一个线性组合,也就是
如果V(m+1)代表由正交集φ(2m+1t-k)组成的函数空间,V(m)代表由正交集φ(2mt-p)组成的 另一个函数空间,这样可知这样的空间具有递归嵌套关系,即这样W(m)就代表着由空间e(2mt)向空间e(2m+1t)转换中的增添的偏 差信息组成的空间,这样的空间由另一个正交集ψ(2mt)来组成,得到如下的式子:
其中函数ψ(2mt)被称之为小波函数,它和尺度函数φ(2mt)之间可以通过如下关系进行关联:
h(k)和g(k)是组成小波变换中比较重要的镜像滤波器组,这样就通过下式的小波变换来刻 画误差信号e(t)
其中中上划线代表小波函数和尺度函数的共轭函数,c和d分别为对原序列信号 e(t)进行分解后的趋势系数和细节系数;
⑤结合式(5)(6)(7)(8)(9)可以得到离散小波变换的滤波器表达式:
其中是小波分解中滤波器组h(k)和g(k)的共轭函数,而滤波器组函数可以由小波 分解中选择的小波函数和尺度函数求得:
这样对于信号e(t)通过小波变化将其转换到趋势系数c和细节系数d,也就是将信号e(t)分解 到各个频率;
⑥当需要将各种信号合成原始信号,就需要利用到Mallat重构算法,式(12)所示的Mallat 重构算法是上述分解算法的逆过程,
⑦将中间小波系数和尺度系数分别进行采样后与相应的重构滤波器进行单向重构,从而获得 原信号的多分辨率信号,当分解层次为3时,就能得到关于原信号的近似信号eH,细节信号 eL和中间分辨率的信号e1和e2;将原始信号分解成不同分辨率组成部分进行表示:
信号经过其分解后的信息量包含全频率段的信息,结果是非冗余且无遗漏的;
⑧针对直流电机存在多频率噪声的问题也通过对各个分辨率上的信号进行加权后相加得到控 制器的输出,具体式子如下:
称之为多分辨率PID控制算法,即MSPID。
本发明当需要处理哪个频率的信号时,便相应的调整其对应的常数增益即可,在直 流电机控制中往往存在高频噪声,这时将相应的常数增益尽可能的调整为0,除了这种基本 形式外,对其加以扩展,得到其一般形式:
其中ki是需要对信号的各频率进行加权的常数增益,fi(·)是一个可以自行选择的函数,根据 实际控制场景来选择合适的函数。
本发明公开了一种基于FPGA实现的永磁直流电机多分辨率转速控制器设计,不仅可以很好地解决传统PID对直流有刷电机控制精度较低,无法对误差信号进行细节分析的问 题,而且充分利用了FPGA的并行计算能力,提高了控制器的实时性,克服了目前现有永磁直 流电机电控系统的不足。
本发明设计了永磁直流电机的多分辨率控制器,针对传统PID只能对转速误差信号 在高中低三个频段进行线性加权,而无法解决较高控制精度的问题,多分辨率控制器充分利 用多分辨率分析中小波变换的优势,对转速误差信号进行了多频率分解与单向重构操作,成 功解决了永磁直流电机转速快速跟踪的控制问题。
基于FPGA实现的永磁直流电机多分辨率控制器,在保证控制精度的同时能够极大提高控制器的运算速度,进而提高整个控制系统的实时性,且相对于传统硬件平台单片机等 实现的控制系统,基于FPGA实现的控制器抗干扰能力更强,处理速度更快,且更容易产品化, 完成专用永磁直流电机控制器设计。
附图说明
图1是基于FPGA实现的多分辨率控制器控制结构框图;
图2是Mallat分解算法图;
图3是Mallat重构算法图;
图4是信号多分辨率分解图;
图5是信号的单向重构图;
图6是对称数据缓存结构图;
图7是含噪声情况下电机转速输出图;
图8是信号分解与重构过程中的并行计算图;
图9是ModelSim仿真波形图;
图10是控制器的总体电路结构图;
图11是FPGA资源利用报告视图;
图12是多分辨率电机转速输出图;
图13是普通PID电机转速输出图。
具体实施方式
本发明步骤是:
①多分辨率控制器:
利用小波变换可以对原始信号进行多频段的分解与重构这一特点,多分辨率控制器首先转速 误差信号进行一定长度的数据缓存,利用小波变换对转速误差信号进行各个频率段的分解与 单向重构,在单向重构的过程中对各频段的信号进行加权求和,求出控制输出电压;
小波变换将原始信号分解成不同分辨率组成部分进行表示:
信号经过其分解后的信息量包含全频率段的信息,结果是非冗余且无遗漏的。故可以根据分 解的结果有针对性地对相关频带信息进行处理。
按照传统PID控制器三个参数kp,ki,kd分别是对偏差信号的不同频域信息进行 加权的结构,于是在基于小波多分辨率分析的控制器设计中,通过对各个分辨率上的信号进行加权后相加得到控制器的输出,具体式子如下:
当需要处理哪个频率的信号时,便相应的调整其对应的常数增益即可,例如在实际 控制中往往存在高频噪声,这时可以将相应的常数增益尽可能的调整为0。
由于多分辨率控制器的信号分解与重构过程存在大量的数据计算过程,特别是当控 制精度需求较高时,需要将信号分解的更加详细,无疑增加了硬件处理器的计算负担,普通 的单片机会出现处理速度不够的情况,难以保证电机转速快速跟踪的控制需求。本发明采用 基于FPGA实现的永磁直流电机多分辨率控制系统包括时钟模块、接口模块、控制器模块。
基于FPGA的全硬件方案进行多分辨率控制器的实现,充分利用FPGA的硬件特性,以较高时钟频率并行计算控制算法,从而增加系统的数据吞吐量,提升控制系统性能。基于FPGA实现的多分辨率控制系统主要包括时钟模块、接口模块、控制器模块。
(1)时钟模块
时钟模块是为整个系统提供精准的时钟,利用FPGA开发板上晶振提供的频率为125MHz的时 钟,在xilinx系列的开发板上采用时钟锁相环(phase-locked loop,PLL)技术可以实现 不同时钟频率的输入,以方便电路的调试,本发明为了节省芯片内部的锁相环资源,通过硬 件语言Verilog进行时钟的分频相移,以实现不同时钟频率的输入。
(2)接口模块
接口模块包括输入和输出接口,用于采集光电编码器的测量数据和输出控制永磁直流电机的 PWM信号。输入接口主要用来测量以及求取永磁直流电机转速,通过测量固定周期T时间以 内的编码器高低电平的数量可以求取当前电机转速,以及当前电机旋转方向,输出接口主要 用来输出PWM驱动信号,由于电机控制当中的驱动需要采用PWM方波信号,所以需要将控制 器求得的控制输出转化为PWM方波信号,通过FPGA的IO将其传送到驱动电路上。
(3)控制器模块
基于小波变换的多分辨率控制器在对转速误差信号进行分解与重构的过程中存在大量的并行 乘法计算,对于以普通单片机为开发平台的控制系统而言,乘法操作会大大增加控制器的求 解负担。本发明采用半自动模块化的FPGA设计方法进行控制器的设计,充分利用FPGA的并 行计算能力对求解模块进行硬件加速,即简单的功能模块(例如输出输入接口模块)可以通 过手工编写硬件语言的方法实现,复杂的算法模块(例如求解模块)借助xilinx公司推出的 vivado开发工具中的高级综合工具HLS自动生成硬件描述语言。求解模块的FPGA硬件实现 时,需要编写算法的C/C++代码,然后利用综合工具将算法的C/C++代码转成硬件语言描述代 码,同时通过对算法的并行性分析和优化,可以充分利用FPGA的流水线及并行计算能力。
在完成各个模块的单独设计并验证之后,将各个模块在顶层模块中进行集成综合, 布局布线等完成整个控制系统的设计。这种模块化的控制系统有利于后期的更新维护,在不 影响其他模块的情况下,便可以对某一个模块进行修改。最后将各个模块在顶层进行集成综 合,以完成永磁直流电机多分辨率控制器的FPGA实现。基于FPGA实现的多分辨率控制器可 以在满足控制精度需求的同时,充分提高算法的运算速度,提高了多分辨率控制器的实时性, 为完成永磁直流电机转速跟踪提供了一种精度更高,速度更快的控制器。
基于FPGA实现的永磁直流电机多分辨率转速跟踪控制系统的结构框图如图1所示, 主要包括多分辨率控制器、光电编码器数据采集接口以及PWM驱动接口。FPGA作为永磁直流 电机控制单元的硬件实现平台,外接光电编码器数据采集和PWM驱动板;FPGA控制单元首先 通过光电编码器的数据传输端采集并利用硬件编程语言设计的光电编码器接口测算永磁直流 电机转速n,多分辨率控制器根据永磁直流电机控制精度的需求对转速误差信号选择小波分 解的层数,然后选择合适的重构增益对各个频率段的信号进行线性加权重构,求出输出信号, 然后利用PWM接口输出PWM占空比方波信号,利用PWM驱动板控制永磁直流电机。
②PID控制器对偏差信号进行线性分解后,再进行加权以得到控制器控制输出
增量式离散PID控制算法如下:
u(k)=u(k-1)+kp[e(k)-e(k-1)]+kie(k)+kd(e(k)-2e(k-1)+e(k-2)) (4)。
如果从频域角度分析传统PID控制算法的话,可以看出PID三个参数中比例系数kp就相当于对系统偏差信号e的整个频域部分进行加权,可以加快系统的响应速度,调节控制精度,积分系数ki相当于处理误差信号的低频部分,对低频信号进行加权,可以消除系统静差,然而由于在实际工业控制中噪声的存在,积分项在实际应用中往往会导致累积误差,对于误差信号的高频变化趋势信号利用微分项进行加权处理。可以看出传统PID是对于偏差信 号的高、中、低三个频段通过分别调整常数增益再进行线性加权的方式来对系统进行控制的, 本发明根据永磁直流电机的多频率噪声问题以及传统PID控制的局限性,提出了一种多分辨 率PID控制器。
③信号获取:
为了保证控制器的实时性与准确性,降低多分辨率控制器设计中Mallat算法的边界效应,采 用以下方式进行信号获取:
⑴选择合适的数据缓存的长度N;
⑵初始数据缓存为0,在当前采样时刻,当前数据以流水线形式先入先出方式进入缓存;
⑶将缓存的数据进行镜像存储,最新数据靠近缓存中心,即设在k时刻的转速误差为e(k),经 对称添加形成的数据缓存窗数据为e(k-N+1),…e(k-2),e(k-1),e(k),e(k-1),e(k-2),…e(k-N+1);具体 误差信号缓存形式如图6所示。
④信号的多频率分解与重构:
对一个连续的转速误差信号e(t)属于L2空间(所有平方可积函数),在m尺度下产生下面的近 似序列
即每个近似序列可以表示为同一个函数e(t)进行缩放和平移后的加权之和,其中φ(τ)被称为尺 度函数,如果用第(m+1)层的近似值来重定义第m层的近似值,这样函数φ(2mt)应该是第 (m+1)层基函数φ(2m+1t)的一个线性组合,也就是
如果V(m+1)代表由正交集φ(2m+1t-k)组成的函数空间,V(m)代表由正交集φ(2mt-p)组成的 另一个函数空间,这样可知这样的空间具有递归嵌套关系,即这样W(m)就代表着由空间e(2mt)向空间e(2m+1t)转换中的增添的偏 差信息组成的空间,这样的空间由另一个正交集ψ(2mt)来组成,得到如下的式子:
其中函数ψ(2mt)被称之为小波函数,它和尺度函数φ(2mt)之间可以通过如下关系进行关联:
h(k)和g(k)是组成小波变换中比较重要的镜像滤波器组,这样就通过下式的小波变换来刻 画误差信号e(t)。
其中中上划线代表小波函数和尺度函数的共轭函数,c和d分别为对原序列信号 e(t)进行分解后的趋势系数和细节系数。
⑤以上是对误差信号e(t)进行分解的过程,结合式(5)(6)(7)(8)(9)可以得 到离散小波变换的滤波器表达式:
其中是小波分解中滤波器组h(k)和g(k)的共轭函数,而滤波器组函数可以由小波 分解中选择的小波函数和尺度函数求得:
这样对于信号e(t)通过小波变化将其转换到趋势系数c和细节系数d,也就是将信号e(t)分解 到各个频率。
⑥当需要将各种信号合成原始信号,就需要利用到Mallat重构算法,式(12)所 示的Mallat重构算法是上述分解算法的逆过程,图2展示了小波分解过程,图3展示了 Mallat重构算法多级综合的过程。
⑦根据多分辨率分析思想,可以利用小波变换中的Mallat算法将直流电机的转速偏差信号分解成不同分辨率的趋势信号和细节信号。具体来说,首先进行小波分析过程,对信号进行小波分析产生的是一序列的中间系数,这些系数代表着原始信号在所用的基函数下 的比重,也就是小波系数和尺度系数。原始信号经过尺度滤波器和小波滤波器滤波后再经过 向下二采样后就能得到第一层的近似系数和细节系数,继续往下分解,近似系数就可以作为 第一层的原始信号,其通过尺度滤波器和小波滤波器的滤波即可得到第二层的近似系数和小 波系数;根据选择的分解层数,上述的分解过程可以一直重复下去。
而求取控制输出量电压u的过程就类似小波Mallat重构算法中的做法,但是不同的是求取控制输出量电压不是将原始信号进行完全重构,而是需要得到原始的各个频段的信 号将中间小波系数和尺度系数分别进行采样后与相应的重构滤波器进行单向重构,从而获得 原信号的多分辨率信号,当分解层次为3时,其分解综合的过程如图4所示,就能得到关于 原信号的近似信号eH,细节信号eL和中间分辨率的信号e1和e2
通过上述分解,如图5所示,将原始信号分解成不同分辨率组成部分进行表示:
信号经过其分解后的信息量包含全频率段的信息,结果是非冗余且无遗漏的。故可以根据分 解的结果有针对性地对相关频带信息进行处理。
⑧按照传统PID控制器三个参数kp,ki,kd分别是对偏差信号的不同频域信息进 行加权的结构,于是在基于小波多分辨率分析的控制器设计中,针对直流电机存在多频率噪声的问题也通过对各个分辨率上的信号进行加权后相加得到控制器的输出,具体式子如下:
上述只是多分辨率控制算法的基本形式,可以看得出来和传统PID控制算法形式很类似,称 之为多分辨率PID控制算法,即MSPID。
本发明当需要处理哪个频率的信号时,便相应的调整其对应的常数增益即可,在直 流电机控制中往往存在高频噪声,这时将相应的常数增益尽可能的调整为0,除了这种基本 形式外,对其加以扩展,得到其一般形式:
其中ki是需要对信号的各频率进行加权的常数增益,类似PID控制中的三个参数。fi(·)是一 个可以自行选择的函数,根据实际控制场景来选择合适的函数,如加入非线性部分、积分或 者微分项等。
图1展示了永磁直流电机多分辨率控制器结构框图。将偏差信号e进行存储,将其缓存为一个序列信号,然后利用多分辨率分析对其进行分解与重构,在得到偏差信号的各个 分辨率信号后,通过调整增益系数ki对各个频率段的信号进行处理以及现行加权,得到控制 器输出u,对被控对象进行控制。
信号的长度和小波分解的层数
在多分辨率控制器的设计中,系统控制器输出是通过输入信号小波分解后进行加权得到的, 也就是说输入的偏差信号的信息影响整个系统的控制效果。当信号的数据窗的长度很大时, 待分解的信号所包含的信息就越丰富,这样经过分解后的各个分辨率的信号就越准确,但是 如果数据窗的长度过长,在某种情况下,会导致控制器的输出有信息延迟现象,这样的话会 影响到实时控制的效果,且数据越多,小波变换的计算量也会越大,即会增大控制器的计算 负担。而分解层次的选择则会影响分解数据的精度,分解层次越多,就越能将输入的偏差信 号序列精细化,有利于后期的滤波处理,但是过多的分解层次也会造成后期多分辨率控制器 需要调节的参数增多。本发明采用以下不等式关系确定分解层次S:
其中N是缓存信号长度,F是小波滤波器长度。
控制系统的FPGA实现
本发明采用基于FPGA的硬件实现方案来进行小波控制器的设计,其中FPGA选用的是Xilinx 的Zybo开发板。控制器的FPGA具体开发流程为:首先在MATLAB中进行控制算法的离线仿真 验证,并对算法耗时计算过程进行分析。然后,将控制系统进行模块划分(包括时钟模块、 接口模块、控制器模块),数据处理求解模块借助综合工具生成硬件描述语言,接口模块手动 编写硬件描述语言代码。各个模块设计完成之后,分别进行ModelSim功能仿真验证,如果控 制器的功能不正确,则对硬件代码进行修改,直至功能正确。验证通过后,通过编写顶层文 件将所有模块集成连接,然后进行编译综合、布局布线,最后在FPGA中进行控制系统的板级 验证。具体实施步骤如下:
(1)离线仿真验证
直流电机运转在低速区时,噪声对其速度控制有很大的干扰,故在仿真中跟踪给定的低转速 1rad/s来验证控制器的抗噪能力。设置信号分解层次S=3和待分解的信号长度N=32来进行 控制器的设计与验证。
为了验证多分辨率控制器相对于普通PID控制器的抗噪能力,在仿真过程中加入了 白噪声信号,对比普通PID控制器和多分辨率控制器实验结果如图7所示。可以发现在加入 白噪声信号后,普通的PID控制算法电机转速输出出现比较大的抖动,而多分辨率控制算法 能够有效将噪声干扰滤出,实现比较平滑的转速跟踪过程。
1)时钟模块设计
时钟模块是为整个系统提供精准的时钟,FPGA时钟频率为125MHz,通过时钟模块可以方便地 变换时钟频率,以方便电路的调试。本发明采用手动编写分频器的形式变换时钟频率。
2)接口模块设计
在电机的闭环速度控制中,控制器需要得到电机的转速信号,此处可以用光电编码器获取电 机转速,然后将控制器计算得到的占空比转为PWM信号作用在电机驱动上。故需要编写光电 编码器测速程序和PWM产生程序。
①光电编码器测速程序
本次采用的光电编码器为长春华特公司生产的高性能增量式光电编码器E2065AD8系列,其脉 冲数为65536,可以准确的测量电机在低转速运行状态下的转速值。可以在FPGA代码中可以 通过设置一个定时器和计数器来计算脉冲数求取电机转速,在Verilog代码中,定时器和计 数器非常容易实现,任意触发器电路都可以作为定时器或计数器,这也是其和普通单片机的 区别。
②PWM生成程序
本次被控对象电机为稀土永磁直流力矩电动机,其具有快速响应,低转速,大力矩,特性线 性度好,力矩波动小等特点,而且结构简单,紧凑,是一种高精度伺服系统功率元件。选用 的电机驱动器型号是BRT60A,其中的驱动是(带有MOS管IRLR7843)IRS2184芯片,该驱动 具有较好的抗干扰能力,输入3.3V和5V兼容,最大承受的电流是60A,且能输出正负脉冲的PWM,其能很好的满足电机的控制需求。
一般情况下电机驱动的PWM频率不宜过高或过低,频率太高,驱动器的开发损失较大,频率过低,电机会出现振动,且电磁噪声也比较明显,故此处采用10KHz的PWM波对 其进行驱动。PWM主要原理在于计数器和一个固定的数值duty作比较以输出0或1。为了得 到频率为10KHz的方波,需要在计数器大于12500(时钟周期为8ns)时置零,为了得到特 定占空比的PWM,可以通过计算duty的值,此处的duty=12500*u,u为多分辨率控制器控 制输出的占空比结果。
3)控制器模块设计
①定点数据设计
多分辨率控制器在MATLAB中验证通过后,基于算法的M语言描述编写相应的C/C++程序代码。由于浮点数据类型占用的硬件资源比较多,并且计算速度较慢,而定点数据类型使得每个数据都是位精准的,占用资源少,计算速度快,且易于传输和存储,因此,故本发明用定点数据模型代替浮点数据类型。在Vivado HLS中有关于整数和小数的定点模板,分别为ap_[u]int<W>和ap_[u]fixed<W,I,Q,O,N>,模板中参数的具体意义如下:
[u]:意味着所设计的数据是否有符号,添加u则为无符号,如ap_uint<W>意味着无符号的整型定点数;
W:数据的总位宽;
I:在进行定点小数设计过程中设计,其代表整数位位宽;
对于Q、O、N等参数的设置由于本发明并未涉及,故全部采用系统默认方式。
②通过算法分析,根据不同变量的变化范围,合理地设计其数据类型,通过精确的位宽控制可以在不影响精度的前提下减少资源的消耗,提高计算性能。根据离线仿真结果可 以很方便的获得各个变量的取值范围,对于一些不容易获得范围的中间变量,可以把数据的 位宽和整数位的位宽设置大点,防止中间变量计算溢出出错。本发明的控制算法中主要变量 的具体定点数据类型设计如表1
表1主要变量的具体定点数据类型设计
③硬件代码生成
设计完定点模型控制器后将算法的C/C++程序代码转换成FPGA硬件描述语言代码。本发明一 方面采用FPGA对控制器进行硬件提速,另一方面对控制算法进行电路结构优化。在硬件语言 中,除法比乘法浪费资源和时间,且如果乘数是2的幂次,还可以用左移运算代替乘法以提 速。循环是C/C++语言中一项关键属性,其是一种很典型的串行执行程序,故在Vivado HLS 中对循环进行的展开操作,就是一种硬件加速过程。当循环体内部循环之间没有相互关系, 就可以将循环完全展开,这是一种并行执行的思想;当循环体内部的循环相互有联系,就可 以进行循环平坦化处理,这是一种流水线执行的思想。无论哪种情况,都能完成循环体的硬 件加速。在本设计中,小波分解和小波重构函数中包含大量的循环,故在此可以设计循环的 展开优化,当然循环的展开的代码最终生成的硬件描述语言代码会增加FPGA的占用资源,这 一点可以针对实际情况加以调整,如可以选择部分展开等。通过图8可以看出在转速误差信 号分解与重构的过程中可以充分利用FPGA的并行计算能力提高在线运算速度。在FPGA内部, 各变量的存储结构有多种,例如RAM存储,寄存器存储。由于RAM存储的变量不能同时读取, 这样会降低系统的运行速度,故本发明将所有变量全部采用寄存器存储。
④功能验证
为了验证设计出来的控制器硬件描述语言代码的正确性,本文利用硬件描述语言专业仿真软 件ModelSim对生成的代码进行离线仿真验证,通过编写测试激励,再与控制器软件代码相同 的输入下进行仿真,最终得到ModelSim仿真的波形图如图9所示。
4)模块集成
在完成了控制器算法的硬件语言生成以及硬件接口的驱动程序后,就可以将所有的硬件代码 放到Xilinx官方的FPGA开发工具Vivado中进行综合布局布线,然后生成FPGA的配置文件 即完成控制器的设计。通过RTL综合视图可以发现控制器的总体电路结构如图10所示,其 和设计的控制器相同,主要是由两个接口结构和一个控制算法结构组成。经综合后FPGA的资 源报告如图11所示,可以发现多分辨率控制算法所占的硬件资源在所选的Zybo板卡下的表 现。其中LUT即为查找表资源,主要负责控制器的逻辑变换和存储等,这一部分资源占用26%; FF为触发器资源,主要负责算法中的时序,这一部分占用23%;LUTRAM和BRAM为一些存储 单元,主要负责算法中的数据存储,这一部分资源消耗较少,主要是因为算法里面的矩阵较 少,数据也不多;而DSP资源则是负责算法中的乘法运算的快速实现,由于前面的优化,这 一部分资源消耗较多,占用整个板卡的90%,一方面也是由于此板卡较为低端,DSP资源非 常少,另一方面也在于算法中存在不少的乘法运算的缘故。综合看来,可以发现本次设计的 多分辨率控制器的硬件消耗并未超过板卡限制,所选的FPGA板卡满足其要求,而且控制器在 FPGA的硬件并行加速下,具有非常优异的性能。
永磁直流电机实物控制
为了验证本发明设计的基于FPGA的多分辨率控制器,采用如图12所示的永磁直流电机及其 外围硬件对控制器的控制效果进行验证。永磁直流电机控制系统硬件平台包括FPGA开发板, 光电编码器,永磁直流电机,PWM直流电机驱动板。为了对实验效果进行验证,针对该永磁 直流电机设计了普通PID控制器进行对比。两组实验均跟踪转速为3rad/s,5rad/s和7rad/s。
实物实验结果如图13所示。通过和普通PID控制对比,可以发现,发明的基于FPGA的多分辨率控制器可以更好的处理永磁直流电机低速区噪声扰动过大的问题,具有很好的控 制效果,为永磁直流电机的低速区控制提供了一种新的解决思路。

Claims (2)

1.一种基于FPGA实现的永磁直流电机多分辨率控制器,其特征在于:其步骤是:
①多分辨率控制器:
利用小波变换对转速误差信号进行各个频率段的分解与单向重构,在单向重构的过程中对各频段的信号进行加权求和,求出控制输出电压;
小波变换将原始信号分解成不同分辨率组成部分进行表示:
<mrow> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>e</mi> <mi>H</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>e</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mo>...</mo> <mo>+</mo> <msub> <mi>e</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>e</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>
通过对各个分辨率上的信号进行加权后相加得到控制器的输出,具体式子如下:
<mrow> <mi>u</mi> <mo>=</mo> <msub> <mi>k</mi> <mi>H</mi> </msub> <msub> <mi>e</mi> <mi>H</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>k</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <msub> <mi>e</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mo>...</mo> <mo>+</mo> <msub> <mi>k</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <msub> <mi>e</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>k</mi> <mi>L</mi> </msub> <msub> <mi>e</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> <mo>;</mo> </mrow>
②PID控制器对偏差信号进行线性分解后,再进行加权以得到控制器控制输出
<mrow> <mi>u</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>k</mi> <mi>p</mi> </msub> <mrow> <mo>(</mo> <mi>e</mi> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mo>+</mo> <mfrac> <mn>1</mn> <msub> <mi>T</mi> <mi>I</mi> </msub> </mfrac> <munderover> <mo>&amp;Integral;</mo> <mn>0</mn> <mi>t</mi> </munderover> <mi>e</mi> <mo>(</mo> <mi>t</mi> <mo>)</mo> <mi>d</mi> <mi>t</mi> <mo>+</mo> <msub> <mi>T</mi> <mi>D</mi> </msub> <mfrac> <mrow> <mi>d</mi> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>d</mi> <mi>t</mi> </mrow> </mfrac> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>
增量式离散PID控制算法如下:
u(k)=u(k-1)+kp[e(k)-e(k-1)]+kie(k)+kd(e(k)-2e(k-1)+e(k-2)) (4)
③信号获取:
为了保证控制器的实时性与准确性,降低多分辨率控制器设计中Mallat算法的边界效应,采用以下方式进行信号获取:
⑴选择合适的数据缓存的长度N;
⑵初始数据缓存为0,在当前采样时刻,当前数据以流水线形式先入先出方式进入缓存;
⑶将缓存的数据进行镜像存储,最新数据靠近缓存中心,即设在k时刻的转速误差为e(k),经对称添加形成的数据缓存窗数据为e(k-N+1),…e(k-2),e(k-1),e(k),e(k-1),e(k-2),…e(k-N+1);
④信号的多频率分解与重构:
对一个连续的转速误差信号e(t)属于L2空间,在m尺度下产生下面的近似序列
<mrow> <mi>e</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&amp;Sigma;</mo> <mrow> <mi>n</mi> <mo>=</mo> <mo>-</mo> <mi>&amp;infin;</mi> </mrow> <mrow> <mo>+</mo> <mi>&amp;infin;</mi> </mrow> </munderover> <mover> <mi>e</mi> <mo>~</mo> </mover> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mi>&amp;phi;</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <msup> <mn>2</mn> <mi>m</mi> </msup> <mi>t</mi> <mo>-</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>m</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>3</mn> <mo>,</mo> <mo>...</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
即每个近似序列可以表示为同一个函数e(t)进行缩放和平移后的加权之和,其中φ(τ)被称为尺度函数,如果用第(m+1)层的近似值来重定义第m层的近似值,这样函数φ(2mt)应该是第(m+1)层基函数φ(2m+1t)的一个线性组合,也就是
<mrow> <mi>&amp;phi;</mi> <mrow> <mo>(</mo> <msup> <mn>2</mn> <mi>m</mi> </msup> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&amp;Sigma;</mo> <mi>k</mi> </munder> <mi>h</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mi>&amp;phi;</mi> <mrow> <mo>(</mo> <msup> <mn>2</mn> <mrow> <mi>m</mi> <mo>+</mo> <mn>1</mn> </mrow> </msup> <mi>t</mi> <mo>-</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>
如果V(m+1)代表由正交集φ(2m+1t-k)组成的函数空间,V(m)代表由正交集φ(2mt-p)组成的另一个函数空间,这样可知这样的空间具有递归嵌套关系,即这样W(m)就代表着由空间e(2mt)向空间e(2m+1t)转换中的增添的偏差信息组成的空间,这样的空间由另一个正交集ψ(2mt)来组成,得到如下的式子:
<mrow> <mi>e</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>e</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>n</mi> <mo>=</mo> <mo>-</mo> <mi>&amp;infin;</mi> </mrow> <mrow> <mo>+</mo> <mi>&amp;infin;</mi> </mrow> </munderover> <mover> <mrow> <mi>&amp;delta;</mi> <mi>e</mi> </mrow> <mo>~</mo> </mover> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> <mi>&amp;psi;</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <msup> <mn>2</mn> <mi>m</mi> </msup> <mi>t</mi> <mo>-</mo> <mi>n</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow> 1
其中函数ψ(2mt)被称之为小波函数,它和尺度函数φ(2mt)之间可以通过如下关系进行关联:
<mrow> <mi>&amp;psi;</mi> <mrow> <mo>(</mo> <mi>m</mi> <mo>,</mo> <msup> <mn>2</mn> <mi>m</mi> </msup> <mi>l</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&amp;Sigma;</mo> <mi>k</mi> </munder> <mi>g</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mi>&amp;phi;</mi> <mrow> <mo>(</mo> <mi>s</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <msup> <mn>2</mn> <mrow> <mi>m</mi> <mo>+</mo> <mn>1</mn> </mrow> </msup> <mi>l</mi> <mo>-</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>k</mi> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>,</mo> <mn>2</mn> <mo>,</mo> <mn>3....</mn> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>
h(k)和g(k)是组成小波变换中比较重要的镜像滤波器组,这样就通过下式的小波变换来刻画误差信号e(t)
<mrow> <mtable> <mtr> <mtd> <mrow> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mi>&amp;Sigma;</mi> <mi>k</mi> </munder> <msub> <mi>c</mi> <mrow> <mi>N</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <msub> <mi>&amp;phi;</mi> <mrow> <mi>N</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <munderover> <mi>&amp;Sigma;</mi> <mrow> <mi>m</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>N</mi> </munderover> <munder> <mi>&amp;Sigma;</mi> <mi>k</mi> </munder> <msub> <mi>d</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <msub> <mi>&amp;psi;</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>c</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munder> <mi>&amp;Sigma;</mi> <mi>k</mi> </munder> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mover> <mrow> <msub> <mi>&amp;phi;</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> <mo>&amp;OverBar;</mo> </mover> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>d</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munder> <mi>&amp;Sigma;</mi> <mi>k</mi> </munder> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mover> <mrow> <msub> <mi>&amp;psi;</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> </mrow> <mo>&amp;OverBar;</mo> </mover> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>
其中中上划线代表小波函数和尺度函数的共轭函数,c和d分别为对原序列信号e(t)进行分解后的趋势系数和细节系数;
⑤结合式(5)(6)(7)(8)(9)可以得到离散小波变换的滤波器表达式:
<mrow> <mtable> <mtr> <mtd> <mrow> <msub> <mi>c</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munder> <mi>&amp;Sigma;</mi> <mi>n</mi> </munder> <msub> <mi>c</mi> <mrow> <mi>m</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mi>n</mi> </mrow> </msub> <mover> <msub> <mi>h</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>2</mn> <mi>n</mi> </mrow> </msub> <mo>&amp;OverBar;</mo> </mover> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>d</mi> <mrow> <mi>m</mi> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munder> <mi>&amp;Sigma;</mi> <mi>n</mi> </munder> <msub> <mi>d</mi> <mrow> <mi>m</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mi>n</mi> </mrow> </msub> <mover> <msub> <mi>g</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>2</mn> <mi>n</mi> </mrow> </msub> <mo>&amp;OverBar;</mo> </mover> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>10</mn> <mo>)</mo> </mrow> </mrow>
其中是小波分解中滤波器组h(k)和g(k)的共轭函数,而滤波器组函数可以由小波分解中选择的小波函数和尺度函数求得:
<mrow> <mtable> <mtr> <mtd> <mrow> <mi>h</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mn>2</mn> </msqrt> <munder> <mi>&amp;Sigma;</mi> <mi>x</mi> </munder> <mi>&amp;phi;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mover> <mrow> <mi>&amp;phi;</mi> <mrow> <mo>(</mo> <mn>2</mn> <mi>x</mi> <mo>-</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> <mo>&amp;OverBar;</mo> </mover> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <msqrt> <mn>2</mn> </msqrt> <munder> <mi>&amp;Sigma;</mi> <mi>x</mi> </munder> <mi>&amp;psi;</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mover> <mrow> <mi>&amp;psi;</mi> <mrow> <mo>(</mo> <mn>2</mn> <mi>x</mi> <mo>-</mo> <mi>k</mi> <mo>)</mo> </mrow> </mrow> <mo>&amp;OverBar;</mo> </mover> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <mi>g</mi> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mrow> <mo>(</mo> <mo>-</mo> <mn>1</mn> <mo>)</mo> </mrow> <mi>k</mi> </msup> <mi>h</mi> <mrow> <mo>(</mo> <mo>-</mo> <mi>k</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </mtd> </mtr> </mtable> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>11</mn> <mo>)</mo> </mrow> </mrow>
这样对于信号e(t)通过小波变化将其转换到趋势系数c和细节系数d,也就是将信号e(t)分解到各个频率;
⑥当需要将各种信号合成原始信号,就需要利用到Mallat重构算法,式(12)所示的Mallat重构算法是上述分解算法的逆过程,
<mrow> <msub> <mi>c</mi> <mrow> <mi>m</mi> <mo>+</mo> <mn>1</mn> <mo>,</mo> <mi>k</mi> </mrow> </msub> <mo>=</mo> <munder> <mo>&amp;Sigma;</mo> <mi>n</mi> </munder> <msub> <mi>c</mi> <mrow> <mi>m</mi> <mo>.</mo> <mi>n</mi> </mrow> </msub> <msub> <mi>h</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>2</mn> <mi>n</mi> </mrow> </msub> <mo>+</mo> <munder> <mo>&amp;Sigma;</mo> <mi>n</mi> </munder> <msub> <mi>d</mi> <mrow> <mi>m</mi> <mo>.</mo> <mi>n</mi> </mrow> </msub> <msub> <mi>g</mi> <mrow> <mi>k</mi> <mo>-</mo> <mn>2</mn> <mi>n</mi> </mrow> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>12</mn> <mo>)</mo> </mrow> </mrow>
⑦将中间小波系数和尺度系数分别进行采样后与相应的重构滤波器进行单向重构,从而获得原信号的多分辨率信号,当分解层次为3时,就能得到关于原信号的近似信号eH,细节信号eL和中间分辨率的信号e1和e2;将原始信号分解成不同分辨率组成部分进行表示:
<mrow> <mi>e</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>e</mi> <mi>H</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>e</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msub> <mi>e</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>e</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>13</mn> <mo>)</mo> </mrow> </mrow>
信号经过其分解后的信息量包含全频率段的信息,结果是非冗余且无遗漏的;
⑧针对直流电机存在多频率噪声的问题也通过对各个分辨率上的信号进行加权后相加得到控制器的输出,具体式子如下:
<mrow> <mi>u</mi> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>k</mi> <mi>H</mi> </msub> <msub> <mi>e</mi> <mi>H</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>k</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <msub> <mi>e</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msub> <mi>k</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <msub> <mi>e</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>k</mi> <mi>L</mi> </msub> <msub> <mi>e</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>14</mn> <mo>)</mo> </mrow> </mrow> 2
称之为多分辨率PID控制算法,即MSPID。
2.根据权利要求1所述的基于FPGA实现的永磁直流电机多分辨率控制器,其特征在于:当需要处理哪个频率的信号时,便相应的调整其对应的常数增益即可,在直流电机控制中往往存在高频噪声,这时将相应的常数增益尽可能的调整为0,除了这种基本形式外,对其加以扩展,得到其一般形式:
<mrow> <mi>u</mi> <mo>=</mo> <msub> <mi>k</mi> <mi>H</mi> </msub> <mo>*</mo> <msub> <mi>f</mi> <mi>H</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>e</mi> <mi>H</mi> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>k</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <mo>*</mo> <msub> <mi>f</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <mrow> <mo>(</mo> <msub> <mi>e</mi> <msub> <mi>M</mi> <mn>1</mn> </msub> </msub> <mo>)</mo> </mrow> <mo>+</mo> <mn>...</mn> <mo>+</mo> <msub> <mi>k</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <mo>*</mo> <msub> <mi>f</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <mrow> <mo>(</mo> <msub> <mi>e</mi> <msub> <mi>M</mi> <mrow> <mi>S</mi> <mo>-</mo> <mn>1</mn> </mrow> </msub> </msub> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>k</mi> <mi>L</mi> </msub> <mo>*</mo> <msub> <mi>f</mi> <mi>L</mi> </msub> <mrow> <mo>(</mo> <msub> <mi>e</mi> <mi>L</mi> </msub> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>15</mn> <mo>)</mo> </mrow> </mrow>
其中ki是需要对信号的各频率进行加权的常数增益,fi(·)是一个可以自行选择的函数,根据实际控制场景来选择合适的函数。
CN201710604174.2A 2017-07-24 2017-07-24 基于fpga实现的永磁直流电机多分辨率控制器 Pending CN107395074A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710604174.2A CN107395074A (zh) 2017-07-24 2017-07-24 基于fpga实现的永磁直流电机多分辨率控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710604174.2A CN107395074A (zh) 2017-07-24 2017-07-24 基于fpga实现的永磁直流电机多分辨率控制器

Publications (1)

Publication Number Publication Date
CN107395074A true CN107395074A (zh) 2017-11-24

Family

ID=60336190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710604174.2A Pending CN107395074A (zh) 2017-07-24 2017-07-24 基于fpga实现的永磁直流电机多分辨率控制器

Country Status (1)

Country Link
CN (1) CN107395074A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108448978A (zh) * 2018-03-26 2018-08-24 吉林大学 一种有刷直流电机强化学习自适应控制方法
CN110334407A (zh) * 2019-06-12 2019-10-15 上海交通大学 基于fpga的双馈风力电机电磁暂态仿真方法和仿真系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110257545A1 (en) * 2010-04-20 2011-10-20 Suri Jasjit S Imaging based symptomatic classification and cardiovascular stroke risk score estimation
CN105303535A (zh) * 2015-11-15 2016-02-03 中国人民解放军空军航空大学 基于小波变换的全球剖分金字塔模型
CN106055919A (zh) * 2016-08-09 2016-10-26 航天东方红卫星有限公司 一种基于遥测数据小波变换的卫星异常检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110257545A1 (en) * 2010-04-20 2011-10-20 Suri Jasjit S Imaging based symptomatic classification and cardiovascular stroke risk score estimation
CN105303535A (zh) * 2015-11-15 2016-02-03 中国人民解放军空军航空大学 基于小波变换的全球剖分金字塔模型
CN106055919A (zh) * 2016-08-09 2016-10-26 航天东方红卫星有限公司 一种基于遥测数据小波变换的卫星异常检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HUADONG XU: "Simulation on TPMS Based On Neural Network PID Control", 《2011 INTERNATIONAL CONFERENCE ON MECHATRONIC SCIENCE, ELECTRIC ENGINEERING AND COMPUTER》 *
SHAHID PARVEZ等: "A Wavelet-Based Multiresolution PID Controller", 《IEEE TRANSACTIONS ON INDUSTRY APPLICATIONS》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108448978A (zh) * 2018-03-26 2018-08-24 吉林大学 一种有刷直流电机强化学习自适应控制方法
CN108448978B (zh) * 2018-03-26 2021-04-30 吉林大学 一种有刷直流电机强化学习自适应控制方法
CN110334407A (zh) * 2019-06-12 2019-10-15 上海交通大学 基于fpga的双馈风力电机电磁暂态仿真方法和仿真系统
CN110334407B (zh) * 2019-06-12 2022-11-04 上海交通大学 基于fpga的双馈风力电机电磁暂态仿真方法和仿真系统

Similar Documents

Publication Publication Date Title
Bjesse et al. Lava: hardware design in Haskell
Partzsch et al. A fixed point exponential function accelerator for a neuromorphic many-core system
Snyder et al. Generative modeling: A symbolic system for geometric modeling
CN1232031C (zh) 基于fpga的高精度任意波形发生器
CN103345037A (zh) 相机音圈马达执行器的整形信号控制方法
Hindenlang Mesh curving techniques for high order parallel simulations on unstructured meshes
CN107395074A (zh) 基于fpga实现的永磁直流电机多分辨率控制器
Yee et al. Recent developments in accuracy and stability improvement of nonlinear filter methods for DNS and LES of compressible flows
CN103219971A (zh) 基于调制波周期归一化的spwm脉冲波产生系统
Gdaim et al. Artificial neural network-based DTC of an induction machine with experimental implementation on FPGA
CN102789192A (zh) 一种反馈控制系统及其频率响应测量装置
Chakravarthy et al. FPGA-based control system for miniature robots
Colak et al. FPGA implementation of the automatic multiscale based peak detection for real-time signal analysis on renewable energy systems
Guinee et al. A novel Fourier series time function for modeling and simulation of PWM
Llor et al. Comparison of DTC implementations for synchronous machines
Wang et al. FPGA based parallel architectures for normalized cross-correlation
CN105915133A (zh) 步进电机驱动器及其任意细分算法
Mustafa et al. Real-Time FPGA Simulation of Electric Ship Power System Using High-Level Synthesis
Staal FPGA Emulation of Analog Subsystems for Mixed-Signal Integrated Circuit Prototyping
Luk Analysing parametrised designs by non-standard interpretation
CN2624292Y (zh) 多机共享计数器与信号发生器用的asic
De Castro et al. Analysis of aperiodic and chaotic motions in a switched reluctance linear motor
Tisan et al. FPGA accelerators HLS-based design of hyper complex LMS filters
Asadi et al. Context-Aware Number Generator for Deterministic Bit-stream Computing
Jones et al. Embedded algorithms within an FPGA to classify nonlinear single-degree-of-freedom systems

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20171124