Automatic control of linear system with non independent inputs
$begingroup$
I'm currently trying to (re)learn automatic control 2 years after having finished college, and I'm having a hard time. I'm trying to control a simplistic lunar lander in a 2d space.
The only way to control it is to change its angle and/or thrust power, so I have the following state-space representation:
$$
x=begin{bmatrix}
x_1 \
x_2 \
x_3 \
x_4
end{bmatrix}
$$
$$
begin{gather}
dot{x}
=
begin{bmatrix}
0 & 0 & 1 & 0 \
0 & 0 & 0 & 1 \
0 & 0 & 0 & 0 \
0 & 0 & 0 & 0
end{bmatrix}
x;+
begin{bmatrix}
0 & 0 \
0 & 0 \
1 & 0 \
0 & 1
end{bmatrix}
u
end{gather}
$$
Where:
- x$_1$ is the horizontal position
- x$_2$ is the vertical position
- x$_3$ is the horizontal velocity
- x$_4$ is the vertical velocity
And u is the command, accelerations on respectively the horizontal and vertical coordinates.
My problem is the acceleration is unidirectional, and its horizontal and vertical components are correlated:
$$
begin{gather}
u
=
begin{bmatrix}
atimescos{theta} \
atimessin{theta} - g
end{bmatrix}
end{gather}
$$
$a$ is the acceleration provided by the thruster and $theta$ is the angle of the lander. $g$ is the gravity constant.
Since the system is linear, I could calculate the feedback control with the gain K, but I realize this K would consider the two input commands are independent.
I've been stuck on this for a few days, I've tried including $theta$ and $a$ in $x$ so $u$ could simply be an angular velocity and an acceleration derivative, which would be independent, but then the system becomes nonlinear and I have no idea how to solve it.
Maybe my approach is wrong, but I'm honestly lost here, could anyone explain to me what I did wrong or how I could take this input restriction into account in the feedback loop?
ADDENDUM 1: I'm considering for the sake of simplicity that I can freely and instantly change $theta$ and $a$.
control-theory
$endgroup$
add a comment |
$begingroup$
I'm currently trying to (re)learn automatic control 2 years after having finished college, and I'm having a hard time. I'm trying to control a simplistic lunar lander in a 2d space.
The only way to control it is to change its angle and/or thrust power, so I have the following state-space representation:
$$
x=begin{bmatrix}
x_1 \
x_2 \
x_3 \
x_4
end{bmatrix}
$$
$$
begin{gather}
dot{x}
=
begin{bmatrix}
0 & 0 & 1 & 0 \
0 & 0 & 0 & 1 \
0 & 0 & 0 & 0 \
0 & 0 & 0 & 0
end{bmatrix}
x;+
begin{bmatrix}
0 & 0 \
0 & 0 \
1 & 0 \
0 & 1
end{bmatrix}
u
end{gather}
$$
Where:
- x$_1$ is the horizontal position
- x$_2$ is the vertical position
- x$_3$ is the horizontal velocity
- x$_4$ is the vertical velocity
And u is the command, accelerations on respectively the horizontal and vertical coordinates.
My problem is the acceleration is unidirectional, and its horizontal and vertical components are correlated:
$$
begin{gather}
u
=
begin{bmatrix}
atimescos{theta} \
atimessin{theta} - g
end{bmatrix}
end{gather}
$$
$a$ is the acceleration provided by the thruster and $theta$ is the angle of the lander. $g$ is the gravity constant.
Since the system is linear, I could calculate the feedback control with the gain K, but I realize this K would consider the two input commands are independent.
I've been stuck on this for a few days, I've tried including $theta$ and $a$ in $x$ so $u$ could simply be an angular velocity and an acceleration derivative, which would be independent, but then the system becomes nonlinear and I have no idea how to solve it.
Maybe my approach is wrong, but I'm honestly lost here, could anyone explain to me what I did wrong or how I could take this input restriction into account in the feedback loop?
ADDENDUM 1: I'm considering for the sake of simplicity that I can freely and instantly change $theta$ and $a$.
control-theory
$endgroup$
$begingroup$
What would be the dynamics of $theta$, $dot{theta}=tau$ with $tau$ the torque input to the system?
$endgroup$
– Kwin van der Veen
Dec 11 '18 at 16:26
$begingroup$
Here I'm considering I can freely change $theta$ and $a$, in order to make things simple so I guess $dot{theta}$ would be a Dirac delta function? I'm not sure this is the correct term.
$endgroup$
– Alderi
Dec 11 '18 at 16:29
add a comment |
$begingroup$
I'm currently trying to (re)learn automatic control 2 years after having finished college, and I'm having a hard time. I'm trying to control a simplistic lunar lander in a 2d space.
The only way to control it is to change its angle and/or thrust power, so I have the following state-space representation:
$$
x=begin{bmatrix}
x_1 \
x_2 \
x_3 \
x_4
end{bmatrix}
$$
$$
begin{gather}
dot{x}
=
begin{bmatrix}
0 & 0 & 1 & 0 \
0 & 0 & 0 & 1 \
0 & 0 & 0 & 0 \
0 & 0 & 0 & 0
end{bmatrix}
x;+
begin{bmatrix}
0 & 0 \
0 & 0 \
1 & 0 \
0 & 1
end{bmatrix}
u
end{gather}
$$
Where:
- x$_1$ is the horizontal position
- x$_2$ is the vertical position
- x$_3$ is the horizontal velocity
- x$_4$ is the vertical velocity
And u is the command, accelerations on respectively the horizontal and vertical coordinates.
My problem is the acceleration is unidirectional, and its horizontal and vertical components are correlated:
$$
begin{gather}
u
=
begin{bmatrix}
atimescos{theta} \
atimessin{theta} - g
end{bmatrix}
end{gather}
$$
$a$ is the acceleration provided by the thruster and $theta$ is the angle of the lander. $g$ is the gravity constant.
Since the system is linear, I could calculate the feedback control with the gain K, but I realize this K would consider the two input commands are independent.
I've been stuck on this for a few days, I've tried including $theta$ and $a$ in $x$ so $u$ could simply be an angular velocity and an acceleration derivative, which would be independent, but then the system becomes nonlinear and I have no idea how to solve it.
Maybe my approach is wrong, but I'm honestly lost here, could anyone explain to me what I did wrong or how I could take this input restriction into account in the feedback loop?
ADDENDUM 1: I'm considering for the sake of simplicity that I can freely and instantly change $theta$ and $a$.
control-theory
$endgroup$
I'm currently trying to (re)learn automatic control 2 years after having finished college, and I'm having a hard time. I'm trying to control a simplistic lunar lander in a 2d space.
The only way to control it is to change its angle and/or thrust power, so I have the following state-space representation:
$$
x=begin{bmatrix}
x_1 \
x_2 \
x_3 \
x_4
end{bmatrix}
$$
$$
begin{gather}
dot{x}
=
begin{bmatrix}
0 & 0 & 1 & 0 \
0 & 0 & 0 & 1 \
0 & 0 & 0 & 0 \
0 & 0 & 0 & 0
end{bmatrix}
x;+
begin{bmatrix}
0 & 0 \
0 & 0 \
1 & 0 \
0 & 1
end{bmatrix}
u
end{gather}
$$
Where:
- x$_1$ is the horizontal position
- x$_2$ is the vertical position
- x$_3$ is the horizontal velocity
- x$_4$ is the vertical velocity
And u is the command, accelerations on respectively the horizontal and vertical coordinates.
My problem is the acceleration is unidirectional, and its horizontal and vertical components are correlated:
$$
begin{gather}
u
=
begin{bmatrix}
atimescos{theta} \
atimessin{theta} - g
end{bmatrix}
end{gather}
$$
$a$ is the acceleration provided by the thruster and $theta$ is the angle of the lander. $g$ is the gravity constant.
Since the system is linear, I could calculate the feedback control with the gain K, but I realize this K would consider the two input commands are independent.
I've been stuck on this for a few days, I've tried including $theta$ and $a$ in $x$ so $u$ could simply be an angular velocity and an acceleration derivative, which would be independent, but then the system becomes nonlinear and I have no idea how to solve it.
Maybe my approach is wrong, but I'm honestly lost here, could anyone explain to me what I did wrong or how I could take this input restriction into account in the feedback loop?
ADDENDUM 1: I'm considering for the sake of simplicity that I can freely and instantly change $theta$ and $a$.
control-theory
control-theory
edited Dec 11 '18 at 16:32
Alderi
asked Dec 11 '18 at 15:49
AlderiAlderi
134
134
$begingroup$
What would be the dynamics of $theta$, $dot{theta}=tau$ with $tau$ the torque input to the system?
$endgroup$
– Kwin van der Veen
Dec 11 '18 at 16:26
$begingroup$
Here I'm considering I can freely change $theta$ and $a$, in order to make things simple so I guess $dot{theta}$ would be a Dirac delta function? I'm not sure this is the correct term.
$endgroup$
– Alderi
Dec 11 '18 at 16:29
add a comment |
$begingroup$
What would be the dynamics of $theta$, $dot{theta}=tau$ with $tau$ the torque input to the system?
$endgroup$
– Kwin van der Veen
Dec 11 '18 at 16:26
$begingroup$
Here I'm considering I can freely change $theta$ and $a$, in order to make things simple so I guess $dot{theta}$ would be a Dirac delta function? I'm not sure this is the correct term.
$endgroup$
– Alderi
Dec 11 '18 at 16:29
$begingroup$
What would be the dynamics of $theta$, $dot{theta}=tau$ with $tau$ the torque input to the system?
$endgroup$
– Kwin van der Veen
Dec 11 '18 at 16:26
$begingroup$
What would be the dynamics of $theta$, $dot{theta}=tau$ with $tau$ the torque input to the system?
$endgroup$
– Kwin van der Veen
Dec 11 '18 at 16:26
$begingroup$
Here I'm considering I can freely change $theta$ and $a$, in order to make things simple so I guess $dot{theta}$ would be a Dirac delta function? I'm not sure this is the correct term.
$endgroup$
– Alderi
Dec 11 '18 at 16:29
$begingroup$
Here I'm considering I can freely change $theta$ and $a$, in order to make things simple so I guess $dot{theta}$ would be a Dirac delta function? I'm not sure this is the correct term.
$endgroup$
– Alderi
Dec 11 '18 at 16:29
add a comment |
1 Answer
1
active
oldest
votes
$begingroup$
Since $a$ and $theta$ are essentially polar coordinates. So if you have a state feedback control law $u=-K,x$ then you can solve for $a$ and $theta$ given each value for $u$. Namely
begin{align}
a &= sqrt{u_1^2 + (u_2 + g)^2} \
theta &= text{atan2}(u_2 + g, u_1)
end{align}
$endgroup$
$begingroup$
Thanks a lot for your help :)
$endgroup$
– Alderi
Dec 11 '18 at 17:19
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3035422%2fautomatic-control-of-linear-system-with-non-independent-inputs%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Since $a$ and $theta$ are essentially polar coordinates. So if you have a state feedback control law $u=-K,x$ then you can solve for $a$ and $theta$ given each value for $u$. Namely
begin{align}
a &= sqrt{u_1^2 + (u_2 + g)^2} \
theta &= text{atan2}(u_2 + g, u_1)
end{align}
$endgroup$
$begingroup$
Thanks a lot for your help :)
$endgroup$
– Alderi
Dec 11 '18 at 17:19
add a comment |
$begingroup$
Since $a$ and $theta$ are essentially polar coordinates. So if you have a state feedback control law $u=-K,x$ then you can solve for $a$ and $theta$ given each value for $u$. Namely
begin{align}
a &= sqrt{u_1^2 + (u_2 + g)^2} \
theta &= text{atan2}(u_2 + g, u_1)
end{align}
$endgroup$
$begingroup$
Thanks a lot for your help :)
$endgroup$
– Alderi
Dec 11 '18 at 17:19
add a comment |
$begingroup$
Since $a$ and $theta$ are essentially polar coordinates. So if you have a state feedback control law $u=-K,x$ then you can solve for $a$ and $theta$ given each value for $u$. Namely
begin{align}
a &= sqrt{u_1^2 + (u_2 + g)^2} \
theta &= text{atan2}(u_2 + g, u_1)
end{align}
$endgroup$
Since $a$ and $theta$ are essentially polar coordinates. So if you have a state feedback control law $u=-K,x$ then you can solve for $a$ and $theta$ given each value for $u$. Namely
begin{align}
a &= sqrt{u_1^2 + (u_2 + g)^2} \
theta &= text{atan2}(u_2 + g, u_1)
end{align}
answered Dec 11 '18 at 16:58
Kwin van der VeenKwin van der Veen
5,3952827
5,3952827
$begingroup$
Thanks a lot for your help :)
$endgroup$
– Alderi
Dec 11 '18 at 17:19
add a comment |
$begingroup$
Thanks a lot for your help :)
$endgroup$
– Alderi
Dec 11 '18 at 17:19
$begingroup$
Thanks a lot for your help :)
$endgroup$
– Alderi
Dec 11 '18 at 17:19
$begingroup$
Thanks a lot for your help :)
$endgroup$
– Alderi
Dec 11 '18 at 17:19
add a comment |
Thanks for contributing an answer to Mathematics Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3035422%2fautomatic-control-of-linear-system-with-non-independent-inputs%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
$begingroup$
What would be the dynamics of $theta$, $dot{theta}=tau$ with $tau$ the torque input to the system?
$endgroup$
– Kwin van der Veen
Dec 11 '18 at 16:26
$begingroup$
Here I'm considering I can freely change $theta$ and $a$, in order to make things simple so I guess $dot{theta}$ would be a Dirac delta function? I'm not sure this is the correct term.
$endgroup$
– Alderi
Dec 11 '18 at 16:29