Automatic control of linear system with non independent inputs












2












$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$.










share|cite|improve this question











$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


















2












$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$.










share|cite|improve this question











$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
















2












2








2





$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$.










share|cite|improve this question











$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






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








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




















  • $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












1 Answer
1






active

oldest

votes


















0












$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}






share|cite|improve this answer









$endgroup$













  • $begingroup$
    Thanks a lot for your help :)
    $endgroup$
    – Alderi
    Dec 11 '18 at 17:19











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
});


}
});














draft saved

draft discarded


















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









0












$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}






share|cite|improve this answer









$endgroup$













  • $begingroup$
    Thanks a lot for your help :)
    $endgroup$
    – Alderi
    Dec 11 '18 at 17:19
















0












$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}






share|cite|improve this answer









$endgroup$













  • $begingroup$
    Thanks a lot for your help :)
    $endgroup$
    – Alderi
    Dec 11 '18 at 17:19














0












0








0





$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}






share|cite|improve this answer









$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}







share|cite|improve this answer












share|cite|improve this answer



share|cite|improve this answer










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


















  • $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


















draft saved

draft discarded




















































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.




draft saved


draft discarded














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





















































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







Popular posts from this blog

Quarter-circle Tiles

build a pushdown automaton that recognizes the reverse language of a given pushdown automaton?

Mont Emei