이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

feedback

여러 모델의 피드백 연결

설명

예제

sys = feedback(sys1,sys2)는 모델 객체 sys1,sys2의 음의 피드백 상호 연결을 위한 모델 객체 sys를 반환합니다.

그림을 보면 폐루프 모델 sys의 입력 벡터는 u이고 출력 벡터는 y입니다. 두 모델 sys1sys2 모두 연속시간이거나 동일한 샘플 시간을 갖는 이산시간이어야 합니다.

예제

sys = feedback(sys1,sys2,feedin,feedout)feedinfeedout을 사용하여 지정된 입력 및 출력 연결을 사용하여 폐루프 모델 sys를 계산합니다. MIMO 시스템의 사용 가능한 I/O 중 일부만 연결하려면 이 구문을 사용하십시오.

예제

sys = feedback(sys1,sys2,'name')은 MIMO 모델 sys1sys2 각각의 I/O 이름으로 지정된 피드백 연결을 사용하여 폐루프 모델 sys를 계산합니다. 'name' 플래그는 MIMO 시스템 집합의 모든 필요한 I/O에 이름이 올바르게 지정된 경우에만 사용하십시오.

예제

sys = feedback(___,sign)sign으로 지정된 피드백 유형을 갖는 피드백 루프를 위한 모델 객체 sys를 반환합니다. 기본적으로 feedback은 음의 피드백을 가정하며 feedback(sys1,sys2,-1)과 동일합니다. 양의 피드백을 갖는 폐루프 시스템을 계산하려면 sign = +1을 사용하십시오.

예제

모두 축소

pendulumModelAndController.mat에는 SISO 역진자 전달 함수 모델 G 및 그와 관련된 PID 제어기 C가 포함되어 있습니다.

역진자와 제어기 모델을 작업 공간으로 불러옵니다.

load('pendulumModelAndController','G','C');
size(G)
Transfer function with 1 outputs and 1 inputs.
size(C)
PID controller with 1 output and 1 input.

feedback을 사용하여 GC로 음의 피드백 루프를 만듭니다.

sys = feedback(G*C,-1)
sys =
 
         1.307e-06 s^3 + 3.136e-05 s^2 + 5.227e-06 s
  ---------------------------------------------------------
  2.3e-06 s^4 - 8.886e-07 s^3 - 0.0001031 s^2 - 1.547e-05 s
 
Continuous-time transfer function.

sys는 음의 피드백을 사용하여 결과로 얻은 폐루프 연속시간 전달 함수입니다. feedback은 PID 제어기 모델 C를 전달 함수로 변환한 후에 연속시간 전달 함수 모델 G에 연결합니다. 자세한 내용은 Rules That Determine Model Type 항목을 참조하십시오.

이 예제에서는 각각 플랜트 G와 제어기 C를 기술하는 2개의 전달 함수를 살펴봅니다.

G(s)=2s2+5s+1s2+2s+3C(s)=5(s+2)s+10

플랜트 및 제어기 전달 함수를 만듭니다.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity");
C = tf([5,10],[1,10]); 

feedback을 사용하여 GC로 음의 피드백 루프를 만듭니다.

sys = feedback(G,C,-1)
sys =
 
  From input "torque" to output "velocity":
  2 s^3 + 25 s^2 + 51 s + 10
  ---------------------------
  11 s^3 + 57 s^2 + 78 s + 40
 
Continuous-time transfer function.

sys는 입력이 torque이고 출력이 velocity인 음의 피드백을 사용하여 결과로 얻은 폐루프 전달 함수입니다.

이 예제에서는 각각 플랜트 G와 제어기 C를 기술하는 2개의 전달 함수를 살펴봅니다.

G(s)=2s2+5s+1s2+2s+3C(s)=5(s+2)s+10

플랜트 및 제어기 전달 함수를 만듭니다.

G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity");
C = tf([5,10],[1,10]); 

feedback 함수에 GC를 사용하여 양의 피드백 루프를 만듭니다.

sys = feedback(G,C,+1)
sys =
 
  From input "torque" to output "velocity":
  -2 s^3 - 25 s^2 - 51 s - 10
  ---------------------------
  9 s^3 + 33 s^2 + 32 s - 20
 
Continuous-time transfer function.

sys는 입력이 torque이고 출력이 velocity인 양의 피드백으로 얻은 폐루프 전달 함수입니다.

아래 그림과 같이 입력이 2개이고 출력이 2개인 2개의 MIMO 전달 함수를 음의 피드백 루프로 연결한다고 가정하겠습니다.

이 예제에서는 rss를 사용하여 2개의 무작위 연속 상태공간 모델을 만듭니다.

G = rss(4,2,2);
C = rss(2,2,2);
size(G)
State-space model with 2 outputs, 2 inputs, and 4 states.
size(C)
State-space model with 2 outputs, 2 inputs, and 2 states.

feedback을 사용하여 2개의 상태공간 모델을 위 그림에 따라 음의 피드백 루프로 연결합니다.

sys = feedback(G,C,-1);
size(sys)
State-space model with 2 outputs, 2 inputs, and 6 states.

결과로 생성되는 상태공간 모델 sys는 상태가 6개인 2-입력 2-출력 모델입니다. 음의 피드백 루프는 다음과 같이 완성됩니다.

  • G의 첫 번째 출력이 C의 첫 번째 입력에 연결됨

  • G의 두 번째 출력이 C의 두 번째 입력에 연결됨

mimoPlantAndController.mat는 다음과 같이 연결할 2-입력 2-출력 전달 함수 플랜트 모델 G와 2-입력 2-출력 전달 함수 제어기 모델 C를 포함합니다.

먼저 플랜트 및 제어기 모델을 작업 공간으로 불러옵니다.

load('mimoPlantAndController.mat','G','C');
size(G)
Transfer function with 2 outputs and 2 inputs.
size(C)
Transfer function with 2 outputs and 2 inputs.

기본적으로 feedbackG의 첫 번째 출력을 C의 첫 번째 입력에 연결하고 G의 두 번째 출력을 C의 두 번째 입력에 연결합니다. 그림과 같이 플랜트와 제어기를 올바르게 연결하려면 두 시스템의 각 I/O에 이름을 지정하십시오.

G.InputName 
ans = 2x1 cell array
    {'torque'}
    {'angle' }

G.OutputName
ans = 2x1 cell array
    {'velocity'}
    {'force'   }

C.InputName
ans = 2x1 cell array
    {'force'   }
    {'velocity'}

C.OutputName
ans = 2x1 cell array
    {'angle' }
    {'torque'}

그런 다음 feedback 명령을 'name' 플래그와 함께 사용하여 I/O 이름에 따라 연결을 만듭니다.

sys = feedback(G,C,'name');

결과로 생성되는 폐루프 음의 피드백 전달 함수 sys에서 요구 사항의 순서대로 피드백이 연결됩니다.

입력 5개와 출력 4개를 가진 상태공간 플랜트 G와 입력 3개와 출력 2개를 가진 상태공간 피드백 제어기 K가 있다고 가정하겠습니다. 플랜트 G의 출력 1, 3, 4는 제어기 K의 입력에 연결되어야 하고, 제어기 출력은 플랜트의 입력 4와 2에 연결되어야 합니다.

이 예제에서는 GK 양쪽에 대해 rss를 사용하여 무작위 연속시간 상태공간 모델을 생성합니다.

G = rss(3,4,5);
K = rss(3,2,3);

피드백 루프에서 연결될 입력과 출력을 바탕으로 feedout 벡터와 feedin 벡터를 정의합니다.

feedin = [4 2];
feedout = [1 3 4];
sys = feedback(G,K,feedin,feedout,-1);
size(sys)
State-space model with 4 outputs, 5 inputs, and 6 states.

sysGK의 지정된 입력과 출력을 연결하여 결과로 얻은 폐루프 상태공간 모델입니다.

입력 인수

모두 축소

피드백 루프에서 연결할 시스템으로, 동적 시스템 모델로 지정됩니다. 사용 가능한 동적 시스템에는 다음이 포함됩니다.

  • 연속시간 또는 이산시간 수치적 LTI 모델(예: tf, zpk, pid, pidstd 또는 ss 모델).

  • 주파수 응답 모델(예: frd 또는 genfrd).

  • 일반화된 또는 불확실 LTI 모델(예: genss 모델 또는 uss 모델). (불확실 모델을 사용하려면 Robust Control Toolbox™가 필요합니다.)

    결과로 생성되는 피드백 루프는

    • 조정 가능한 제어 설계 블록의 경우 조정 가능한 구성요소의 현재 값을 가정합니다.

    • 불확실한 제어 설계 블록의 경우 공칭 모델 값을 가정합니다.

자세한 내용은 동적 시스템 모델을 참조하십시오.

sys1sys2가 서로 다른 모델 유형인 경우 feedback은 우선 순위 규칙을 사용하여 결과 모델 sys를 결정합니다. 예를 들어, 피드백 루프에서 상태공간 모델과 전달 함수가 연결된 경우, 결과로 생성되는 시스템은 우선 순위 규칙에 따라 상태공간 모델입니다. 자세한 내용은 Rules That Determine Model Type 항목을 참조하십시오.

사용할 입력의 서브셋으로, 벡터로 지정됩니다.

그림을 보면 feedin은 MIMO 플랜트 P의 입력 벡터의 인덱스를 포함하며 입력 u의 어떤 서브셋이 피드백 루프에 사용되는지 지정합니다. 결과로 생성되는 모델 sysG와 입력이 동일하며 순서도 그대로 유지됩니다.

예제는 피드백 루프의 입력 및 출력 연결 지정하기 항목을 참조하십시오.

사용할 출력의 서브셋으로, 벡터로 지정됩니다.

feedout은 MIMO 플랜트 G의 어떤 출력을 피드백에 사용할지 지정합니다. 결과로 생성되는 모델 sysG와 출력이 동일하며 순서도 그대로 유지됩니다.

예제는 피드백 루프의 입력 및 출력 연결 지정하기 항목을 참조하십시오.

피드백 유형으로, 음의 피드백의 경우 -1로 지정되고 양의 피드백의 경우 +1로 지정됩니다. feedback은 기본적으로 음의 피드백을 가정합니다.

출력 인수

모두 축소

폐루프 시스템으로, SISO 또는 MIMO 동적 시스템 모델로 반환됩니다. sys는 우선 순위 규칙에 따라 다음 중 하나일 수 있습니다.

  • 연속시간 또는 이산시간 수치적 LTI 모델(예: tf, zpk, ss, pid, or 또는 pidstd 모델).

  • 일반화된 또는 불확실 LTI 모델(예: genss 모델 또는 uss 모델). (불확실 모델을 사용하려면 Robust Control Toolbox가 필요합니다.)

sys1sys2가 서로 다른 모델 유형인 경우 feedback은 우선 순위 규칙을 사용하여 결과 모델 sys를 결정합니다. 예를 들어, 피드백 루프에서 상태공간 모델과 전달 함수가 연결된 경우, 결과로 생성되는 시스템은 Rules That Determine Model Type에서 설명하는 우선 순위 규칙에 따라 상태공간 모델입니다.

제한 사항

  • 피드백 연결에는 대수 루프가 없어야 합니다. 예를 들어, D1과 D2sys1sys2의 피드스루 행렬인 경우 이 조건은 다음과 동일합니다.

    • 음의 피드백을 사용하는 경우 I + D1D2가 정칙

    • 양의 피드백을 사용하는 경우 I − D1D2가 정칙

  • 복잡한 피드백 구조의 경우 appendconnect를 사용하십시오.

R2006a 이전에 개발됨