干货 | 提高步进电机运行质量的电流控制方法

A双极性步进电机的基础知识

双极性步进电机包含两绕组,为了使电机运行平稳,不断的给这两个线圈加以相位差90度的正弦波,步进电机就开始转动起来。

通常,步进电机不是由模拟线性放大器驱动;而是由PWM电流调节驱动,把线性的正弦波信号转换成了离散的直线段信号。 正弦波可被分成多段,随着段数的增加,波形不断接近正弦波。 实际应用中,段数多从4到2048或更多,大多数步进驱动IC采用4到64段细分。整步驱动,每一时刻只有一个相通电,两相电流交替和电流方向切换,使得一共产生四个步进电机机械状态。半步驱动,比整步驱动方式相对复杂一些,在同一时刻,可能两个相都需要被通电,如图1所示,使电机的步进分辨率提高了一倍。细分驱动,电机转子走一步的角度将会随着细分数的增加而减小,电机转动也越来越平稳,例如把一个32段细分序列称为八分之一步驱动模式(见图1)。

图1:细分驱动的电流波形。

电流控制精度的重要性

双极性步进电机转子的位置取决于流经两个线圈绕组的电流的大小。通常,选择步进电机的主要指标为,准确的机械定位或精准的机械系统速度控制。所以绕组电流的精度控制对步进电机的平稳运行非常重要。

在机械系统中,有两个问题会导致不准确的电流控制:

1、在低速运行或用步进电机用于定位控制的情况下,每一细分段电机运行的步数错误,导致错误的定位。

2、在高速运行下,系统非线性会导致短期电机运行速度变化,使得力矩不稳,增加了电机噪声和振动。

PWM控制和电流衰减模式(Decay Mode)

大多数的步进电机驱动IC,依靠步进电机绕组的电感特性实现PWM电流调节。通过每个绕组对应的功率MOSFET组成的H桥电路,随着PWM控制开始,电源电压被加到电机绕组上,从而产生驱动电流。一旦电流达到设定值,H桥就会切换控制状态,使得输出电流衰减。 一定固定时间后,一个新的PWM周期又会开始,H桥再次产生线圈电流。

重复这一过程,使绕组电流上升和下降。通过电流采样和状态控制,可以调节控制每一段细分的峰值电流值。

在预期的峰值电流达到后,H桥驱动绕组的电流衰减控制方式有两种:

1、绕组短路(同时开通低侧或高侧的MOSFET),电流衰减慢。

2、H桥反向导通,或允许电流通过MOSFET的体二极管流通,电流衰减快。

这两种电流衰减方式称为慢衰减和快衰减(见图2)。

图2:H桥工作状态。

由于电机绕组是感性的,电流的变化率取决于施加的电压和线圈感值。要步进电机快速运行,理想的情况就是是能够控制驱动电流在很短的时间内变化。不幸的是,电机运动中会产生一个电压,其方向与外加电压相反,反抗电流发生改变的趋势,称为“反电动势”。 所以电机转速越快,此反向电动势就越大,在它作用下电机随速度的增大而相电流减小,从而导致力矩变小。 为了减轻这些问题,要么提高驱动电压,要么降低电机绕组电感。 降低电感意味着用更少的匝数绕组,就需要更高的电流来达到相同的磁场强度和扭矩。

传统峰值电流控制的问题

传统的步进电机峰值电流控制,通常只检测通过线圈的峰值电流。 当预期的峰值电流达到后,H桥就会切换导通状态,使得输出电流衰减(快衰减,慢衰减,或两者的组合),持续一定固定时间,或等一个PWM周期结束。电流衰减时,驱动IC无法检测输出电流,从而导致一些问题。

一般来说,最好是用慢衰减,可以得到更小的电流纹波,平均电流能更准确的跟踪峰值电流。 然而,随着步率增大,慢衰减不能够及时降低绕组电流,无法保证精确的电流调节。

为了防止采样到开关电流尖峰,在每个PWM周期的开始,有一个非常短的时间(blanking TIme)是不采样绕组电流的,那么此时的电流就是不受控制的。这会导致严重的电流波形畸变和电机运行的不稳定(见图3)。

图3:慢衰减模式下的电流畸变。

在正弦波达到峰值后,电流先开始衰减,然后又增加,直到H桥工作在高阻状态,电流才继续向零衰减。

为了避免这种情况,许多步进电机驱动芯片,在电流幅值增加的时候采用慢衰减模式,在电流幅值减小时使用快衰减或混合衰减(结合快衰减和慢衰减)模式。 然而,这两种衰减模式的平均电流是是完全不同的,因为快衰减模式时的电流纹波相对大很多。 结果就是,两种模式下的平均电流值相差很大,导致电机运行不平稳(见图4)。

图4:传统峰值电流控制下的波形

如图4波形所示,峰值电流后一步和前一步的电机步进不一样,会导致位置误差和瞬时速度的变化。电流过零时,因为两种衰减模式的切换,也会有同样的问题。

双向电流采样

传统的步进驱动,在每个H桥下管源极和地之间接外部检测电阻,只测量PWM导通时检测电阻上的正向电压。在慢衰减模式下,电流循环通过内部MOSFET,不通过检测电阻,因此无法测量电流。在快衰减模式下,通过电阻的电流翻转,产生的是负电压。对于目前的电源IC工艺,负电压很难被简单的采样处理。

如果我们可以监控电流衰减时期的绕组电流,许多步进电机驱动的电流调节问题就能被解决。但是,如上所说通过外部检测电阻很难实现,更好的选择是尝试内部电流检测。内部电流检测允许在任何时候监测电流,如PWM导通时间,以及快衰减和慢衰减过程中。 虽然它增加了驱动IC的复杂性,但内部电流检测大大降低了系统成本,因为外部的采样电阻不需要了。 这些电阻非常大且昂贵,价格通常和驱动IC差不多!

MP6500步进驱动IC

MP6500双极性步进电机驱动芯片,集成内部电流检测,很好的取代了传统廉价的峰值电流控制双极步进电机的驱动IC。MP6500内部电路框图如图5所示。

图5:MP6500电路框图。

MP6500最大驱动电流峰值为2.5A(具体取决于封装和PCB设计);电源电压范围从4.5V至35V。 支持整步,半步,四分之一步,八分之一步驱动模式。不需要外部电流检测电阻,只需要一个接地的小型、低功耗电阻去设定绕组电流峰值。

内部电流检测依赖于精准的功率管及相关电路的匹配设计,可以保证始终准确采样绕组电流,从而提高步进电机的运行质量。

通常情况下, MP6500工作在慢衰减模式下。然而,当一个固定关断时间结束,慢衰减结束后,如果当前绕组电流仍高于预期水平,快衰减模式会被开启以用来迅速减小驱动电流到所需值。 这种混合控制模式,使得驱动电流快速下降到零,同时又保证平均电流尽量接近设定值。 当step跳变时,快衰减就被采用使得当前电流迅速被调整到零,如图6所示。

图6:MP6500的自动衰减模式(step跳变时)。

如果电源电压高,电感值低,或所需的峰值电流幅值很低,电流很有可能高于设定值。由于blanking TIme,每个PWM周期都会有一个最小导通时间,此时许多传统的步进电机驱动器无法控制绕组电流。如果发生这种情况,MP6500会不断采用快衰退模式来保证绕组电流一直不超过设定值(见图7)。

图7: MP6500的自动衰减模式(低电流情况下)。

这种自适应衰减模式与只使用慢衰减模式相比,平均电流的变化比较小。由于快速衰减模式只用来控制驱动电流低于设定值,误差比在整个PWM关断时间采用快衰减模式要小的多。

这种控制方法的优点是,对于不同的电机和电源电压,用户不需要做任何系统调整,衰减模式是完全自动调整的。 而传统的步进电机驱动,对于不同应用,必须调整衰减模式甚至PWM关断时间,以得到最好的运行质量。

使用了这种电流调节方法,MP6500可以确保整个周期的平均绕组电流都准确稳定(见图8),明显改善了电机的运行质量。

图8:MP6500输出电流波形

电机运行质量测量

步进电机的运行质量,往往很难准确的量化评估。通常,靠人的眼睛,耳朵,手来判断相对位置,噪声和振动的情况。这些方法都很难精确测量每个细分段的位置精度。一个步距角1.8°步进电机,每八分之一步对应的旋转角度为0.225°,非常小。 在电机运动时,比较容易的测试方法是时域测量, 定位误差会转化为速度的变化。速度随时间的变化可以用示波器测量出来。为了实现这些测量,测试设备需要一个高分辨率的光学编码器和与步进电机支架组装在一起的磁粉制动器。

步进电机选用的是一个用于小型工业设备或3D打印机的XY位移平台的典型电机:1.8°步距角NEMA 23步进电机,电感量为2.5mh,额定电流2.8A。

要进行运行质量测量,还需要一个频率电压转换器(Coco Research KAZ-723)去处理光电编码器的输出信号,转化为电压信号后就可以在示波器和频谱分析仪上分析处理。这个电压信号实时代表了不断更新的电机转速。

测试设备如图9,图10所示。

图9:电机试验台。

图10:kaz-723 频率电压转换器。

为了检测整个测试系统的运行和了解所用电机和测试装置的固有缺陷,在电机两个线圈上加上相位差90度的正弦波电流。两相电流和代表电机转速的电压信号,如图11所示。

频率电压转换器的输出显示电机瞬时速度的变化是周期性的,与驱动电流波形同步。这个速度变化很可能是由于电机本身的磁场和机械构造的缺陷引起的,也部分原因可能是编码器,测试机架,或驱动电流的谐波失真分量。

那么,图11就是此测试设置下此电机最理想的运行结果,虽然我们可以通过预调整驱动波形来补偿电机结构引起的问题以进一步提高运行质量。

图11:模拟电流驱动电机运行测量。

接着,在相同设置和试验条件下,用市面上通用的双极步进驱动器来驱动电机,采用传统的峰值电流控制和使用外部检测电阻器。该驱动器电流增大时采用慢衰减模式,电流减小采用混合衰减模式。

混合衰减模式的阈值设置尽量优化,使得慢衰模式工作时间尽可能长,同时当电流幅值减小到零时能一直保证跟踪所期望的理想波形。这样可以尽可能的减小PWM电流纹波,也就是尽量减小速度的变化量。

如图12所示,采用这种传统步进驱动芯片,速度的变化是模拟正弦和余弦波电流驱动的三倍。这意味着电机噪声,振动,以及定位误差都增加了。

图12:传统控制调节方案下的电机运行质量。

MPS MP6500步进驱动集成芯片,采用内部电流采样和上述的自动衰减电流调节方案,可以实现更好的电机运行质量。如图13所示,速度变化虽不是和模拟正弦和余弦波电流驱动的结果一样小,但是比传统的驱动方案要改善许多,使得电机运行更平稳安静,定位更精确。

图13:MP6500驱动的电机运行质量

高速运行

正如我们在图3中看到的,在很高的步率情况下,传统的电流控制技术不能很好控制绕组电流,有可能产生严重的电流波形畸变。随着电机的转速不断增大,反电动势会越来越大,在它作用下相电流随速度的增大而减小,且电流下降的时间也减少,从而导致力矩变小甚至失速。相对于传统方案,MP6500的改进自适应电流控制模式可以使电机运行在更高的速度。

图14为,同上测试系统下采用传统电流控制模式,电机转速不断提高的测试结果(横轴为时间,纵轴为转速)。失速发生时,速度测量结果是在8V左右,相当于在480RPM。

图14:传统控制模式的提速测试。

使用相同的设置和绕组电流,如图15所示,由于更好的自适应电流调节控制方案,MP6500可以驱动明显更高的速度。失速发生时,速度测量结果是在10V左右,相当于在600RPM。

图15:MP6500的提速测试。

结论

相对于传统的步进电机的驱动芯片,MP6500采用了先进的自适应电流控制方案,在保证总系统成本不变或更低的情况下,能明显改善步进电机的运行质量

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark Streaming 和 Flink 都是流处理框架,但在一些方面有所不同。 1. 数据处理模型 Spark Streaming 基于批处理模型,将流数据分成一批批进行处理。而 Flink 则是基于流处理模型,可以实时处理数据流。 2. 窗口处理 Spark Streaming 的窗口处理是基于时间的,即将一段时间内的数据作为一个窗口进行处理。而 Flink 的窗口处理可以基于时间和数据量,可以更加灵活地进行窗口处理。 3. 状态管理 Spark Streaming 的状态管理是基于 RDD 的,需要将状态存储在内存中。而 Flink 的状态管理是基于内存和磁盘的,可以更加灵活地管理状态。 4. 容错性 Flink 的容错性比 Spark Streaming 更加强大,可以在节点故障时快速恢复,而 Spark Streaming 则需要重新计算整个批次的数据。 总的来说,Flink 在流处理方面更加强大和灵活,而 Spark Streaming 则更适合批处理和数据仓库等场景。 ### 回答2: Spark Streaming 和 Flink 都是流处理框架,它们都支持低延迟的流处理和高吞吐量的批处理。但是,它们在处理数据流的方式和性能上有许多不同之处。下面是它们的详细比较: 1. 处理模型 Spark Streaming 采用离散化流处理模型(DPM),将长周期的数据流划分为离散化的小批量,每个批次的数据被存储在 RDD 中进行处理,因此 Spark Streaming 具有较好的容错性和可靠性。而 Flink 采用连续流处理模型(CPM),能够在其流处理过程中进行事件时间处理和状态管理,因此 Flink 更适合处理需要精确时间戳和状态管理的应用场景。 2. 数据延迟 Spark Streaming 在处理数据流时会有一定的延迟,主要是由于对数据进行缓存和离散化处理的原因。而 Flink 的数据延迟比 Spark Streaming 更低,因为 Flink 的数据处理和计算过程是实时进行的,不需要缓存和离散化处理。 3. 机器资源和负载均衡 Spark Streaming 采用了 Spark 的机器资源调度和负载均衡机制,它们之间具有相同的容错和资源管理特性。而 Flink 使用 Yarn 和 Mesos 等分布式计算框架进行机器资源调度和负载均衡,因此 Flink 在大规模集群上的性能表现更好。 4. 数据窗口处理 Spark Streaming 提供了滑动、翻转和窗口操作等灵活的数据窗口处理功能,可以使用户更好地控制数据处理的逻辑。而 Flink 也提供了滚动窗口和滑动窗口处理功能,但相对于 Spark Streaming 更加灵活,可以在事件时间和处理时间上进行窗口处理,并且支持增量聚合和全量聚合两种方式。 5. 集成生态系统 Spark Streaming 作为 Apache Spark 的一部分,可以充分利用 Spark 的分布式计算和批处理生态系统,并且支持许多不同类型的数据源,包括Kafka、Flume和HDFS等。而 Flink 提供了完整的流处理生态系统,包括流SQL查询、流机器学习和流图形处理等功能,能够灵活地适应不同的业务场景。 总之,Spark Streaming 和 Flink 都是出色的流处理框架,在不同的场景下都能够发挥出很好的性能。选择哪种框架取决于实际需求和业务场景。 ### 回答3: Spark Streaming和Flink都是流处理引擎,但它们的设计和实现方式有所不同。在下面的对比中,我们将比较这两种流处理引擎的主要特点和差异。 1. 处理模型 Spark Streaming采用离散流处理模型,即将数据按时间间隔分割成一批一批数据进行处理。这种方式可以使得Spark Streaming具有高吞吐量和低延迟,但也会导致数据处理的粒度比较粗,难以应对大量实时事件的高吞吐量。 相比之下,Flink采用连续流处理模型,即数据的处理是连续的、实时的。与Spark Streaming不同,Flink的流处理引擎能够应对各种不同的实时场景。Flink的实时流处理能力更强,因此在某些特定的场景下,它的性能可能比Spark Streaming更好。 2. 窗口计算 Spark Streaming内置了许多的窗口计算支持,如滑动窗口、滚动窗口,但支持的窗口计算的灵活性较低,只适合于一些简单的窗口计算。而Flink的窗口计算支持非常灵活,可以支持任意窗口大小或滑动跨度。 3. 数据库支持 在处理大数据时,存储和读取数据是非常重要的。Spark Streaming通常使用HDFS作为其数据存储底层的系统。而Flink支持许多不同的数据存储形式,包括HDFS,以及许多其他开源和商业的数据存储,如Kafka、Cassandra和Elasticsearch等。 4. 处理性能 Spark Streaming的性能比Flink慢一些,尤其是在特定的情况下,例如在处理高吞吐量的数据时,在某些情况下可能受制于分批处理的架构。Flink通过其流处理模型和不同的调度器和优化器来支持更高效的实时数据处理。 5. 生态系统 Spark有着庞大的生态系统,具有成熟的ML库、图处理库、SQL框架等等。而Flink的生态系统相对较小,但它正在不断地发展壮大。 6. 规模性 Spark Streaming适用于规模小且不太复杂的项目。而Flink可扩展性更好,适用于更大、更复杂的项目。Flink也可以处理无限制的数据流。 综上所述,Spark Streaming和Flink都是流处理引擎,它们有各自的优缺点。在选择使用哪一个流处理引擎时,需要根据实际业务场景和需求进行选择。如果你的业务场景较为复杂,需要处理海量数据并且需要比较灵活的窗口计算支持,那么Flink可能是更好的选择;如果你只需要简单的流处理和一些通用的窗口计算,Spark Streaming是更为简单的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值