hello every one ... how can i determine (p) in pole placement code K = place(A,B,p)

 Akzeptierte Antwort

Weitere Antworten (3)

Shashank Prasanna
Shashank Prasanna am 20 Jul. 2013

1 Stimme

shahad, place is used to perform pole placement using state feedback. The output K is the feedback gain matrix.
PLACE is not an optimal control methodology and does no come up with good p values. It merely attempts to place at the specified location and generates the gain matrix.
You question seems to be related to: How do I generate this stable optimal p?
There are numerous answers to that question but a popular one is linear quadratic controller (LQR):
The first output argument is the gain matrix K and the 3rd output argument 'e' are you poles which are automatically generated when the optimization is performed.

4 Kommentare

Azzi Abdelmalek
Azzi Abdelmalek am 21 Jul. 2013
Shashank, even when you do not use optimal control, the chosen poles have to be optimal.
Shashank Prasanna
Shashank Prasanna am 21 Jul. 2013
Azzi, I apologize if I interpreted this wrong, but do you mean stable when you say it has to be optimal? Using place you can place the poles anywhere you want for state feedback (as long as A and B are controllable), but shahad, as I interpreted his question, is interested in placing them optimally, and optimal control is a good place to start.
cmcm
cmcm am 26 Jul. 2013
Bearbeitet: cmcm am 26 Jul. 2013
and if i have the values of (K) and A and B and i want to find P from that ... is there any way to do that ??? because my qus. was how to find this P matrix ??
Azzi Abdelmalek
Azzi Abdelmalek am 16 Aug. 2013
Shashank, What I mean by optimal poles is poles that provide a system optimal performances (acceptable stability margin, and optimal performances to be defined by the user).

Melden Sie sich an, um zu kommentieren.

Azzi Abdelmalek
Azzi Abdelmalek am 20 Jul. 2013
Bearbeitet: Azzi Abdelmalek am 20 Jul. 2013

0 Stimmen

p is the poles vector you have to impose to your system in closed loop.
Example:
A=[-6 -5;1 0];
b=[1;0]
The size of A is 2x2 then the length of the pole vector p should be 2
p=[-5 -10] % the poles should be stables (real(p)<0)
%or
p=[-2+j -2-j]
place(A,b,p)

4 Kommentare

cmcm
cmcm am 20 Jul. 2013
Bearbeitet: cmcm am 20 Jul. 2013
ok for your example how you know the values of matrix p ?? is there any procedure or what .... i have a matrix A 6X6 and matrix B 6X2 ... so how can i find p ?
p should contains 6 stables poles
% For example
p=[-1 -2 -3 -4 -5 -6]
cmcm
cmcm am 20 Jul. 2013
and the values of these poles how i found it ?? by try and error or how ?
Azzi Abdelmalek
Azzi Abdelmalek am 20 Jul. 2013
Like I said the pole to impose should be real or complex numbers with real part obligatory negative. This is enough to get a stable control, for optimal performances, you have to read the effects of poles on the system.

Melden Sie sich an, um zu kommentieren.

Nagesh
Nagesh am 1 Mär. 2024

0 Stimmen

A=[-6 -5;1 0];
b=[1;0]
b = 2×1
1 0
p=[-5 -10] % the poles should be stables (real(p)<0)
p = 1×2
-5 -10
%or
p=[-2+j -2-j]
p =
-2.0000 + 1.0000i -2.0000 - 1.0000i
place(A,b,p)
ans = 1×2
-2.0000 0.0000

1 Kommentar

Your response didn't fully address the original question. In order to determine the control gain using the place() command, the user must input the poles that result in the Hurwitz characteristic polynomial. These poles specifically correspond to the closed-loop system and generate the desired response specified by the user. Your answer deserves votes if you could provide a practical example to illustrate this.
Let's consider a simple Double Integrator system. If we need to meet performance specifications such as a percent overshoot of ≤ 9% and a settling time of ≤ 1 second, how would you determine the target poles?
A = [0, 1; 0, 0]; % state matrix
B = [0; 1]; % input matrix
C = [1, 0]; % output matrix
D = 0*C*B; % direct matrix
sys = ss(A, B, C, D)
sys = A = x1 x2 x1 0 1 x2 0 0 B = u1 x1 0 x2 1 C = x1 x2 y1 1 0 D = u1 y1 0 Continuous-time state-space model.
Gp = tf(sys)
Gp = 1 --- s^2 Continuous-time transfer function.

Melden Sie sich an, um zu kommentieren.

Gefragt:

am 20 Jul. 2013

Kommentiert:

am 1 Mär. 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by