Which requirements and Tuning Methods in Control System Designer are needed to tune PID parameters in a cascaded loop when intput is an oscillating signal
2 次查看(过去 30 天)
显示 更早的评论
The input signal (Requested Position) has following form:
Amplitude:1.1 mm;
Frequency: 1Hz.
The Simulink modell looks like this:
The transfer function block was estimated with Systemidentification Toolbox from the Requested Torque and Current Position signals from the real system:
Numerator: [-3.2239 52.4809];
Denominator: [1 0.09604 38.2613].
With default parameters Position Controller Kp=1, Speed controller Kp=1, Ki=1, I get following output signal(Curent Position)
My goal is to make Current Position signal as equal as possible to Requested Position. It should happen automated.
So I thought about using Control System Designer Toolbox with one of the automated tuning methods. Unfortunately I don't know much about control theory, so I don't really know which requirements I have to set to tune the controllers, so CurrentPosition looks as equal as possible as Requested Position.
I am also unsure if I should use P- and PI- controller or P- and PID.
Do someone have any suggestions, how I can adress the task of tuning of this cascaded loop?
0 个评论
回答(2 个)
Sam Chak
2023-3-16
The 2nd-order plant is non-minimum phase. I'm unable to track the relatively fast 1 Hz sinusoidal signal using your proposed configuration of the PID controllers, because the tuning method cannot produce a stable feedback loop.
However, using a 4th-order Compensator, the Reference sinusoidal signal can be tracked with a decent lag (phase shift). The compensator is designed to provide a fast response at 0.1 sec (10 times faster than Ref signal frequency) on the closed-loop system. The design is based on the Loop-shaping auto-tuning method provided by the controlSystemDesigner(Gp).
Simulink
MATLAB
s = tf('s');
num = [-3.2239 52.4809];
den = [1 0.09604 38.2613];
% Plant
Gp = tf(num, den)
% Compensator
Gc = (1.905e+06*s^2 + 1.83e+05*s + 7.291e+07)/(s^4 + 270*s^3 + 4e+04*s^2 + 9.143e+06*s - 3.127e-09)
% Closed-loop system
Gcl = minreal(feedback(Gc*Gp, 1))
tau = 1;
Tf = 5;
Ts = 0.01;
[u, t] = gensig("sine", tau, Tf, Ts);
lsim(0.934*Gcl, u, t, Ts)
0 个评论
Joel
2023-3-15
Hi,
One way to tune your controller is by using the PID Tuner App:
- Open Block parameters of the Position controller.
- Under Automated tuning, select ‘Transfer function Based (PID Tuner App)’ and click on ‘Tune’.
- The PID Tuner App will be launched.
- Under Tuning tools, use the slider for response time and transient behaviour to get optimal results.
- Click on ‘Show Parameters’ to view P,I values and other performance criterion.
- Repeat the same steps for the Speed Controller.
These are the values that I have obtained using the PID Tuner App:
Position Controller: P = 0.01296
Speed Controller: P = 0, I = 64.7447
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!