一种基于MM32SPIN360C的BLDC驱动系统及方法与流程

文档序号:32259714发布日期:2022-11-19 11:28阅读:82来源:国知局
一种基于MM32SPIN360C的BLDC驱动系统及方法与流程
一种基于mm32spin360c的bldc驱动系统及方法
技术领域
1.本发明涉及无刷电机驱动系统技术领域,尤其一种基于mm32spin360c的bldc驱动系统及方法。


背景技术:

2.无刷直流电机( bldcm : brushless direct current motor )是指无机械电刷和换向器(或集电环)的直流电机,又称无换向器直流电机,它以电子换向器代替机械电刷和换向器实现直流电机的换向。无刷直流电机克服了有刷直流电机由于电刷环流而引起的磨损,产生火花而又引起噪音,及其对周围电路带来恶劣影响。无刷直流电机回馈装置简单,功率密度更高,输出转矩更大,控制结构更为简单,使电机和逆变器各自潜力得到充分发挥。且调速性能优越,体积小,重量轻,转动惯量小,不存在励磁损耗。同时,无刷直流电机既具备交流电机的结构简单、运行可靠、维护方便的一
‑ꢀ
系列优点,又具备有刷直流电机的运行效率高等诸多特点,同时克服了有刷直流电机由于机械电刷和换向器的存在所带来的噪声、火花、无线电干扰以及寿命短等弊病,且降低了制造成本,简化了电机维修。
3.进入九十年代以来,随着电力电子工业的飞速发展,许多高性能半导体功率器件,如gtr、mosfet 、igbt 、mct等相继问世,以及微处理器、大规模集成电路技术的发展,逆变装置也发生了根本性的变化。这些开关器件本身向着高频化、大容量、智能化方向发展,并出现集半导体开关、信号处理、自我保护等功能为一体的智能功率模块(ipm)和大功率集成电路,使无刷直流电动机的关键部件逆变器的成本降低,且向高频化、小型化发展。无刷直流电机的应用和开发进入一一个新阶段,目前正朝着超高速、高转矩、高功能化、微型化方向发展。
4.而在现如今,即使无刷直流电机的应用和开发进入了全新的阶段,但还是相对小众,对于想要自行diy无刷直流电机驱动或者对这方面有需求的人来说,入门较为困难。同时,伴随着无刷直流电机控制算法的高速开发,两极分化也逐渐严重。通过检测霍尔信号来驱动无刷直流电机是一种非常适合新手入门的控制方法,但是也因为比较适合新手,所以大部分人对此的目标则只是“能转即可”,很少有人将此控制方法钻研到极致。因此,设计一款有深度、稳定、高效、简洁、方便的无刷直流电机驱动则成为了一种刚需。


技术实现要素:

5.本发明的目的在于克服现有技术的问题,提供一种基于mm32spin360c的bldc驱动系统及方法。
6.本发明的目的是通过以下技术方案来实现的:一种基于mm32spin360c的bldc驱动系统,包括360c微控制器、用于电压转换的运放模块、用于保护驱动板使能模块、用于显示电机状态的信号指示模块、用于传输霍尔硬件信息的霍尔检测模块、用于驱动电机的全桥驱动模块和电机;所述360c微控制器输入端分别与运放模块输出端、使能模块输出端、信号指示模块输出端和霍尔检测模块输出端相连
接;所述360c微控制器输出端与全桥检测模块输入端相连接;所述全桥检测模块输出端与所述电机相连接。
7.所述360c微控制器设置有arm-m内核的实时操作系统,使用arm-m内核对系统资源进行分配。
8.所述360c微控制器设有pwm中断函数算法,通过处理分析三相电流、母线电流及霍尔信息,得到需要输出的pwm信号,从而控制转子继续旋转。
9.所述360c微控制器设有输入捕获函数,通过捕获用户输入的pwm占空比信息,来实时的设置无刷电机的转速。
10.所述360c微控制器设有周期中断函数,用于执行电机驱动上的按键扫描和控制电机速度信息和方向信息的输出。
11.所述360c微控制器设有pid闭环控制算法,用于对电机的转速进行闭环控制,使得电机的转速始终保持稳定。
12.一种基于mm32spin360c的bldc驱动系统,还包括用于给系统中各个模块提供不同的电压和电流环境的电源管理模块,电源管理模块分别与所述360c微控制器、运放模块、使能模块、信号指示模块、霍尔检测模块和全桥驱动模块相连接。
13.一种基于mm32spin360c的bldc驱动方法,应用于一种基于mm32spin360c的bldc驱动系统,包括以下具体步骤:s1:初始化时钟信息及debug调试端口;s2:初始化处理器内外色模块及外部模块;s3:判断是否pwm中断,判断是否pit中断,并根据结果进行数据处理;s4:根据步骤s3处理结果输出信号指示;s5:将调试数据送入缓存区;s6:发送调试数据到虚拟示波器,并重复步骤s4-s6,使得控制电机持续运转。
14.所述步骤s3具体包括:判断是否pwm中断,并进行数据处理:若pwm中断,首先获取当前的三相电流以及母线电流,通过识别电流数据监测当前是否堵转,同时计算foc;然后检测当前霍尔的硬件信息并且对其进行编码;之后判断霍尔值是否正确并且是否已经改变,判断霍尔值正确与否的方法则是判断经过编码之后的霍尔值是否在1-6范围内,如果超出范围则说明当前获取到的霍尔值是错误的,如果霍尔值正确并且已经改变就代表当前转子已经到达了另一区间,此时根据查询霍尔换相数组的内容输出对应位置的pwm信息;判断是否pit中断,并进行数据处理:数据处理分为一下几个步骤:1、速度设置及输出,通过捕获用户输入的pwm信号的占空比来设置当前电机需要达到的目标速度,同时将当前电机的速度信息通过脉冲的形式进行输出,用户通过捕获脉冲个数即可得到当前电机的速度;2、方向设置及输出,其目的在于获取用户输入的方向信息,从而更改电机的旋转方向,并且将当前电机的实际旋转方向通过io口进行输出;3、pid运算或开环赋值,用户可以主动设置电机的工作模式为开环控制或者是闭环控制,因此,如果电机工作在闭环模式,此处则进行pid运算,如果电机工作在开环模式,此处则直接作为占空比赋值;4、输出动力,此步骤之前的都为数据前期处理,而输
出动力则是执行,将计算好的pwm占空比信息设置到单片机内部寄存器,从而改变单片机输出的控制信号。
15.所述处理器内外设模块及外部模块包括led、adc采集模块、比较器、滑动滤波模块、霍尔引脚、速度方向输出模块、输入信号捕获模块、pid参数模块、pwm定时器和周期定时器。
16.本发明的有益效果:1)本发明对应与使用无刷电机作为动力源的四轮模型车无人驾驶组别,通过使用无刷驱动,简单快捷的驱动动力极高的无刷电机,使小车在赛道上超高速运行。本驱动系统通过采集无刷电机的转子位置信息以及三相电流信息,通过c语言编写六步换相的控制算法,根据输入的pwm占空比信息来设置旋转速度,过闭环pid算法来调节控制的精确度,达到让无刷电机使用起来像有刷电机一样简单,但又能提供有刷电机无法比拟的动力。
17.2)本发明能驱动带霍尔传感器的任意无刷电机,并且可以将无刷电机的转速开发到极限,通过霍尔传感器检测转子的霍尔信息,通过编写系统将霍尔信息转换成位置信息,了解当前转子所在的区间,然后再编写系统、设计算法做出换相决策,达到驱动无刷电机,并且可以通过修改换相决策来进一步提升无刷电机的旋转速度。
18.3)本发明采用arm-m内核的实时操作系统为框架,使用arm-m内核对系统资源进行分配,电机控制系统为每25us执行一次,每次都会采集三相电流、电源电压、母线电流、霍尔信息,根据这些信息得到当前电机的状态同时根据系统控制算法得到需要输出的pwm信号;输入信息采集使用定时器捕获算法,通过捕获用户输入的pwm占空比信息来控制电机转速;周期执行系统每1ms执行一次,将输出当前电机的方向信息以及速度信息,如果开启pid控制,也会在此处计算pid结果,并且输出信号指示便于用户查看当前状态。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
20.图1是本发明的系统结构示意图;图2是本发明的方法流程图。
具体实施方式
21.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
22.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当人认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
23.本驱动系统应用于全国大学生智能汽车竞赛中无刷电机的驱动,针对参加全国大
学生智能汽车竞赛的高校本科大学生的学习需求而研发设计的,大赛规定了详细的比赛规则,我们根据大赛设定的模型研发设计出了一整套针对无刷电机的驱动控制系统,本驱动系统对应与使用无刷电机作为动力源的四轮模型车无人驾驶组别,通过使用无刷驱动,简单快捷的驱动动力极高的无刷电机,使小车在赛道上超高速运行。该驱动系统通过采集无刷电机的转子位置信息以及三相电流信息,通过c语言编写六步换相的控制算法,根据输入的pwm占空比信息来设置旋转速度,过闭环pid算法来调节控制的精确度,达到让无刷电机使用起来像有刷电机一样简单,但又能提供有刷电机无法比拟的动力。
24.软件采用前后台主循环和中断响应相结合的实时构架,利用mdk集成ide编译环境编写编译系统,系统脱机自动运行,自带限流保护,安全稳定。
25.该无刷驱动能驱动带霍尔传感器的任意无刷电机,并且可以将无刷电机的转速开发到极限,通过霍尔传感器检测转子的霍尔信息,通过编写系统将霍尔信息转换成位置信息,了解当前转子所在的区间,然后再编写系统、设计算法做出换相决策,达到驱动无刷电机,并且可以通过修改换相决策来进一步提升无刷电机的旋转速度。
26.系统总体结构如图1所示,电源管理模块负责给整个系统各个模块提供不同的电压和电流环境,保障各模块正常工作;运放模块负责将电机的三相电流以及电源电压转换为控制器可以直接读取的电压;使能模块负责保护驱动板,可以通过硬件开关关闭使能,也可以在电机电流过大的时候自动关闭使能;信号指示负责显示当前电机的运行状态、电源的电压输出是否正确以及当前的信号输入模式等;霍尔检测负责将当前电机的霍尔硬件信息发送到控制器,控制器只需要读取端口状态既可获取到霍尔信息;全桥驱动通过接收360c内部的预驱模块发出的控制信号来控制不同的mos管开关,使电源的电流在无刷电机的不同线圈中通过,达到驱动电机。
27.本软件采用arm-m内核的实时操作系统为框架,使用arm-m内核对系统资源进行分配,电机控制系统为每25us执行一次,每次都会采集三相电流、电源电压、母线电流、霍尔信息,根据这些信息得到当前电机的状态同时根据系统控制算法得到需要输出的pwm信号;输入信息采集使用定时器捕获算法,通过捕获用户输入的pwm占空比信息来控制电机转速;周期执行系统每1ms执行一次,将输出当前电机的方向信息以及速度信息,如果开启pid控制,也会在此处计算pid结果,并且输出信号指示便于用户查看当前状态。
28.360c微控制器设有pwm中断函数算法,pwm中断函数,该中断为pwm每个周期结束之后都会触发的一个函数,其内部执行的是无刷电机驱动的最需要实时执行的系统。首先获取当前的三相电流以及母线电流,我们可以通过电流监测当前是否堵转,也可以用于foc的计算,然后就是检测当前霍尔的硬件信息并且对其进行编码,之后判断霍尔值是否正确并且是否已经改变,判断霍尔值正确与否的方法则是判断经过编码之后的霍尔值是否在1-6范围内,如果超出范围则说明当前获取到的霍尔值是错误的,如果霍尔值正确并且已经改变就代表当前转子已经到达了另外一个区间,此时应该根据查询霍尔换相数组的内容输出对应位置的pwm信息,从而控制转子继续旋转。在这个过程中,我们可以统计一些信息,比如当前速度、电机是否堵转、转子位置信息等。当使用超前换相的时候,还可以判断超前换相的延时是否已经结束,而完美的超前换相则需要结合当前电机转速计算延时换相时间,通过超前换相加延时换相的方式将输出的pwm相位与实际转子相位之间的差距控制在90
°
,即可实现完美的超前换相,而当超前换相的相位过大,可能会导致电机转速不稳定或者是严
重发热等现象。最后就是输出函数,根据计算好的输出相位来打开对应的mos开关。
29.360c微控制器设有输入捕获函数,输入捕获函数是用户通过其他控制器来控制无刷电机最重要的部分,通过捕获用户输入的pwm占空比信息,来实时的设置无刷电机的转速。驱动系统中将电机运行分为了两个模式,分别是开环控制以及闭环控制。开环控制时,输入捕获到的占空比信息也将作为输出的占空比信息来控制电机的旋转,该方式逻辑简单,用户可以通过自己的控制器进行计算占空比然后输出到无刷驱动,无刷驱动直接根据输入信息驱动电机,用起来和普通的有刷直流电机差别不大;闭环控制时,将在驱动系统内自动进行pid控制,此时用户输入的pwm占空比信息将作为转速信息,用户可以在驱动系统中提前设置最大转速,通过占空比调节需要当前电机达到某个转速即可,如果使用闭环控制,用户需要在驱动系统中主动的设置pid参数,在驱动系统内进行pid运算将节约用户的控制器的算力,让用户可以将自己的控制器的算力分到其他的地方。
30.360c微控制器设有周期中断函数,周期中断函数将执行一些重要程度稍微低于控制函数的内容。
31.首先是按键扫描部分,通过无刷驱动上的按键来更改无刷电机的运行模式,用户也可以自行调节当前按键的功能,对于前期学习使用无刷电机的同学来说帮助非常大。然后就是对于电机速度信息和方向信息的输出,无刷电机虽然控制起来稍显复杂,但是真正控制好之后伴随的信息也是非常巨大的,我们可以直接通过统计电机旋转一圈使用的时间来计算出当前电机的转速,并且通过pwm的形式输出给用户,用户只需要简单的统计pwm频率即可计算出当前电机的转速,而电机方向输出则是直接更改控制器端口状态就能完成;之后就是pid闭环计算或者开环计算,pid的计算结果跟计算频率是息息相关的,所以将pid计算函数放到周期中断内可以更加稳定的运行,pid参数的可调节范围也更大。
32.360c微控制器设有pid闭环控制算法,用于对电机的转速进行闭环控制,使得电机的转速始终保持稳定。
33.pid算法的闭环是对电机的转速进行闭环控制,相较于开环来说,可以让电机的转速始终保持稳定,下面简要讲解一下pid算法:pid控制策略其结构简单,稳定性好,可靠性高,并且易于实现。其缺点在于控制器的参数整定相当繁琐,需要很强的工程经验。相对于其他的控制方式,在成熟性和可操作性上都有着很大的优势。所以最后选择了pid的控制方式。 在驱动电机时,需要让电机转速达到稳定值,所以采用了增量式pid控制。参数调节使用试凑法来确定控制器的比例、积分和微分参数。 试凑法是通过闭环试验,观察系统响应曲线,根据各控制参数对系统响应的大致影响,反复试凑参数,以达到满意的响应,最后确定pid控制参数。试凑不是盲目的,而是在控制理论指导下进行的。 在控制理论中已获得如下定性知识:比例调节(p)作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。
34.积分调节(i)作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数ti,ti越小,积分作用就越强。反之ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成pi 调节器或pid 调节器。
35.微分调节(d)作用:微分作用反映系统偏差信号的变化率,具有预见性, 能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前, 已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成pd 或pid 控制器。 试凑法的具体实施过程为:1、整定比例部分 将比例系数由小变大,并观察相应的系统响应,直至得到反应快、超调小的响应曲线。如果系统静差小到允许范围,响应曲线已属满意,那么只需比例控制即可,由此确定比例系数。
36.2、如果在比例控制基础上系统静差不能满足设计要求,则加入积分环节, 整定时首先置积分时间为很大值,并将经第一步整定得到的比例系数略微缩小(如缩小为原值的0.8),然后减小积分时间,使得在保持系统良好动态的情况下,静差得到消除,在此过程中,可根据响应曲线的好坏反复改变比例系数和积分时间,以期得到满意的控制过程,得到整定参数。
37.3、若使用比例积分控制消除了静差,但动态过程经反复调整仍不能满意, 则可加微分环节,构成比例、积分、微分控制器。在整定时,先置微分时间为零,在第二步整定基础上增大,同样地相应改变比例系数和微分时间,逐步试凑以获得满意的调节效果和控制参数。
38.本驱动系统还设置有过流保护,过流保护是指的当母线的电流超过一定阈值之后则直接关闭输出,从而达到保护驱动板和电机的目的,而实现过流保护则是通过使用单片机中定时器模块的break功能,该功能可以通过硬件直接关闭对电机的控制输出,而本系统使用的单片机自带比较器和放大器,因此可以直接将母线上的采样电阻电压通过放大器放大之后再经过比较器连接到break端口上,当母线的电流过大时,该端口的电压也会被逐渐拉低,我们可以再单片机中设置一个阈值,当端口电压低于阈值时,则认为需要关闭控制信号的输出。关闭控制信号的输出之后则可实现过流保护。
39.流程如图2所示,s1:初始化时钟信息及debug调试端口;s2:初始化处理器内外色模块及外部模块;s3:判断是否pwm中断,判断是否pit中断,并根据结果进行数据处理;判断是否pwm中断,并进行数据处理:若pwm中断,首先获取当前的三相电流以及母线电流,通过识别电流数据监测当前是否堵转,同时计算foc;然后检测当前霍尔的硬件信息并且对其进行编码;之后判断霍尔值是否正确并且是否已经改变,判断霍尔值正确与否的方法则是判断经过编码之后的霍尔值是否在1-6范围内,如果超出范围则说明当前获取到的霍尔值是错误的,如果霍尔值正确并且已经改变就代表当前转子已经到达了另一区间,此时根据查询霍尔换相数组的内容输出对应位置的pwm信息;判断是否pit中断,并进行数据处理:数据处理分为一下几个步骤:1、速度设置及输出,通过捕获用户输入的pwm信号的占空比来设置当前电机需要达到的目标速度,同时将当前电机的速度信息通过脉冲的形式
进行输出,用户通过捕获脉冲个数即可得到当前电机的速度;2、方向设置及输出,其目的在于获取用户输入的方向信息,从而更改电机的旋转方向,并且将当前电机的实际旋转方向通过io口进行输出;3、pid运算或开环赋值,用户可以主动设置电机的工作模式为开环控制或者是闭环控制,因此,如果电机工作在闭环模式,此处则进行pid运算,如果电机工作在开环模式,此处则直接作为占空比赋值;4、输出动力,此步骤之前的都为数据前期处理,而输出动力则是执行,将计算好的pwm占空比信息设置到单片机内部寄存器,从而改变单片机输出的控制信号;s4:根据步骤s3处理结果输出信号指示;s5:将调试数据送入缓存区;s6:发送调试数据到虚拟示波器,并重复步骤s4-s6,使得控制电机持续运转。
40.对于本无刷驱动系统,完全按照全国大学生智能汽车竞赛官方规则制作,使用起来简单方便,通过霍尔检测方式直接检测电机转子位置,从而进行准确的换相以及转速计算,同时将速度进行输出,并且用户可以通过直接输入pwm的形式实时的控制无刷电机。作为一套用于学习的驱动系统,使用简单明了的逻辑进行系统编写,更加利于引导新手入门,让只需要简单了解无刷电机运行原理的新手也能理清系统的逻辑。
41.出于对驱动板的保护,该驱动系统将电流限制在了安全范围以内,但并不代表不能继续提升无刷电机的性能,系统中可以直接关闭保护,通过简单的修改换相逻辑便能让无刷电机的转速有一个质的提升,相对于安全范围内的最大转速,能再提升80%左右。
42.本无刷驱动系统也不只是用于指定无刷电机或者指定场景,只要是有感无刷电机都可以使用该套系统结构,甚至无感无刷也能使用套逻辑,只不过需要增加一些系统算法来判断转子位置,当然也不只是只能用于全国大学生智能汽车竞赛,对于平时自己diy或者课程设计也能使用。故本套系统的应用场景较灵活,硬件覆盖较广泛。
43.以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1