for PI feedback controller with un-unity feedback, final values is off
4 次查看(过去 30 天)
显示 更早的评论
I have a second-order transfer function, and I am using integral control, but the final value will not settle at the input level (step).
My attempt is below
--------------------------------------------------
s = tf('s');
G = tf(1, [1, 1.4, 1]);
>> ki=1; % I-gain
Dc=ki/s; % I-control with integral gain ki
step(feedback(Dc*G,0.5,-1)); % the 0.5 is what I have in the feedback path and G*Dc is the gain in the forward path.
------------------------------------------------------------
The output will not settle at 1. Any suggestions
0 个评论
采纳的回答
Sam Chak
2023-10-18
You can fix the issue by scaling the step input to match the gain in the feedback path (H) in order to eliminate the steady-state error.
s = tf('s');
Gp = tf(1, [1, 1.4, 1]);
ki = 1;
Gc = ki/s;
H = 0.5;
Gcl = feedback(Gc*Gp, H)
scaledIn = H; % scale the step input to match H
tFinal = 30;
step(scaledIn*Gcl, tFinal)
2 个评论
Sam Chak
2023-10-19
You are welcome, @Abdulaziz Abutunis. Don't forget to 'click-accept' the answer, and feel free to post new questions related to transfer function design problems.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Software Development Tools 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!