![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/182378/image.jpeg)
Designing a PID controller for a pendulum
4 次查看(过去 30 天)
显示 更早的评论
we have the following system:
- (4.545 s) / (s^3 + 0.1818 s^2 - 31.21 s - 4.459)
we have a upside down pendulum, and we need to design a PID controller which can hold it up straight. such that the following conditions occurs:
.
% setteling time: <5 Sec
% overshoot: 20 degree
% risetime: <0.5 Sec
.
any tips??
i, first, put Ti = Inf and Td = 0;
then found the value for Kp = Kcritical according to Routh Table: Kp = Kcr = 159.4546249
but when I want to calculate Natural Frequency (Omega), i get three answers which have imaginary parts:
.
0.0000 + 7.3625i
2.9609 - 3.5903i
-2.9609 - 3.5903i
.
I'm guessing I am not using the correct method
1 个评论
Arkadiy Turevskiy
2015-3-17
You could tune the PID controller with PID Tuner app, unless you are trying to stcik with your method specifically.
>>s=tf('s');
>> sys=(4.545*s) / (s^3 + 0.1818*s^2 - 31.21*s - 4.459)
sys =
4.545 s
----------------------------------
s^3 + 0.1818 s^2 - 31.21 s - 4.459
Continuous-time transfer function.
>> pidTuner(sys)
Then playing a little bit with sliders you could get to something like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/182378/image.jpeg)
回答(1 个)
Arkadiy Turevskiy
2015-3-17
You could tune the PID controller with PID Tuner app, unless you are trying to stcik with your method specifically.
>>s=tf('s');
>> sys=(4.545*s) / (s^3 + 0.1818*s^2 - 31.21*s - 4.459)
sys =
4.545 s
----------------------------------
s^3 + 0.1818 s^2 - 31.21 s - 4.459
Continuous-time transfer function.
>> pidTuner(sys)
Then playing a little bit with sliders you could get to something like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/173984/image.jpeg)
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 PID Controller Tuning 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!