2. 2
FPGA
模块电路设计
FPGA
主要负责插补算法信息的处理
、
脉冲信号的输出、
开关量的输入和输出
、
接收编码器的差分信 号等。
(
1
)
差分输入接口电路
U6
为四路差动信号接收器
,
用来接收编码器输出的差分信号,
将电机的位置信息反馈给
FPGA
。
接口电路如图 5
所示
3
运动控制器软件设计
通过触摸屏
(
HMI
)
发送指令给
STM32
,
STM32 接收到指令后通过动态链表的形式将指令存储于外部存储器;
实时读取存储器
,
将运动轴的位置信息
、
速度信息返回给触摸屏显示,
同时将指令信息和插补算法数据,
由
FSMC
传到
FPGA
处理
;
最后由脉冲发生器产生脉冲指令给电机驱动器,
驱动电机转动
。
运动控制器软件设计框图如图 8
所示
。
4
S
形速度规划算法的实现
S
形加减速可充分发挥电机性能
,
因其在加减速阶段速度曲线呈 S
形而得名
。
令加速度的导数为常 数,
改变其 大 小
,
可最大限度减小系统冲击
[10-11]
。 整个加减速过程由 7
个部分构成
[12-13]
,
如图
9
所示
。 图中:
l
为运动的位移
,
v
为速度
,
a
为加速度,j 为
加加速度
,
A
表示匀加速阶段的加速度值
,
M
表示匀减速阶段的加速度值,
T
i
(
i
= 1
,
2
,
3
,......,
7
)
为各阶段的运行时间,
τ
i
(
i
= 1
,
2
,
3
,
......
,
7
)
为以各个起点作为 0
点的时刻
,
t
i
(
i
= 1
,
2
,
3
,
......
,
7
) 为各个过渡点时刻。
实际应用时
,
m
1
~
m
4
的各阶段
都需要判断减速点
,
一般情况下
,
从
0
加速到最大速度和从最大速度减速到 0
所用的时间相同
,
即
T
1
= T3
、
T
5
=
T
7
。
结合图
10
所示的流程
,
算法实现过程如下
:
步骤
1
,
初始化相关的参数
,
包括初始速度
、
目标速度 (
最大运行速度
)
、
加加速度
j
、
最大加速度
A
。
步骤
2
,
计算减速距离
d
ec
,
将
d
ec
与剩余距离
L
s 比较,
其中
L
s
=
L
e
-
L
c
,
L
e
表示指定目标位置值
、
L
c 表示当前位置值。
步骤
3
,
若
L
s
>
d
ec
则减速
,
否则加速或者匀 速 ( 此时如果到达最大速度则匀速
,
未到达则加速
)
。
步骤
4
,
根据步骤
3
的判断
,
重新计算
a
v
、
v
v
、jv 并输出。
步骤
5
,
当
L
c
=
L
e
时
,
到达终点
,
运动停止
,
否则重复步骤 2~ 5
。
文章来源:https://www.toymoban.com/news/detail-795671.html
文章来源地址https://www.toymoban.com/news/detail-795671.html
6
结束语
本文作者提出了一种以
STM32
为主控制器
、
FPGA 为辅助控制器的运动控制器设计方案
,
完成了控制器硬件平台及外围电路设计,
将
S
形加减速控制算法融入到运动控制器中,
有效避免了运动时由于速度突变引起的过冲、
抖动等现象
,
提高了控制精度
。
对运动控制器进行测试,
结果表明
:
以
STM32+FPGA
为硬件架构的运动控制器实时性好、
可靠性高
,
能满足工业运动控制的要求。
信迈支持STM+FPGA运动控制器、ethercat总线定制。