一种基于ARM 单片机与CPLD的数字轴角转换方法(二)
扫描二维码
随时随地手机看文章
3 软件设计
系统主要分为轴角粗精角度分离取整.占空比计算以及PWM 信号生成三部分.系统工作流程如图3所示.
3.1 轴角粗精分离设粗精同步机系统表示的轴角为θ,根据粗精传动比例k将其分为精确同步机轴角度θ精和概略同步机轴角度θ粗,这一过程称为轴角粗精角度分离.实际中,概略同步机轴角度θ粗=θ,精同步机的轴角度计算公式为:
3.2 查表法计算占空比根据公式(1),以正弦调制波为例,其输出式子为:
URS = KRUmsinωtsinθ,PWM 波形频率为f1 =20kHz,DSC角度更新速率为f2 =50Hz,因此在每个调制波周期内有N1 =f1/f2=400个PWM信号.CPLD采用时钟计数.CPLD采用时钟计数方法产生不同占空比的PWM 信号,由于CPLD的时钟频率为f3 =32.768 MHz,因此产生20kHz的PWM 信号时,最大计数值为N2 =f3/f1=1638,以中间数值为零值点,即为Z0 =819.
为了减小计算量及加快反应速度,需建立sinωt 值对应占空比的表格,表中
间正整数.同时,将sinθ值存于另一表,表中
间正整数,表示0~6000mil间的正弦值对应的占空比值,在粗精分离后,将粗精角度取整后即可通过查此表得到对应θ的正弦值.
由以上两表值,可得调制波URS的对应占空比计算公式为;
3.3 PWM 信号生成
STM32F4单片机通过总线方式向CPLD发送占空比及选通通道信息,其总线写操作时序如图4所示.
根据写时序,在整个写时序中,地址信号常有效,数据信号出现在R/W#信号拉低后,因此可用此信号作为CPLD程序中时钟计数开始标志位,通过对地址译码,进行通道选择.
在QuartusⅡ中利用VHDL语言编写CPLD程序,在R/W#的下降沿读取地址,在R/W#的上升沿读取数据,而后进行时钟脉冲计数以得到对应占空 比的PWM 信号.程序仿真结果如图5所示,由图中可以看出,对应不同地址和占空比,不同通道输出相应的PWM 信号 .
4 误差分析及测试
4.1 响应实时性分析
PWM 信号频率为20kHz,步长为50μs,因此,系统响应总时延必须远小于50μs.系统总时延主要包括三个部分:
MCU内部运算时延.总线数据发送时延以及CPLD逻辑电路产生PWM 信号时延.全桥电路中MOS管开断时延非常小,基本可忽略,此处不予考虑.
图6 (a)为STM32F4做20万次乘法运算所用时间,经测算时间大约为20ms,每次运算时间约为0.1μs;图6 (b)为STM32总线操作时间,经测算时间大约为250ns.二者总时间延迟约为350ns左右.本着减小时延的原则,CPLD型号 EPM7512AETC144-7,综合时延为7ns左右.由上所述,总时延不会超过400ns,相较于50μs基本可忽略,故可满足系统实时性要求,可 准确反应实时轴角信息.
4.2 动态精度分析
DSC轴角度以50Hz的速率更新数据,与其相连的随动系统或同步机具有惯性平滑作用,可将步进阶梯平滑滤除,但是会产生动态误差,它与角度的变化率有关,可通过动态测量,计算角度变化率的方法以软件方式补偿.
设ti时刻考虑动态补偿的DSC输出角度为θ′i ,ti+1时刻不考虑动态补偿的DSC输出角度为θi+1 ,则角度变化率ωi为:
则考虑动态补偿后ti+1时刻应向DSC输出的角度为:
4.3 测试结果
图8为实测输出调制波结果,从图中可以看出,输出信号波形较好,频率稳定,实时性较好,动态精度良好,满足使用要求。
5 结束语
设 计了一种以ARM Cortex-M4内核的新型STM32F4微控制器和可编程逻辑器件CPLD为核心的数字-轴角转换系统.利用PWM 信号控制全桥桥电路提供大功率输出,进而驱动同步机指向对应轴角.经高炮系统控制实验验证,该系统运转平稳,效率高,改进了原系统功耗较高.发热量大的缺 点,且具有较高精度及效费比,实测静态转换误差小于0.5密位(20:1粗精组合),达到实际要求,为其它数字-轴角转换系统实现提供了一种新的方法,具 有一定推广价值.