getComponents
Extract SISO control components from a 2-DOF PID controller
Description
[
decomposes the 2-DOF PID controller C,X] =
getComponents(C2,looptype)C2 into two SISO control
components. One of the control components, C, is a 1-DOF PID
controller. The other, X, is a SISO dynamic system. When
C and X are connected in the loop
structure specified by looptype, the resulting closed-loop
system is equivalent to the 2-DOF control loop.
For more information about 2-DOF PID control architectures, see Two-Degree-of-Freedom PID Controllers.
Examples
Decompose a 2-DOF PID controller into SISO control components, using each of the feedforward, feedback, and filter configurations.
To start, obtain a 2-DOF PID controller. For this example, create a plant model and tune a 2-DOF PID controller for it.
G = tf(1,[1 0.5 0.1]);
C2 = pidtune(G,'pidf2',1.5)C2 =
1 s
u = Kp (b*r-y) + Ki --- (r-y) + Kd -------- (c*r-y)
s Tf*s+1
with Kp = 1.12, Ki = 0.23, Kd = 1.3, Tf = 0.122, b = 0.664, c = 0.0136
Continuous-time 2-DOF PIDF controller in parallel form.
Model Properties
C2 is a pid2 controller object, with two inputs and one output. Decompose C2 into SISO control components using the feedforward configuration.
[Cff,Xff] = getComponents(C2,'feedforward')Cff =
1 s
Kp + Ki * --- + Kd * --------
s Tf*s+1
with Kp = 1.12, Ki = 0.23, Kd = 1.3, Tf = 0.122
Continuous-time PIDF controller in parallel form.
Model Properties
Xff =
-10.898 (s+0.2838)
------------------
(s+8.181)
Continuous-time zero/pole/gain model.
Model Properties
As the display shows, this command returns the SISO PID controller Cff as a pid object. The feedforward compensator X is returned as a zpk object.
Decompose C2 using the feedback configuration. In this case as well, Cfb is a pid controller object, and the feedback compensator X is a zpk model.
[Cfb,Xfb] = getComponents(C2,'feedback');Decompose C2 using the filter configuration. Again, the components are a SISO pid controller and a zpk model representing the prefilter.
[Cfr,Xfr] = getComponents(C2,'filter');Input Arguments
2-DOF PID controller to decompose, specified as a
pid2 or pidstd2 controller
object.
Loop structure for decomposing the 2-DOF controller, specified as
'feedforward', 'feedback', or
'filter'. These correspond to the following control
decompositions and architectures:
'feedforward'—Cis a conventional SISO PID controller that takes the error signal as its input.Xis a feedforward controller, as shown:
If
C2is a continuous-time, parallel-form controller, then the components are given by:The following command constructs the closed-loop system from r to y for the feedforward configuration.
T = G*(C+X)*feedback(1,G*C);
'feedback'—Cis a conventional SISO PID controller that takes the error signal as its input.Xis a feedback controller from y to u, as shown:
If
C2is a continuous-time, parallel-form controller, then the components are given by:The following command constructs the closed-loop system from r to y for the feedback configuration.
T = G*C*feedback(1,G*(C+X));
'filter'—Xis a prefilter on the reference signal.Cis a conventional SISO PID controller that takes as its input the difference between the filtered reference and the output, as shown:
If
C2is a continuous-time, parallel-form controller, then the components are given by:The following command constructs the closed-loop system from r to y for the filter configuration.
T = X*feedback(G*C,1);
The formulas shown above pertain to continuous-time, parallel-form
controllers. Standard-form controllers and controllers in discrete time can
be decomposed into analogous configurations. The
getComponents command works on all 2-DOF PID
controller objects.
Output Arguments
SISO PID controller, returned as a pid or
pidstd controller object. The form of
C corresponds to the form of the input controller
C2. For example, if C2 is a
standard-form pidstd2 controller, then
C is a pidstd object.
The precise functional form of C depends on the loop
structure you specify with the looptype argument, as
described in Input Arguments.
SISO control component, specified as a zero-pole-gain
(zpk) model. The precise functional form of
X depends on the loop structure you specify with
the looptype argument, as described in Input Arguments.
Version History
Introduced in R2015b
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Website auswählen
Wählen Sie eine Website aus, um übersetzte Inhalte (sofern verfügbar) sowie lokale Veranstaltungen und Angebote anzuzeigen. Auf der Grundlage Ihres Standorts empfehlen wir Ihnen die folgende Auswahl: .
Sie können auch eine Website aus der folgenden Liste auswählen:
So erhalten Sie die bestmögliche Leistung auf der Website
Wählen Sie für die bestmögliche Website-Leistung die Website für China (auf Chinesisch oder Englisch). Andere landesspezifische Websites von MathWorks sind für Besuche von Ihrem Standort aus nicht optimiert.
Amerika
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)