How can I simulate the effect of a step disturbance on a plant output that is in feedback to the controller?

43 views (last 30 days)
bz = [0.1];
az=[1 -0.9];
ts=0.1;
Gz=tf(bz,az,ts);
[kpid,info] = pidtune(Gz,'pid');
T_pi = feedback(kpid*Gz, 1);
step(T_pi)
I want to add a constant unit disturbance that affects the system at some point of time and see the response in the presense of the disturbance. How can I do this?
Any advise would be very helpful. Looking forwaed to your replies.
  1 Comment
Sam Chak
Sam Chak on 18 Apr 2023
hi @Bhindhiya, your title says that adding the disturbance on a plant output. Can you check again whether it's the input to the plant, or the the disturbance is injected at the output of the plant?

Sign in to comment.

Answers (1)

Gokul Nath S J
Gokul Nath S J on 18 Apr 2023
Hi Bhindhiya,
Based on my understanding, it seems that you want to add a disturbance to the system at a specific time. Let's say the disturbance be a disturbance. For to be start from a time instance , it should be multiplied with a unit step and then delayed accordingly. So the disturbance would be modelled as
Convert this disturbance to laplace domain and then multiply with the actual transfer function. As a sample code, if the disturbance is Ks in laplace domain, then
[kpid,info] = pidtune(Gz*Ks,'pid');
T_pi = feedback(kpid*Gz*Ks, 1);
step(T_pi)
with regards,
Gokul Nath S J

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!