stm32pid算法控制电机转速_伺服电机控制转速与干扰防御措施

伺服电机(servomotor)是指在伺服系统中控制机械元件运转的发动机,是一种补助马达间接变速装置。伺服电机可使控制速度,位置精度非常准确,可以将电压信号转化为转矩和转速以驱动控制对象。伺服电机转子转速受输入信号控制,并能快速反应。

6bec55e29b0dc80b79501607ed3b4315.png

在自动控制系统中,用作执行元件,且具有机电时间常数小、线性度高、始动电压等特性,可把所收到的电信号转换成电动机轴上的角位移或角速度输出。分为直流和交流伺服电动机两大类,其主要特点是,当信号电压为零时无自转现象,转速随着转矩的增加而匀速下降。

伺服电机作为自动化工厂的动力肌肉,在工控设计与维护当中是无法避免的,那么今天就伺服的转速控制与抗干扰措施进行一下总结学习。

常用的伺服电机分很多种,选型也不是一件简单的事,每一种伺服都熟练,对于我们的学习是有非常大压力的,只能采取的措施是,选用自己平时工作中能遇到最多的型号来学习,顺便了解市场上使用比较多的几种型号品牌。伺服电机的转速从一千,一千五,三千不同,我们按使用最多的3000RPM交流伺服来代表。

在实际使用当中,选择了一台或者正在使用的一台伺服是3000RPM,需要的转速是0-3000变速,那么可以通过哪些手段来改变当前伺服转速。

伺服速度的调整需要看是使用什么方式来控制,以及控制方式的选择,是使用脉冲控制转速,模拟量控制转速还是直接驱动器内部设定控制调整速度,对应的方式也是不一样的。

对应三种不同的控制方式来总结一下速度改变:

1 转矩控制,转速是自由的(随负载变)

转矩控制是平时使用比较多的一种控制方式,通过外部模拟量或直接地址赋值来设定输出转矩的大小,那么对应的速度我们是不一定的,因为设备老化摩擦系数的变化,负载的变化,都会影响到速度的输出,这种使用情况下我们基本不会需要调整速度,因为是自动调节,我们需要的是系统的稳定度,持续长时间的转矩稳定。

可以通过即时的改变模拟量的设定来改变设定的力矩大小,也可通过通讯方式改变对应的地址的数值来实现。应用主要在对材质的受力有严格要求的缠绕和放卷的装置中,例如绕线装置或拉光纤设备,使用伺服的目的是防止缠绕物料的变化改变受力。

2 位置控制,精准定位,转速与扭矩均可严格控制

位置控制模式一般是通过外部输入的脉冲的频率来确定转动速度的大小,通过脉冲的个数来确定转动的角度,也有些伺服可以通过通讯方式直接对速度和位移进行赋值。

0f69ae67c5fa30112259033a4c17e4b1.png

位置模式可以对速度和位置都有很严格的控制,所以一般应用于定位装置。应用领域如数控机床、印刷机械等等。

在使用当中需要了解PLC或者其他发送脉冲额定频率是多少?20KHz,100KHz,200KHz,实际需要移动的距离,对应伺服选定的脉冲当量,就可以计算出伺服移动到指定位置的上限运行速度和时间。

伺服上线速度是必须计算出来的,只有选择合适的伺服型号才能满足现场的使用要求。

伺服上线运行速度=指令脉冲额定频率×伺服上限速度

伺服控制器一般带有编码器,并可接收编码器接收反馈脉冲,在速度环上设定编码器反馈脉冲频率,

设定编码器反馈脉冲频率=编码器周反馈脉冲数×伺服电机设定速度(r/s)

又因为指令脉冲频率=编码器反馈脉冲频率/电子齿轮比,

所以也可以设定“指令脉冲频率”,来设定伺服电机速度。

e6efa5fa918d207189e0b63e718a856a.png

3、速度模式,转矩是自由的(随负载变)

通过模拟量的输入或脉冲的频率都可以进行转动速度的控制,在有上位控制装置的外环PID控制时速度模式也可以进行定位,但必须把电机的位置信号或直接负载的位置信号给上位反馈以做运算用。

速度模式相对位置模式相对应,位置信号存在误差,位置模式的信号由终端负载检测装置提供,减少中间传动误差,相对增加了整个系统的定位精度。

速度控制模式主要采用的是0-10电压信号来控制电机转速,模拟量幅值的大小决定了给定速度的大小,正负决定电机应关系取决于速度指令增益,在负载惯量大的场合使用速度模式,需要设定速度环增益,让系统响应更迅速。调整时需要兼顾设备的振动,不能因为响应速度而产生系统振动。

使用速度控制时,还需注意加减速的设定,如果没有闭环控制时,需要通过零钳位或比例控制使得电机完全停止。用上位机作位置闭环时,模拟量不能自动调零。

通过控制系统给伺服驱动器发送+/-10V的模拟电压指令控制速度,其优点是伺服响应快,但缺点是对现场干扰较敏感,调试稍复杂。速度控制的应用场合相当广:需要快速响座的连续调速系统;由上位闭环的定位系统;需要多段速度进行快速切换的系统。

61a7bbc920f5766165b7db737e734fb3.png

在伺服系统的使用和调试过程中,会不时发生各种意外的干扰,特别是对于发送脉冲的伺服电机的应用。下面将从几个方面对干扰的类型和产生方式进行分析,以达到有针对性的抗干扰目的,希望大家共同学习和研究。

1、来自电源的干扰

现场使用条件会有各种限制,通常会遇到很多复杂情形,需要做到习惯性避免,把问题原因尽可能的规避。

很多情况下,我们会通过增加稳压器,隔离变压器等设备,给旋转编码器的供电模块和运动控制器加滤波器,驱动器改接DC电抗器, 驱动器位置低通滤波时间和载波率参数更改,减少电源引入引起的干扰,避免伺服控制系统故障。

伺服系统动力线应单独走线槽,缩短驱动器与电机动力线距离等等手段,避免干扰控制线,引起驱动器故障。

2、来自接地系统混乱的干扰

接地是提高电子设备抗干扰的有效手段,能抑制设备向外发出干扰,也避免受外部干扰影响,但是错误的接地反而会引入严重的干扰信号,使系统无法正常工作。控制系统的地线一般包括系统地、屏蔽地、交流地和保护地等。

如果接地系统混乱,对伺服系统的干扰主要是各个接地点电位分布不均,电缆屏蔽段两端,接地线,大地,其他设备接地点等不同接地点间存在电位差,引起地环路电流,影响系统正常工作。

解决此类干扰的关键就在于分清接地方式,为系统提供良好的接地性能。

伺服做好的接地线注意环境电磁兼容,对高频电磁波、射频装置等加以屏蔽;电源噪声干扰源要加以抑制、剔除,比如同一个电源变压器上或者配电母线上不要有诸如高频,中频,大功率的整流和逆变用电装置等......

介绍一个非常规接地处理,因为配电线路不可避免的存在大干扰源,驱动器单独安装在柜子里,安装板使用非金属板,把与伺服驱动器有关的地线都悬浮,其他的测量系统可靠接地,这样可能要好一点。

3、来自系统内部的干扰

主要由系统内部元器件及电路间的相互电磁辐射产生,如逻辑电路相互辐射、模拟地与逻辑地的相互影响及元器件间的相互不匹配使用等。

023d866329a6183739f570f8a0fc6145.png

信号线及控制线应选用屏蔽线,这样对防止干扰有利。

当线路较长时,例如距离超过100 m,导线截面应放大些。

信号线及控制线最好穿管放置,避免与动力线相互干扰。

传输信号以选用电流信号为主,电流信号的衰减与抗干扰相对较好。实际应用中传感器输出多是电压信号,可以通过变换器转换。

对模拟弱电路的直流电源进行滤波,可以加两个0.01uF(630V)电容,一端接在电源正负极上,另一端接到机壳上再和大地相连。很有效果。

伺服发出吱吱声时,输出高频谐波干扰,可以在伺服驱动母线电源的P、N端分别接个0.1u/630v的CBB电容到机壳上试下。

板卡端控制线的屏蔽层接板卡的0V,驱动器端不接,只需将屏蔽层拨出一段,捻成一股暴露在外面。使用电磁EMI滤波器,控制线上焊抗干扰电阻,或者电机动力线上接磁环。

ea4ac69e8a94f511332877cd535498b1.png

实际现场的工况条件要复杂的多,只能是具体问题具体分析,但是最终都会有一个圆满的解法,只不过是过程经历不同罢了!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: STM32控制闭环伺服电机代码是一种实现电机控制自动化的嵌入式代码。该代码基于STM32芯片和适当的电机控制器,使用PWM信号生成器输出控制信号,实现闭环控制。 首先,控制代码需要设置一组输入输出口,其中采用编码器或霍尔传感器给出反馈量。使用STM32的定时器可以实现高精度的PWM脉冲,通常采用PID算法对电机进行控制,以达到期望效果。代码中要实现最基本的功能:读取电机速度,维护PID算法参数,输出PWM脉冲和限制最大外环控制量等。 在代码实现过程中,需要注意几个问题: 第一,电机的其它参数需要进行校准,以获取最佳的PID控制效果。例如,过大或过小的极数可能导致电机速度不稳定。 第二,最好采用硬件定时器和DMA等高速读取传感器数据的方式,以提高代码的实时性和反应速度。 第三,为了兼容不同品牌的电机控制器,应该遵循一些通用规范,例如:同样的PWM脉冲需要产生相同的电机速度和方向。 一旦完成了控制代码的开发,我们将其编译为二进制格式并导入到STM32芯片中,就可以实现闭环伺服电机控制了。这种控制方式在自动化生产过程中有广泛的应用,可以有效地提高自动化生产的质量和效率。 ### 回答2: STM32控制闭环伺服电机的代码需要考虑伺服电机控制原理以及STM32的硬件资源。首先,伺服电机控制原理是通过编码器等反馈装置获取电机转速、位置等信息,与期望值进行比较后,通过PID控制算法输出电机驱动信号,控制电机在设定的位置、速度或者力矩下工作。 在STM32硬件资源的使用方面,需要利用定时器、IO口、ADC等模块对电机控制进行实现。首先,利用定时器精确计算电机转速、位置等参数,然后通过IO口的高低电平变化控制电机正、反转,实现位置调节和速度调节。ADC可以用来获取电机工作过程中的实时电流和电压信息,用于实现电机的力矩控制。 基于以上思路,STM32控制闭环伺服电机的代码实现包括以下步骤: 1. 配置定时器模块,设置采样周期和精度 2. 配置IO口模块,控制正、反转和电机通电 3. 配置ADC模块,实时检测电机电流和电压 4. 实现PID控制算法,计算电机驱动信号 5. 实现开环和闭环控制模式的切换 6. 确定电机初始位置、速度和期望值,并通过编码器等反馈装置实时获取电机实际位置、速度信息 7. 不断比较实际值和期望值,调整PID参数,驱动电机实现闭环控制 总之,STM32控制闭环伺服电机的代码需要综合考虑机械结构、电气控制和硬件资源等因素,实现稳定的位置、速度和力矩控制,从而实现精确的工作效果。 ### 回答3: stm32控制闭环伺服电机代码需要分为两个部分:控制算法和驱动代码。控制算法应该包括位置控制、速度控制、电流控制等,并根据控制目标进行相应的算法设计。驱动代码则需要实现控制算法并将控制信号送入电机驱动器以驱动电机。 对于位置控制,可以通过编码器获取电机的位置信息,并将期望位置与实际位置偏差做为反馈信号输入控制算法中,然后通过控制信号调整电机运动以达到期望位置。 对于速度控制,可以通过编码器获取电机的速度信息,并将期望速度与实际速度偏差作为反馈信号输入控制算法中,再通过控制信号调整电机速度以达到期望速度。 电流控制则需要根据电机的电感和电阻特性计算出电机所需电流,并通过PWM信号输出对控制信号进行调整,进而调整电机电流大小。 总之,stm32控制闭环伺服电机代码设计需要对电机驱动原理有深入理解,并分别根据不同的控制目标进行相应的算法设计与实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值