一种基于FPGA的高精度调频驱动超声电机控制器

申请号 CN202311428652.0 申请日 2023-10-31 公开(公告)号 CN117955363A 公开(公告)日 2024-04-30
申请人 南京航空航天大学; 发明人 潘松; 周年鹏; 马祺翀; 梁永锦; 陈雷;
摘要 本 发明 公开了一种基于FPGA的高 精度 调频驱动超声 电机 控制器 ,包括通信模 块 、高 分辨率 频率 发生器、按键模块、 编码器 解析模块和控制 算法 、 数据处理 模块。高分辨率频率发生器模块输出四路 相位 可调占空比可调的PWM波,控制算法模块根据编码器反馈超声电机运行参数通过控制算法进行调节,按键模块用来即时对FPGA进行控制,通信模块由USART逻辑和UDP逻辑构成。控制算法、数据处理由ARM/DSP产生,与FPGA相连将超声电机运行的数据和状态通过LCD屏进行性能检测及伺服控制。本发明调频精度在1Hz以下,并且通过闭环的控制算法可以使得PWM波输出相位、占空比和频率 稳定性 更高,可适用于超声电机的精密驱动与控制。
权利要求

1.一种基于FPGA的高精度调频驱动超声电机控制器,其特征在于:所述电机控制器包含FPGA控制单元,FPGA控制单元包括通信模、高分辨率频率发生器模块、按键解码模块、编码器解析模块、控制算法以及数据处理模块;所述通信模块用于实现FPGA芯片与PC或ARM/DSP之间的通信,所述高分辨率频率发生器模块为用于输出四路高精度调频、调相和调占空比的PWM波,输出的波形与驱动电路连接,以驱动超声电机;所述按键模块用于实时对FPGA芯片进行控制;
所述编码器模块连接超声电机,用于反馈超声电机的运行参数和状态,编码器解析模块是可以连接不同协议的编码器,将编码器解析后的参数通过控制算法模块,优化超声电机的驱动控制。
2.如权利要求1所述的基于FPGA的高精度调频驱动超声电机控制器,其特征在于:所述的高分辨率频率发生器模块包括累加器,数值比较器,其中,
所述累加寄存器是由一个加法计数器和一个频率控制字K构成,在FPGA芯片时钟的上升沿以频率控制字K为步距进行累加,当累加达到最大值时,寄存器置零,进行下一次累加,通过改变频率控制字K改变输出波形的频率;
所述数值比较器是将确定好的频率进行占空比调节,通过设定常量cnt0,H和变量cnt1和t,实现FPGA输出四路占空比相位可调的PWM波。
3.如权利要求2所述的基于FPGA的高精度调频驱动超声电机控制器,其特征在于:所述占空比、相位通过以下方式进行调节:
当FPGA累加器的值小于或等于数值比较器设定的值,则输出高电平,否则输出低电平,只需要调节变量t,实现PWM波的占空比同步调节;
通过一二路和三四路之间的相位差保持不变,改变一、三两路的相位差,通过调节变量cnt1,实现一三两路的PWM波相位可调。
4.如权利要求1所述的基于FPGA的高精度调频驱动超声电机控制器,其特征在于:所述控制算法模块将解析后的超声电机运行参数通过高速并行总线传输给ARM/DSP,通过数据处理后进行算法控制对驱动控制输出的PWM波进行实时补偿,使整个驱动系统实现一个闭环控制。
5.如权利要求4所述的基于FPGA的高精度调频驱动超声电机控制器,其特征在于:编码器解析模块支持方波TTL、BISS、endata和SSI绝对式编码器增量式编码器的多种协议类型。
6.如权利要求4所述的基于FPGA的高精度调频驱动超声电机控制器,其特征在于:所述的高速并行总线,分别与ARM/DSP和PC上位机进行高速通信;其中,PC通信通过USART协议和UDP协议;ARM/DSP通过SPI协议进行通信,将FPGA控制单元的系统参数和超声电机的状态传输到ARM/DSP;ARM/DSP与外接LCD显示器连接实现人机交互,PC用于在线调试以及驱动器的优化。
7.如权利要求6所述的基于FPGA的高精度调频驱动超声电机控制器,其特征在于:所述LCD显示屏模块通过ARM/DSP的显示器控制单元将所述控制器的系统参数、待控制超声电机的状态通过显示器进行显示,通过通信模块将输入的指令传输给FPGA,并且将超声电机的运行状态参数输出到显示屏上。

说明书全文

一种基于FPGA的高精度调频驱动超声电机控制器

技术领域

[0001] 本发明属于电机驱动控制电路,尤其涉及一种基于FPGA的高精度调频驱动超声电机控制器。

背景技术

[0002] 超声电机是一种新型电机,它利用了压电材料的逆压电效应,在压电材料上施加交流信号产生交变电场,进而激发出压电材料在超声频段内的振动,并将这一振动放大,通过摩擦作用转换为电机转子的运动,作为功率输出并驱动其他负载。与传统电机相比,超声电机具有低转速、大矩、响应速度快、断电自、无电磁干扰等优点。因此,超声电机在航空航天、仿生机械、医疗器械等领域得到广泛应用。超声电机压电陶瓷的振动模态由两相高频正弦信号(30‑60KHz)激励产生,运转时伴随界面温度的上升,阻抗曲线、振动幅频曲线发生偏移,速度呈现出非线性时变的特点,此外不同控制参数(幅值、频率相位差)对电机速度的影响规律存在差异,因此需要构建多参数反馈。根据声波电机的传动原理,可用的控制变量有:1.控制电压幅值。通过改变电压幅值可以改变行波波动的幅值。2.变频控制。通过调节谐振点附近的频率控制速度和力矩。变频调速对超声波电动机最合适,因为电动机工作点在谐振点附近,调频响应快,方便调节。3.相位差控制。改变两相电压的相位差可改变定子表面质点椭圆的运动轨迹,从而改变输出的波形
[0003] 目前FPGA用于产生PWM信号的方法主要是计数器比较法。即通过内部信号建立相应的载波计数器,通过调制信号与载波计数器进行比较产生期望的PWM信号,但是这种方法调制得到的PWM波精度最小为时钟信号周期。目前一些低成本的FPGA时钟频率小于200MHz,无法达到1Hz以下调频。即使一些昂贵的高性能FPGA,最大的运行时钟频率一般也要小于1GHz,调频精度在1.5Hz左右,性价比极低,无法满足高精度调频控制超声电机的需求。

发明内容

[0004] 为了克服现有的技术不足,本发明的目的是提供一种基于FPGA的高精度调频驱动超声电机控制器,在不改变FPGA时钟频率的条件下,构造多路调频、调相、调占空比的PWM信号,配置编码器解析、通信模块和以解决现有技术存在的调节精度不高的问题。
[0005] 为实现上述目的,本发明采用以下技术方法:一种基于FPGA的高精度调频驱动超声电机控制器,所述电机控制器包含FPGA控制单元,FPGA控制单元包括通信模块、高分辨率频率发生器模块、按键解码模块、编码器解析模块、控制算法以及数据处理模块;所述通信模块用于实现FPGA芯片与PC或ARM/DSP之间的通信,所述高分辨率频率发生器模块为用于输出四路高精度调频、调相和调占空比的PWM波,输出的波形与驱动电路连接,以驱动超声电机;所述按键模块用于实时对FPGA芯片进行控制;
所述编码器模块连接超声电机,用于反馈超声电机的运行参数和状态,编码器解析模块是可以连接不同协议的编码器,将编码器解析后的参数通过控制算法模块,优化超声电机的驱动控制。
[0006] 进一步的,所述的高分辨率频率发生器模块包括累加器,数值比较器,其中,所述累加寄存器是由一个加法计数器和一个频率控制字K构成,在FPGA芯片时钟的上升沿以频率控制字K为步距进行累加,当累加达到最大值时,寄存器置零,进行下一次累加,通过改变频率控制字K改变输出波形的频率;所述数值比较器是将确定好的频率进行占空比调节,通过设定常量cnt0,H和变量cnt1和t,实现FPGA输出四路占空比相位可调的PWM波。
[0007] 进一步的,所述占空比、相位通过以下方式进行调节:当FPGA累加器的值小于或等于数值比较器设定的值,则输出高电平,否则输出低电平,只需要调节变量t,实现PWM波的占空比同步调节;
通过一二路和三四路之间的相位差保持不变,改变一、三两路的相位差,通过调节变量cnt1,实现一三两路的PWM波相位可调。
[0008] 进一步的,所述控制算法模块将解析后的超声电机运行参数通过高速并行总线传输给ARM/DSP,通过数据处理后进行算法控制对驱动控制输出的PWM波进行实时补偿,使整个驱动系统实现一个闭环控制。
[0009] 进一步的,编码器解析模块支持方波TTL、BISS、endata和SSI绝对式编码器增量式编码器的多种协议类型。
[0010] 进一步的,所述的高速并行总线,分别与ARM/DSP和PC上位机进行高速通信;其中,PC通信通过USART协议和UDP协议;ARM/DSP通过SPI协议进行通信,将FPGA控制单元的系统参数和超声电机的状态传输到ARM/DSP;ARM/DSP与外接LCD显示器连接实现人机交互,PC用于在线调试以及驱动器的优化。
[0011] 进一步的,所述LCD显示屏模块通过ARM/DSP的显示器控制单元将所述控制器的系统参数、待控制超声电机的状态通过显示器进行显示,通过通信模块将输入的指令传输给FPGA,并且将超声电机的运行状态参数输出到显示屏上。
[0012] 本发明的有益效果:本发明通过FPGA产生的四路PWM可以实现对超声电机主要驱动参数频率、相位和占空比快速调整,其中可以实现1Hz精度以下的调频,进而构造了多样的驱动和控制信号
与PC和ARM实时通信,增强了人机交互,可以通过上位机对FPGA进行在线修改和优化。通过设定了多协议编码器接口,结构更加简单,可适用于不同的场景。通过编码器,可以对超声电机的特性进行实时测量,将获得到的数据进行实时反馈,并且进行算法优化,实现了超声电机的闭环控制,增加了超声电机控制灵活性。
附图说明
[0013] 图1是本发明的结构示意图;图2是本发明高精度调频原理图;
图3是本发明四路PWM波生成电路原理图;
图4是本发明PWM波调频原理图;
图5是本发明四路PWM生成原理图;
图6是本发明PWM波移相原理图;
图7是本发明四路PWM仿真图;
图8是本发明UDP通信原理图;
图9是本发明发送模块内部主要电路图;
图10是本发明接收模块内部主要电路图。
实施方式
[0014] 为了使本发明的技术方案及优点更加精准明白,以下结合附图及具体实施例对本发明进行进一步的详细说明。
[0015] 本发明专利可以以许多不同的形式实现,而不应当认为限于这里所述的实施例。相反,提供这些实施例以便使本公开透彻且完整,并且将向本领域技术人员充分表达本实发明的范围。在附图中,为了清楚起见放大了组件。
[0016] 如图所示1,本发明的一种基于FPGA的高精度调频驱动多参量反馈超声电机控制器,包括编码器解析模块、高速并行总线模块、通信模块、高分辨率频率发生器模块、控制算法数据处理模块、按键解码模块,其中,高分辨率频率发生器主要通过设置一个32位累加寄存器cnt,两个可调变量cnt1和t,两个常量cnt0和H。
[0017] 由图2所示,在基准时钟50Mhz下,累加寄存器cnt在时钟上升沿每次累加K(频率控制字),当累加器数值达到或大于时,累加器自动置零,进入下一次累加,通过调节频率控制字K,即可改变累加寄存器的累加次数,从而改变PWM输出波形的频率。以50MHz的外部时钟为例,K增加1,则频率增加0.0116Hz。
[0018] 由图3所示,高分辨率频率发生器的电路原理图由累加器ADDER,计数器CNT,六路比较器LessThan和两个电路clk_out构成。ADDER累加器,每次累加K值,累加的最大值为cnt计数器的最大值。将每次累加的结果分别输出给六路比较器LessThan,当累加器的的值输入到LessThan0的A端口,输入的值小于LessThan0时输出高电平大于LessThan0时输出低电平,接着通过clk_out1~reg0寄存器输出PWM波clk_out1。同理,当累加器输出的值输入到LessThan5的B端口,当输入的值小于LessThan5时输出低电平,当输入的值大于LessThan5时输出高电平。当累加器的值反别输入到LessThan1的B端和LessThan2的A端口,当累加器ADDER的值满足大于LessThan1小于LessThan2时,通过门电路输出高电平,反之则输出低电平,接着通过clk_out2~reg0寄存器输出PWM波clk_out2。同理输出也可输出PWM波clk_out3。正如图5所示,通过高分辨率频率发生器的电路可以产生一三与二四路之间相位差180°的PWM波。
[0019] 由图4所示,当累加器从cnt0开始累加到cnt0+t时PWM1输出高电平,其余则输出低电平。PWM2从H到cnt0+H+t输出高电平,其余输出低电平。PWM3从cnt1到cnt1+t输出高电平,其余输出低电平。PWM4从cnt1+H到cnt1+t+H输出高电平,其余则输出低电平。
[0020] 由图6所示,当四路PWM波生成后,改变cnt1大小,其余量不变,则PWM3和PWM4高电平累加的初始值cnt1和cnt1+H发生了变化,则PWM1和PWM3之间相对的PWM相位也发生改变, 进一步通过驱动电路最后输出的两路正弦波相位也发生改变如图PWM3和PWM3’所示。
[0021] PWM1在累加器cnt0到cnt0+t的范围内输出高电平,当改变t的范围,则输出高电平的时间也会随之变化,即一个PWM周期内的占空比也发生了改变。同理其他三路的PWM波也同样可以实现。由图7所示,通过modelsim仿真分别得出四路相位差90°占空比25%的PWM波。
[0022] 四路PWM波经过驱动电路后输出两路正弦信号驱动超声电机,通过编码器模块获得到超声电机的运行参数。
[0023] 编码器解析模块与FPGA相连,在FPGA中配置多种协议指令支持包括方波TTL、BISS、endata和SSI等绝对式编码器和增量式编码器的多种协议类型。
[0024] 由图1所示,编码器解析模块获得到编码器的参数通过高速并行总线传输给ARM/DSP,ARM/DSP将解析到的参数进行数据处理,处理后的数据进行控制算法优化,并通过告诉并行总线和通信解码模块反馈给高分辨率频率发生器,使超声电机可以高性能的控制。
[0025] 由图1所示的LCD模块,ARM/DSP外部连接一个LCD显示屏,设有嵌入式系统,可以实现对ARM/DSP的控制算法和数据处理和FPGA进行操作控制。包括实现对频率字节K、占空比和相位值进行调节以及编码器协议选择模块,可供有方波TTL、BISS、endata和SSI等绝对式编码器和增量式编码器的多种协议类型选择。并且将超声电机运行参数和状态实时显示在LCD屏。
[0026] 通信模块分别与UDP逻辑模块和USART逻辑模块相连接。其中,UDP逻辑模块实现网络接口的通信,由图8原理图所示,分别为发送和接收,实现了动态ARP,UDP,和10/100/1000M网速自动协商仲裁功能。其中在发送部分中, MAC层发送模块,等待发送信号,如果接收到发送信号,表明 IP 或 ARP的数据已经准备好,可以开始发送。再进入发送前导码状态,结束时发送指令,请求 IP 或 ARP 的数据,之后进入发送数据状态,最后进入发送 CRC 状态。在发送数据过程中,需要同时进行 CRC 校验。在接收部分中,MAC层接收文件,进入接收数据状态时,将数据传送到 IP 或 ARP 模块,等待 IP 或 ARP 数据接收完毕,再接收 CRC 数据。并在接收数据的过程中对接收的数据进行 CRC 处理,将结果与接收到的 CRC 数据进行对比,判断数据是否接收正确,正确则结束,错误则进入 ERROR 状态。ICMP应答是接收其他设备发过来的ICMP数据,判断是否是回送请求,如果是,将数据存入 RAM,并计算校验和,判断校验和是否正确,如果正确则进入发送状态,将数据发送出去。其中APR发送在 IDLE 状态下,等待 ARP 发送请求或 ARP 应答请求信号,之后进入请求或应答等待状态,并通知 MAC 层,数据已经准备好,等待 发送的信号,之后进入请求或应答数据发送状态。
IP层模块主要是信息提取并进行校验和检查,进行IP层的数据收发。CRC校验,是在目标 MAC 地址开始计算的,一直计算到一个包的最后一个数据为止。
[0027] USART逻辑模块由接收模块和发送模块构成。由图9所示发送模块逻辑电路图,通过外部时钟clk和数据Tx输入,分别经过波特率生成模块、移位寄存器和移位计数器、和状态机。其中clk时钟经过波特率生成模块对打包成的Tx数据进行移位控制,将Tx数据传输给PC等上位机,状态机用来判别数据是否传输完成和对波特率生成控制。由图10所示的接收逻辑电路图通过外部时钟clk和接收到的Rx数据作为输入,分别经过波特率生成模块、移位寄存器和移位计数器、和状态机。其中clk时钟经过波特率生成模块输入的Rx数据进行移位控制,将Rx数据转变为8个字节数据传输给FPGA,状态机由同步器的下降沿控制用来判别数据是否传输完成和对波特率生成控制。
[0028] PC可通过USART协议或者网络接口与FPGA之间进行通信,用来传输存储在FPGA里的驱动超声电机运行的参数数据,方便进一步做理论分析。也可以通过在线调试,对FPGA控制算法模块进行一系列的优化,实现超声电机驱动控制器的高性能控制。
[0029] 按键解码模块通过外接相连的键盘阵列作为输入,内部通过高速并行总线进行指令的传输,分别可以对通信解码、编码器解析和控制算法数据处理等进行即时控制,可以用来保证超声电机运行安全稳定。
[0030] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
QQ群二维码
意见反馈