永磁直流电动机的速度控制(二)PID参数整定的衰减曲线法

目录

1. 衰减曲线法简介

2.衰减曲线法实现PID参数整定的步骤

3.Matlab程序实现衰减曲线法的PID参数整定

1.衰减曲线法

       衰减曲线法也是工程实际中一种比较常用的PID参数整定方法,它基于闭环系统,通过观察系统过度过程响应曲线的衰减特性来确定PID控制器的参数。这种方法的基本原理是,当系统在单位阶跃输入下达到一定的衰减比时,系统的动态性能和稳态性能达到一个较好的平衡状态。

应用衰减曲线法求取PID参数的步骤:

(1)确定衰减比

       衰减比是指系统响应曲线达到第一个峰值后,下降到该峰值的某个百分比。根据系统的不同工况,选择一个合适的衰减对于一个定值控制系统通常选取衰减率为0.75或衰减比例度为4:1;对于随动系统通常选取衰减率为0.9或衰减比例度为10:1这里是对永磁直流电动机的转速(给定的特定值)进行控制,所以选取衰减比为0.75果衰减比例度为4:1。

(2)衰减特性指标

       确定衰减率后,可以通过单位阶跃响应曲线求取衰减特性指标,即衰减率和衰减周期。在这里,衰减率(R)是指系统开始震荡时最先前的相邻两个波峰,第二个波的波峰值(P2)与第一个波的波峰值(P1)之比,衰减周期(Ts)是指以上述两个波峰之间的距离(Ts=t2-t1)。注意:P1和P2指的是系统响应曲线上相邻两个同向波峰的垂直高度这两个高度是从系统的设定点或者期望输出值开始测量的

(3)计算PID参数

      连续系统的PID控制器的传递函数可以表示为:

       根据上述方程和永磁直流电动机传递函数数学模型,建立起系统的simulink仿真模型(命名为pmdcm_PID)如图1所示。

图1 用以实现衰减曲线法的仿真模型

       首先闭环反馈系统中PID控制器的参数进行设置(Ki=0,Kd=0),然后将比例增益Kp由小到大增加,每改变一次值,系统仿真运行一次,并通过示波器(Scope)观察响应曲线,直到衰减比例度4:1的曲线出现为止,记录此时波形曲线的衰减率和震荡周期。初始比例增益Kp0的设置,可以先考虑一下开环的单位阶跃响应曲线,其稳态值离设定值1相差甚远,因此要设置得比较大,设置的初值要引起较大的超调,进而引起衰减震荡。这里,设置Kp0=[100 200 300 400],用Matlab程序对Simulink模型进行仿真,得仿真结果如图2所示。观测仿真曲线,发现Kp0=400时的特性曲线最接近既定目标(衰减比例度4:1),只是略为大了一点点,当调整Kp0=377时,达到了目标,仿真结果如图3所示。

图2. 

图3. 

        比较图4和图3可知,图4的超调略有上升,震荡减轻,稳态误差大为减少,但超调量还是过高(为49%),与小于5%的设计要求相差很远,若要满足这一要求,PID的各个参数还要进一步调整。

       上述衰减曲线法整定PID参数,主要是在既定目标下(使闭环阶跃响应的震荡衰减比例度为某一特定值,例如4:1)应用经验公式达到整定PID参数的目的,比前面的“试凑法”要先进一些,但过程还是比较繁琐,同时,花费的时间也比较多。为解决这一问题,可以用Matlab代码和Simulink模型仿真“一站到位式”的实现衰减曲线法整定PID参数。运行以下Matlab代码,可以“一站到位”求得图4所示的仿真曲线。

clc
clear all
close all

load_system('pmdcm_PID');
Ra = 1;
La = 0.5;
 J = 0.01;
Bm = 0.1;
Kt = 0.01;
Ke = 0.01;

%PID 参数初值设置
Kp =300;
Ki = 0;
Kd = 0;

R=0; %衰减曲线比率限定值

%判断最初相邻两峰值之比率是否满足1:4
while(R<0.25) 
Kp=Kp+1;
simOut = sim('pmdcm_PID');
t = simOut.tout; 
y = simOut.simout(:, 1); 
figure(1)
plot(t,y,'lineWidth',1.5); 
legend('Kp=377,Ki=0,Kd=0')
xlabel('时间 (s)');
ylabel('幅值');
title('单位阶跃响应');
grid on

[Y,T] = max(y); 
SSTime= length(t);
SSOutput = y(SSTime);
[peaks, peakTime]=findpeaks(y,t);

if isempty(peaks) == 0
P1 = 100*(peaks(1)-SSOutput)/SSOutput; % 第一个波峰值
P2 = 100*(peaks(2)-SSOutput)/SSOutput; % 第二个波峰值
R = P2/P1; %计算相邻两个波峰值之比率
Ts = peakTime(2)-peakTime(1); %计算两个超调量的时间间隔值之差(Ts)
end
end
disp(['衰减率: ', num2str(R)]);
disp(['衰减周期: ', num2str(Ts), ' 秒']);

% 根据经验公式求PID参数
Kp=Kp/0.8;
Ti=0.3*Ts;
Ki=Kp/Ti;
Td=0.1*Ts;
Kd=Kp*Td;

% 绘制衰减曲线法整定PID参数
simOut = sim('pmdcm_PID');
t = simOut.tout; 
y = simOut.simout(:, 1); 
figure(2)
plot(t,y,'lineWidth',1.5); 
xlabel('时间 (s)');
ylabel('幅值');
title('单位阶跃响应');
legend('Kp=471,Ki=6796,Kd=10.9')
grid on;

总结:本文用Matlab语言全面介绍了衰减曲线法整定PID参数的过程,编写Matlab程序(代码和Simulink模型)“一站到位式”的实现了衰减曲线法整定PID参数。

参考资料:

1.谢仕宏. Matlab控制系统动态仿真实例教程. 化学工业出版社 北京 2009

2.刘文定 王东林. MATLAB/Simulink与过程控制系统. 机械工业出版社 2012

  • 15
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值