how to calculate Plant transfer function in PID control system?

26 次查看(过去 30 天)
I make simple PID control system example.
in continuous sys
Pid contorl system : Gc=tf([1 1],[1 0]);
Plant system : Pc=tf([1 1],[1 1 1]);
and make simple feed back system As below
All system : Ac=(Gc*Pc)/(1+Gc*Pc);
And I make discrete systme like this
Discrete Control system : Gd=c2d(Gc,0.1);
All System : Ad=c2d(Ac,0.1);
As u know that i can get very easely to use c2d funcion to verigy Plant system in discrete system like to use Pd=Ad=c2d(Pc,0.1);
But i try to use solve the equation of feed back system like this
Pd=Ad/(Gd-Gd*Ad);
after that i test the step response test
figure(1)
step(Ac,Ad,100)
figure(2)
step(Gc,Gd,100)
Pd=Ad/(Gd-Gd*Ad);
figure(3)
step(Pc,Pd,100)
figure 1 and 2 are good but figure 3 Plant is different with continuous ans discrete
is there some mistake ? i Dont konw i Just follow the thory
can you help me??

回答(1 个)

Prasanna Gude
Prasanna Gude 2020-3-5
As of my understanding, your problem arises due to the following command:
Pd = Ad/(Gd-Gd*Ad);
The above mathematical equation and the c2d function follow different approaches to get the output.
In the mathematical equation, infinite series associated with each transfer function will be computed to get the Discrete Plant transfer function. Whereas in c2d function, ‘zoh’(Zero-order hold) Discretization method is followed to discretize the continuous signal.
Instead use the following commands to obtain the output that you are expecting:
Pd = c2d(Pc,0.1);
step(Pc,Pd,100)

类别

Help CenterFile Exchange 中查找有关 PID Controller Tuning 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by