필터 지우기
필터 지우기

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 CenterFile Exchange에서 Get 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