주요 콘텐츠

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는 시스템 방정식의 항 계수를 포함하는 행렬입니다.

State-Space 블록을 사용하여 시불변 선형 음함수 시스템과 시변 선형 음함수 시스템을 모두 모델링할 수 있습니다.

  • 시불변 시스템을 모델링하려면 A, B, C, D 파라미터를 상수 행렬로 지정합니다.

  • 시변 시스템을 모델링하려면 시뮬레이션 중에 A, B, C, D 파라미터를 조정합니다.

연속 선형 음함수 시스템을 모델링하려면 Descriptor State-Space 블록을 사용합니다.

시스템 행렬 지정하기

시스템을 모델링하려면 A, B, C, D 파라미터를 사용하여 시스템 행렬을 지정합니다. 희소 행렬 또는 비희소 행렬을 지정할 수 있습니다. 기본적으로 MATLAB®은 비희소 행렬을 생성합니다. 자세한 내용은 희소 행렬 생성하기 항목을 참조하십시오.

  • 비희소 행렬을 희소 행렬로 변환하려면 sparse 함수를 사용합니다.

  • 희소 행렬을 비희소 행렬로 변환하려면 full 함수를 사용합니다.

  • 행렬이 희소 행렬인지 확인하려면 issparse 함수를 사용합니다.

시스템의 상태 개수, 입력 개수, 출력 개수가 시스템 행렬의 차원을 결정합니다.

  • An×n. 여기서 n은 시스템의 상태 개수입니다.

  • Bn×m. 여기서,

    • n은 시스템의 상태 개수입니다.

    • m은 시스템 입력의 개수입니다.

  • Cr×n. 여기서,

    • r은 시스템 출력의 개수입니다.

    • n은 시스템의 상태 개수입니다.

  • Dr×m. 여기서,

    • r은 시스템 출력의 개수입니다.

    • m은 시스템 입력의 개수입니다.

다음 이미지는 시스템 행렬의 차원이 서로 어떻게 관련되어 있는지 보여줍니다.

Diagram of system matrices arranged such that common dimensions are adjacent.

예제

모두 확장

자율 선형 시스템은 입력이 없는 시스템입니다. 자율 선형 시스템을 구현할 때는 해당 블록이 소스 블록으로 동작합니다.

자율 선형 시스템을 모델링하려면 B 파라미터와 D 파라미터를 빈 행렬로 지정합니다.

블록은 다음 형식의 방정식을 갖는 시스템을 구현합니다.

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

확장 예제

포트

입력

모두 확장

입력값은 실수여야 합니다. 입력 신호의 차원은 시스템 입력 개수와 일치해야 합니다.

  • 시스템이 하나의 입력을 갖는 경우 스칼라 신호를 연결합니다.

  • 시스템이 여러 개의 입력을 갖는 경우 각 시스템 입력에 대한 요소를 포함하는 벡터 신호를 연결합니다.

종속성

다음과 같은 경우 이 포트에 직접 피드스루가 있습니다.

  • 직접 피드스루 파라미터를 True로 설정하는 경우.

  • 사용자가 직접 피드스루 파라미터를 Auto로 설정하고, 소프트웨어가 블록에 직접 피드스루가 있다고 확인한 경우.

데이터형: double

출력

모두 확장

출력 신호의 차원은 시스템 출력 개수와 일치합니다.

  • 시스템이 하나의 출력을 갖는 경우 블록은 스칼라 신호를 생성합니다.

  • 시스템이 여러 개의 출력을 갖는 경우 블록은 각 시스템 출력에 대한 요소를 포함하는 벡터 신호를 생성합니다.

데이터형: double

파라미터

모두 확장

다음 특징의 행렬을 지정합니다.

  • 실수 값만 포함함.

  • 차원이 n×n임. 여기서 n은 시스템의 상태 개수임.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: A
값: '1' (디폴트 값) | scalar | vector | matrix
데이터형: string | char

예: set_param("MyModel/State-Space",A="[1 2;3 4]")

다음 특징의 행렬을 지정합니다.

  • 실수 값만 포함함.

  • 차원이 n×m임. 여기서 n은 시스템의 상태 개수이고 m은 시스템 입력의 개수임.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: B
값: '1' (디폴트 값) | scalar | vector | matrix
데이터형: string | char

예: set_param("MyModel/State-Space",B="[1 2]")

다음 특징의 행렬을 지정합니다.

  • 실수 값만 포함함.

  • 차원이 r×n임. 여기서 r은 시스템 출력의 개수이고 n은 시스템의 상태 개수임.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: C
값: '1' (디폴트 값) | scalar | vector | matrix
데이터형: string | char

예: set_param("MyModel/State-Space",C="[3 4]")

다음 특징의 행렬을 지정합니다.

  • 실수 값만 포함함.

  • 차원이 r×m임. 여기서 r은 시스템 출력의 개수이고 m은 시스템 입력의 개수임.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: D
값: '1' (디폴트 값) | scalar | vector | matrix
데이터형: string | char

예: set_param("MyModel/State-Space",D="5")

시스템을 초기화하려면 시스템 상태의 초기값을 지정하십시오. 상태는 Inf 또는 NaN 값을 가질 수 없습니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: InitialCondition
값: '0' (디폴트 값) | scalar | vector | matrix
데이터형: string | char

예: set_param("MyModel/Descriptor State-Space",InitialCondition="[2 3]")

또는 X0을 사용하십시오.

시변 시스템을 모델링하려면 시뮬레이션 중에 시스템 행렬 파라미터를 조정하면 됩니다. 이 파라미터는 컴파일된 모델 또는 액셀러레이터 및 고속 액셀러레이터 시뮬레이션의 시뮬레이션 타깃에서 시스템 행렬 파라미터를 어떻게 표현할지 지정합니다.

  • 자동 — 시스템 행렬을 분석하여 조정 가능형 파라미터의 표현 방식을 결정합니다.

  • 최적화됨 — 시뮬레이션 실행을 위한 파라미터 표현을 최적화합니다.

    이 옵션은 성능을 향상시키지만, 시뮬레이션 중에 파라미터를 조정할 때 지정할 수 있는 값에 대해 추가적인 제약이 적용됩니다.

  • 제약 없음 — 시뮬레이션 실행을 위한 파라미터 표현을 최적화하지 않습니다.

    이 옵션은 시뮬레이션 중에 파라미터를 조정할 때 지정할 수 있는 값에 대한 제약이 가장 적습니다.

시스템 행렬 파라미터를 조정할 때 지정할 수 있는 값은 이 파라미터의 값에 따라 달라지며, 시스템 행렬의 초기값이 희소 행렬로 지정되었는지 아니면 비희소 행렬로 지정되었는지에 따라 달라집니다.

초기 행렬 파라미터 값최적화됨 파라미터 조정 가능성제약 없음 파라미터 조정 가능성
희소 행렬

행렬 패턴이 고정됩니다. 초기 행렬에서 0이 아닌 값을 가진 요소만 조정 가능합니다.

행렬 패턴은 변경될 수 있지만 행렬에서 0이 아닌 요소 개수는 증가할 수 없습니다.

비희소 행렬

행렬 패턴은 변경될 수 있지만 행렬에서 0이 아닌 요소 개수는 증가할 수 없습니다.

행렬의 모든 요소가 변경될 수 있습니다.

종속성

초기 파라미터 값이 0인 경우 시뮬레이션 중에 D 파라미터를 조정하려면 처음에 0으로 지정했던 D 행렬에 0이 아닌 값 허용을 활성화하십시오.

Parameter Writer 블록을 사용하여 시스템 행렬을 조정하려면 파라미터를 비희소 행렬로 지정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: ParameterTunability
값: 'Auto' (디폴트 값) | "Optimized" | "Unconstrained"

예: set_param("MyModel/State-Space",ParameterTunability="Optimized")

기본적으로, 초기값이 0이면 시뮬레이션 중에 D 파라미터를 조정할 수 없습니다. 초기값이 0일 때 시뮬레이션 중에 D 파라미터를 조정할 수 있도록 하려면 이 파라미터를 선택하십시오.

종속성

이 파라미터를 활성화하면 블록이 직접 피드스루를 갖습니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: AllowTunableDMatrix
값: 'off' (디폴트 값) | "on"

예: set_param("MyModel/State-Space",AllowTunableMatrix="Optimized")

가변 스텝 솔버는 스텝 크기를 선택할 때 상태 계산의 오류가 허용되는지를 결정하기 위해 절대 허용오차와 상대 허용오차를 사용합니다. 이 파라미터는 이 블록에 의해 구현된 시스템의 상태에 사용할 절대 허용오차를 지정합니다.

  • auto절대 허용오차 구성 파라미터로 지정된 절대 허용오차를 사용합니다.

  • 양의 실수형 스칼라 — 지정된 값을 모든 상태에 대한 절대 허용오차로 사용합니다.

  • 양의 실수형 벡터 — 각 상태에 대한 절대 허용오차를 지정합니다. 벡터의 요소 개수는 시스템의 상태 개수와 같아야 합니다.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: AbsoluteTolerance
값: 'auto' (디폴트 값) | "-1" | positive real scalar | positive real vector
데이터형: string | char

예: set_param("MyModel/Descriptor State-Space",AbsoluteTolerance="-1")

시스템의 각 상태에 대해 사용자 지정 이름을 지정하지 않으면 다음이 적용됩니다.

  • 지정된 각 이름이 둘 이상의 상태에 사용됩니다.

  • 상태의 개수는 지정된 이름의 개수로 온전히 나누어져야 합니다.

예를 들어, 시스템에 4개의 상태가 있는 경우 이름을 1개, 2개 또는 4개 지정해야 합니다. 이름을 2개 지정하면 처음 2개의 상태가 첫 번째 이름을 사용하고 나머지 2개의 상태가 두 번째 이름을 사용합니다.

속성 인스펙터 또는 블록 파라미터 대화 상자를 사용하여 하나의 사용자 지정 상태 이름을 지정하려면 이름을 작은따옴표('')로 묶으십시오. 예를 들어, 이름 position을 지정하려면 'position'을 입력하십시오. 작은따옴표를 생략하면 값이 MATLAB 변수의 이름으로 해석됩니다.

디폴트 상태 이름을 사용하려면 이 파라미터를 빈 문자형 벡터로('')로 지정하십시오.

프로그래밍 방식의 사용법

프로그래밍 방식으로 블록 파라미터 값을 설정하려면 set_param 함수를 사용하십시오.

프로그래밍 방식으로 블록 파라미터 값을 가져오려면 get_param 함수를 사용하십시오.

파라미터: ContinuousStateAttributes
값: '' (디폴트 값)
데이터형: char | cell

예: set_param("MyModel/Descriptor State-Space",ContinuousStateAttributes={'position','velocity'})

블록 특성

데이터형

double

직접 피드스루

다차원 신호

아니요

가변 크기 신호

아니요

영점교차 검출

아니요

확장 기능

모두 확장

버전 내역

R2006a 이전에 개발됨