State-Space
선형 상태공간 시스템 구현
- 라이브러리:
Simulink / Continuous

설명
State-Space 블록은 다음과 같이 정의되는 동작을 갖는 시스템을 구현합니다.
여기서 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 행렬을 빈 행렬로 설정합니다. 이 경우 블록은 입력 포트가 없고 출력 포트가 하나인 소스 블록 역할을 하며 다음과 같은 시스템을 구현합니다.
Simulink®는 효율적인 곱셈을 위해 0이 포함된 행렬을 희소 행렬로 변환합니다.
포트
입력
출력
파라미터
A
— 행렬 계수 A
1
(디폴트 값) | 스칼라 | 벡터 | 행렬 | 희소 행렬
행렬 계수 A
를 실수 값 n×n 행렬로 지정합니다. 여기서 n은 상태 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: A |
유형: 문자형 벡터, string형 |
값: 스칼라 | 벡터 | 행렬 | 희소 행렬 |
디폴트 값: '1' |
B
— 행렬 계수 B
1
(디폴트 값) | 스칼라 | 벡터 | 행렬 | 희소 행렬
행렬 계수 B
를 실수 값 n×m 행렬로 지정합니다. 여기서 n은 상태 개수이고 m은 입력 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: B |
유형: 문자형 벡터, string형 |
값: 스칼라 | 벡터 | 행렬 | 희소 행렬 |
디폴트 값: '1' |
C
— 행렬 계수, C
1
(디폴트 값) | 스칼라 | 벡터 | 행렬 | 희소 행렬
행렬 계수 C를 실수 값 r×n 행렬로 지정합니다. 여기서 r은 출력 개수이고 n은 상태 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: C |
유형: 문자형 벡터, string형 |
값: 스칼라 | 벡터 | 행렬 | 희소 행렬 |
디폴트 값: '1' |
D
— 행렬 계수 D
1
(디폴트 값) | 스칼라 | 벡터 | 행렬 | 희소 행렬
행렬 계수 D를 실수 값 r×m 행렬로 지정합니다. 여기서 r은 출력 개수이고 m은 입력 개수입니다. 행렬 계수에 대한 자세한 내용은 설명 항목을 참조하십시오.
프로그래밍 방식의 사용법
블록 파라미터: D |
유형: 문자형 벡터, string형 |
값: 스칼라 | 벡터 | 행렬 | 희소 행렬 |
디폴트 값: '1' |
초기 조건
— 초기 상태 벡터
0
(디폴트 값) | 스칼라 | 벡터
초기 상태 벡터를 지정합니다.
제한 사항
이 블록의 초기 조건은 inf
또는 NaN
일 수 없습니다.
프로그래밍 방식의 사용법
블록 파라미터: X0
|
유형: 문자형 벡터, string형 |
값: 스칼라 | 벡터 |
디폴트 값: '0' |
파라미터 조정 가능성
— 블록 파라미터의 조정 가능한 표현 선택
Auto
(디폴트 값) | Optimized
| Unconstrained
가속화된 시뮬레이션 모드 및 Simulink Compiler™를 사용하여 배포된 시뮬레이션에서 상태공간 행렬(A, B, C, D)의 조정 가능성 수준입니다. 자동
으로 설정된 경우 Simulink가 적절한 파라미터 조정 가능성 수준을 선택합니다.
희소 행렬 계수의 경우, 0이 아닌 요소의 패턴과 개수를 일정하게 유지하면서 0이 아닌 요소의 조정 가능성을 허용하려면 파라미터를 최적화됨
으로 설정하십시오. 0이 아닌 요소의 개수가 일정하게 유지되는 한 모든 요소를 조정 가능하도록 허용하려면 이 파라미터를 제약 없음
으로 설정하십시오. 즉, 희소 행렬의 패턴을 변경할 수 있습니다.
조밀 행렬 계수의 경우, 행렬에 처음에 지정했던 0이 아닌 요소의 개수가 일정하게 유지된다는 가정 하에 모든 행렬 요소의 조정 가능성을 허용하려면 최적화됨
을 선택하십시오. 모든 행렬 요소의 조정 가능성을 완전히 허용하려면 이 파라미터를 제약 없음
으로 설정하십시오.
참고
D = 0일 때 블록의 D 행렬을 조정하려면 처음에 0으로 지정했던 D 행렬에 0이 아닌 값 허용 파라미터를 활성화해야 합니다.
프로그래밍 방식의 사용법
블록 파라미터: ParameterTunability
|
유형: 문자형 벡터 | string형 |
값: 'Auto' | 'Optimized' | 'Unconstrained' |
디폴트 값: 'Auto' |
처음에 0으로 지정했던 D 행렬에 0이 아닌 값 허용
— D = 0일 때 D 행렬의 조정 가능성 허용
off
(디폴트 값) | on
D = 0일 때에도 D의 조정 가능성을 지원하려면 이 파라미터를 활성화합니다.
참고
이 파라미터를 활성화하면 State-Space 블록에 대한 직접 피드스루가 활성화됩니다.
프로그래밍 방식의 사용법
블록 파라미터: AllowTunableDMatrix
|
유형: 문자형 벡터 | string형 |
값: 'off' | 'on' |
디폴트 값: 'off' |
절대 허용오차
— 블록 상태 계산을 위한 절대 허용오차
auto
(디폴트 값) | 스칼라 | 벡터
블록 상태 계산을 위한 절대 허용오차로, 양의 실수 값 스칼라 또는 벡터로 지정됩니다. 구성 파라미터에서 절대 허용오차를 상속하려면 auto
또는 -1
을 지정하십시오.
실수형 스칼라를 입력하면 모든 블록 상태를 계산할 때 구성 파라미터 대화 상자의 절대 허용오차가 이 값으로 재정의됩니다.
실수형 벡터를 입력하면 해당 벡터의 차원이 블록의 연속 상태 차원과 일치해야 합니다. 구성 파라미터 대화 상자의 절대 허용오차가 이 값으로 재정의됩니다.
auto
또는 –1을 입력하면 Simulink는 구성 파라미터 대화 상자(Solver Pane 참조)의 절대 허용오차 값을 사용하여 블록 상태를 계산합니다.
프로그래밍 방식의 사용법
블록 파라미터: AbsoluteTolerance |
유형: 문자형 벡터, string형 |
값: 'auto' | '-1' | 임의의 양의 실수 값 스칼라 또는 벡터 |
디폴트 값: 'auto' |
상태 이름(예: 'position')
— 각 상태에 고유한 이름 할당
' '
(디폴트 값) | 'position'
| {'a', 'b', 'c'}
| a
| ...
각 상태에 고유한 이름을 할당합니다. 이 필드가 비어 있으면(' '
) 이름 할당이 발생하지 않습니다.
하나의 상태에 이름을 할당하려면 따옴표 사이에 이름을 입력하십시오(예:
'position'
).여러 상태에 이름을 할당하려면 쉼표로 구분된 목록을 중괄호로 묶어서 입력하십시오(예:
{'a', 'b', 'c'}
). 각 이름은 고유해야 합니다.MATLAB® 작업 공간에서 상태 이름을 변수로 할당하려면 따옴표 없이 변수를 입력합니다. 변수는 문자형 벡터, string형, 셀형 배열 또는 구조체일 수 있습니다.
제한 사항
상태 이름은 선택된 블록에만 적용됩니다.
상태의 개수는 상태 이름의 개수 간에 균등하게 나뉘어야 합니다.
상태보다 이름을 더 적게 지정할 수 있지만 상태보다 이름을 더 많이 지정할 수는 없습니다.
예를 들어, 상태가 4개 있는 시스템에서 2개의 이름을 지정할 수 있습니다. 첫 번째 이름은 처음 두 상태에 적용되고 두 번째 이름은 마지막 두 상태에 적용됩니다.
프로그래밍 방식의 사용법
블록 파라미터: ContinuousStateAttributes |
유형: 문자형 벡터, string형 |
값: ' ' | 사용자 정의 |
디폴트 값: ' ' |
모델 예제
블록 특성
데이터형 |
|
직접 피드스루 |
|
다차원 신호 |
|
가변 크기 신호 |
|
영점교차 검출 |
|
확장 기능
C/C++ 코드 생성
Simulink® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
프로덕션 품질 코드에는 권장되지 않습니다. 이는 임베디드 시스템에서 종종 발견되는 리소스 제한과 속도 및 메모리 제한 사항과 관련이 있습니다. 생성된 코드에는 메모리의 동적 할당 및 해제, 재귀, 추가적인 메모리 오버헤드, 매우 가변적인 실행 시간이 포함될 수 있습니다. 이러한 코드는 기능적으로 유효하며 일반적으로 리소스가 풍부한 환경에서는 허용되지만, 더 작은 규모의 임베디드 타깃에서는 지원되지 않을 때가 많습니다.
일반적으로, 연속 블록을 (프로덕션 코드 생성을 지원하는) 상응하는 이산 블록에 매핑하려면 Simulink 모델 이산화를 사용해 보십시오. 모델 이산화를 시작하려면 Simulink 편집기의 앱 탭에서 앱 아래의 제어 시스템 아래에서 모델 이산화를 클릭하십시오. 단, Second-Order Integrator 블록에 대해서는 모델 이산화가 근사 이산화를 생성하기 때문에 이 블록은 예외입니다.
버전 내역
R2006a 이전에 개발됨
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)