ODrive移植keil(七)—— 插值算法和偏置校准

ODrive 源码分析(一)项目梳理 近期由于项目需要做一个FOC驱动控制一体的控制器,因此学习了下Odrive这个开源项目,Odrive是一个开源的性能很强悍的FOC控制器,以前也玩过BLDC相关的控制算法,但是对于FOC这类比较复杂的控制算法研究的还比较少,从零开始做一个FOC控制器工作量太大,效果还不一定好,因此我考虑基于Odrive,在巨人的肩膀上做一些功能的裁剪和添加实现我自己想要的功能。版本:gnu-mcu-eclipse-windows-build-tools-2.12-20190422-1053-win64.zip。 阅读详情
AI摘要

本文详细介绍了ODrive中的角度读取方法、锁相环和插值算法的应用,以及偏置校准的步骤和原理,包括硬件连接、官方代码操作和移植后的代码调整。


 
ODrive、VESC和SimpleFOC 教程链接汇总:请点击
 

一、角度读取

1.1、硬件接线

在这里插入图片描述

驱动板 购买链接:https://item.taobao.com/item.htm?ft=t&id=644329838237,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

 

1.2、程序演示

  • 目前支持四种编码器:ABZ、AS5047P、MT6701、MA730,本例以ABZ信号为例,

  • ENCODER_cpr 为接口对应的cpr,比如AS5047P的ABZ接口cpr=4000,SPI接口的cpr=16384,注意区分。

  • 使用这个代码,下图:
    在这里插入图片描述

  • 在MyProject.h文件中设置参数,下图:
    在这里插入图片描述

  • 编译烧写,

  • 发送指令“P”(不需要回车换行),同时用手转动电机,查看角度打印,
    在这里插入图片描述

在这里插入图片描述

  • 打印的角度为累加角度,转动过程中不清零。

 

1.3、代码说明

  • 角度读取在TIM1更新中断中被调用,
  • 更新中断的同时触发ADC,所以进入中断后ADC并未完成,此时读取角度,也是在等待ADC完成,
  • ODrive的代码执行时间非常紧凑,所以不支持I2C接口的编码器,当然也就不支持AS5600(I2C接口的读取速度比较慢)。

在这里插入图片描述

  • 官方代码中,读取数据使用了SPI收发DMA模式,我觉得SPI的速度已经很快,没有必要再用DMA,
  • 官方代码中,SPI读取角度都是一个16bit指令完成(比如读取AS5047P的指令是0xFFFF)。所以移植后的代码不再支持TLE5012B编码器,TLE5012B的指令包含了收发切换和延时,效率较低。
  • 官方代码支持多种SPI接口编码器,大部分型号在国内比价冷门,所以没有移植,
  • 移植后的代码很容易添加 符合这些规则的编码器。

在这里插入图片描述

 

二、锁相环和插值算法

读取后的角度为原始数据,再在encoder_update() 中处理,数据处理包含了两部分:锁相环和插值,
在这里插入图片描述
在这里插入图片描述
 

2.1、锁相环

  • 能百度到的关于锁相环的介绍,都是关于无线电通信的,本人上学的时候刚好还做过这个实验,所以我一直以为锁相环就是用于通信的。

  • 用锁相环来滤波角度超出了我的想象,我也没在网上找到任何理论依据,国内电机论坛上也从没人讲过这事(至少我没看到过)。

  • 我猜测它是用读出的角度做为目标值,估算值最终和目标值同步。当读出角度有较大波动或者干扰时,估算值能够保证一定的平滑性,起到滤波的作用。

  • 有读者在评论区讲了这个算法,并给出了官方的网址,有兴趣的同学可以看看,感谢这位读者!
    “根据odrive作者的意思,PLL估计位置和速度实质上是搭建了一个二维的状态观测器,https://discourse.odriverobotics.com/t/rotor-encoder-pll-and-velocity/224/7“

    在这里插入图片描述

  • 上图是ODrive中无感电机启动的锁相环,都是锁相环,原理应该差不多。就是一开始有误差,最终消除误差,实际值和估算值保持一致。

 

2.2、插值

  • 插值算法我没有看明白,我觉得应该是和偏置校准方案相关的一个处理方法,
  • 可以提前透漏下,在闭环速度控制的时候,把插值算法屏蔽了,电机转动的效果丝毫不受影响,
  • 不知道这个算法什么时候起作用,也可能是我的测试不够多,

在这里插入图片描述

 

2.3、角度补偿

  • 从发出读编码器指令,到获取角度再用于反Park变换,中间会有一段时间的延迟。同样的延迟时间,电机转速越高影响就越大,所以需要角度补偿。

  • 我在调试SimpleFOC的时候就遇到了这一问题,SimpleFOC代码支持的最大转速基本只能到3000RPM(7对极),我曾通过增加补偿角的方法把转速提高到8000RPM(效果并不好,电机有咔咔的噪声)。补偿角不是固定值,而且随着转速提高逐渐增大。

  • 有些公司把补偿角称之为:“进角”或者“攻角”。
    国内一般的做法是通过事先测试获取不同转速时的补偿角,分段补偿或者设定系数根据速度线性补偿。
    手动添加补偿角的方式有两个缺点:第一事先需要大量测试以得到最佳值,第二这种方法看起来不太灵活,毕竟电机转动时速度是有波动的,补偿角过于呆板。

  • ODrive中就没有补偿角,我觉得要么是它的算法精确,很好的解决延迟问题;要么就是锁相环可以起到补偿的作用。
    我尝试把锁相环部分屏蔽了,测试高转速时的效果,以确定它是否有补偿效果,但是没有屏蔽成功,这个稍后再测试。

  • 角度“ 锁相环” 在国内闻所未闻,我觉得是ODrive代码中最有价值的一项技术!
     

三、偏置校准

3.1、硬件接线

使用SPI接口,SPI读出角度为绝对值,更容易找到规律,

在这里插入图片描述

驱动板 购买链接:https://item.taobao.com/item.htm?ft=t&id=644329838237,图锐科技
电机 购买链接:https://item.taobao.com/item.htm?ft=t&id=643573104607,图锐科技

 

3.2、官方代码操作

请先将驱动板刷机v0.5.6版本,当然也可以v0.5.1版本,结果是一样的,
ODrive操作,下图:

在这里插入图片描述

odrv0.erase_configuration()
odrv0.vbus_voltage                                             //读电源电压
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_HIGH_CURRENT  //5008电机 + AS507P
odrv0.axis0.motor.config.pole_pairs = 7                        //电机极对数
odrv0.axis0.motor.config.calibration_current = 5               //可根据情况调整大小
odrv0.axis0.encoder.config.mode = ENCODER_MODE_SPI_ABS_AMS     //设置编码器类型
odrv0.axis0.encoder.config.abs_spi_cs_gpio_pin = 1             //选择CS引脚
odrv0.axis0.encoder.config.cpr = 2**14                         //16384
odrv0.save_configuration()
odrv0.reboot()                                                 //v0.5.6不用这一句

odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION        //检测电机的电阻和电感,3秒钟后“嘀”一声结束
odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION //检测偏置,电机约正转一圈反转一圈,回到起点,结束
odrv0.axis0.error

odrv0.axis0.motor.config.direction        //读校准的方向
odrv0.axis0.encoder.config.offset         //读校准的偏置角
odrv0.axis0.encoder.config.offset_float   //读校准的偏置角小数部分

 
1、只配置校准相关的参数,当然也可以完整配置,
2、测量的电机可以是Hign_Current类型,也可以是MOTOR_TYPE_GIMBAL(云台电机),
3、校准电流如果设置太大,电机可能会发热严重;设置太小,电机无力,转不动。
 

 
云台电机的配置如下:

//云台电机配置如下:
odrv0.erase_configuration()
odrv0.vbus_voltage
odrv0.axis0.motor.config.motor_type = MOTOR_TYPE_GIMBAL         //2804电机 + AS5047P
odrv0.axis0.motor.config.pole_pairs = 7                         //电机极对数
odrv0.axis0.motor.config.calibration_current = 2                //此时为校准电压
odrv0.axis0.encoder.config.mode = ENCODER_MODE_SPI_ABS_AMS      //设置编码器类型
odrv0.axis0.encoder.config.abs_spi_cs_gpio_pin = 1              //选择CS引脚
odrv0.axis0.encoder.config.cpr = 2**14                          //16384
odrv0.save_configuration()
odrv0.reboot()                                                  //v0.5.6不用这一句

odrv0.axis0.requested_state = AXIS_STATE_MOTOR_CALIBRATION      //云台电机虽然不检测电阻电感,但也要发送这个指令
odrv0.axis0.requested_state = AXIS_STATE_ENCODER_OFFSET_CALIBRATION   //检测偏置
odrv0.axis0.error

odrv0.axis0.motor.config.direction
odrv0.axis0.encoder.config.offset
odrv0.axis0.encoder.config.offset_float

 

 

3.3、移植后的代码操作

  • 使用提供的第二个代码,下图:
    在这里插入图片描述
     

  • 在MyProject.h文件中设置参数,下图:
    在这里插入图片描述

  • 编译烧写,

  • 发送指令“C”(不需要回车换行),3秒钟后电机“嘀”一声,打印测量结果,同时打印整定后的电流环PI参数。

  • 再发送指令“F”(不需要回车换行,回车换行了也没错,以后不再说明),电机正转八个电角度,然后再反转八个电角度,回到起点,打印偏置校准结果,下图:
    在这里插入图片描述

 

3.4、偏置校准原理

偏置角就是电角度和机械角度的差值,
偏置校准,就是测出电角度为0时机械角度的值。
 
3.4.1、理想状态下,电机为1对极,电角度的0度刚好是编码器的0度,电角度与机械角度完全重合,此时是不用校准的,
在这里插入图片描述
 
3.4.2、但这没有可操作性,
首先一个磁铁根本就无法分辨出来哪个方向是0度,
其次,即使可以,这也要求极高的安装精度,误差为0,
实际生产中,磁铁随意安装在电机上,靠后期使用时校准获取偏置角,这样更适合工业化批量生产的特点,
在这里插入图片描述
 
3.4.3、SimpleFOC的偏置校准对比

  • 想要理解ODrive的偏置校准,建议先理解SimpleFOC的偏置校准。
    请看这篇教程:SimpleFOC移植STM32(四)—— 闭环控制,零点校准部分。

  • SimpleFOC的偏置校准是用简单的方法实现简单的功能,
    ODrive的偏置校准是用复杂的方法实现简单的功能,当然ODrive的适应性可能会更好。

在这里插入图片描述

  • SimpleFOC中,设置电角度为0,读取此时的机械角度,再把读到的角度限制在[ 0, 2Pi/PP ]范围内,得到的就是偏置角。因为被限制了范围,所以同一个电机无论上电位置如何,计算结果都是相同的。

  • ODrive中,可以理解为设置电角度为0,读取到的角度就是偏置角,不限制范围,所以偏置角的个数和电机极对数对应。比如电机是7对极,那么这个电机就最多有7个不同的偏置角。下面我们解释为什么有7个。
     

3.5、代码说明

3.5.1、校准代码,下图:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

代码中有注释,我们只说难点,
encvaluesum,每1ms累加一次角度,最后再除以累加次数,这是求平均值的算法,得到的是中点的角度,
校准时转过了16Pi的距离,中点位置就是8Pi,所以phase_offset是8Pi电角度时对应的机械角。
之所以要正反转8对极,就是为了尽可能的平均误差,保证校准的可靠性。
 
3.5.2、查看校准结果

在这里插入图片描述
7对极的电机,每对极对应的cpr = 16384/7=2340.57,它的偏置值有7个,上面检测的其中一个偏置角=4071,可以推测出其它6个偏置角为:6411、-610,-2951,-5291,-7632,1731。ODrive的角度取值范围是 [-Pi, Pi],对应[-8192, 8192]。
每次校准前转动约一个电角度,检测值如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
与计算值完全相同,
按照simpleFOC的算法,这7个值其实本应该是一个值。
提前透漏习下,在下一节的闭环控制中,保存其中任一个偏置角,上电跳过检测,都可以让电机稳定转动。
ODrive官方代码上电无法跳过检测,这个我们下一节再解释。
 
SPI接口读出的是绝对值,所以同一个电机,偏置值是固定的,可以保存下来,以后上电跳过检测;
ABZ是增量编码器,每次上电都从0开始,所以偏置值不确定,需要每次上电都先检测,这点在SimpleFOC中已经说明过。

 
 
 
 
欢迎加入技术交流群:923734429 (入群申请写:优快云)
 
 
(完)
 
 

ODrive0.5.5源码分析(3) control_loop_cb ODrive0.5.5 control_loop_cb 阅读详情

相关推荐

ODrive0.5.5源码分析(4) 编码器补偿校准(encoder_offset_calibration)

ODrive0.5.5程序分析 编码器补偿校准(encoder_offset_calibration)

danger的博客 4576

ODrive0.5.1程序分析#2 编码器补偿校准(encoder_offset_calibration)

ODrive程序解读

ledros的博客 4399

odrive移植 ODrive-fw-v0.3.6-keil 无刷电机控制

odrive移植 ODrive-fw-v0.3.6-keil 无刷电机控制

ODrive移植keil(二)—— ODrive的程序架构

本节及之后的教程将把odrive移植到keil环境下,为了降低移植难度,同时也为了让大家更容易学习掌握移植后的代码,本次移植,只移植电机的核心控制功能,实现常用的一些功能。这部分代码会让人看得很无助,因为所有的代码都在此时执行,比如最下面的开环控制,都已经闭环了难道它还在运行,它运行的意义是什么?ADC1的规则通道转换所有闲杂的ADC,比如温度检测,不需要时效,软件触发后将一直在后台转换;国外的电机驱动技术领先国内这是不争的事实,“洋务运动”一直都在,只是在不同的领域不同的范围,

loop222的博客 1万+

ODrive-fw-v0.3.6_keil.zip

原版ODrive双电机驱动KEIL移植版

ODrive3.4 固件(keil移植版)

ODrive3.4 固件(keil移植版)

ODrive移植keil(三)—— USB虚拟串口和快速正弦余弦运算

但是我实际的测试,从软件中断退出后仍然会执行第二个更新中断,并且我觉得在软件中断中等待第二次更新中断,很浪费时间,所以就没有使用这个方案。以上测试证明了USB虚拟串口移植成功,但在实际应用中,只需要USB收发数据,不需要USART2,所以屏蔽掉相关配置。单片机的USB通信,一般都是以虚拟串口的方式实现,ODrive使用自定义的接口,所以才需要用zadig驱动。DSP库优化后的运算,运算时间大约261520 us,精度在0.000001f,我本来是打算描述下移植的细节的,但是隔的时间太久了,已经记不清细节,

loop222的博客 4130

ODrive-fw-master-v0.3.6-keil(开源驱动keil工程).zip

ODrive驱动软件移植到keil工程,官网:https://discourse.odriverobotics.com/ ODrive入门指南:https://blog.youkuaiyun.com/abf1234444/article/details/103325808 版本说明 ODrive 硬件版本: v3.6-56V ODrive 硬件内部固件版本: fw-v0.5.1 odrivetool 版本: 0.5.1.post0(pip install odrive==0.5.1.post0)

SimpleFOC、ODrive和VESC 教程链接汇总

一、SimpleFOC系列教程 SimpleFOC(一)—— 简介(附有文件下载链接) SimpleFOC(二)—— 快速入门 (开环控制) SimpleFOC(三)—— AS5600角度读取 SimpleFOC(四)—— 闭环控制 SimpleFOC(五)—— 双电机控制 SimpleFOC(六)—— PowerShield和AS5047P SimpleFOC(七)——STM32(Bluepill)的应用 SimpleFOC(八)—— 理论+实践 深度分析SVPWM SimpleFOC(九)——

loop222的博客 12万+

大语言模型在建筑规范自动化合规审查中的微调策略与规模效应实践

大语言模型(LLM)通过在海量文本数据上预训练,具备了强大的语言理解和生成能力。其核心原理是基于Transformer架构,通过自注意力机制捕捉长距离依赖关系。在工程实践中,为了将这种通用能力适配到建筑、法律、金融等高度专业化的垂直领域,通常需要采用领域微调技术。微调通过使用特定领域的高质量指令数据对模型参数进行更新,使其掌握专业术语、逻辑规则和任务范式,从而解决通用模型在专业场景下知识匮乏和“幻觉”问题。结合检索增强生成(RAG)技术,将动态外部知识库作为模型的“参考手册”,能进一步提升事实准确性并降低幻

weixin_30667831的博客 362

ArcGIS实战:手把手教你用DEM和灾害点数据,5步搞定地质灾害风险区划图

本文详细介绍了使用ArcGIS进行地质灾害风险评估的完整流程,从DEM和灾害点数据出发,通过五步标准化操作生成专业风险区划图。重点讲解了信息量模型的应用,帮助读者掌握GIS技术在地质灾害易发性评价中的实践方法,提升风险评估效率与准确性。

weixin_30696427的博客 424

ODrive移植FreeRTOS实现高精度电机实时控制

实时操作系统(RTOS)是保障电机控制确定性的核心技术基础,其核心价值在于提供可预测的中断响应、确定性任务调度与可控内存管理。在资源受限的嵌入式电机控制器(如基于STM32F407的ODrive)中,传统MicroPython因GC不可控、调度抖动大而难以满足10kHz以上FOC电流环的μs级时序要求;Linux则因内存开销与非实时性完全不适用。FreeRTOS凭借轻量内核、静态内存分配、中断优先级嵌套与低至±0.7μs的任务抖动,成为高动态伺服、协作机器人关节与多轴同步平台的事实标准。本文以ODrive为

weixin_34343000的博客 348

避坑指南:Livox Mid-360双雷达SLAM配置中,那些官方文档没说的细节(IP设置、话题分离与时间同步)

本文详细解析了Livox Mid-360双雷达SLAM配置中的关键优化点,包括IP设置、话题分离与时间同步等官方文档未提及的细节。通过实战案例和代码示例,帮助开发者解决点云错位、IMU数据混乱等问题,提升SLAM系统的稳定性和精度。特别针对网络架构设计、驱动修改和时间同步机制提供了专业指导。

weixin_29745609的博客 425

ODrive 8kHz控制环原理与源码级调优实战

电机控制中的采样频率是保障电流环稳定性的核心参数,其本质源于电机电气时间常数与MCU实时处理能力的协同约束。8 kHz作为主流无刷电机FOC控制的典型采样率,既满足RL系统带宽5~10倍采样准则,又兼顾STM32等主流MCU的ADC转换、坐标变换与PID计算的确定性时序。该频率直接决定电流响应速度、纹波抑制能力及系统相位裕度,广泛应用于机械臂关节、电动滑板和AGV舵机等高动态场景。深入理解其寄存器配置逻辑(如ARR/PSC计算)、双定时器协同机制与硬件信号链约束,是实现稳定FOC控制与故障精准定位的关键路径

weixin_34080571的博客 425

销售预测的方法与模型(三)丨安全库存与再订货(补货)

较高的 Z 值对应较高的服务水平(例如,服务水平 99% 对应 Z 值 2.33),意味着企业希望更低的缺货风险,因此需要更高的安全库存。在再订货点的管理中,考虑到供应商交货的不确定性,通常需要结合安全库存,以防止在交货期间库存用尽。要对L开根号,根号L表示交货周期越长,企业需要的安全库存越多,因为在较长的供应期内,需求波动的累积效应更明显。举例:供应商的交期服从标准差为2件/天的正态分布,顾客需求为50件/天的正态分布,若要客户服务水平达到 90%,安全库存量应该是多少?下面介绍几种核心的模型与公式。

weixin_45675709的博客 1534

STM32与小米CyberGear微电机的CAN通信协议深度解析

本文深度解析STM32与小米CyberGear微电机的CAN通信协议,涵盖硬件连接、CAN总线配置、通信协议解析及多电机协同控制。重点介绍了基于STM32的电机控制实践,包括运动模式、速度与位置模式设置,以及数据反馈与故障诊断,为机器人及自动化设备开发提供实用指南。

www00的博客 359

ODrive 8kHz控制环原理与定时器硬件时基设计

电机FOC控制中的控制环频率是决定动态响应、转矩纹波和系统稳定性的核心参数。8 kHz控制环并非随意设定,而是基于电机电气/机械时间常数匹配的工程最优解,其本质依赖高精度、低抖动的硬件定时器时基。在STM32F405平台上,该频率通过高级定时器TIM1(ARR=19999@168MHz)实现125 μs严格周期中断,并协同ADC同步采样、互补PWM生成与死区保护,构成实时性闭环。理解定时器配置、中断优先级、ADC触发时序及FOC计算流水线优化,是调试高动态伺服系统、移植固件或提升电流检测精度的关键基础。本文

weixin_33895657的博客 336

Apollo学习笔记(1) 百度 Apollo Cyber RT简介、基本概念以及与 ROS 对照

一、背景 ROS 应用于自动驾驶领域的不足: 调度的不确定性:各节点以独立进程运行,节点运行顺序无法确定,因而业务逻辑的调度顺序无法保证; 运行效率:ROS 为分布式系统,存在通信开销 二、Cyber RT 框架 从下到上依次为: 基础库:高性能,无锁队列; 通信层:Publish/Subscribe机制,Service/Client机制,服务自发现,自适应的通信机制(共享内存、Socket、进程内); 数据层:数据缓存与融合。多路传感器之间数据需要融合,而且算法可能需要缓存一定的数据。比如典型的仿真应用

qq_24649627的博客 3392

电控工程师简历突围:10个可验证开源项目实战指南

电控工程师的核心能力体现在硬件实操、闭环调试与工程叙事中,而非单纯理论掌握。从电机驱动的感知(编码器/电流采样)、决策(FOC/PID/观测器)、执行(GaN/MOSFET驱动)到反馈(CAN/串口通信),真实项目需具备可验证性、可解释性与可延展性。开源BLDC驱动、ODrive力矩控制、SimpleFOC无感算法等典型项目,覆盖死区时间调试、q轴电流纹波抑制、滑模观测器鲁棒优化等高频技术点,既是秋招简历硬通货,也是面试深度考察载体。本文聚焦工程信号表达——如何将示波器波形、BOM器件选型、PID参数整定转

weixin_33874713的博客 397

23、资产分散化与有效前沿:投资组合优化的核心策略

本文深入探讨了现代投资组合理论的核心概念,包括分散投资的重要性、均值-方差优化框架以及有效前沿的构建与应用。通过案例分析和数学模型,阐述了如何通过科学方法降低投资组合风险并实现最优风险收益权衡。文章还介绍了实际应用中的求解方法与决策流程,为投资者提供系统的投资组合优化指导。

cc789的博客 114

【项目实战】功能安全目标有四个ASIL等级:A、B、C、D,ASIL D是最高的等级

功能安全是一种关注产品在异常情况下如何避免造成伤害的概念功能安全在汽车电子行业中非常重要。功能安全涉及到系统、电子和软件三个部分。(1)系统部分主要涉及概念设计(2)而具体的实施则是在电子和软件部分完成。

奶爸的编程之路,也就一周冷个三天 2822

ODrive移植keil(八)—— 闭环控制

定点运算早就存在,但是ST采用定点运算配合它的电机库,极大的推广了这一技术,我觉得目前市面上只要是定点运算的电机驱动器,应该都会受到ST的影响,或者直接就师承ST。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。如果限速,电机只能达到限制转速。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。发送指令“C”,3秒钟后电机“嘀”一声,然后正转8个电角度,反转8个电角度,同时串口打印校准参数。

loop222的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ODrive移植(一)—— 国产替代方案(VScode版移植)

官方网站:https://odriverobotics.com/github网站:https://github.com/odriverobotics/ODrive官方使用说明:https://docs.odriverobotics.com/v/latest/guides/getting-started.html,在左下角选择对应的版本,比如ODrive-V3.6的当前最新版本是0.5.6,

loop222的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ODrive移植keil(五)—— 开环控制和电流变换

如果转速设置太大,电机会振动,可以调高 target_voltage_ 以达到更大的转速,但是注意电机电流,注意发热。ODrive的程序架构,也是我在基本移植完代码后才焕然大悟的,如果事先有架构意识,不至于看代码的时候那么痛苦。Park变换的θ是当前读出的角度,而Park逆变换是下次FOC计算时的角度(当前角度+估算的下次转过的角度),3、Uq设置太大,电机发热严重,Uq设置太小,电机没劲转不动或者转不快,所以一定要根据电机相电阻设置大小,4、θ不是当前的角度,是目标角度,就是下次计算时的角度。

loop222的博客 6320

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ODrive移植keil(四)—— PWM触发ADC采样

ADC以DMA的方式转换,代码单独执行这个操作是没问题,但在初始化阶段随着片内外设配置的增加,或者代码执行顺序的变换,就会发生错位。网上找到过很多解释错位原因以及改正办法,但从来都没有彻底解决过这个问题,此次移植又遇到了这个问题,曾经的解决办法测试一遍后都失效了,最后发现用TIM2更新触发的方式不再错位。ADC1多通道规则转换时,如果使用DMA方式,经常会发生AD值错位的现象,比如第一个AD值的高字节放入的是低字节的数据,而低字节是第二个AD值的高字节数据,以此类推,转换值全部失效。

loop222的博客 8656

ODrive应用 #1 ODrive入门指南

ODrive 入门 文章目录ODrive 入门硬件需求需要准备以下硬件:ODrive 接线Wiring up the motorsWiring up the encodersSafety & Power UPDownloading and Installing ToolsWindowsOSXLinuxFirmwareStart `odrivetool`Configure M02. Set ...

codenocold 8万+
上一篇: ODrive移植keil(六)—— 测量电阻电感和电流环PI参数整定
下一篇: ODrive移植keil(八)—— 闭环控制
loop222
博客等级 码龄8年 4091粉丝 61原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值