为传递函数自动设定PID参数——pidtune学习笔记

本文记录了使用pidtune工具设计PID控制器的过程。首先,介绍了一个装置的传递函数模型sys,并通过命令行设计了简单的PI控制器。接着,尝试了2-DOF二自由度PIDF控制器,以解决闭环响应问题。通过对装置模型G(s)的分析,调整控制器参数以实现期望的带宽,探讨了如何有效设定PID参数以达成参考值跟踪。

装置模型和PID控制器的基本模型

在这里插入图片描述

在命令行里设计PID控制器

装置模型为一个传递函数:
sys=1(s+1)3 s y s=\frac{1}{(s+1)^{3}} sys=(s+1)31
首先创建一个装置的模型sys,并设计一个简单的PI控制器

sys = zpk([],[-1 -1 -1],1);
% C_pi是一个PI开环控制器
[C_pi,info] = pidtune(sys,'Pi');

此时装置模型和控制器分别为

sys =
     1
  -------
  (s+1)^3
Continuous-time zero/pole/gain model.
    
C_pi = 
             1 
  Kp + Ki * ---
             s 
  with Kp = 1.14, Ki = 0.454
Continuous-time PI controller in parallel form.

接着创建一个反馈控制器,并检查闭环的阶跃相应

% 反馈控制
T_pi = feedback(C_pi*sys, 1);
% 画图,显示阶跃相应
step(T_pi)

得到

在这里插入图片描述

将交叉频率设定成1.0

% 提高响应时间
% 设计一个快速反应的PI控制器
[C_pi_fast,info] = pidtune(sys,'Pi',1.0);
T_pi_fast = feedback(C_pi_fast*sys,1);
step(T_pi,T_pi_fast)
axis([ 0 30 0 1.4])
legend('PI','PI_fast')

在这里插入图片描述

最终发现始终无法达到参考值,因为PI控制器的自由度不够,最后设计一个PIDF控制器

% PIDF控制器
[C_pidf_fast,info] = pidtune(sys,'PIDF',1.0)
T_pidf_fast =  feedback(C_pidf_fast*sys,1);
% 对比PI控制器和PIDF控制器
step(T_pi_fast, T_pidf_fast);
axis([0 30 0 1.4]);
legend('PI,fast','PIDF,fast');

在这里插入图片描述

设计一个2-DOF二自由度的PID控制器

装置的二阶传递函数模型为:
G(s)=1s2+0.5s+0.1 G(s)=\frac{1}{s^{2}+0.5 s+0.1} G(s)=s2+0.5s+0.11
使用1.5rad/s的带宽:

wc = 1.5;
G = tf(1,[1 0.5 0.1]);
C2 = pidtune(G,'PID2',wc)

或者直接使用PID这样的type模式,例如

传递函数如下:

 G = tf(0.0575,[1 2.4635 0.7980]) Controller_PID = pidtune(G,'PID')

控制器为

Controller_PID =
 
             1          
  Kp + Ki * --- + Kd * s
             s          

  with Kp = 27.7, Ki = 15, Kd = 11.3
 
Continuous-time PID controller in parallel form.

添加闭环控制

Controller_feedback = feedback(Controller_PID*G,1)

Controller_feedback =
 
    0.6471 s^2 + 1.594 s + 0.8617
  ----------------------------------
  s^3 + 3.111 s^2 + 2.392 s + 0.8617
 
Continuous-time transfer function.

% 画图
step(Controller_feedback)

在这里插入图片描述

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值