完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
请问2.0电机库里编码器初始化时,计数器初值的计算公式是怎么来的呢?//Reset counter
tiM2->CNT = COUNTER_RESET; #define COUNTER_RESET (u16) ((((s32)(ALIGNMENT_ANGLE)*4*ENCODER_PPR/360) -1)/POLE_PAIR_NUM) 还有就是机械角度和电角度的计算,看不明白啊。。。。 还请大神指点 s16 ENC_Get_Mechanical_Angle(void) { s32 temp; temp = (s32)(TIM_GetCounter(ENCODER_TIMER)) * (s32)(U32_MAX / (4*ENCODER_PPR)) ; return((s16)(temp/65536)); // s16 result } s16 ENC_Get_Electrical_Angle(void) { s32 temp; temp = (s32)(TIM_GetCounter(ENCODER_TIMER)) * (s32)(U32_MAX / (4*ENCODER_PPR)); temp *= POLE_PAIR_NUM; return((s16)(temp/65536)); // s16 result } |
|
相关推荐
1个回答
|
|
在这个问题中,您提到了2.0电机库中的编码器初始化,以及计数器初值的计算公式。首先,我们需要了解编码器和电机库的基本概念。
编码器是一种将机械位置转换为数字信号的设备,通常用于测量电机的旋转角度和速度。在电机控制系统中,编码器提供了精确的位置反馈,有助于实现精确的速度和位置控制。 电机库是一组预先编写的函数和程序,用于简化电机控制任务。这些库通常包含初始化、配置、控制和监测电机的各种功能。 现在,让我们分析您提供的代码片段: ```c //Reset counter TIM2->CNT = COUNTER_RESET; #define COUNTER_RESET (u16) ((((s32)(ALIGNMENT_ANGLE)*4*ENCODER_PPR/360) ``` 这段代码的目的是在电机库中初始化编码器,并设置计数器的初值。以下是计算计数器初值的步骤: 1. `ALIGNMENT_ANGLE`:这是一个角度值,表示电机需要旋转到的初始位置。这个值通常以度(°)为单位。 2. `ENCODER_PPR`:这是一个常量,表示编码器每转一圈产生的脉冲数(Pulses Per Revolution)。这个值取决于编码器的分辨率。 3. `360`:这是一个常数,表示一个完整的圆周角度。 4. `4`:这个值可能与电机的极对数(Poles)有关。在某些电机控制系统中,需要将编码器的脉冲数乘以一个因子,以适应电机的极对数。 计算公式的解释: ``` COUNTER_RESET = (u16) ((((s32)(ALIGNMENT_ANGLE) * 4 * ENCODER_PPR) / 360) ``` 这个公式计算了从0度开始,电机需要旋转到`ALIGNMENT_ANGLE`所需的编码器脉冲数。首先,将`ALIGNMENT_ANGLE`乘以4,以适应电机的极对数。然后,将结果乘以`ENCODER_PPR`,得到在该角度下编码器产生的总脉冲数。最后,将这个值除以360,以将角度转换为编码器的脉冲数。 `COUNTER_RESET`是一个16位无符号整数(u16),用于存储计算出的脉冲数。在电机库中,这个值被用作计数器的初始值,以便在启动电机时,系统知道电机的初始位置。 总之,这个计算公式用于确定电机在特定角度下的编码器脉冲数,并将其用作计数器的初始值。这有助于实现电机控制系统中的精确位置反馈和控制。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1804 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1629 浏览 1 评论
1097 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
736 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1686 浏览 2 评论
1944浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
748浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
583浏览 3评论
604浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
565浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-28 23:07 , Processed in 0.717677 second(s), Total 50, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号