基于二阶自抗扰控制器的双惯量伺服系统机械谐振抑制Matlab/Simulink仿真模型
伺服系统基于二阶自抗扰控制器的双惯量伺服系统机械谐振抑制matlab/Simulink仿真(加入了电流环 PI 、自抗扰控制器和观测器参数整定) 如果需要一阶自抗扰控制器进行速度控制,请联系我,也有速度控制 1.模型简介 模型为基于二阶自抗扰控制器的双惯量伺服系统机械谐振抑制仿真,采用Matlab simulink 搭建,支持各个版本。 仿真模型由simscape 库模型搭建,模型内主要包含DC直流电压源、三相逆变器、永磁同步电机、采样模块、SVPWM、Clark、Park、Ipark、三角波发生器、速度环、电流环等模块,其中,SVPWM、Clark、Park、Ipark、三角波发生器适用模块搭建。 位置环和转速环合并成一环,采用二阶自抗扰控制器,控制器参数以及观测器参数已经进行整定, 扩展状态观测器采用Matlab funtion编写,其与C语言编程较为接近,容易进行实物移植。 电流环使用 PI 控制器,参数已整定。 2.算法简介 实际工程中,由于传动环节机械间隙和柔性的影响,机械谐振现象经常会发生,导致伺服系统运行过程中会产生噪声,更严重时容易损坏设备。 谐振抑制一直为伺服控制算法中最核心的算法之一。 本仿真适合理论分析和仿真验证,便于理解机械谐振原理、自抗扰控制原理以及谐振抑制原理。 自抗扰控制器的快速性和抗扰性能较好,其待整定参数少,且物理意义明确,比较容易调整。 模型均采用离散化仿真,合理设计了采样时间和仿真步长,加入了转速采集滤波模块,其效果更接近实际数字控制系统。 3.仿真效果 1为整体模型 2为电流、转矩、转速和位置波形展示 3为位置跟踪波形展示 4为双惯量负载端速度和电机速度差值波形 5为 4的差值波形细节图 6为附带资料以及笔记,其中有自抗扰控制控制器参数整定笔记和双惯量模型建立笔记等 4. 可提供模型内相关算法的参考文献,避免大量阅读文献浪费时间。 附带有关双惯量模型和振动抑制的大量资料 可针对模型内的相关技术问题进行,并给出指导意见。 【注】 模型已搭建完毕,原则上不会做任何修改。
双惯量系统的机械谐振就像吉他琴弦突然被拨动时的余震——你以为电机轴老老实实转着呢,负载端却给你玩起了"抖音"。搞过伺服系统的工程师都懂,这玩意儿轻则让设备鬼叫,重则直接给机械结构整散架。这次咱们用Matlab/Simulink搭的这套仿真模型,算是把自抗扰控制(ADRC)玩出了新花样。
模型的心脏是个永磁同步电机,但别被标准的三闭环结构骗了。电流环老老实实用PI镇场子,参数已经调得跟熨斗似的服帖。重点在速度/位置环合体成的这个二阶ADRC控制器,内部嵌着个用Matlab Function写的扩展状态观测器。这观测器的代码写得相当硬核:
function [z1,z2,z3] = ESO(y, u, h, beta1,beta2,beta3) persistent z_hat1 z_hat2 z_hat3 if isempty(z_hat1) z_hat1 = 0; z_hat2 = 0; z_hat3 = 0; end e = y - z_hat1; z_hat1 = z_hat1 + h*(z_hat2 + beta1*e); z_hat2 = z_hat2 + h*(z_hat3 + beta2*e + 1.02*u); z_hat3 = z_hat3 + h*(beta3*e); z1 = z_hat1; z2 = z_hat2; z3 = z_hat3;这段代码猛一看跟C语言似的,实际上是把状态观测器离散化了。beta系数的排列组合直接决定观测器的跟踪速度,调参时记住一个诀窍:beta1大约取采样频率的3倍,beta2取平方关系,beta3取立方。比如1kHz采样时,beta三兄弟可以设成3000、3e6、1e9这种量级。
仿真结果里最带劲的是负载端和电机端的转速差(图4)。没ADRC的时候这差值能跳成心电图,加上观测器后立马老实得跟被门夹过的核桃似的。位置跟踪曲线更绝,设定值跳变时响应快得跟猎豹似的,超调却像被按在水里的皮球——刚冒头就被压下去。
伺服系统基于二阶自抗扰控制器的双惯量伺服系统机械谐振抑制matlab/Simulink仿真(加入了电流环 PI 、自抗扰控制器和观测器参数整定) 如果需要一阶自抗扰控制器进行速度控制,请联系我,也有速度控制 1.模型简介 模型为基于二阶自抗扰控制器的双惯量伺服系统机械谐振抑制仿真,采用Matlab simulink 搭建,支持各个版本。 仿真模型由simscape 库模型搭建,模型内主要包含DC直流电压源、三相逆变器、永磁同步电机、采样模块、SVPWM、Clark、Park、Ipark、三角波发生器、速度环、电流环等模块,其中,SVPWM、Clark、Park、Ipark、三角波发生器适用模块搭建。 位置环和转速环合并成一环,采用二阶自抗扰控制器,控制器参数以及观测器参数已经进行整定, 扩展状态观测器采用Matlab funtion编写,其与C语言编程较为接近,容易进行实物移植。 电流环使用 PI 控制器,参数已整定。 2.算法简介 实际工程中,由于传动环节机械间隙和柔性的影响,机械谐振现象经常会发生,导致伺服系统运行过程中会产生噪声,更严重时容易损坏设备。 谐振抑制一直为伺服控制算法中最核心的算法之一。 本仿真适合理论分析和仿真验证,便于理解机械谐振原理、自抗扰控制原理以及谐振抑制原理。 自抗扰控制器的快速性和抗扰性能较好,其待整定参数少,且物理意义明确,比较容易调整。 模型均采用离散化仿真,合理设计了采样时间和仿真步长,加入了转速采集滤波模块,其效果更接近实际数字控制系统。 3.仿真效果 1为整体模型 2为电流、转矩、转速和位置波形展示 3为位置跟踪波形展示 4为双惯量负载端速度和电机速度差值波形 5为 4的差值波形细节图 6为附带资料以及笔记,其中有自抗扰控制控制器参数整定笔记和双惯量模型建立笔记等 4. 可提供模型内相关算法的参考文献,避免大量阅读文献浪费时间。 附带有关双惯量模型和振动抑制的大量资料 可针对模型内的相关技术问题进行,并给出指导意见。 【注】 模型已搭建完毕,原则上不会做任何修改。
有个骚操作是在速度测量后加了个二阶滤波器,参数设成截止频率500Hz,阻尼比0.7。这可不是随便凑数的,实测发现这个组合既能滤掉高频噪声,又不会让相位滞后拖累系统稳定性。要是手贱把截止频率提到1kHz,立马能看到转速差波形开始鬼畜。
双惯量模型的刚度系数设定是门艺术,太硬了谐振频率高得离谱,太软了系统直接变面条。建议先按实际机械结构的参数换算,再在±20%范围内微调。比如某工业机械臂的刚度典型值在1e4 N·m/rad量级,仿真时就先设个8000试试水。
最后说个血泪教训:仿真步长千万别设成auto!最好是控制周期的整数倍,比如20kHz的PWM周期对应50us步长。有次偷懒用变步长求解器,结果观测器输出抖得跟帕金森似的,后来改成定步长ODE4立马药到病除。
这套模型最大的价值不是跑出多漂亮的波形,而是给谐振抑制提供了个数字化练兵场。毕竟在真机上调参就像拆炸弹,仿真里却能随便浪——把刚度参数砍半看系统怎么崩,故意把观测器带宽设低看扰动怎么虐控制器,玩着玩着就悟了ADRC的抗扰精髓。需要更野的玩法?试试把负载惯量改成时变的,那酸爽...
