1. 电流采样时间及通道

FOC需要通过采集相电流来进行控制,采样时间及通道极为关键,在二或三电阻采样方案中,采用如下方式:

在1、6扇区,B、C为采样通道;

在2、3扇区,A、C为采样通道;

在4、5扇区,A、B为采样通道;

要在下臂导通时间内进行采样,在PWM定时器工作在中心对齐模式下,最佳采样点为PWM定时器过零点,详细分析见FOC中的电流采样

2. 数据处理

FOC算法中涉及到很多运算,为了加快运算或者使用不支持浮点运算的处理器,通常用Q格式标定来把浮点数转换为定点数进行计算

${X_Q} = X*{2^Q}$

${X_Q}$为转换后的定点值

$X$为待转换的浮点数

Q表示小数点所在位置,如12,则表示小数点在第12位

运算法则:

加法:${X_Q} + {X_Q} = {X_Q}$

乘法:${X_Q}*{X_N} = {X_{Q + N}}$

在乘法运算中,为了保证运算结果为同一格式数据,通常将运算结果左移一位再取高16位,如:C=A*B,A、B、C为${X_{15}}$格式,则C=((A*B)<<1)>>16

3. 正余弦运算

在坐标变换中,要用到正余弦运算,而坐标变换是FOC算法的主干部分,FOC算法通常运行于中断中,因此运算速度要足够快。为了保证速度,采用查表法

4. 无感FOC的位置和速度估计

最常用的是滑模估计和PLL估计

5. PWM频率选择更新重复频率

使用stm32 设计的过程中,软件设计为TIM1的通道4触发ADC电流采样,在ADC中断中运行FOC算法。电流采样选择三电阻采样,在TIM1溢出后ADC转换触发要晚(DT+TN-TS)/2,考虑AD转换需要的时间,在最坏情况下,FOC算法是在TIM1计数器溢出之后5us才开始执行。FOC算法执行时间大约20us,在无传感模式下,为了在下个更新事件之前完成新占空比设置,必须保证最小占空比大约为(5+20)us,即能达到的最大FOC执行频率大约是20kHz,此时重复计数器可设定为1.对于高于20kHz的PWM频率,重复计数器必须设定为3

FOC软件中要处理的问题的更多相关文章

  1. CRM/ERP 企业管理软件中常见的七种程序设计模式

    管理软件中的常见代码设计模式,来自于业务上的需要,有不恰当的地方欢迎批评指正. 1  RE-TRY 重试模式 场景:在连接数据库服务器时,如果SQL Server数据库没有启动或正在启动,我们需要有一 ...

  2. 小讲堂:Mobox文档管理软件中的文件外链是什么?

    今天我们来讨论Mobox文档管理软件中的文件外链是什么?熟悉MOBOX的朋友们应该知道,如果有文件需要分享给其他同事,直接可以进行文件共享.对方会在AM的即时通讯客户端有消息提醒,点击消息提醒可以看到 ...

  3. 小讲堂:在线编辑在Mobox文档管理软件中的意义

    今天我们来讨论一下,mobox文档管理软件中的在线编辑的这个功能,相信这个功能是用户在日常的文档维护中非常需要的. 文档管理软件的诸多功能中,在线编辑是一块很重要的功能点,因为在线编辑可以说是提高工作 ...

  4. 在现有的图像处理软件中融合dxf格式输出

    在现有的图像处理软件中融合dxf格式输出 dxf格式是autocade的支持格式.如果将现有图像识别的结果导出到dxf格式,就能够使用autocad的强大功能进行后续处理. dxf的格式比较复杂,开源 ...

  5. Atitit.软件中见算法 程序设计五大种类算法

    Atitit.软件中见算法 程序设计五大种类算法 1. 算法的定义1 2. 算法的复杂度1 2.1. Algo cate2 3. 分治法2 4. 动态规划法2 5. 贪心算法3 6. 回溯法3 7. ...

  6. JMP软件中的晶圆图( Wafer Map)分析

    关键词:芯片 良率分析 晶圆图 质量管理 JMP Minitab 半导体芯片的生产,简单来讲,是将电路通过各种复杂的物理化学方法制作到晶圆上,在生产的最后阶段会进行不同电性功能的测试以确保产品的功能性 ...

  7. Illustrator软件中eps和ai格式的区别

    转自Illustrator软件中eps和ai格式的区别 AI是ILL特有的格式,EPS格式是在排版领域经常使用的格式.AI中的位图图像是用链接的方式存储,EPS格式则将位图图像包含于文件中.对于含有相 ...

  8. BarTender软件中GS1-128条码如何制作?

    GS1-128条码是UCC/EAN-128条码的新名字,它只是Code 128的一个特殊子集.GS1-128条码是EAN·UCC系统中唯一可用于表示附加信息的条码,可广泛用于非零售贸易项目.物流单元. ...

  9. Altium软件中Unknowpin的详细解决办法

    1.Altium软件中Unknowpin第一种原因:PCB封装缺失遗漏,直接加入对应的封装即可.点击箭头指示处的Add,接着点击OK之后,再点击图中所示处Browse...选择封装库的封装即可. 2. ...

随机推荐

  1. 我的新书——《PHP程序员面试笔试宝典》

    你好,是我琉忆. 一个文艺的PHP开发工程师. 很荣幸能够在这里带来我的第一本新书--<PHP程序员面试笔试宝典>. 一.创作过程 <PHP程序员面试笔试宝典>是我的第一本书, ...

  2. CreateEvent进程同步

    CreateEvent进程间同步   CreateEvent可以创建或是打开一个命名或是未命名的event对象. HANDLE CreateEvent(   LPSECURITY_ATTRIBUTES ...

  3. 部署 Docker Registry 并配置认证登录

    文章目录 搭建 Docker Registry 创建本地映射目录 启动 Docker Registry 配置 Docker Registry 配置 Docker Registry 认证 启动带认证的 ...

  4. Spring Data JPA应用 之查询分析

    在Spring Data JPA应用之常规CRUD操作初体验 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)尾附上了JpaRepository接口继承关系及方法,可以知道JpaRepos ...

  5. JVM学习——垃圾回收GC(学习过程)

    JVM学习-垃圾回收(GC) 2020年02月19日06:03:56,开始学习垃圾回收,学习资料来源(张龙老师的JVM课程) JVM内存数据区域知识复习 学习垃圾回收之前,要对JVM内部的内存区域有详 ...

  6. C# 使用技巧区

    1.事件中的技巧 (1)在事件发送者中,用delegate{}初始化事件.这样就不用每次在使用事件的时候判读事件是否为空了. delegate { }可以赋值给任何类型的委托.这个功能匿名方法特有的, ...

  7. IComparer、IComparable、StringComparison枚举、CultureInfo 的用法

    IEnumerable<T> 和 IEnumerator<T>.泛型版本是新式代码的首要选项. InvariantCulture:程序间.程序数据库.程序网络交互用Invari ...

  8. wurstmeister/kafka:docker构建kafka遇到的问题

    1. kafka 容器无法启动 过程描述: docker ps -a 看到 Exited docker logs a87d9cd2a8ac 查看日志: 发现是内存不够 解决方案: 修改 kafka的J ...

  9. 渗透测试中dns log的使用

    转至:https://www.cnblogs.com/rnss/p/11320305.html 一.预备知识 dns(域名解析): 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问 ...

  10. Windows运行(Win+R)快速启动所有程序(自定义)

    运行Win+R我们都会用,等同于开始菜单的"运行".注意,只是效果等同, 从速度来看,按win+r比用鼠标要快很多倍.用win+r启动常用程序 最常用的是输入cmd打开命令行或ca ...