找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

Flux电机有限元分析教程西莫团购入口 | 奖励入口当当网购物入口 | 奖励入口欢迎使用!西莫论坛App开放下载Motor-CAD电机多物理域设计教材购买入口 | 奖励入口
★新会员论坛须知★《西莫电机技术》第39期发售火热进行中Flux电机电磁阀有限元分析教程团购入口 | 奖励入口论坛微信公众平台欢迎入驻
西莫电机及相关产品供需交流群开放邀请★ 论坛VIP会员申请 ★Motor-CAD.MANATEE电磁热振动噪声教程 | 奖励入口西莫团队欢迎您的加盟!
宣传推广合作请联系QQ:25941174西莫电机论坛微信群正式开放Flux变压器与电抗器有限元分析团购入口 | 奖励入口西莫电机论坛技术版区QQ群汇总
查看: 14039|回复: 17

[求助] stm32 FOC pmsm 电机控制 霍尔位置检测中断的问题

[复制链接]

该用户从未签到

发表于 2011-8-6 18:10 | 显示全部楼层 |阅读模式 来自: 德国

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
使用stm的开发板电机控制总体觉得该方案还不错。不过最近发现一个问题,当电机速度变化比较大的时候, 转子位置检测偏差比较大,严重时电机正反转力矩交替产生,导致电机震荡。

分析其原因,发现霍尔在一个电气周期只产生3个中断. 个人认为如果产生6个中断的话,这个问题可能就不会出现了。

不知道也在使用该开发板的同仁有没有发现这个问题,欢迎留下宝贵意见。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

该用户从未签到

发表于 2011-8-23 17:01 | 显示全部楼层 来自: 中国江苏常州
我也发现这个问题了,只有3个中断
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-8-23 17:01 | 显示全部楼层 来自: 中国江苏常州
我也在想是不是改成6个中断
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-8-23 17:02 | 显示全部楼层 来自: 中国江苏常州
有空+QQ聊下, 七五八065八五0
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-8-24 08:08 | 显示全部楼层 来自: 中国江苏无锡
与中断的触发方式有关吧
你可以试试把他改成双边沿触发
这样一个周期应该就有六个中断了
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-8-24 08:33 | 显示全部楼层 来自: 中国江苏无锡
啊 忘了 霍尔应该在一个机械周期里面有六次电平跳变
但是机械周期不等于电器周期
所以 好像不行
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-12-6 09:50 | 显示全部楼层 来自: 中国江苏镇江
学习学习!!!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-12-6 19:42 | 显示全部楼层 来自: 中国江苏常州
之前我也碰到过,另外还有启动问题,后来我把3次触发改成6次触发后发现会好很多!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-12-7 22:40 | 显示全部楼层 来自: 中国上海
ST的TIM非常适合改成6次触发的,新的3.0的库已经更改。但不知道为什么以前的库会是3次触发的。
可以使用一个TIM内部的XOR做触发源,产生的TRGO可以用来复位定时器即可。具体看一下参考手册的TIM章节。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-12-8 03:47 | 显示全部楼层 来自: 德国
stm 的处理器hall 接口不直接支持六次中断, 必须在每次hall中断动态改变中断的的沿, 才能产生六次中断.
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-12-8 14:09 | 显示全部楼层 来自: 中国上海
学习啦!谢谢谢!
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2012-4-6 15:43 | 显示全部楼层 来自: 中国广东佛山
我也发现这个问题了,原本ST的2.0电机库的霍尔传感器检测方式确实存在问题,那样配置只能进入一次中断,进过仔细看数据手册发现IC1的扑捉有一个TRC的选择,TRC的输入可以选择三个霍尔传感器的异或,就可以了!搞了一天。
源码:
TIM_TimeBaseInitTypeDef TIM_HALLTimeBaseInitStructure;
    TIM_ICInitTypeDef       TIM_HALLICInitStructure;
    NVIC_InitTypeDef        NVIC_InitHALLStructure;
    GPIO_InitTypeDef        GPIO_InitStructure;

    /* TIM2 clock source enable */
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
    /* Enable GPIOA, clock */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

    GPIO_StructInit(&GPIO_InitStructure);
    /* Configure PA.00,01 ,02 as Hall sensors input */
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
      
    // Timer configuration in Clear on capture mode
    TIM_DeInit(TIM2);
   
    TIM_TimeBaseStructInit(&TIM_HALLTimeBaseInitStructure);
    // Set full 16-bit working range
    TIM_HALLTimeBaseInitStructure.TIM_Period = 0xFFFF;
    TIM_HALLTimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
    TIM_TimeBaseInit(TIM2,&TIM_HALLTimeBaseInitStructure);
   
    TIM_ICStructInit(&TIM_HALLICInitStructure);
    TIM_HALLICInitStructure.TIM_Channel = TIM_Channel_1;
    TIM_HALLICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
    TIM_HALLICInitStructure.TIM_ICSelection = TIM_ICSelection_TRC;  //增加TRC的选择
    TIM_HALLICInitStructure.TIM_ICFilter = 0x0B;
   
    TIM_ICInit(TIM2,&TIM_HALLICInitStructure);
   
    // Force the HALL_TIMER prescaler with immediate access (no need of an update event)
    TIM_PrescalerConfig(TIM2, (u16) 800,                
                       TIM_PSCReloadMode_Immediate);
    TIM_InternalClockConfig(TIM2);
   
    //Enables the XOR of channel 1, channel2 and channel3
    TIM_SelectHallSensor(TIM2, ENABLE);
   
    TIM_SelectInputTrigger(TIM2, TIM_TS_TI1F_ED);       //输入触发方式改为异或信号
    TIM_SelectSlaveMode(TIM2,TIM_SlaveMode_Reset);
   
    // Source of Update event is only counter overflow/underflow
    TIM_UpdateRequestConfig(TIM2, TIM_UpdateSource_Regular);
   
    /* Enable the HALL_TIMER IRQChannel*/
    NVIC_InitHALLStructure.NVIC_IRQChannel = TIM2_IRQn;
  
    NVIC_InitHALLStructure.NVIC_IRQChannelPreemptionPriority = 2;
    NVIC_InitHALLStructure.NVIC_IRQChannelSubPriority = 0;
    NVIC_InitHALLStructure.NVIC_IRQChannelCmd = ENABLE;
   
    NVIC_Init(&NVIC_InitHALLStructure);

    // Clear the TIMx's pending flags
    TIM_ClearFlag(TIM2, TIM_FLAG_Update + TIM_FLAG_CC1 + TIM_FLAG_CC2 + \
                  TIM_FLAG_CC3 + TIM_FLAG_CC4 + TIM_FLAG_Trigger + TIM_FLAG_CC1OF + \
                  TIM_FLAG_CC2OF + TIM_FLAG_CC3OF + TIM_FLAG_CC4OF);
  
    // Selected input capture and Update (overflow) events generate interrupt
    TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);
    TIM_ITConfig(TIM2, TIM_IT_Update, ENABLE);

    TIM_SetCounter(TIM2, 0);
    TIM_Cmd(TIM2, ENABLE);
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-4-25 12:24 | 显示全部楼层 来自: 中国江苏无锡
学习了
{:soso_e113:}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-4-27 17:55 | 显示全部楼层 来自: 中国上海
不是可以用捕异或
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-5-13 16:05 | 显示全部楼层 来自: 中国广东深圳
jay404823000 发表于 2012-4-6 15:43
**** 作者被禁止或删除 内容自动屏蔽 ****

你好,根据你的代码修改,好像不行,速度反馈出错,其他的地方需要改吗?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-5-13 16:18 | 显示全部楼层 来自: 中国广东深圳
楼主,这个问题解决了么?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-5-20 16:05 | 显示全部楼层 来自: 中国北京
6个触发会好点,不过有时候在变化率过快的情况下,也出现这种问题,而且随转速升高,这个变化率越来越小
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2015-9-27 21:50 | 显示全部楼层 来自: 中国河北石家庄
ltjish 发表于 2011-12-6 19:42
之前我也碰到过,另外还有启动问题,后来我把3次触发改成6次触发后发现会好很多!

是的,我现在也在做hall的,有时候出现启动不起来现象,不知道您解决这个问题了没
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

西莫电机论坛微信公众平台欢迎您的关注!

QQ|Archiver|手机版|小黑屋|西莫电机圈 ( 浙ICP备10025899号-3|浙公网安备:33028202000436号 )

GMT+8, 2024-12-25 13:15 , Processed in 0.158008 second(s), 27 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表