ISE (integral squared error) measures control performance by numerically integrating the squared error across a system’s response over time. Lower ISE generally indicates less accumulated error during PID tuning. section 8.7
Compare ISE with other response criteria when choosing a tuning objective:
- IAE integrates absolute error, while ITAE and ITSE additionally weight error by time. section 8.7
- ISE fits optimization workflows that simulate a step response, calculate error, and assign each PID parameter set an objective value. section 8.7
PID step-response evaluation
For a heater or other closed-loop system, compute the error between the desired step and simulated output, then evaluate ISE with numerical integration before comparing candidate Kp, Ki, and Kd values. section 8.7
def objective_function(t, error, Kp,Ki,Kd, criterion):
if criterion == 1:
ITAE = np.trapz(t, t*error) #1
objfnc= ITAE
elif criterion == 2:
ITSE = np.trapz(t, t*error**2) #2
objfnc= ITSE
elif criterion == 3:
IAE = np.trapz(t, error) #3
objfnc= IAE
elif criterion == 4:
ISE = np.trapz(t, error**2) #4
objfnc= ISE
elif criterion == 5:
T, _, _ =transfer_function(Kp,Ki,Kd)
info = control.step_info(T)
beta = 1
Mp = info['Overshoot']
tr = info['RiseTime']
ts = info['SettlingTime']
ess = abs(1-info['SteadyStateValue'])
W = ((1-math.exp(-beta))*(Mp+ess))+((math.exp(-beta))*(ts-tr)) #5
objfnc=W;
return objfnc
The implementation lists ISE alongside ITAE, ITSE, and IAE as selectable objective functions. section 8.7
