基于CAN总线的多步进电机矢量推进器系统及控制方法

文档序号:36831055发布日期:2024-01-26 16:45阅读:35来源:国知局
基于CAN总线的多步进电机矢量推进器系统及控制方法

本发明涉及矢量推进,特别是涉及一种基于can总线的多步进电机矢量推进器系统及控制方法。


背景技术:

1、当今世界资源种类丰富,各种资源的需求越来越大,海洋作为重要的战略资源,在当前环境下显得尤为重要。由于海洋环境具有很高的不确定性,所以人们在进行资源开采时面临着极大的困难。以深水环境为例,在水下高压,载体有着大量负载的情况下,若想要安全地完成任务,水下的载具需要具备强大的抗压能力,灵活的调整能力和高效的推进力。在这种情况下,如何增强水下航行器的能力成为了许多国家国防和海洋科学等领域的重点研究方向。

2、由于存在着复杂的环境与情况,所以对于水下航行器的调整能力有着很高的要求,因此需要设计一个更加灵活的多驱动器的矢量推进系统。矢量推进技术的引入使得水下航行器具有更高的机动性和更加灵活的转向能力。水下航行器的矢量推进技术与航天器原理类似,航行器通过螺旋桨等推动水流至需要的方向上进行移动,通过这种方法产生推力和力矩,进而推进航行器进行移动。同时由于航行器有多个不同方向与位置的螺旋桨等推进器,所以可以通过改变不同位置的螺旋桨等的旋转速度,改变推动的水流流速进而可以向不同方向移动。采用了矢量推进技术的水下航行器在航行器中脱颖而出,它的航行范围更大,航行更加灵活,在高压与复杂的水下有着更好的反应,能够更快更灵活地调整自己的位置与运动方向。因此设计一种多步进电机的矢量控制器系统对于矢量推进器技术的研究与发展十分重要。


技术实现思路

1、本发明的目的是针对复杂的环境与情况,所以对于水下航行器的调整能力有着很高的要求,很多时候水下航行器的转向不够及时与精准的实际问题,提出基于can总线的多步进电机矢量推进器系统及控制方法,该多步进电机矢量推进器系统实现了绝对角度、方向和复位控制,系统精确地执行角度控制指令,旋转指定的角度。

2、上述的目的通过以下技术方案实现:

3、本发明首先提供一种基于can总线的多步进电机矢量推进器系统,包括主控pcb系统和若干个由步进电机的驱动pcb与步进电机本身构成的闭环驱动系统,所述主控pcb系统与单个闭环驱动系统之间通过can总线连接;所述主控pcb系统采用ch32f103c8t6主控芯片一负责每个闭环驱动系统的驱动、传感器对数据的读取以及can通信接收控制信息和传递角度信息;每个所述闭环驱动系统包含一块集成多个模块的驱动板和一台电机,驱动板包含电源模块、主控芯片模块、电机驱动模块、传感器模块、can通信模块、oled显示模块以及电机扇叶模块。

4、进一步地,每个所述闭环驱动系统包含一块集成多个模块的驱动板和一台电机,其中所述驱动板采用ch32f103c8t6芯片二,所述电机选取了makerbase mks servo42c闭环步进电机,所述makerbase mks servo42c闭环步进电机选用drv8825驱动芯片作为电机驱动模块,所述drv8825驱动芯片的三个mode、step、dir、enbl和sleep引脚接入所述ch32f103c8t6芯片二,其中三个mode引脚用于改变不同的细分数,step和dir引脚分别用于输出电机的步进信号与方向信号,enbl引脚拉低使能电机,芯片内置下拉,用于控制电机的停止与驱动,sleep引脚拉高使能电机,拉低芯片进入低耗电睡眠模式,芯片内置下拉,此引脚设置为高电平使能电机。

5、进一步地,所述传感器模块采用磁编码器ma730gq-z芯片,用于读取电机的角度值用于整体的控制,磁编码器ma730gq-z芯片安放在电机中心转轴的正下方,电机中心转轴底部贴上一片圆形磁铁,在电机运行时,电机中心转轴下的磁铁产生变化的磁场,此时ma730gq-z能够根据磁场检测出电机的绝对角度位置,从而将角度数据传输给ch32f103c8t6芯片二。

6、进一步地,所述can通信模块选用sit1050芯片,sit1050芯片的can1 tx与can1 rx引脚分别接到ch32f103c8t6芯片二的can1 tx与can1 rx引脚,sit1050芯片的电源与地之间加一个滤波电容,保证线路上电流的稳定。

7、进一步地,所述oled显示模块采用0.96英寸的ssd1315控制的单色显示屏,它的分辨率是128×64,该oled显示模块采用io模拟控制的方式将oled的片选引脚cs、数据与命令引脚dc、复位引脚rst、串行数据线sda和串行时钟线scl分别接入到ch32f103c8t6芯片二的五个io引脚进行模拟控制,oled显示模块用于显示磁编码器读取到的原始角度、处理后的0到360°的角度、主控板发送的控制角度信息和驱动系统的电机id。

8、进一步地,所述电机扇叶模块包含了两个部分:电机扇叶与模块电源,所述电机扇叶是一个由无刷电机带动的扇叶,该无刷电机的三相交流电由电调提供,电调连接到矢量涵道转换板上,ch32f103c8t6芯片二通过输出pwm波来对扇叶的转速进行控制。

9、进一步地,所述所述主控pcb系统采用ch32f103c8t6主控芯片一,ch32f103c8t6主控芯片一的can通信部分使用sit1050芯片,ch32f103c8t6主控芯片一的oled显示屏为ssd1315芯片驱动的0.96英寸显示屏。

10、本发明还提供一种上述的基于can总线的多步进电机矢量推进器系统的控制方法,该方法包括如下几个过程的控制:

11、(1)drv8825驱动芯片的三个mode、step、dir、enbl和sleep引脚接入所述ch32f103c8t6芯片二,其中三个mode引脚包括mode2、mode1、mode0用于改变不同的细分数,将mode2、mode1、mode0引脚电平分别为1、0、0,输出信号设置为16细分,步进电机的步进角度为

12、

13、sleep引脚默认拉高使能芯片,enbl引脚起始时拉高不使能电机

14、step和dir引脚分别用于输出电机的步进信号与方向信号,enbl引脚拉低使能电机,芯片内置下拉,用于控制电机的停止与驱动,sleep引脚拉高使能电机,拉低芯片进入低耗电睡眠模式,芯片内置下拉,此引脚设置为高电平使能电机,具体地:

15、电机驱动信号上采用定时器中断不断输出pwm波,ch32f103c8t6芯片二计算step引脚所需要输出的脉冲数来对电机进行控制的方式,ch32f103c8t6芯片二初始化定时器1,使定时器1输出pwm波,采用一分频与向上计数方式,同时初始化定时器1的中断,此定时器在整个过程中一直输出pwm波,电机驱动与否与电机是否使能有关;驱动控制程序有一个关键驱动函数drv8825_step_set(u32*step_pulse,float*step_angle),只有调用此函数,步进电机才能启动;在每次调用此函数驱动电机时,首先传入目标转动的角度step_angle,接着拉低enbl引脚使能电机,只有电机使能后,电机才能开始旋转;

16、当输入目标角度step_angle为正数时,设置dir引脚为高电平,使电机正转;当目标角度step_angle为负数时,设置dir引脚为低电平,使电机反转,将目标角度step_angle的绝对值除以电机步进角计算出电机转动所需要的pwm脉冲数step_pulse;

17、定时器1的中断中设定了一个不断计数的脉冲数pulse,当pulse小于目标脉冲数step_pulse时进行累加,在pulse累加期间,驱动芯片的enbl引脚始终为低电平,电机一直处于使能状态,进行旋转;当pulse累加到等于step_pulse时,清零pulse与step_pulse,同时拉高enbl引脚使得电机停转,此时完成电机目标角度的转动;

18、在整个驱动过程中,定时器1不断地输出pwm波,而电机是否旋转的关键是enbl的电平高低;每次调用驱动函数时,enbl引脚拉低,电机使能,直到目标脉冲数输出完毕,enbl引脚拉高,电机停止使能;

19、(2)主控pcb系统采用ch32f103c8t6主控芯片一负责每个闭环驱动系统的驱动,包括ch32f103c8t6主控芯片一对电机转动控制的三种操作,分别为绝对角度控制、方向控制、复位:

20、对于绝对角度控制,在ch32f103c8t6主控芯片一中设置的角度即为需要电机旋转的角度,此角度通过can通信发送给闭环驱动系统中,让电机直接旋转对应角度即可;

21、对于方向控制,此种控制是使电机旋转相对于原点的角度,在ch32f103c8t6主控芯片一中,控制者设置需要电机相对于原点旋转的角度θ,该角度信息通过can通信传输给对应的闭环驱动系统的ch32f103c8t6芯片二,在ch32f103c8t6芯片二中将该角度θ加上系统内置的原点角度β并减去编码器读取的当前角度α即可得到需要旋转的角度,角度为正则正转,角度为负则反转;

22、对于复位控制,在ch32f103c8t6主控芯片一中内置原点角度为10°,指向6点钟方向,在对应的闭环驱动系统的ch32f103c8t6芯片二中直接将电机当前的角度值α减去原点角度即可以得到角度差值,将该角度差值的绝对值取负数传输给驱动函数即可直接驱动电机复位;

23、(3)磁编码器读取角度数据,磁编码器ma730gq-z通过spi协议主从模式连接到单片机ch32f103c8t6芯片二上,将spi设置为双线双向全双工数据模式,发送数据为16位帧结构,由于是软件模拟,所以设置为片选为软件管理,波特率预分频的值为256;

24、在主程序控制中通过spi接收函数读取ma730gq-z采集到的电机角度信息,得到一个16位的寄存器数据,通过右移两位的操作得到一个14位的数据data,将此数据进行角度转换即可得到当前电机的绝对角度值,该转换公式为

25、

26、(4)每个所述闭环驱动系统的闭环控制,每个所述驱动系统在闭环控制的循环中,轮询磁编码器得到的每时每刻的电机角度值,重复与ch32f103c8t6芯片一发送的目标角度进行相差,此差值的绝对值大于1°时,将此差值作为角度信息传输给电机,使电机旋转此差值角度进行修正;该差值此差值的绝对值在1°以内时,跳出闭环控制循环,此时可以认为电机的控制已经达到理想的情况;

27、(5)电机扇叶驱动控制,电机扇叶由ch32f103c8t6芯片二向电调输入pwm波信号来进行控制;

28、(6)can通信算法,在can通信协议中,发送的数据为一个8位数组data[8],data[0]和data[1]两位用于传输电机目标旋转角度信息,包含绝对角度控制的旋转角度和方向控制中的相对角度信息;data[2]用于ch32f103c8t6芯片二不重复使能电机的标志位,每一次传输信息时,该标志位都会累加直到最大值再回到初始值,在一个范围内不断地往复;data[3]用于标记数据是否为负数,当ch32f103c8t6芯片一发送的控制角度为负数时,该数据位为2;当角度为非负数时,该数据位为0;data[4]为控制信息位,此数据位可以根据不同的参数来区分ch32f103c8t6芯片一目前想要如何控制电机,当ch32f103c8t6芯片一进行绝对角度控制时,该数据位为0xfb;当ch32f103c8t6芯片一进行相对方向控制时,该数据位位0xfa;当使用者通过按键输入给ch32f103c8t6芯片一转速的档位,并通过can通信模块发送ch32f103c8t6芯片二控制电机扇叶的转速时,该数据位为0xff;当ch32f103c8t6芯片一进行复位控制时,该数据位为0xfc;data[5]为转速等级位,该数据位用0、1、2、3四个数字代表了电机扇叶转速的四个挡位,0代表电机扇叶停转,1代表转速最低等级,3的代表转速最高等级;ch32f103c8t6主控芯片一的oled显示屏

29、(7)主控板oled菜单界面:ch32f103c8t6芯片一控制下的oled显示屏可以显示当前的控制信息,使用者可以通过菜单界面进行控制,主控菜单总共有4个可选选项,分别为电机、控制、方向与pwm,还有一个角度信息显示选项,主控板总共有6个按键,分别为next、choose、add、sub、step与reset;

30、next按键可以切换箭头指向不同的选项,当选择电机选项时,choose按键用于选择想要控制的电机,分别为a、b、c、d、all,a、b、c、d四个选项分别代表了四台电机,all代表同时控制四台电机,选择不同的电机选项改变了ch32f103c8t6芯片一内can通信的标准标识符,当选择同时控制所有电机的时候,can通信会依次向四台电机发送相同的控制信息;

31、角度选项用来显示四台电机的角度,从左到右,从上到下依次显示的是a、b、c、d电机的角度,角度显示到小数点后两位;

32、控制选项为绝对角度控制,用于设置想要电机旋转的绝对角度,在选择好控制电机后,通过choose按键可以选择不同的数值来进行累加或累减,ch32f103c8t6芯片一内置1、10、50与100四个数值,按键add可以将数值加和,按键sub可以将数值减去,设置的角度值可以在oled的右侧显示,按下step按键可以将角度信息通过can通信发送给对应的电机并驱动电机;

33、方向选项为方向控制,用于设置想要电机旋转的相对角度,在每个闭环驱动系统中,均在ch32f103c8t6芯片二内部设置它们以指向6点钟方向,绝对角度为10°为原点,所以在方向选项中,设置的旋转角度是相对于10°的角度,这也是平面矢量推进系统最重要的控制部分,同样通过choose选择数值,通过add、sub按键对角度进行计算,按下step按键通过can通信向对应的电机发送角度信息并驱动电机;

34、pwm选项可以设置电机扇叶的旋转速率,电机扇叶的转速快慢代表了电机的驱动力大小;按下add按键,增大ch32f103c8t6芯片二输出的pwm波的占空比,电机扇叶的旋转速度加快,电机驱动力增强;按下sub按键,减小ch32f103c8t6芯片二输出的pwm波的占空比,电机扇叶的旋转速度减慢,电机驱动力减弱,每台电机的驱动系统内置三档pwm频率,通过add和sub可以在这三档速度中调整;

35、reset按键可以将所有的电机角度复位,在ch32f103c8t6芯片二系统内部已经将电机的原点设置为指向6点钟方向,绝对角度为10°。

36、有益效果:

37、(1)本发明采用闭环控制算法,在每个独立的推进器都采用了时刻角度与目标角度进行比较,提高了控制的精度。

38、(2)本发明选用can总线进行信息的传输,实时性强,抗干扰,成本低。

39、(3)本发明在主控pcb系统中可以实时显示每个驱动器的角度信息,便于进行观测与调整角度。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1