build an augmented PID control model for a DC servo motor in Simulink
23 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Tony Cheng
el 12 de Abr. de 2023
Comentada: Sam Chak
el 15 de Abr. de 2023
Hi there,
I am going to build an augmented PID control model for a DC servo motor in Simulink.
The state-space model of the DC motor has been built already.
Here I want to find a way to realise the augmented PID control, with the block of PID in simulink.
Are there any ways to realise it?
Many THX!
5 comentarios
Sam Chak
el 13 de Abr. de 2023
Editada: Sam Chak
el 13 de Abr. de 2023
Hi @Tony Cheng
I think the ordinary PID block can also control the speed of the motor. For the augmented PID, do you mean to "group" the PID block and the Motor block together under a single Block Mask?
I have also searched online and found these two configs. Which one are you referring to?
Config #1
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1354588/image.png)
Efe, M. O. (2015). An augmented PID control scheme for robust control. 2015 International Workshop on Recent Advances in Sliding Modes (RASM). https://doi.org/10.1109/rasm.2015.7154582
Config #2
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1354593/image.png)
di Capaci, R. B., & Scali, C. (2018). An augmented PID control structure to compensate for valve stiction. IFAC-PapersOnLine, 51(4), 799–804. https://doi.org/10.1016/j.ifacol.2018.06.181
Respuesta aceptada
Sam Chak
el 15 de Abr. de 2023
Editada: Sam Chak
el 15 de Abr. de 2023
Hi @Tony Cheng
I'm unfamiliar with your system, but the Augmented PID Control Scheme should look like the following diagram in Simulink. If the model reference is a linear system, then the S-function can be replaced by a State-Space block.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1357023/image.png)
2 comentarios
Sam Chak
el 15 de Abr. de 2023
You are welcome, @Tony Cheng. The S-Function block is preferred because it can send the acceleration output
directly in this section of the code.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1357123/image.png)
function sys = mdlOutputs(t, x, u)
sys(1) = ... % xd
sys(2) = ... % xd'
sys(3) = ... % xd''
end
However, the block requires a bit of programming skill. If you are familiar with ode45(), then I think you should be okay with it.
Más respuestas (1)
Ver también
Categorías
Más información sobre PID Controller Tuning en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!