represents controller data generated by functions LQGRegulator, PIDTune, etc.
SystemsModelControllerData
represents controller data generated by functions LQGRegulator, PIDTune, etc.
Details
- A SystemsModelControllerData[…] object cd can be used to retrieve data through cd["property"].
- A list of available properties is given by cd["Properties"]. Additional details about the properties are listed on the page for each controller design function.
- State feedback controller design functions include:
-
StateFeedbackGains pole placement LQRegulatorGains linear quadratic (LQ) optimal control DiscreteLQRegulatorGains approximate discrete-time LQ optimal control - Output feedback controller design functions include:
-
EstimatorRegulator assembling state feedback and state estimator LQGRegulator LQ Gaussian optimal regulator and estimator PIDTune automatically tuned PID controller - Typical properties include:
-
"Design" type of controller design "ClosedLoopSystem" the closed-loop system with plant and controller "ClosedLoopPoles" the poles of the Taylor linearized closed-loop system "InputsCount" number of inputs "OutputsCount" number of outputs - Other specifications include:
-
{p1,…,pn} get the values of properties pi "Dataset" get the property names and values as a Dataset "PropertyAssociation" get the property names and values as an Association
Examples
open all close allBasic Examples (1)
Create a SystemsModelControllerData object:
cd = PIDTune[TransferFunctionModel[{{{1.5}}, (1 + s)*(1 + 3*s)}, s], Automatic, "Data"]Obtain a list of available properties:
cd["Properties"]cd["Feedback"]Retrieve a list of properties:
cd[{"FeedbackIdealParameters", "OpenLoop"}]Scope (7)
Controller Designs (7)
Get the controller data object for a pole-placement design using StateFeedbackGains:
ssm = StateSpaceModel[{{{0, 1, 0}, {0, 0, 1}, {-1, -2, -2}}, {{0}, {0}, {1}}, {{4, 0, 1}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];
p = {-3 + 2 I, -3 - 2 I, -7};cd = StateFeedbackGains[ssm, p, "Data"]cd["Properties"]Get the controller data object for a regulator design using LQRegulatorGains:
ssm = StateSpaceModel[{{{0, 1}, {2, -1}}, {{0}, {1}}, {{1, 0}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];
{q, r} = {(| | |
| -- | - |
| 10 | 0 |
| 0 | 5 |), (1)};cd = LQRegulatorGains[ssm, {q, r}, "Data"]cd["Properties"]Get the controller data object for a regulator design using LQOutputRegulatorGains:
ssm = StateSpaceModel[{{{0, 1, 0}, {0, -0.01, 0.3}, {0, -0.003, -10}},
{{0, 0, 0.1}, {0, -1, 0}, {0.1, 0, -0.2}}, {{1, 0, 0}, {0, 1, 0}}, {{1, -1, 0}, {0, 1.3, 0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];
{q, r, p} = {(| | |
| - | - |
| 1 | 0 |
| 0 | 1 |), (| | | |
| - | - | - |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 0 | 0 | 1 |), (| | | |
| --- | ---- | ---- |
| 0.1 | -0.2 | 0.15 |
| 0 | 0 | 0.2 |)};cd = LQOutputRegulatorGains[ssm, {q, r, p}, "Data"]cd["Properties"]Get the controller data object for a discrete-time design using DiscreteLQRegulatorGains:
ssm = StateSpaceModel[{{{0, 1}, {0, -5}}, {{0, 0}, {1, 0.1}}, {{1, 0}}, {{0, 0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];
{q, r} = {(| | |
| --- | -- |
| 100 | 0 |
| 0 | 10 |), (| | |
| -- | - |
| 10 | 0 |
| 0 | 1 |)};
τ = 0.1;cd = DiscreteLQRegulatorGains[ssm, {q, r}, τ, "Data"]cd["Properties"]Get the controller data object for a controller assembled using EstimatorRegulator:
ssm = StateSpaceModel[{{{0, 1}, {1, 0}}, {{0}, {-1}}, {{2, 1}}, {{0}}}, SamplingPeriod -> None,
SystemsModelLabels -> None];
{ℓ, κ} = {{{-3}, {17}}, {{-7, -5}}};cd = EstimatorRegulator[ssm, {ℓ, κ}, "Data"]cd["Properties"]Get the controller data object for a controller designed using LQGRegulator:
sys = StateSpaceModel[{{{-0.3, 0.2}, {0.15, -0.25}}, {{2}, {7}}, {{1, -4}}, {{0}}},
SamplingPeriod -> None, SystemsModelLabels -> None];
{w, v} = {({}), (1)};
{q, r} = {(| | |
| ----- | ----- |
| 0.001 | 0 |
| 0 | 0.001 |), (0.1)};cd = LQGRegulator[sys, {w, v}, {q, r}, "Data"]cd["Properties"]Get the controller data object for a controller designed using PIDTune:
cd = PIDTune[TransferFunctionModel[{{{5}}, (1 + 2.5*s)^2}, s], "PID", "Data"]cd["Properties"]Applications (1)
Automatically compute properties of a controller design for further analysis:
iPend = StateSpaceModel[{{{0, 1, 0, 0}, {12.62058823529412, 0, 0, 0}, {0, 0, 0, 1},
{-0.9275000000000002, 0, 0, 0}}, {{0}, {-0.21008403361344538}, {0}, {0.17857142857142858}},
{{1, 0, 0, 0}, {0, 0, 1, 0}}, {{0}, {0}}}, {{θ[t], 0},
Subscript[, 1], {x[t], 0}, Subscript[, 2]},
{{F[t], 0}}, {θ[t],
x[t]}, t, SamplingPeriod -> None,
SystemsModelLabels -> None];
wts = {DiagonalMatrix[{50, 1, 500, 1}], {{5}}};cd = LQRegulatorGains[iPend, wts, "Data"]Compute the state response using the "ClosedLoopSystem" property:
sr = StateResponse[{cd[{"ClosedLoopSystem", <|"Merge" -> True|>}], {0.01, 0, 0, 0}}, 0, {t, 0, 20}];
Plot[sr, {t, 0, 10}, PlotRange -> All, PlotLegends -> {"x", "v", "θ", "ω"}]cd["ClosedLoopPoles"]Compare them to the open-loop poles:
cd["OpenLoopPoles"]OutputResponse[cd["FeedbackGainsModel"], sr, {t, 0, 10}];
Plot[%, {t, 0, 10}, PlotRange -> All]History
Text
Wolfram Research (2021), SystemsModelControllerData, Wolfram Language function, https://reference.wolfram.com/language/ref/SystemsModelControllerData.html.
CMS
Wolfram Language. 2021. "SystemsModelControllerData." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/SystemsModelControllerData.html.
APA
Wolfram Language. (2021). SystemsModelControllerData. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/SystemsModelControllerData.html
BibTeX
@misc{reference.wolfram_2026_systemsmodelcontrollerdata, author="Wolfram Research", title="{SystemsModelControllerData}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/SystemsModelControllerData.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_systemsmodelcontrollerdata, organization={Wolfram Research}, title={SystemsModelControllerData}, year={2021}, url={https://reference.wolfram.com/language/ref/SystemsModelControllerData.html}, note=[Accessed: 13-June-2026]}