sumblk
이름 기반 상호 연결을 위한 합산점
설명
는 벡터 값 합산점을 반환합니다. 입력 신호와 출력 신호는 S = sumblk(formula,signalsize)signalsize 요소로 구성된 벡터입니다.sumblk는 formula의 신호 이름을 벡터 확장하여 InputName과 OutputName 속성을 설정합니다.
예제
다음 그림과 같은 합산점을 만듭니다. 모든 신호는 스칼라 값입니다.

이 합산점의 식은 u = u1 + u2 + u3입니다. 이 식을 sumblk와 함께 사용하여 합산점을 만드십시오.
S = sumblk('u = u1 + u2 + u3');S는 합 u = u1 + u2 + u3을 전달 함수(tf)로 표현한 것입니다. 즉, S는 3개의 입력과 1개의 출력을 갖는 정적 이득 tf이며, 이는 입력의 합과 같습니다. 전달 함수 S는 식에서 입력 이름과 출력 이름을 얻습니다.
S.OutputName
ans = 1×1 cell array
{'u'}
S.InputName
ans = 3×1 cell
{'u1'}
{'u2'}
{'u3'}
따라서 S를 connect 명령의 이름 기반 구문과 함께 사용하여 다음 블록 다이어그램의 시스템과 같은 합산 모델을 작성할 수 있습니다.

이렇게 하려면 H1, H2, H3에 대한 LTI 모델을 만들고 다이어그램에 따라 입력과 출력의 이름을 지정합니다. 이 예제에서는 전달 함수를 사용합니다.
H1 = tf(1,[1 2],"InputName","z1","OutputName","u1"); H2 = tf([1 -2],[1 1],"InputName","z2","OutputName","u2"); H3 = tf(2,[2 1],"InputName","u","OutputName","u3");
모델과 합산점을 연결하여 입력 z1과 z2, 출력 u가 있는 합산 모델을 만듭니다. connect 명령은 컴포넌트의 출력을 일치하는 이름이 있는 입력에 자동으로 연결합니다.
T = connect(H1,H2,H3,S,{"z1","z2"},{"u"});
T.InputNameans = 2×1 cell
{'z1'}
{'z2'}
T.OutputName
ans = 1×1 cell array
{'u'}
합산점 v = u - d를 만듭니다. 여기서 u, d, v는 길이가 2인 벡터 값 신호입니다. 이 합산점은 다음 다이어그램에 나와 있으며, 여기서 각 화살표는 두 개의 신호를 나타냅니다.

이 합산점은 v(1) = u(1) - d(1)과 v(2) = u(2) - d(2)를 출력합니다. sumblk를 사용하여 이 연결점을 만들려면 식과 신호 길이를 모두 지정하십시오.
S = sumblk('v = u - d',2);
size(S)Transfer function with 2 outputs and 4 inputs.
결과는 4개의 입력과 2개의 출력이 있는 전달 함수입니다. d와 u에 대해 각각 2개의 입력, v에 대해 2개의 출력입니다. sumblk는 신호 이름의 벡터 확장을 자동으로 수행하고 S.InputName과 S.OutputName에 할당합니다.
S.InputName
ans = 4×1 cell
{'u(1)'}
{'u(2)'}
{'d(1)'}
{'d(2)'}
S.OutputName
ans = 2×1 cell
{'v(1)'}
{'v(2)'}
다른 MIMO 전달 함수를 사용하는 것처럼 S를 다른 동적 시스템 모델에 연결하여 합산 모델을 작성할 수 있습니다. 예를 들어 다음 2채널 피드백 루프, 즉 다이어그램의 각 선이 두 개의 신호를 나타내는 피드백 루프를 나타내는 모델을 만든다고 가정합니다.

H1과 H2에 대한 2-입력, 2-출력 모델을 만들고 다이어그램에 표시된 대로 InputName과 OutputName 속성을 설정합니다. 이 예제에서는 무작위 상태공간 모델을 사용합니다.
H1 = rss(3,2,2); H1.InputName = 'v'; H1.OutputName = 'w'; H2 = rss(3,2,2); H2.InputName = 'w'; H2.OutputName = 'd';
sumblk가 S의 신호 이름을 확장하는 것처럼 동적 시스템 모델의 신호 이름은 자동으로 확장됩니다. 예를 들어 H1의 출력을 검토해 봅니다.
H1.OutputName
ans = 2×1 cell
{'w(1)'}
{'w(2)'}
connect 명령도 이 확장을 수행합니다. 따라서 다음 명령으로 합산 시스템을 조립할 수 있습니다.
T = connect(S,H1,H2,'u','w'); size(T)
State-space model with 2 outputs, 2 inputs, and 6 states.
예제 벡터 값 신호를 갖는 합산점에서 볼 수 있듯이 벡터 신호에 대한 합산점을 만들 때 기본적으로 sumblk는 사용자가 제공하는 신호 이름에 인덱스를 추가합니다. 이 벡터 확장 대신 다른 신호 이름을 지정해야 하는 경우 합산점 식에서 자리 표시자를 사용하여 이름을 지정하려는 신호를 표현하십시오. 그런 다음, 합산점을 만들 때 자리 표시자에 대입할 특정 이름을 제공하도록 signames 입력 인수를 사용하십시오.
예를 들어 다음 식을 갖는 합산점을 만듭니다.
이 식은 다음 다이어그램에 표시된 합산점입니다. 여기서 setpoint는 2개의 입력을 나타내고 e는 2개의 출력을 나타냅니다.

이 합산점을 만들려면, sumblk가 e와 setpoint를 확장하도록 허용하되 signames 인수에 제공한 특정 신호 이름에 대한 자리 표시자로 %로 시작하는 신호 이름을 사용합니다.
formula = 'e = setpoint - %y'; signames = ["alpha","q"]; S = sumblk(formula,signames);
sumblk는 자리 표시자 %y를 신호 이름 alpha와 q로 바꾸고 다른 신호 이름을 확장합니다. sumblk는 signames의 신호 개수에서 벡터 신호의 크기를 취합니다. 따라서 S의 setpoint 입력과 e 출력에는 각각 두 개의 신호가 포함됩니다.
S.InputName
ans = 4×1 cell
{'setpoint(1)'}
{'setpoint(2)'}
{'alpha' }
{'q' }
S.OutputName
ans = 2×1 cell
{'e(1)'}
{'e(2)'}
이 구문은 InputName이나 OutputName 속성이 이미 설정된 기존 모델을 연결하기 위해 합산점을 만들려는 경우에 특히 유용합니다. 예를 들어 다음과 같은 2-입력, 2-출력 상태공간 모델을 고려해 볼 수 있습니다.
A = [-0.004 0.03; 0.03 -0.19];
B = [0.3 0.2; -0.06 0];
C = [0.99 0.5; 0 0];
D = 0;
G = ss(A,B,C,D);
G.InputName = {'angle','rate'};
G.OutputName = {'current','temp'};다음과 같이 한 쌍의 기준 입력에서 G의 출력을 빼는 합산점을 만듭니다.
그러기 위해서는 식에서 이러한 신호에 대해 자리 표시자를 사용합니다. 그런 다음, G.OutputName을 signames 입력으로 사용하십시오.
S = sumblk('e = ref - %outputs',G.OutputName);
S.InputNameans = 4×1 cell
{'ref(1)' }
{'ref(2)' }
{'current'}
{'temp' }
여러 자리 표시자를 사용하여 식의 여러 요소를 바꿀 수 있습니다. sumblk는 사용자가 제공한 순서로 자리 표시자를 바꿉니다. 예를 들면 기준 신호에 ref(1)과 ref(2) 대신 특정 이름을 지정하는 것입니다.
refnames = ["refcur","reftemp"]; S = sumblk('e = %refs - %outputs',refnames,G.OutputName); S.InputName
ans = 4×1 cell
{'refcur' }
{'reftemp'}
{'current'}
{'temp' }
입력 인수
합산점 전달 함수 S의 입력 신호와 출력 신호를 연결하는 방정식으로, string형 벡터나 문자형 벡터로 지정됩니다. 예를 들어 다음 다이어그램과 같은 합산점을 고려해 볼 수 있습니다.

이 합산점을 3-입력, 1-출력 전달 함수로 나타내려면 다음 명령을 사용합니다.
formula = "e = r + d - y"; S = sumblk(formula);
벡터 값 신호의 경우 formula에서 하나 이상의 자리 표시자를 선택적으로 사용하여 sumblk가 S.InputName과 S.OutputName에 할당하는 이름을 제어할 수 있습니다. formula에 자리 표시자를 넣으려면 %로 시작하는 신호 이름을 사용하십시오. 신호 이름을 S에 할당할 때 sumblk 명령은 각 자리 표시자를 signames 인수에 제공한 이름으로 바꿉니다.
이러한 자리 표시자는 이름이 지정된 신호가 있는 기존 모델을 연결하기 위한 합산점을 만드는 데 특히 유용합니다. 예를 들어 C와 G가 각각 비어 있지 않은 InputName 속성과 OutputName 속성을 가진 동적 시스템 모델인 경우 다음 표현식을 사용해 합산점을 만들 수 있습니다.
S = sumblk("%e = r - %y",C.InputName,G.OutputName)sumblk는 %e와 %y 대신 C.InputName의 값과 G.OutputName의 값을 각각 사용합니다. C.InputName과 G.OutputName의 벡터 차원은 일치해야 합니다. sumblk는 신호 r에 동일한 차원을 할당합니다. 예제는 벡터 값 신호를 사용하여 합산점에서 개별 이름 지정하기 항목을 참조하십시오.
S의 각 입력 신호와 출력 신호에 있는 요소 개수로, 양의 정수로 지정됩니다. signalsize를 1보다 큰 값으로 설정하면 벡터 값 신호에 대해 연산을 수행하는 합산점을 지정할 수 있습니다. 예를 들어 S = sumblk("e = r - y",2)는 입력 r과 y, 출력 e가 2개의 요소를 갖는 벡터 신호인 합산점을 만듭니다. 벡터 값 신호를 갖는 합산점 항목을 참조하십시오.
formula 인수에서 자리 표시자(%로 시작하는 신호 이름)에 대입할 신호 이름으로, string형 배열이나 문자형 벡터로 구성된 셀형 배열로 지정됩니다. formula의 각 자리 표시자에 대해 하나의 signames 인수를 제공하십시오.
signames를 다음과 같이 지정하십시오.
["alpha","q"]와 같은 string형 배열.신호 이름으로 구성된 셀형 배열(예:
{'alpha','q'}).MATLAB® 작업 공간에 있는 모델의
InputName또는OutputName속성. 예를 들면 다음과 같습니다.S = sumblk("%e = r - y",C.InputName)이 명령은 출력 이름이 MATLAB 작업 공간에 있는 모델
C의 입력 이름과 동일한 연결점을 만듭니다.signames를 사용하는 방법을 보여주는 예제는 벡터 값 신호를 사용하여 합산점에서 개별 이름 지정하기 항목을 참조하십시오.자리 표시자와
signames인수를 사용하면sumblk는S신호의 벡터 길이를 설정합니다. 여러 자리 표시자를 사용하는 경우 모든signames인수의 신호 개수가 같아야 합니다.
출력 인수
합산점의 전달 함수로, tf 모델로 반환됩니다.
sumblk는 formula의 신호 이름을 사용하여 S의 InputName과 OutputName 속성을 설정합니다. 예를 들어 S = sumblk("e = r + d - y")를 입력하면 sumblk는 S.InputName = {'r';'d';'y'}와 S.OutputName = {'e'}로 S를 생성합니다. 이러한 입력 이름과 출력 이름을 사용하여 S를 다른 동적 시스템 모델과 상호 연결하여 복합 시스템을 구축할 수 있습니다. 예제는 스칼라 값 신호를 갖는 합산점 항목을 참조하십시오.
signalsize가 1보다 크면 S는 formula의 신호 이름당 signalsize개의 입력(또는 출력)을 갖습니다. 이 함수는 {'e(1)','e(2)',...}와 같이 formula에 지정된 신호 이름에 벡터 확장을 적용하여 S.InputName과 S.OutputName을 설정합니다. 예제는 벡터 값 신호를 갖는 합산점 항목을 참조하십시오.
formula에서 자리 표시자를 사용하는 경우 sumblk는 signames에서 제공한 이름을 사용하여 S의 InputName과 OutputName 속성을 설정합니다. 예제는 벡터 값 신호를 사용하여 합산점에서 개별 이름 지정하기 항목을 참조하십시오.
버전 내역
R2008a에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)