完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大神,STO_PLL_CalcAvrgMecSpeed01Hz函数中以下代码的理论依据是什么?资料中哪儿可以找到?
/*Bemf Consistency Check algorithm*/ if ( pHandle->EnableDualCheck == true ) /*do algorithm if it's enabled*/ { wAux = ( wAux < 0 ? ( -wAux ) : ( wAux ) ); /* wAux abs value */ if ( wAux < ( int32_t )( pHandle->MaxAppPositiveMecSpeed01Hz ) ) { /*Computation of Observed back-emf*/ wObsBemf = ( int32_t )( pHandle->hBemf_alfa_est ); wObsBemfSq = wObsBemf * wObsBemf; wObsBemf = ( int32_t )( pHandle->hBemf_beta_est ); wObsBemfSq += wObsBemf * wObsBemf; /*Computation of Estimated back-emf*/ wEstBemf = ( wAux * 32767 ) / ( int16_t )( pHandle->_Super.hMaxReliableMecSpeed01Hz ); wEstBemfSq = ( wEstBemf * ( int32_t )( pHandle->BemfConsistencyGain ) ) / 64; wEstBemfSq *= wEstBemf; /*Computation of threshold*/ wEstBemfSqLo = wEstBemfSq - ( wEstBemfSq / 64 ) * ( int32_t )( pHandle->BemfConsistencyCheck ); /*Check*/ if ( wObsBemfSq > wEstBemfSqLo ) { bIs_Bemf_Consistent = true; } } pHandle->IsBemfConsistent = bIs_Bemf_Consistent; pHandle->Obs_Bemf_Level = wObsBemfSq; pHandle->Est_Bemf_Level = wEstBemfSq; } else { bIs_Bemf_Consistent = true; } |
|
相关推荐
1个回答
|
|
STO_PLL_CalcAvrgMecSpeed01Hz 函数中的这段代码是一个 Bemf(反电动势)一致性检查算法。这个算法的目的是在某些条件下检查 wAux 变量的值是否在预期范围内。下面是代码的逐行解释:
1. `/*Bemf Consistency Check algorithm*/`:这是一行注释,说明了接下来的代码是用于 Bemf 一致性检查的算法。 2. `if ( pHandle->EnableDualCheck == true )`:这行代码检查 pHandle 结构体中的 EnableDualCheck 成员是否为 true。如果是 true,那么将执行算法。 3. `{`:开始执行算法的代码块。 4. `wAux = ( wAux < 0 ? ( -wAux ) : ( wAux ) );`:这行代码计算 wAux 变量的绝对值。如果 wAux 小于 0,那么取其相反数(-wAux),否则保持原值。 5. `if ( wAux < ( int32_t )( pHandle->MaxAppPositiveMecSpeed01Hz ) )`:这行代码检查 wAux 的绝对值是否小于 pHandle 结构体中的 MaxAppPositiveMecSpeed01Hz 成员。如果小于,那么将执行以下代码: 关于这段代码的理论依据,它可能是基于以下原则: - Bemf 一致性检查:在某些应用中,需要确保电机的反电动势(Bemf)与预期值保持一致。这可以通过检查与反电动势相关的变量(如 wAux)来实现。 - 绝对值处理:在比较之前,先取 wAux 的绝对值,以确保不考虑其正负号。 - 上限检查:通过比较 wAux 的绝对值与一个预设的最大值(MaxAppPositiveMecSpeed01Hz),可以确保 wAux 在一个合理的范围内。 要找到相关资料,您可以尝试搜索以下关键词: - Bemf 一致性检查 - 反电动势 - 电机控制算法 这些关键词可能会帮助您找到关于这个算法的更多信息和理论依据。此外,您还可以查阅与您使用的特定库或框架相关的文档,以获取更多详细信息。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1456 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1448 浏览 1 评论
851 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
611 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1471 浏览 2 评论
1809浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
552浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
467浏览 3评论
459浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
440浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-19 22:11 , Processed in 1.035510 second(s), Total 81, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号