ctms.engin.umich.edu
以下の表の検証
clear; close all; clc; Kp = 1; Ki = 1; Kd = 1; s = tf('s'); P = 1/(s^2 + 10*s + 20); t = 0:0.01:2; rs = []; sts = []; os = []; ses = []; Kps = []; for Kp=1:1000 C = pid(Kp); T = feedback(C*P,1); [y,~]=step(T,t); info = stepinfo(T); Kps = [Kps Kp]; rs = [rs info.RiseTime]; sts = [sts info.SettlingTime]; os = [os info.Overshoot]; ses = [ses abs(y(end)-1)]; end yyaxis left; plot(Kps,rs,'or'); hold on; plot(Kps,sts,'ob'); plot(Kps,ses,'oc'); yyaxis right; plot(Kps,os,'og'); legend('Rise time','Settling time','Stedy-state error','Overshoot'); xlabel('Kp'); big;
Kpを上げるに従って...
・Rise time: 減少
・Setting time: あまり影響なし
・Overshoot: 増加
・Steady-state error: 減少