无感电机控制算法与PFC算法的单芯片实现

展开字幕 关闭字幕 时长:24分7秒
评论 收藏 分享 上传者:hi5
大家好 欢迎大家参加TI工业研讨会 我是TI Century FAE Igor An 主要负责数字电源电机控制算法开发 今天由我给大家介绍TI电机控制PFC解决方案 这里的电机控制主要是无传感电机控制 今天主要介绍的内容是在电机控制算法里面加入PFC算法 使两种算法在同一款MCU中协同工作 首先为大家简单介绍PFC控制算法 以及PFC控制中主要建模及环路建设 那我们知道在单向PFC 最主要运用到的拓扑就是简单的boost的拓扑 那如图所示 那在boost的拓扑中我们要对这个boost的拓扑进行控制 那首先要做的就是对这个系统进行建模 那按照平均电流法的小信号模型去建模 那从右边这个推导过程中我们可以得到 整个系统的一个稳态的一个关系 就是输入电压和输出电压 以及我们控制的真空比的一个稳态关系 但我们知道对PFC对这个boost的电路控制 实际上我们要实现两个控制目标 第一个就是我要实现我的输出电压 也就是这个直流母线电压上的电压恒定 那是一个电压的一个控制 另外一个控制目标是我要控制我的输入电流 是和输入电压同相位 都为正旋 就是实现高的PF和这个THD 就是高的这个公因数 那基本是1 那如果是实现了这个电压和电流完全同相 那基本就是个 PF就是1 那如果是完全的正旋度完全重合那它的谐波 谐波含量也是基本都是畸波含量 那为了实现这两个控制目标我们要建立控制环路模型 那之前我们推导出的这个稳态的关系 其实并不是我们的被控系统的模型 因为我们要 被控系统如果要建立的话 首先要定义我要实现的控制目标 以及实现这个控制目标的输入和输出值 控制目标呢其实就是我们模型中的输出量 那到底用什么数量建模 来搭建我的系统 那对于这个boost的电路来说 我们如果实现PFC功能一般是建立双环路 就是外环电压环 内环电流环的环路 那内环电流环的输出作为外环电压环的输入 那其实作为电压环的这个最终控制来说 它的输入就是我的电感电流输出就是我的母线电压 那对于电压环的这个输入输出 我的定义好了之后我就根据输入输出 按照平均电流法的小信号模型去解算它的数学模型 同样的对于电流环我要控制的是这个电感电流 那这个就是我的整个模型的输出 那它的输入量就是我去实现这个控制的输入量 实际上就是我们的duty 那实际上电流环的这个模型的输入输出 输入就是duty 输出就是电流 那输入输出建立好了 同样的 我们根据 平均电量法的建模理论对这个系统进行建模 这样我们就得到我们电流环的模型 那看到它的输出是I 就是电感电流 输入是duty 那就是我们的这个真空比 那它得到一个这个模型 当然我们这里是简化模型 电感的内阻我们并没有考虑 像一些寄生参数我们并没有考虑 如果将这个模型更加细化或者说我们叫更进一步精确 那我们就把这些系统上的量 把它引入进去来得到一个更完备的数学模型 当然我们知道这个其实这个电感里面内阻是 相对来说这个电感来说是很小的 所以你加入它和不加入它 其实对波特图的影响其实是比较微弱的 当然是会有影响那对于有一些系统来说 对于有一些这个建模方式来说 我们可能会引入更多的环节 像我们的电流采样的这个应放调理电路 应放调理电路中的这些滤波 它的带宽 也同样会引入 这些都是一些精细化的设计方法 但是最基本的这种建模方式我们是在这里面给大家列出来 电流环电压环 它的一些建模 当然我们引入不同的这种外界因素会得到不同的数学模型 那有了模型之后 我要考虑的就是说我要建立我的闭环控制环路 来实现我的两个控制目标 那下面呢 就是我们的这个典型的这个boost电路或者叫PFC 单向PFC控制环路 那上面我们可以看到就是一个双环结构 外环就是电压环 那这是电压环我们刚才推导出来电压环的数学模型 内环整个电压环输出内环这块就是我们的电流 那这是电流环的模型 那对PFC来说呢 我的电压是母线电压是直流反馈也是直流 经过PI出来 所以这个地方它的物理意义是电流 但是是电流的幅值 它也是个直流 那我们要实现的控制目标呢 是要把输入电流控制成和输入电压同相位的正旋信号 所以这里我们会需要乘以一个 与输入电压同相位的单位正旋 就说它这个正旋的幅值是1 乘以这个由环路决定的这个电流幅值 最终得到一个正旋的 幅值由电压环决定的一个正旋的电流参考 那我建立一个环路使我的实际电流跟随我的正旋的电流参考 从而实现PFC的这个正旋电流的这个控制目标 那外环电压环就是为了保证我的输出的这个电压值 时时刻刻跟随我的目标的电压值 就是固定死的一个恒定的电压值 那这样我的双环就建立起来了 那细化到这个更深的细节电流 那我们可以看到基本上是跟上面一样的 这个Ci基本上就是我们的Gi 然后这个current system实际上就是说的模型 那剩下就是采样通道的一些 一些比例 那我们可以注意到这里比上面那个图多增加了一块 那就是我们这里称之为Dc的这地方那这里其实是我们的前馈 它主要解决的问题呢就是我过零点电流畸变的问题 那我们从这个闭环控制回路上我们可以知道 其实就是我一个正旋的参考和一个正旋的 这里是正旋参考 正旋的反馈进行比较然后利用这个error通过一个矫正器 可以是2P2C 也可以是PI 也可以是P 这类的这种矫正器输出一个duty 那我们看假如在过零点的时候那我们的reference基本是零 那实际反馈基本也是零 那这个时候我的输出的这个duty基本上是接近零的 所以是几乎没有duty的那在这种情况下 没有duty的情况下输入电压又非常小的情况下 那我这个时候的电流就会非常小 甚至几乎就是零 那我们一般就可以 就可能会在这个波形上看到它在过零点的时候会有一个平的台阶 那这个台阶会严重地影响我们最终输出的PHD 为了解决这个问题呢 我们引入了一个前馈那这个这个前馈的计算方式 就是由我们之前讲到的这个 稳态的这个输入电压和输出电压的一个关系 就计算出来了 实际上就是duty和输入电压输出电压的关系 那我们这里的M1Volt实际上就是输入电压Vin IqBusVoltRef 那实际上这个就是代表我的这个Vout 那用VinVout的关系去解这个duty 实际上它就是 一个由稳态关系求出来的一个代数值 那因为这个Vin是个正旋的 所以这个duty实际上是按照这个关系算出来的一个跟正旋相反的一个趋势 在过零点的时候我这个前馈输出的值是最大的 随着到峰值它是会逐渐下降的 相当一个抛物线的一个波形加到这个前馈里面 那这样会大大的改善我过零点的波形 让我实际空出来的这个电流波形完全是接近正旋 那这是一个改善这个电流波形正旋度的一种方式 当然还有其他一些方式可以帮助我们去 改善过零点的这个正旋度 好 那前面呢 跟大家介绍了如何去建立一个PFC控制环路 同时呢加上我们更早之前介绍的这个无传感电机控制 那我们两个控制算法都简单的给大家做了介绍 那如何把这这两个算法共同集成到同一颗C2000 MCU 让这两个算法协同工作 那尤其是我们之前提到我们PFC控制环路呢 大概是有40k左右的这个飘轮开关频率 电机控制呢传统上讲呢一般在5到10k 有一些这种速度不是很高的电机呢就是尽量让这个频率低 以减少我们的损耗 减少我们的这个功率管的开关损耗 所以我们以一个例子 就是我们把这个PFC频率定在40k赫兹 然后把我们的电机控制频率定在5k赫兹 那如果是这样的话 在数字控制领域呢 基本上是我产生一个plam的时候我就要做一次采样 做一次运算 所以这个是同步的 那我们这张图给大家展示呢 就是C2000内部的两个中断的实际的一个配合 那么看到蓝色的这个三角形 就是我们这个电机控制的一个PWM的一个时机 那它产生一个周期的时候 里面包含了8个红色的PFC的这个周期 因为正好是这个它的8倍 那我们知道 如果是我们把这个中断算法的这个事件产生 同时都安排在这个过零的时候 就是我的电机的中断和PFC的中断都是在这个位置的 就会产生中断冲突 当然C2000会有一个中断优先级的问题 那会先执行一个高运行级的 那这取决于我们是用电机控制的中断源和PFC中断源 是选哪个C2000里面的中断源 这些中断源会有一定优先级的安排 但无论选哪个 先执行的那个先算完 后执行的那个等这个先执行的算完了之后 再拿到CPU资源再继续运算 这样的话 那我们认为的就是当前采样 运算当前的duty的话 它就有一个不可控的一个时间延迟 所以一般地在C2000的这种控制系统 如果有一个以上的两个或者三个这种中断的话 我们在中断源的安排上尽量的是让它们产生错峰 就是避开相互的这个重叠 那在这个PFC算法中呢 我们PWM是40k的 那我们的实际计算呢是可以低于这个40k的 那我们发波是按40k的只是两个周期的这个plam用同一个值 这里呢 我们是两次plam周期 去进入一个ISR去采样去算一下这个duty的更新 那所以我们看到这些点 就是它产生中断的这些点 尽量地不要去和这个电机的这些中断源的点去重合 那细化到每一个中断 它整个的发生过程 我们以电机为例 首先第一个我们用一个事件去触发adc 那这个事件触发adc以及adc在这段时间开始采样 以及到采样结束 那这段时间我们的CPU是不去控制adc的 就是adc硬件机制去完成采样 那这段时间CPU可以运算其他的后台程序 那当adc采样结束之后我们用adc采样结束的 结束事件就是end of conversion EOC事件 去作为我们的中断源 那这个事件发生之后我们才会进入adc 在adc中直接进入中断 在中断中直接去读adc的结果 然后再用我们的环路进行运算 那假设我整个环路运算用了这么长的时间 到这儿的话我的整个电机算法的这个计算结束 那这个恰好是在我的PFC中呢产生之前结束的 所以它们不会产生任何的重叠和相互影响 两个这个算法非常这个均匀地分配 不会相互打断也不会有这个优先级的问题 那这个 那如果能够实现这种效果 那整个这个中断和CPU资源的安排就是非常合理的 当然会有一些这种特殊情况产生 比如说我的这个电机运算算法非常复杂 那我在这个整个开始运算到结束的时候用的时间非常长 那它就会覆盖到我这个PFC中断产生就是说在PFC中断产生的时刻 我的电机中断运算还没有完成 那这种情况下 因为C2000的这个中断优先级的概念 并不是像很多的这种PC级的这种中断优先的概念 那它自动地 如果是PC的话它可能自动会打断一个中断 C2000的这种中断优先级的安排就是 只是在我们之前讲到它两个中断源同时发生的时候 它会让中断优先级去响应 但一旦一个中断先拿到CPU资源CPU在运算的时候 如果你不做软件的处理这个中断是打不断这个电机的中断的 所以只有等当前电机中断的这个算法先执行完了之后 PFC的这个算法才会被执行 所以这个的中断会被推到后面 就是整个这个中断会向后推一段时间 而且这段时间是不确定 那整个PFC控制有可能在这个周期就会受影响 由于引入了一个不确定的这个延时 我们知道数字控制系统采样延时和计算延时的影响是非常大的 所以这个就可能会对系统产生问题 那我们在这个 软件中我们可以对这个中断进行一些优化和配置 我们期望得到的效果因为我们的这个电机的中断频率很低 所以我们期望的效果就是在电机运算 如果电机没有算完PFC中断就来了 我们希望PFC中断能够打断电机的这个算法 先把PFC中断的这个运算算完 然后再继续的这个运算电机算法 从而实现像下图所示的这种 中断的这个资源的分配 那这一段的时间正好是它们产生冲突的这段时间 那我们把它放大 就是在这一时刻我PFC的这个adc开始采样 那我们通过刚才的这个讲解大家知道这段 就是从电机采样到它采样结束这段实际上是不需要CPU资源的 电机控制算法可以继续的运算电机算法 当这个PFC采样结束 PFC的这个ad产生了一个end of conversion的一个事件的时候 PFC就要进入PFC中断 那这个时候我们希望PFC能够拿到CPU资源 那就是这段时间我们变成红色的PFC运算的时间 直到PFC运算结束退出 然后我再切换成电机算法再变成蓝色 电机继续运算直到结束 那希望得到一个这个效果 但是这种实现是不能自动执行自动实现的 是需要我们的软件的这个软件的支持的 那下面这个给大家列出来了就是我们为了实现这种 我们叫做C2000的中断嵌套 而加入的这段代码 那其实主要是在这个电机的中断里面 我们如果是要允许一个中断 被其他中断打断的话 我们需要再进中断的最开始去把一些中断源释放 这里释放的就是我们这个PFC所对应的中断源 那这个如果您选择的是其他中断源那这面的这个第几组或者是这些值 您可能根据这个中断源去将它改变 然后再出中断时候的处理也是和正常的有所不同的 PFC中断的处理呢 前面都是你的运算代码 那最终是一个conknowledge和clear那这个都是标准动作 这没有任何不同 所以PFC来说它就是一个 就是正常处理的 这个C2000的中断处理 那对于这个电机来说 我需要在进入中断的一开始就需要把这些值进行一定相应的处理 这样才能保证我的PFC可以打断它 那下面两张图呢是我们就是实际操作中 去实现中断嵌套的两个波形图 那这个黄颜色呢 是我们在这个电机中断里面放的一个L 进入中断的时候把这个L拉低出中断的时候把L拉高 对于这个红色的或者紫色的这个PFC的一样 进入中断的时候我会把这个它拉低出中断的时候把拉高 那从第一张图上我们看呢 它就是一个不允许PFC中断打断电机中断的这种方式 就是我们没做这种软件处理没做嵌套处理的时候 我们看到电机我们先关注一下这个红色的这个频率和周期 之前它的时间间隔 那这里明显时间间隔变大这里又变小 就是相当于这个频率不稳定了 那原因就是因为这个时刻电机算法一直占着CPU并没有算完 只有电机算完了之后PFC的这个才会进入中断打断 再继续运算 那后面这张图呢 就是我们实现了中断嵌套的这种方式 我们可以看到PFC的中断的这个频率非常的稳定 那在这个时刻 就是典型的是时刻 其实是我的这个电机控制算法并没有算完 那我允许了一个PFC中断进入中断服务程序去运算PFC算法 就是它打断了电机控制的这个算法 那上面给大家介绍呢 就是其实是在PFC电机控制系统 容易遇到的一个算法或者是中断冲突的一个问题 那给大家提供了一个这个解决的办法 那这个解决的办法在我们的德eSupport的这个论坛上 也有相关的这个解释 大家可以关注一下我们的德eSupport的这个论坛 有一些这个我们内部的一些 您使用中的问题可以在上面提问题 我们会及时给您回复 另外呢就是给大家介绍我们一个C2000 有一些这种免费的open source提供给大家 那包括我们的ControlSUITE在这ControlSUITE 里面呢 我们有非常多的这个TI提供的EUM板的 这种从原理图泵表geber file 完全都是免费的还有几个非常多的这种参考代码 都是完全源码公开的 那这里面着重提一下的就是这个PowerSUITE 它是一个专门针对数字电源的开发设计的一个便捷的工具 里面当然包含很多源码但最重要的是 但最重要的是它有一个图形化的界面 可以供大家去用图形化的方式 去配置你的plum输出端口ad以及ad采样的比列等等等等 就这些硬件的信息可以通过图像化界面去配置 同时它会自动的帮您生成这个控制环路的控制参数 当然您要告诉它这个电感电容啊这些值基本的信息 那我们目前支持几种这个比较简单这种拓扑结构 只要是我们支持的拓扑结构呢您都可以用图形化界面去配置 同时让它去自动生成代码 整个开发过程中呢是不用您自己手写代码 那这些这个软件的下载地址就在TI的官网都是免费可以下的 另外一个就是MotorWare那这个MotorWare呢 主要是包含我们的instaSPIN FOC和instaSPIN motion 是为了instaSPIN这个算法专门开发的 那在这个里面呢 除了每个工程里面会包含非常多的 这个不同的这个设置的历程 它每个历程里面有不同的特点 当然最核心的还是我们的FAST的估算器 那在这个FAST的估算器的边缘 或者是周边我们设计了很多 这种工业界经常会使用到的一些功能 比如说 这个低速力矩补偿 那这个在单转子压缩机的应用上是大家都很需要的 那这个我们的力矩补偿 是一个基于二次线性迭代的 一种自适应的估计力矩曲线的一种算法 和自适用地去补偿 所以它是一个自动机制并不像传统的查表的力矩补偿 然后还有就是说这个我们的IPD加HFI 那已经集成到我们的instaSPIN里面了 那我们这个instaSPIN的MotorWare里面也可以下到 这个高频注入算法和instaSPIN配合的这种库 好 谢谢大家 希望大家继续关注TI的相关产品
课程介绍 共计4课时,1小时3分49秒

带有PFC的TI无传感电机驱动系统算法设计

TI 电机驱动 PFC 无传感 系统算法

单芯片实现无传感电机控制PFC控制的实现方法及相关注意事项
展开

讲师

讲师: Igor An

拥有自动化专业硕士学位及法国高等电力工程师学位,主要致力于数字电源及电机控制算法设计、仿真及开发。具有UPS行业及电动汽车电机控制相关领域产品开发经验,对电力电子系统数学建模,控制环路设计及电机无传感控制算法方面有着丰富的项目经验。

  • 相关产品
  • 样品申请
  • EVM购买
    http://www.ti.com.cn/lsds/ti_zh/microcontrollers-16-bit-32-bit/c2000-performance/real-time-control/overview.page
  • 文档下载
  • 软件/工具
  • TI Design
    http://www.ti.com.cn/lsds/ti_zh/microcontrollers-16-bit-32-bit/c2000-performance/real-time-control/technical-documents.page
    http://www.ti.com.cn/lsds/ti_zh/microcontrollers-16-bit-32-bit/c2000-performance/real-time-control/tools-software.page
    http://www.ti.com/tool/tidm-1000
分享到X
微博
QQ
QQ空间
微信

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新文章 手机版

站点相关: EEWORLD首页 EE大学堂 论坛 下载中心 Datasheet 活动专区 博客

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved