Can I use ''PLACE'' matlab function to find feedback gain for discrete state space controller?

20 visualizaciones (últimos 30 días)
I am using PLACE function in MATLAB to find feedback gain for continuous system and I am getting desired output. But when I am using PLACE function for discrete system then I am not getting correct feedback gain. Can I use PLACE function for discrete? If not then suggest me some another way to find feedback gain matrix for discrete system.
  6 comentarios
Ankitkumar Viradiya
Ankitkumar Viradiya el 17 de Nov. de 2017
C=eye(4) and D=[0 0 0 0] I have directly usesd these matrices in simulink state-space block. I have chosen my pole with assumption of damping factor and natural frequency. I have used P= [-0.811 -1.622 -0.811+1.84j -0.811-1.84j] for my system. Using these same poles I am getting different output for continuous and discrete system.

Iniciar sesión para comentar.

Respuesta aceptada

Birdman
Birdman el 17 de Nov. de 2017
Hi Ankitkumar,
I have checked every possible situation to make sure that we are not doing any mistake at the beginning. I checked the validity of the sample time you have chosen and etc. When I plotted the Bode diagram for your system, I found out that we have to sample the system with at least T=0.023 seconds and since your sampling is faster than this, we will not encounter any problem. All the things are valid but one thing that is not valid is that you try to calculate K matrix for discrete time system by trying to assign s-domain poles in z-domain poles. Firstly, you have to convert s-domain poles to z-domain poles by a mathematical calculation and then you can easily implement the feedback matrix. Here is the following code:
A=[0 1 0 0;0 -2.470 -0.7568 0.0006897;0 0 0 1;0 4.7568 20.3250 -0.01852]; B=[0;0.2470 ;0 ;-0.4756];C=eye(4);D=zeros(4,1);
sys=ss(A,B,C,D);%continuous system
Ts=0.01;
sysDisc=c2d(sys,Ts,'tustin');%discrete system
pCont=[-5 -7 -0.811+1.84j -0.811-1.84j];%poles in s-domain
pDisc=exp(pCont.*Ts);%poles in z-domain
cont=place(A,B,pCont)
disc=place(sysDisc.A,sysDisc.B,pDisc)
When you run the code, you will see that cont and disc matrices are almost the same. Note that disc matrix will change according to the sampling time of yours which means sampling your system faster is not an smart choice. Be careful with that.
  5 comentarios
dengyi
dengyi el 19 de Mayo de 2024
hi birdman,Your response has been incredibly helpful to me, and I'm not sure how to express my gratitude

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Dynamic System Models en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by