This repository contains an implementation of the Multiple-Input Multiple-Output (MIMO) Proportional-Integral-Derivative (PID) controller tuning method described in the paper: "MIMO PID tuning via iterated LMI restriction" by Stephen Boyd, Martin Hast, and Karl Johan Åström.
To use the MIMO PID tuning code:
- Make sure you have the required dependencies installed (
numpy
,control
,cvxpy
). - Define your transfer function matrix
P
using thecontrol
library inrobust_mimo_main
. - Specify the desired frequency range
w
and the specifications for the sensitivity functionSmax
, complementary sensitivity functionTmax
, and control effortQmax
. - The main function will call the
auto_mimo_pid
function with the appropriate arguments to tune the MIMO PID controller. - Set your desired number of datapoints
N
over the evaluating frequency range and the maximum number of iterationsmax_iter
. - Main function will analyze the resulting closed-loop transfer functions and plot the desired frequency responses.
This repository also make use of the matlab implementation of MIMO PID Tune. Please note that the current release of this repository may have some issues.