フィルターのクリア

How to visualise feedback function?

3 ビュー (過去 30 日間)
Rubayet
Rubayet 2024 年 4 月 28 日
回答済み: Sam Chak 2024 年 4 月 28 日
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?

採用された回答

Sam Chak
Sam Chak 2024 年 4 月 28 日
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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeGet Started with Control System Toolbox についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by