I'm very new to control theory and I am stuck at PID tuning. I have a given Simulink model but I do not know the transfer function. I want to use a PID to provide new input from the output of the model. Is it possible to tune the gains of the PID controller without knowing the transfer function? Which methods can I use for this?
If you don't 'know' the transfer function but you can run experiments (on simulink) with it you can either
- Determine an approximation of the TF using an ARMA model or other system identification techniques.
- Use a genetic algorithm to tune the PID until you get a 'good' PID for that system.
- Use methods such as the Åström-Hägglund relay method, a self tunning method.
- Use Ziegler-Nichols method to get some controller.
You can find the transfer function of a Simulink block diagram using the linear analysis tool. First, you have to mark the input and output signal lines. Then you can use the linear analysis tool. The tool has options for linearisation / frequency response estimation. The exact name of the tool and its location in the menu varies from Simulink version to version.
A detailed instruction (for the latest version probably) is given in the following link. https://in.mathworks.com/help/slcontrol/ug/linearize-simulink-model.html
open-loop stable plants, you can also try to identify the plant transfer function by giving standard test signals such as step response, sinusoidal signals etc.
e.g. From the step response, you can measure dead-time, rise-time, overshoot, settling time etc. and find a first/second/higher order transfer function which will have the same characteristics.
For open-loop stable plants, there are PID tuning methods where you dont need to have model of the plant. One method commonly taught is the Ziegler–Nichols method.