Feedback command for MIMO systems in MATLAB
4 次查看(过去 30 天)
显示 更早的评论
I have a state space model with 12 outputs and 4 inputs. I want to close the loop of 8th output with 3 input. then in outer loop i want to close outer loop for 1 output and 3 input again (Quadrotor Pitch and X position states). I have designed PD controller for both loops which is in feedforward.
states = {'x' 'y' 'z' 'u' 'v' 'w' 'Phi' 'Theta' 'Psi' 'p' 'q' 'r'};
inputs = {'Thrust' 'Roll Torque' 'Pitch Torque' 'Yaw Torque'};
outputs = {'x' 'y' 'z' 'u' 'v' 'w' 'Phi' 'Theta' 'Psi' 'p' 'q' 'r'};
STATE_SPACE_MODEL = ss(A,B,C,D,'statename',states,'inputname',inputs,'outputname',outputs);
Now, I can close the first inner loop this way
Pitch_State=STATE_SPACE_MODEL('Theta','Pitch Torque');
PITCH_CL=feedback(Pitch_State*P_PD,1);
now, i want to close the outer loop that contains 'x' state and have a seperate PD controller. I cant find out how to close the outer loop using feeback command can anyone help me out?
0 个评论
采纳的回答
Paul
2021-1-25
I think this does what you want (assuming negative feedback)
Pitch_State = STATE_SPACE_MODEL({'x';'Theta'},'Pitch Torque')
PITCH_CL = feedback(Pitch_State*P_PDinner,1,2);
PITHC_CL = feedback(PITCH_CL,P_PDOuter,1,1);
PITCH_CL will have one input and two outputs still named 'Pitch Torque' and 'x' / 'Theta' respectively. You'll probably want to rename that input.
6 个评论
Paul
2021-1-26
What have you tried so far?
After you close the inner loop, how would you form the open loop transfer function for the outer loop?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Classical Control Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!