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. Solution -「多校联训」最小点覆盖

    \(\mathcal{Description}\)   Link.   求含有 \(n\) 个结点的所有有标号简单无向图中,最小点覆盖为 \(m\) 的图的数量的奇偶性.\(T\) 组数据.   \( ...

  2. c++ 移动与拷贝

    c++ 移动与拷贝

  3. ThinkPHP5中使用第三方类库

    在TP5中有两种方式使用第三方类库,如果类库支持composer方式安装那就很方便了,使用composer安装的类库存储在Vendor目录下,可以直接使用,以phpmailer为例,使用如下命令安装: ...

  4. 【曹工杂谈】Mysql-Connector-Java时区问题的一点理解--写入数据库的时间总是晚13小时问题

    背景 去年写了一篇"[曹工杂谈]Mysql客户端上,时间为啥和本地差了整整13个小时,就离谱",结果最近还真就用上了. 不是我用上,是组内一位同事,他也是这样:有个服务往数据库in ...

  5. 日行一算(Table-文字输出)

    题目 +---+---+---+ | | | | +---+---+---+ | | | | +---+---+---+ | | | | +---+---+---+ 题目描述 上图是一个Mysql查询 ...

  6. 盘点Go中的开发神器

    本文已收录 https://github.com/lkxiaolou/lkxiaolou 欢迎star. 在Java中,我们用Junit做单元测试,用JMH做性能基准测试(benchmark),用as ...

  7. CVE-2017-0213漏洞复现

    CVE-2017-0213漏洞形成的原因 类型混淆的漏洞通常可以通过内存损坏的方式来进行利用.然而漏洞发现者在利用时,并未采用内存损坏的方式来进行漏洞利用.按照漏洞发现者的说法,内存损坏的利用方式需要 ...

  8. Centos7 增加swap分区的内存大小

    Centos7 增加swap分区的内存大小 对 swap 空间的适当大小实际上取决于您的个人偏好和您的应用程序要求.通常,等于或双倍于系统内存的量是一个很好的选择 添加swap分区使用dd命令创建/h ...

  9. html续篇及初识爬虫

    今日内容概要 form表单 requests模块 可以模拟浏览器朝服务端发送各式各样的请求 cookie与session requests模块小案例(网站的基本防爬措施) 今日内容详细 form表单 ...

  10. GBDT 梯度提升决策树简述

    首先明确一点,gbdt 无论用于分类还是回归一直都是使用的CART 回归树.不会因为我们所选择的任务是分类任务就选用分类树,这里面的核心是因为gbdt 每轮的训练是在上一轮的训练的残差基础之上进行训练 ...