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
로 지정하십시오.
절대 허용오차 구성 파라미터에 지정된 값을 재정의하는 이 블록의 절대 허용오차를 지정하려면 다음을 수행하십시오.
모든 블록 상태를 계산하는 데 사용할 양의 실수형 스칼라 값을 입력합니다.
블록의 연속 상태 차원과 일치하는 차원을 가진 실수형 벡터를 입력합니다.
프로그래밍 방식의 사용법
블록 파라미터: AbsoluteTolerance |
유형: string형 | 문자형 벡터 |
값: 'auto' | '-1' | 양의 실수형 스칼라 | 양의 실수형 스칼라로 구성된 벡터 |
디폴트 값: 'auto' |
상태 이름(예: 'position') — 상태에 고유한 이름을 할당하는 옵션
' '
(디폴트 값) | 문자형 벡터 | 문자형 벡터로 구성된 셀형 배열 | MATLAB® 변수 | ...
이 블록의 상태에 선택적으로 이름을 할당하려면 이 파라미터를 사용하십시오. 할당한 이름은 이 블록의 상태에만 적용됩니다.
디폴트 상태 이름을 사용하려면 이 필드를 비워 두십시오(
''
).하나의 상태에 하나의 이름을 할당하려면 따옴표 사이에 이름을 입력하십시오. 예를 들어, 단일 상태의 이름을
position
으로 지정하려면"position"
을 입력합니다.여러 상태에 이름을 할당하려면 이 파라미터 값을 문자형 벡터로 구성된 셀형 배열로 지정하십시오. 셀형 배열의 이름은 서로 달라야 합니다. 예를 들어,
a
,b
,c
라는 이름을 할당하려면{'a','b','c'}
를 입력합니다.MATLAB 변수를 사용하여 이름을 지정하려면 따옴표 없이 변수 이름을 입력하십시오. 예를 들어, 변수
names
를 사용하여 상태 이름을 지정하려면names
를 입력합니다.
블록의 상태 개수보다 적은 수의 이름을 지정할 수 있습니다. 이 경우 상태 이름은 여러 상태에 사용되며 상태 개수는 상태 이름 개수로 균등하게 나눠야 합니다. 예를 들어, 상태가 4개인 블록에 이름을 2개 지정하면 첫 번째 이름은 처음 2개의 상태에 사용되고 두 번째 이름은 나머지 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)