Filter löschen
Filter löschen

How to visualise feedback function?

3 Ansichten (letzte 30 Tage)
Rubayet
Rubayet am 28 Apr. 2024
Beantwortet: Sam Chak am 28 Apr. 2024
numA = [0.1];
denomA = [1 0];
C = tf(numA, denomA)
C = 0.1 --- s Continuous-time transfer function.
numB = [1];
denomB = [1 1];
G = tf(numB, denomB)
G = 1 ----- s + 1 Continuous-time transfer function.
s = tf('s');
R = 10/s
R = 10 -- s Continuous-time transfer function.
My task is to write an M-file to find and plot the response of the following system to an input signal of R(s) = 10/s.
However, I am unable to understand the function of different parameters in the FUNCTION called feedback().
One thing I understood is that it is a closed negative loop, therefore I won't have to add 1 at the last parameter which is for positive feedback loop.
Hence, I am unsure whether to use one of these for the final output:
Given that R(s) = 10/s.
I am thinking between:
system1 = feedback(C,G)
system1 = 0.1 s + 0.1 ------------- s^2 + s + 0.1 Continuous-time transfer function.
step(R*system1)
system2 = feedback(C*G,1,-1)
system2 = 0.1 ------------- s^2 + s + 0.1 Continuous-time transfer function.
step(R*system2)
What is the difference between system1 and system 2? Both are closed loops. In system 1, C and G are two different models. In system 2, C and G are treated as one model by mutliplying with unity being the other model.
What is the visual difference between system1 and system2? What am I doing wrong?

Akzeptierte Antwort

Sam Chak
Sam Chak am 28 Apr. 2024
This is how you can use the 'feedback()' function to obtain the closed-loop system. You can compare the two approaches presented below:
numA = [0.1];
denomA = [1 0];
C = tf(numA, denomA)
C = 0.1 --- s Continuous-time transfer function.
numB = [1];
denomB = [1 1];
G = tf(numB, denomB)
G = 1 ----- s + 1 Continuous-time transfer function.
Approach #1: Use the built-in 'feedback()' function
%% closed-loop system
clsys = feedback(C*G, 1)
clsys = 0.1 ------------- s^2 + s + 0.1 Continuous-time transfer function.
%% input signal (a constant)
R = 10; % R(s) = 10/s --> R(t) = 10
%% System response
step(R*clsys), grid on
Approach #2: Use the direct formula
s = tf('s');
clsys2 = (C*G)/(1 + (C*G))
clsys2 = 0.1 s^2 + 0.1 s ----------------------------- s^4 + 2 s^3 + 1.1 s^2 + 0.1 s Continuous-time transfer function.
clsys2 = minreal(clsys2) % simplification (minimal realization)
clsys2 = 0.1 ------------- s^2 + s + 0.1 Continuous-time transfer function.
%% System response
step(R*clsys), grid on

Weitere Antworten (0)

Kategorien

Mehr zu Get Started with Control System Toolbox finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by