



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
FOC及无感控制的算法移植指南1、 下载正确的FOC源代码目前市面上主流的能驱动电机的MCU。基本上都带有FOC库。很多公司还提供可以用于修改的FOC源代码。还有些甚至于提供了无位置算法的源代码。可以下载到代码的有ST,TI,MICROCHIP,NXP,RENESAS等芯片公司。直接到官网下载即可。为保证代码的可行性,最好从官网下载代码。不要从第三方下载。避免产生不必要的调试过程。2、 找到与芯片的硬件初始化相关的代码。ADC部分的初始化。不同的芯片,ADC工作模式不同。ADC的初始化方法以及数据采样方法不同。ADC的采样,根据电路结构不同。完全不同。单电阻采样模式。需要在一个三角波内,进行两次ADC采样。而且软件还要特殊处理。才能做到采集的数据。这种方式下。ADC需要有一个专用的定时器配合来实现ADC采样。两电阻或电流传感器方式下,ADC有两种模式可以实现。一种是在波峰或波谷的前后一点位置处,触发ADC采样。另一种方式,就是在定时器的波峰或波谷中断进入后,第一时间进行ADC采样。ST的ARM芯片CORTEX-M0系列,由于只有一组ADC单元,且ADC转换出来的结果只有一个缓冲区保证。所以,数据采集通常采用DMA的方式。将多个ADC采样到的数据缓存到一个ADC数组中。如M3或M4等系列。MCU有两组ADC单元。可以一次性采样两个通道。在波峰波谷中断的模式下,可以设成分时采样不同的通道。也可以用DMA方式采样(ST的2个ADC单元,输出结果地址是相连的。且刚好组成了一个32位数,用DMA方式,可以一次将两个ADC单元的结果全部采样出来。)RENESAS等芯片,ADC的输出结果是根据通道来设定的缓冲。因此,只需要触发ADC即可。ADC转换后的数据,分开存放在不同的寄存器当中。所以,这类芯片,可以省掉DMA的操作方法。定时器部分定时器根据电机的载频来设定。生成三角波(递增计数到设定值以后,开始递减计数)。需要处理的内容,分别是互补的死区设定、中断的方式(上溢中断、下溢中断、上/下溢中断)。中断的频率(16K的PWM频率,可以设定8K的电流或4K的电流环。利用中断次数控制来实现)。编码器部分不同的芯片,对于正交编码器的接口不同。接到不同的IO引脚上。然后选择正确的定时器资源来实现自动计数功能。FO保护(自动刹车控制)FO保护由IPM或IGBT驱动或单独设计的电路产生信号。通过专用的保护引脚来实现MCU自动关闭PWM输出。从而实现负载突然短路的情况下,快速关闭输出。保护电路不受影响。这个引脚,在很多芯片厂家,是有数字滤波参数可以设定。用来避免突然出现的小尖锋干扰。3、 FOC代码部分一般FOC代码函数分成:ADC采样处理,采样电机的电流,可以采样IA,IB,IC。也可以采样IA和IB(当然,采样IB和IC也可以,但需要计算一次得到。根据IA+IB+IC=0的公式可以根据其中的任意两项电流,求出第三相的电流。单电阻采样,也会生成IA和IB两组电流。Clarke变换,将ADC采样到的三相电流合成两相电流。生成I_alpha和I_beta两个电流。Park变换,将alpha和beta两个电流与电相度通过三角函数的方式。合成ID和IQ电流。InvPark变换(反Park变换),将VD和VQ转换成Valpha和Vbeta.InvClarke变换(反Clarke变换),将Valpha和Vbeta转换成三相电压值。扇区计算,通过三相电压,计算出正确的扇区值。PWM数据输出,根据扇区值和三相电压值,计算出三路PWM值。4、 调试技巧1、 确认硬件的接入正常上电后,先对IA,IB,IC的输入AD进行监测。看看零点状态的AD是否正常。通常零点的AD都设在1/2的VCC附近。以12位的ADC为例,这个零点的ADC是2048正负100以内。然后,对母线电压的ADC进行监测。特别是用到了无位置或母线电压补偿的算法。对母线电压的准确性,要求比较高。母线电压太低或太高,都将导致输出的不正常(严重时,电机都无法运转)。最后,对于有位置传感器的硬件,旋转一下电机。查看一下编码器的A/B/Z,U/V/W输入信号是否正常。2、 确认IQ和ID的极性的正确。注:为防止硬件受损。程序做个最长时间的控制。进入PWM输出以后,最长工作时间设0.5秒到1秒。软件自动关闭输出。将PID控制部分屏蔽掉。给VD和VQ设一个固定值。可以试着设定5V。根据当前的母线电压。5/母线电压*VDVQ的最大值。例:母线是60V,VDVQ的最大值是32768,则设定VD=5/60*32768先设VD=5V,VQ=0,用软件示波器查看,电流检测的IA,IB或IC,I_alpha、I_beta,ID、IQ。正确的情况下,ID比IQ大很多,且IQ基本上趋于0,ID是正数的电流。刚开始电机可能会转一下。这是因为电机当前的角度不在0点附近。这个时候,ID会出现变化。但第二次以后,电机的停止位置处于0点附近。很明显的看到ID电流是一个直线。再设VQ=5V,VD=0,用软件示波器查看,可以看到IQ电流明显大于ID电流。且ID基本上趋于0。IQ电流是正数。通过以上操作。如果IQ和ID都是正常状态。则表示电流检测的软件和硬件是正确的。可以进入下一步操作。调试过程中,如果IQ和ID出现了电流是负数。有以下几种可能A、电流检测的方向出错。CurA = CurA_Offset - NowA或CurA = NowA - CurA_OffsetB、IA和IB的引脚对应错了。C、PWM的方向可能有错。三角波的PWM。0RPM输出的时候,PWM输出并不是0,而是载频周期的一半。以ST为例:PWM有两种模式。PWM1和PWM2两种模式下的数值刚好是反的。给PWM占空比赋值的时候,一种是直接把计算值输出。另一种是用周期-计算值输出。3、 强拖运转测试及电流检测标幺值检测当第一步完成以后,就要试着强拖一次。看看电机是否能正常运转。关键是针对有编码器的系统。查看一下电机运转方向所显示出来的编码器的AB方向是否正确。强拖测试,可以不需要任何传感器的介入。也不需要关心电机的UVW动力线是否连接正确。强拖的方法:首先,设一个固定大小的IQ数据,且初始的电角度为0。如果电机是空载,那么这个电流可以设为1A左右。这个电流下,持续1秒钟内,电角度始终为0,1秒钟以后,电流可以减少1/2,电角度按200RPM左右的速度增加。200RPM是机械角度。转换成电角度时,要乘以电机的极对数。通常折算每MS增加多少个电角度,以200RPM为例:=200/60*360/1000*PP,其中PP为电机的极对数。这样强拖10圈以上,就可以停止了。电流检测标幺值正确性验证:最好用两个电流探头(如果只有一个探头,可能需要多强拖几次,保证所采样的电流是正确的。最好把强拖关闭,只做定位),分别接到电机的动力线上。查看软件设定的1A电流,与实际的1A是否符合。如果不符合,则需要检查电流检测电路是否出问题或者放大倍数计算是否有误等。强拖环节的另一个关键点是,编码器数据的方向。如AB和UVW方向。因为强拖是角度增加,假定这个方向为正转。那么最好是AB是增加。如果AB是减少。有一个软件办法解决。(NOW_AB = 0XFFFF,仅限于16位计数器),这样操作一下。可以改变极性。4、 速度传感器的加入采用增量式编码器的系统。速度计算,有两种方法M和T。分别是采样脉冲宽度(用于低速检测)和脉冲个数(中高速)。简单的操作,直接采用T(计数)方法。由于低速比较难统计到个数。因此,速度采样通常设为2MS采样一次。以200RPM且编码器为360线为例:=200/60*(360*4)/1000*2,则每2MS,AB变化9.6个。速度计算采用AB个数*AB/1MS对应的速度。1AB/(360*4)*1000*60=41.6666RPM,由于是2MS采样一次,所以AB/2MS=20.8333RPM,因为是小数,采用Q8格式以后=5333,若2MS内,变化AB个数为10个,=10*5333/256=208RPM由于低速时,AB个数变化对速度的统计影响比较大。因此,通常将速度计算分成高速和低速两种计算结果。低速计算时,加入一级低通滤波。这样得到的低速就会比较平滑一些。做低速控制时,电机不容易抖动。5、 位置传感器的加入(扇区) 当系统加入了UVW扇区位置检测以后,可以使得电机启动时,直接在扇区内启动,无需再增加定零位了。相当于已知当前的电角度,可以快速启动。针对UVW扇区传感器,有两种操作方式。一种是UVW传感器的安装位置与转子位置是完全固定的。因此,任意互换电机后,角度是基本上一致的。还有一种是UVW传感器的安装与转子位置并非完全一致。碰到这种情况,就需要将这个电机的UVW信息与电角度做配对操作。实际上,无论是哪一种安装方式。第一次使用FOC的时候,都有一个配对的过程。这个过程,实际上也是利用强拖来完成。以下方法,适用于带AB的系统操作。强拖开始时,有个定位过程。这个过程是强制电机运转到零位。为了操作简单化,UVW的配对操作。定位时,采用ID=设定。IQ=0的方法。这样的操作,是为了方便后续的电角度直接使用。针对带AB的系统。强拖定位时间完成时,将AB的当前计数清零。将当前的UVW信息存储起来。强拖过程中,对UVW信息进行连续检测。当检测到的UVW信息与存储起来的UVW信息不同时,将当前的AB角度、扇区UVW信息存起来。并更新UVW存储信息。当连续检测到2个或以上的机械角度以后。停止强拖。开始统计信息。统计时,第一步将AB角度转换成电角度。超过一圈电角度的,取电角度的模。第二步将多组电角度进行求平均处理。得到每个扇区所对应的电角度数据。第三步将这些数据存储起来,写入FLASH或EEPROM中。做为以后运转的计算用。后续电机启动时,根据当前的扇区号。取出当前扇区的数据和下一个扇区的数据,两者相加除2(程序要处理数据越界现象),得到中间角度值。然后,以这个角度值,直接启动即可。且要求在检测到下一个UVW信号沿的时候,更新一次角度(根据电机的运转方向,赋不同方向UVW所对应的电角度的边沿值)。5、 其它技巧1、 编码器AB个数的处理。在使用编码器的AB计数时,可以利用数字溢出的原理来解决极性问题。使用16位的寄存器全员值,0-65535,本次的计数减去上一次的计数,得到一个Delta_AB。正转的时候,这个数字会是正向增加的。用一个有符号的16位数据来处理这个数据,非常简单。机械角度,旋转一圈以后,CPR*4,刚好是一圈的机械AB个数。超过这个数据的时候,即进入下一圈的角度了。机械角度也一直累加Delta_AB即可。当超过CPR*4时,减去一个CPR*4即可。当数据小于0时,加一个CPR*4即可。2、 Q格式在计算过程中,经常会出现小数。但便宜单片机往往不支持浮点运算。因此。必须使用Q格式来完成计算。但Q格式在使用时,一定要注意。Q格式运算是有损的。Q格式的格式越大,计算的变量越大。如果超过64位。则很难参考计算。所以,Q格式计算时,往往需要根据变量的有效范围,预先计算好Q格式的范围。如果数据结果是16位,数据源在256以内,那么Q格式最大不能越过8,否则就会出现越界现象。Q格式在数据计算时,因为精度有限,长时间累加的时候,容易出现数据慢慢丢失的现象。精度要求高一的点的计算。通常保留Q格式的小数部分。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司月度室内活动方案
- 公司甜品台活动策划方案
- 2025年音乐学院入学考试曲目及答案
- 2025年智能制造技术应用考试卷及答案
- 2025年信息系统与工程职业能力综合考核试卷及答案
- 2025年社会创业推动者职业资格考试试卷及答案
- 2025年室内设计师职业资格考试试卷及答案
- 译林版(2024)七年级下册英语期末复习综合练习试卷(含答案)
- 2025年金融从业资格证考试题及答案
- 2025年口腔医师资格考试题及答案
- 2025年福建省中考道德与法治试卷真题(含标准答案)
- 工程中机电设备安装与调试技术
- 2025年万家寨水务控股集团及所属企业招聘笔试参考题库含答案解析
- 悬挑式钢管脚手架专项施工方案
- 2025年湖北襄阳市检察机关-襄阳市城郊地区检察院招聘67人历年真题
- 2025春季学期国开电大本科《管理英语4》一平台机考真题及答案(第三套)
- 数学 2024-2025学年人教版(2024)七年级数学下册期末考试测试卷
- 2025年劳动合同样本(电子版)
- 市场营销学期末复习题知识分享
- 化学常用单词汇总
- 大客户销售实战技巧PPT
评论
0/150
提交评论