找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

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

[求助] 永磁同步电机编码器反馈回来的角度处理

[复制链接]

该用户从未签到

发表于 2016-8-18 18:06 | 显示全部楼层 |阅读模式 来自: 中国辽宁沈阳

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

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

×
       
        speed_fr->T = 0.00005;

        speed_fr->baseFreq = 230;

        speed_fr->polePairs = 4;

        speed_fr->filterCutoff =  (2 * MATH_PI * 100);
       
        speed_fr->K1 =  1.0f / (speed_fr->baseFreq * speed_fr->T);

        speed_fr->K2 =  1.0f / (1.0f + (speed_fr->T * speed_fr->filterCutoff) ) ;

        speed_fr->K3 =  1.0f - speed_fr->K2 ;



//! \brief     Runs the Speed_FR module
//! \param[in] Speed_frHandle  The Speed_FR handle
//! \param[in] ElecTheta        The position of the motor
//! \param[out] speed_out        The speed of the motor
inline void SPEED_FR_run(SPEED_FR_Handle Speed_frHandle, const float32_t ElecTheta, float32_t* speed_out )
{

    SPEED_FR_Obj *speed_fr = (SPEED_FR_Obj *)Speed_frHandle;

    if( (ElecTheta < (0.9f)) & (ElecTheta > 0.1f ) )
    {
        speed_fr->Tmp_fr = speed_fr->K1 * ( ElecTheta - speed_fr->OldElecTheta);
    }
    else
    {
        speed_fr->Tmp_fr = speed_fr->Speed;
    }
   
    // Low-pass filter
    speed_fr->Tmp_fr = (speed_fr->K2 * speed_fr->Speed) + (speed_fr->K3 * speed_fr->Tmp_fr);
   
    speed_fr->Tmp_fr = SPEED_FR_SAT(speed_fr->Tmp_fr, 1.0f, -1.0f);
   
    speed_fr->Speed = speed_fr->Tmp_fr;
   
    speed_fr->OldElecTheta = ElecTheta;
   
    speed_fr->SpeedRpm = ( speed_fr->BaseRpm * speed_fr->Speed);
    *speed_out = speed_fr->Speed;
}// end of SPEED_FR_run() function

上面这个函数中ElecTheta是编码器检测到的角度(电角度),为什么要对这个角度值进行处理呢,最后那个*speed_out 输出的是什么值呢?是速度还是角度?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

该用户从未签到

发表于 2016-8-19 22:50 | 显示全部楼层 来自: 中国广东珠海
根据编码器的电角度,驱动器好算出电机转子的位置。然后计算d,q轴电流参与电机矢量位置的控制。能否把整个程序流程多截取点看看,有点看不明白
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-8-22 09:33 | 显示全部楼层 来自: 中国辽宁沈阳
windancerhxw 发表于 2016-8-19 22:50
根据编码器的电角度,驱动器好算出电机转子的位置。然后计算d,q轴电流参与电机矢量位置的控制。能否把整个 ...

这段我理解就是你说的算出电机转子位置,但是    if( (ElecTheta < (0.9f)) & (ElecTheta > 0.1f ) )为啥需要判断在0.1---0.9之间呢?这是所谓的滤波处理吗?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2016-8-25 12:25 | 显示全部楼层 来自: 中国广东珠海
孤独的守望者 发表于 2016-8-22 09:33
这段我理解就是你说的算出电机转子位置,但是    if( (ElecTheta < (0.9f)) & (ElecTheta > 0.1f ) )为啥 ...

稍微查了一下这个函数,发现有注释以及算法详解:

TI详细解释速度算法的原理。
输出:
Speed&#160;Computed&#160;speed&#160;in&#160;per-unit&#160;&#160;&#160;GLOBAL_Q&#160;80000000-7FFFFFFF&#160;
SpeedRpm&#160;Speed&#160;in&#160;rpm&#160;Q0&#160;80000000-7FFFFFFF&#160;
至于ElecTherta的处理,我猜是判断运行与上次运行的对比,用于判断

DSP28335-2812-speed-frq.pdf

83.01 KB, 下载次数: 31, 下载积分: 西莫币 -1

Speed-FR函数

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

使用道具 举报

该用户从未签到

 楼主| 发表于 2016-9-2 08:26 | 显示全部楼层 来自: 中国辽宁沈阳
windancerhxw 发表于 2016-8-25 12:25
稍微查了一下这个函数,发现有注释以及算法详解:

TI详细解释速度算法的原理。

那个说明手册在TI官网搜索什么可以下载到?能下载到其他函数的说明手册吗?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2019-7-29 15:17 | 显示全部楼层 来自: 中国广东深圳
观摩学习~!学习学习学习
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 6 天

连续签到: 3 天

[LV.2]偶尔看看I

发表于 2019-10-29 09:45 | 显示全部楼层 来自: 中国天津
编程者,很佩服。观看学习成长了
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-23 11:21 , Processed in 0.124100 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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