Main Content

State-Space

선형 상태공간 시스템 구현

  • State-Space block

라이브러리:
Simulink / Continuous

설명

State-Space 블록은 다음과 같이 정의되는 동작을 갖는 시스템을 구현합니다.

x˙=Ax+Buy=Cx+Dux|t=t0=x0,

여기서 x는 상태 벡터, u는 입력 벡터, y는 출력 벡터, x0은 상태 벡터의 초기 조건입니다. A, B, C, D 행렬은 희소 행렬이나 조밀 행렬로 지정할 수 있습니다. 행렬 계수에는 다음과 같은 특성이 있어야 합니다.

  • A는 n×n 행렬이어야 합니다. 여기서 n은 상태 개수입니다.

  • B는 n×m 행렬이어야 합니다. 여기서 m은 입력 개수입니다.

  • C는 r×n 행렬이어야 합니다. 여기서 r은 출력 개수입니다.

  • D는 r×m 행렬이어야 합니다.

일반적으로 블록은 하나의 입력 포트와 하나의 출력 포트를 갖습니다. C 행렬 또는 D 행렬의 행 개수는 출력 포트의 너비와 동일합니다. B 행렬 또는 D 행렬의 열 개수는 입력 포트의 너비와 동일합니다. 입력이 없는 자율 선형 시스템을 모델링하려면 B 행렬과 D 행렬을 빈 행렬로 설정합니다. 이 경우 블록은 입력 포트가 없고 출력 포트가 하나인 소스 블록 역할을 하며 다음과 같은 시스템을 구현합니다.

x˙=Axy=Cxx|t=t0=x0.

Simulink®는 효율적인 곱셈을 위해 0이 포함된 행렬을 희소 행렬로 변환합니다.

포트

입력

모두 확장

double형의 실수 값 입력 벡터로, 너비가 B 행렬과 D 행렬의 열 개수와 같습니다. 자세한 내용은 설명 항목을 참조하십시오.

데이터형: double

출력

모두 확장

double형의 실수 값 출력 벡터로, 너비가 C 행렬과 D 행렬의 행 개수와 같습니다. 자세한 내용은 설명 항목을 참조하십시오.

데이터형: double

파라미터

모두 확장

행렬 계수 A를 실수 값 n×n 행렬로 지정합니다. 여기서 n은 상태 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: A
유형: 문자형 벡터, string형
값: 스칼라 | 벡터 | 행렬 | 희소 행렬
디폴트 값: '1'

행렬 계수 B를 실수 값 n×m 행렬로 지정합니다. 여기서 n은 상태 개수이고 m은 입력 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: B
유형: 문자형 벡터, string형
값: 스칼라 | 벡터 | 행렬 | 희소 행렬
디폴트 값: '1'

행렬 계수 C를 실수 값 r×n 행렬로 지정합니다. 여기서 r은 출력 개수이고 n은 상태 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: C
유형: 문자형 벡터, string형
값: 스칼라 | 벡터 | 행렬 | 희소 행렬
디폴트 값: '1'

행렬 계수 D를 실수 값 r×m 행렬로 지정합니다. 여기서 r은 출력 개수이고 m은 입력 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.

프로그래밍 방식의 사용법

블록 파라미터: D
유형: 문자형 벡터, string형
값: 스칼라 | 벡터 | 행렬 | 희소 행렬
디폴트 값: '1'

초기 상태 벡터를 지정합니다.

제한 사항

이 블록의 초기 조건은 inf 또는 NaN일 수 없습니다.

프로그래밍 방식의 사용법

블록 파라미터: X0
유형: 문자형 벡터, string형
값: 스칼라 | 벡터
디폴트 값: '0'

가속화된 시뮬레이션 모드 및 Simulink Compiler™를 사용하여 배포된 시뮬레이션에서 상태공간 행렬(A, B, C, D)의 조정 가능성 수준입니다. 자동으로 설정된 경우 Simulink가 적절한 파라미터 조정 가능성 수준을 선택합니다.

희소 행렬 계수의 경우, 0이 아닌 요소의 패턴과 개수를 일정하게 유지하면서 0이 아닌 요소의 조정 가능성을 허용하려면 파라미터를 최적화됨으로 설정하십시오. 0이 아닌 요소의 개수가 일정하게 유지되는 한 모든 요소를 조정 가능하도록 허용하려면 이 파라미터를 제약 없음으로 설정하십시오. 즉, 희소 행렬의 패턴을 변경할 수 있습니다.

조밀 행렬 계수의 경우, 행렬에 처음에 지정했던 0이 아닌 요소의 개수가 일정하게 유지된다는 가정 하에 모든 행렬 요소의 조정 가능성을 허용하려면 최적화됨을 선택하십시오. 모든 행렬 요소의 조정 가능성을 완전히 허용하려면 이 파라미터를 제약 없음으로 설정하십시오.

참고

D = 0일 때 블록의 D 행렬을 조정하려면 처음에 0으로 지정했던 D 행렬에 0이 아닌 값 허용 파라미터를 활성화해야 합니다.

프로그래밍 방식의 사용법

블록 파라미터: ParameterTunability
유형: 문자형 벡터 | string형
값: 'Auto' | 'Optimized' | 'Unconstrained'
디폴트 값: 'Auto'

D = 0일 때에도 D의 조정 가능성을 지원하려면 이 파라미터를 활성화합니다.

참고

이 파라미터를 활성화하면 State-Space 블록에 대한 직접 피드스루가 활성화됩니다.

프로그래밍 방식의 사용법

블록 파라미터: AllowTunableDMatrix
유형: 문자형 벡터 | string형
값: 'off' | 'on'
디폴트 값: 'off'

가변 스텝 솔버는 상태 계산의 오류가 허용되는지를 결정하기 위해 스텝 크기를 선택할 때 절대 허용오차와 상대 허용오차를 사용합니다.

절대 허용오차 구성 파라미터에서 절대 허용오차를 상속하려면 이 파라미터 값을 auto 또는 -1로 지정하십시오.

절대 허용오차 구성 파라미터에 지정된 값을 재정의하는 이 블록의 절대 허용오차를 지정하려면 다음을 수행하십시오.

  • 모든 블록 상태를 계산하는 데 사용할 양의 실수형 스칼라 값을 입력합니다.

  • 블록의 연속 상태 차원과 일치하는 차원을 가진 실수형 벡터를 입력합니다.

프로그래밍 방식의 사용법

블록 파라미터: AbsoluteTolerance
유형: string형 | 문자형 벡터
값: 'auto' | '-1' | 양의 실수형 스칼라 | 양의 실수형 스칼라로 구성된 벡터
디폴트 값: 'auto'

이 블록의 상태에 선택적으로 이름을 할당하려면 이 파라미터를 사용하십시오. 할당한 이름은 이 블록의 상태에만 적용됩니다.

  • 디폴트 상태 이름을 사용하려면 이 필드를 비워 두십시오('').

  • 하나의 상태에 하나의 이름을 할당하려면 따옴표 사이에 이름을 입력하십시오. 예를 들어, 단일 상태의 이름을 position으로 지정하려면 "position"을 입력합니다.

  • 여러 상태에 이름을 할당하려면 이 파라미터 값을 문자형 벡터로 구성된 셀형 배열로 지정하십시오. 셀형 배열의 이름은 서로 달라야 합니다. 예를 들어, a, b, c라는 이름을 할당하려면 {'a','b','c'}를 입력합니다.

  • MATLAB 변수를 사용하여 이름을 지정하려면 따옴표 없이 변수 이름을 입력하십시오. 예를 들어, 변수 names를 사용하여 상태 이름을 지정하려면 names를 입력합니다.

블록의 상태 개수보다 적은 수의 이름을 지정할 수 있습니다. 이 경우 상태 이름은 여러 상태에 사용되며 상태 개수는 상태 이름 개수로 균등하게 나눠야 합니다. 예를 들어, 상태가 4개인 블록에 이름을 2개 지정하면 첫 번째 이름은 처음 2개의 상태에 사용되고 두 번째 이름은 나머지 2개의 상태에 사용됩니다.

프로그래밍 방식의 사용법

블록 파라미터: ContinuousStateAttributes
유형: string형 | 문자형 벡터
값: ' ' | 사용자 정의
디폴트 값: ' '

블록 특성

데이터형

double

직접 피드스루

다차원 신호

아니요

가변 크기 신호

아니요

영점교차 검출

아니요

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

|

도움말 항목