2026/5/18 10:10:54
网站建设
项目流程
网站建设 百度文库,网站构建的基本流程,自己开发app,什么是网络营销型网站基于扰动观测器的伺服系统摩擦补偿Matlab仿真
1.模型简介模型为基于扰动观测器的摩擦补偿仿真#xff0c;仿真基于永磁同步电机速度、电流双闭环控制结构开发#xff0c;双环均采用PI控制#xff0c;PI参数已经调好。
仿真中主要包含抗饱和PI控制器、摩擦力模型、扰动观测器…基于扰动观测器的伺服系统摩擦补偿Matlab仿真 1.模型简介 模型为基于扰动观测器的摩擦补偿仿真仿真基于永磁同步电机速度、电流双闭环控制结构开发双环均采用PI控制PI参数已经调好。 仿真中主要包含抗饱和PI控制器、摩擦力模型、扰动观测器、坐标变换、SVPWM、逆变器和永磁同步电机模块等其中抗饱和PI控制器、摩擦力模型、扰动观测器、坐标变换、SVPWM模块均采用matlab function编程实现其与C语言编程较为相似容易进行实物移植。 模型均采用离散化仿真其效果更接近实际数字控制系统。 2.算法简介 伺服系统中由于摩擦力的存在会降低系统响应因此对摩擦力进行补偿是有必要的。 本仿真通过增加LuGre摩擦力模型模拟摩擦力对系统性能的影响。 通过扰动观测器对摩擦力进行观测并进行补偿降低摩擦力对系统性能的影响。 3.仿真效果 ① 加入摩擦力速度给定为正弦波模拟速度反复过零的情况。 由于摩擦力的存在实际速度过零时不能很好的跟踪速度给定信号如图1所示0.6s前没有使用扰动观测器速度过零时速度跟踪误差很大。 0.6s后开启扰动观测器速度跟踪误差明显减小。 ② 图2为电流环响应波形可见电流环跟踪很好。 ③ 图3为LuGre摩擦力模型输出的摩擦转矩波形和扰动观测器输出的扰动转矩观测波形。 其中0.6s后才开启扰动观测器。 可见观测的扰动转矩与摩擦转矩基本重合。 4. 可提供模型内相关算法的参考文献避免大 量阅读文献浪费时间。 【注】 模型已搭建完毕原则上不会做任何修改。摩擦这玩意儿在伺服系统里就像鞋底沾了口香糖尤其速度过零时能让跟踪性能直接劈叉。咱今天要聊的这个仿真模型直接在Matlab里把LuGre摩擦模型和扰动观测器给玩明白了关键代码还都是拿Matlab Function写的移植起来跟C语言差不多顺手。先看抗饱和PI控制器的核心代码这货可比普通PI有意思多了function u anti_sat_PI(e, Kp, Ki, Ts, u_max) persistent integral; if isempty(integral) integral 0; end % 抗饱和处理 if (integral * Ki u_max) integral u_max / Ki; elseif (integral * Ki -u_max) integral -u_max / Ki; end integral integral e * Ts; u Kp * e Ki * integral; end重点在积分项的动态限幅——这操作相当于给积分器装了弹簧缓冲器。当积分量要冲出输出限幅时直接手动把积分值按在安全区比传统的外部钳位更聪明避免了积分饱和带来的滞后效应。摩擦力的戏精表现靠LuGre模型撑场子。来看这个非线性状态方程的代码实现function tau_f LuGre(v, z0) persistent z; if isempty(z) z z0; end sigma0 1.2; % 刚度系数 sigma1 0.8; % 阻尼系数 sigma2 0.015; % 粘性摩擦系数 Ts 0.0001; % 离散化步长 % 非线性状态更新 dz v - abs(v)/(0.01 0.02*exp(-(v/0.005)^2)) * z; z z dz * Ts; tau_f sigma0*z sigma1*dz sigma2*v; end这个微分方程里的exp项处理速度非线性变化简直绝了。离散化时用了前向欧拉法虽然简单但足够应付实时系统。注意z的初始化需要给初始状态这在实际移植时得注意从传感器获取初始位置。扰动观测器才是本仿真的C位选手它的实现比想象中简单function tau_est DOB(q, tau_cmd, Ts) persistent tau_hat; if isempty(tau_hat) tau_hat 0; end g 500; % 观测器带宽 J 0.02; % 转动惯量 dtau g/J * (tau_cmd - tau_hat) - g*q; tau_hat tau_hat dtau * Ts; tau_est tau_hat; end这算法相当于给系统装了个摩擦力量体秤。带宽参数g调大了响应快但容易震荡仿真里取500是个经验值。注意这里的q其实是加速度观测值实际工程中得用加速度计或者速度差分计算。仿真结果那叫一个刺激速度过零点原本像卡了帧似的0.6秒观测器一开直接丝滑如德芙。电流环波形稳得就像老司机的方向盘最秀的是摩擦转矩估计曲线和真实值基本重合误差小到可以忽略不计。想深究算法细节的兄弟可以直接找作者要参考文献省得在知网里大海捞针。整个模型都是离散化的采样率设成10kHz和实际DSP控制完全对得上真要往实物上移植的话基本上就是把这些Matlab Function翻译成C代码的事。