三菱FX3UPLC和台达VFD-M变频器PID速度控制

三菱FX3UPLC和台达VFD-M变频器PID速度控制

首页休闲益智极限指令2更新时间:2024-09-23

我们直接使用三菱FX3U的PID指令进行控制。下面我们看一下PID指令的用法:

S1是目标值:比如目标转速40转/分钟。

S2是测量值:比如当前实时测得的转速38转/分钟。

S3是参数数据的首个寄存器地址:例如D100,那么后面D101-D128都是PID指令相关的参数数据。

D是就是实际的输出值。这个输出值是有范围的,需要通过参数S3 22(输出上限)和S3 23(输出下限)来限定。这个范围是跟模拟量输出模块的量程,或者PWM波形周期有关。比如:4DA模块输出0-10V电压,对应0-32000量程,那么S3 22就设置成32000即可,因为量程最大也就是32000,再大还是输出10V,没有实际意义。又比如:我们用PWM的占空比控制加热棒输出功率时,周期定为1000(单位:ms),那么S3 22就设置成1000,如果设的大了,PWM指令反而就不执行了。所以,根据执行器的量程来设置输出上下限才行。

下面看下S3的参数表:

采样时间:在本例中,控制对象是电机转速,它的实时性很强,目标值可以马上到达,因此为了提高准确性,采样时间要小一点。而如果是控制的温度/压力值等滞后性比较强的对象,那么采样时间可以设的长点,比如温度,加热棒加热得比较慢,反馈回来的温度变化比较滞后,所以没必要设的短,较短的时间内可能测得的实时温度值基本没变化。

动作设定:

bit0=0.正动作:它的表现是测量值和目标值越接近,输出值越往上升。如本例测速,就是要正动作,测量值离目标值远,那么输出值就要慢慢增大。

bit0=1.逆动作:它的表现跟正动作相反。测量值越接近目标值,输出值越小。例如加温控制,当温度慢慢变大,输出就要慢慢变小,这样才不会过温。

bit1和bit2.不管它,设为0

bit3.不使用,设为0

bit4.当执行自整定时,该位设置为1,当自整定结束后,它会自动范围。因此用它来对动作设定的参数重新赋值。

bit5.输出值上下限设定必须要有效,它有效了,后面的输出上下限值才能设定。

bit6=0.阶跃响应法:它在自整定的时候,是没有输出的。必须人为地提前给它一个输出值,不用太大,一半左右就够了,也就是说,让执行机构先动起来,然后自整定程序会根据运行情况或者加热情况来进行PID运算。当运行一段时间后,自整定就完成了,并且给出计算出来的P,I,D值。另外,在整定期间,PID参数一直为0。

bit6=1.极限循环法:当测量值<目标值-临界值时,以LLV输出;当测量值>目标值 临界值时,以ULV输出。当经过几个波形后,就能得到P,I,D值。同样,在整定期间,PID参数一直为0。

输入滤波常数:根据样例程序,输入70即可。

比例增益:太大会震荡严重。太小会达不到目标值。

积分时间:太大使得到达稳态的时间变长。太小使得系统超调,纠错太快了。

微分增益:自整定到时候没有它整定值。

微分时间:加入它可以抗拒外界来的干扰,使得能够达到目标值。比如,正常情况下开车,只要P和I够了,开的好好的,突然遇到上坡,那么此时按照正常调节来看,无法到达之前的速度了,因此引入了D后,可以给车再加点油,然后速度起来,克服斜坡带来的影响。

中间参数省略,一律设0,或者不管。

输出上限的设定值:4DA模块的最大量程值,或者PWM波形的周期值。

输出下限的设定值:4DA模块的最小量程值,或者0。

报警输出:根据需要设定。

PV临界值:它跟极限循环法有关。当以极限循环法自整定时,它的作用就是来控制PID的输出值什么时候用输出值上限ULV,什么时候用输出值下限LLV。当目标值-PV临界值时,用LLV输出;当目标值 PV临界值时,用ULV输出。

输出值上限ULV:它的值最大为输出上限设定值。可以根据实际情况来设定,不一定用最大值。

输出值下限LLV:它的值最小为输出下限设定值。可以根据实际情况来设定,不一定用最小值。

可以多路使用,也就是说,即可以控速,同时也可以控温

下面进入实操:我们采用FX3U-4DA模块输出0-10V来控制VFD-M变频器的频率(0-50HZ)给定。

1.台达VFD-M变频器与FX3U-4DA接线:

1.1.将FX3U-4DA的V 接到变频器的AVI,将FX3U-4DA的VI-接到变频器的GND。有条件的可以在FX3U-4DA模块的V 和VI-之间并联一个0.1-0.47uf的电容,以增加抗干扰性。

1.2.将编码器(600线)的A相和B相信号分别接入到FX3UPLC的X0和X1。

1.3.小型异步电机是3相220的,而VFD-M变频器也是输出3相220V电压,因此可以直接使用。

2.台达VFD-M的参数设置:

将P00设置为01,表示主频率输入模拟信号由模拟信号0-10V输入(AVI)

将P01设置为00,表示运转指令由数字操作器控制。也就是说,当我们开始控制之前,必须提前在操作面板上按一下RUN键,一旦有0-10V输入,变频器马上就有输出。

将P10设置为0.1,表示第一加速时间是0.1秒。设置那么低,是想让控制可以更加迅速。当然,这么做的后果就是需要加一个制动电阻,以快速释放掉母线电压。

将P11设置为0.1,表示第一减速时间是0.1秒。原因同上。

3.FX3U-4DA的参数设置:

缓冲存储区我们只需要设置#0号存储区的输出模式,以及将PID的输出值给到#4号存储区,让它输出0-10V电压即可。

其他的例如:偏置啊(就是偏移量,用来平移斜线的),增益啊(就是改变斜率),上下限啊,都可以不用设置。

另外,负载电阻值在出厂的时候是以30KΩ来调节的,一般情况下够用了,如果要精确,可以测量实际负载的阻值,然后将#51-#54的负载电阻值给更改掉。

题外话:FX3U-4AD/4DA模块买来后,最好将各个输入输出通道的偏置以及增益的数据都保存下来。这样一旦出现偏差,在调整偏置和增益无果的情况下,还可以重新将初始时的数据输入进去进行还原。

另外,FX3U支持直接用“单元号\存储区号”来直接访问存储区,例如:我现在的硬件组态是这样的:FX3UPLC FX3U-4AD模块 FX3U-4DA模块,那么4AD模块的单元号就是U0,4DA的单元号是U1。然后,4DA的#4号存储区可以用G4表示。那么连起来就是U1\G4,我们只要MOV D100 U1\G4,那么我们就可以控制4DA模块的4号通道进行输出。

4.设备实拍:

从左到右分别是FX3U,FX3U-4AD,FX3U-4DA

台达VFD-M变频器控制底下的输送带,编码器旋转一圈发出600个脉冲

5.程序:

关于如何测速,可以看我主页里的另一个视频。

这里我们用0.5s来采集速度,算法:0.5s内测得的脉冲数➗(600线✖4倍频)✖2✖60,

这里的2就是以秒为单位来计算的。

H70表示执行正动作,且采用极限循环法的自整定

PID指令里的D0实际应该用✖2后的值填入

由于PID输出值在结束后无法恢复,因此用PID控制结束条件的下降沿来将它复位

这里同时需要将4DA模块的输出值清零,否则变频器会一直运转

6.调试:

这种装置的自整定很快就结束了,不像控温那样会比较慢一点。但是这种快速自整定出来的值,都是有问题的。如果用自整定出来的PID参数来运行,会发现输送带一顿一顿的,那是因为整定出来的P值有20000多,根据实际情况来看,确实太大了,运行一会马上就到了目标速度,然后肯定过冲,过冲后又马上降低输出,所以导致输送带一顿一顿的,这就是引起了系统的震荡,因此,我将P值改为4000左右后,就不会一顿一顿了,运行平稳。最后,人为的给它施加一个压力,输出值立马就上去了,变频器的输出频率也相应的增加,而且也不会过冲很多,稳态还可以。

7.总结:自整定不是一无是处,至少可以反应出一些问题,然后我们直接根据反应出来的问题进行相应的人为的更改PID参数就可以了。

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved