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 = 1x1 cell array
{'u'}
S.InputName
ans = 3x1 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.InputName
ans = 2x1 cell
{'z1'}
{'z2'}
T.OutputName
ans = 1x1 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 = 4x1 cell
{'u(1)'}
{'u(2)'}
{'d(1)'}
{'d(2)'}
S.OutputName
ans = 2x1 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 = 2x1 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 = 4x1 cell
{'setpoint(1)'}
{'setpoint(2)'}
{'alpha' }
{'q' }
S.OutputName
ans = 2x1 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.InputName
ans = 4x1 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 = 4x1 cell
{'refcur' }
{'reftemp'}
{'current'}
{'temp' }
입력 인수
formula
— 합산점의 입력 신호 및 출력 신호에 관한 방정식
string형 | 문자형 벡터
합산점 전달 함수 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
에 동일한 차원을 할당합니다. 예제는 벡터 값 신호를 사용하여 합산점에서 개별 이름 지정하기 항목을 참조하십시오.
signalsize
— 각 신호의 요소 개수
1 (디폴트 값) | 양의 정수
S
의 각 입력 신호와 출력 신호에 있는 요소 개수로, 양의 정수로 지정됩니다. signalsize
를 1보다 큰 값으로 설정하면 벡터 값 신호에 대해 연산을 수행하는 합산점을 지정할 수 있습니다. 예를 들어 S = sumblk("e = r - y",2)
는 입력 r
과 y
, 출력 e
가 2개의 요소를 갖는 벡터 신호인 합산점을 만듭니다. 벡터 값 신호를 갖는 합산점 항목을 참조하십시오.
signames
— 자리 표시자에 대입할 신호 이름
string형 배열 | 문자형 벡터로 구성된 셀형 배열
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
인수의 신호 개수가 같아야 합니다.
출력 인수
S
— 합산점의 전달 함수
tf
모델
합산점의 전달 함수로, 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 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)