ss2tf
상태공간 표현식(State-Space Representation)을 전달 함수로 변환하기
설명
예제
질량-스프링 시스템(Mass-Spring System)
1차원의 이산시간 진동 시스템은 단위 탄성 상수를 갖는 스프링으로 벽에 연결된 단위 질량 으로 구성됩니다. 센서가 질량의 가속도 를 Hz로 샘플링합니다.
50개의 시간 샘플을 생성합니다. 샘플링 간격 을 정의합니다.
Fs = 5; dt = 1/Fs; N = 50; t = dt*(0:N-1);
진동자는 상태공간 방정식(State-Space Equation)으로 설명할 수 있습니다.
여기서 은 상태 벡터로, 과 는 질량의 위치와 속도를 각각 나타내고, 행렬은 다음과 같습니다.
A = [cos(dt) sin(dt);-sin(dt) cos(dt)]; B = [1-cos(dt);sin(dt)]; C = [-1 0]; D = 1;
시스템에 양의 방향으로 단위 임펄스를 가합니다. 상태공간 모델을 사용하여 모든 초기 상태값이 0인 시공간 시스템의 변화를 계산합니다.
u = [1 zeros(1,N-1)]; x = [0;0]; for k = 1:N y(k) = C*x + D*u(k); x = A*x + B*u(k); end
질량의 가속도를 시간 함수로 플로팅합니다.
stem(t,y,'filled') xlabel('t')
전달 함수 H(z)를 사용하여 시간 종속 가속도를 계산하여 입력값을 필터링합니다. 결과를 플로팅합니다.
[b,a] = ss2tf(A,B,C,D); yt = filter(b,a,u); stem(t,yt,'filled') xlabel('t')
시스템의 전달 함수는 다음과 같은 해석적 표현을 갖습니다.
표현식을 사용하여 입력값을 필터링합니다. 응답을 플로팅합니다.
bf = [1 -(1+cos(dt)) cos(dt)]; af = [1 -2*cos(dt) 1]; yf = filter(bf,af,u); stem(t,yf,'filled') xlabel('t')
결과는 세 가지 경우 모두 동일합니다.
2체(Two-Body) 진동자
이상적인 1차원 진동 시스템은 두 벽 사이에 있는 두 개의 단위 질량 과 로 구성됩니다. 각 질량은 단위 탄성 상수를 갖는 스프링으로 가장 가까운 벽에 연결됩니다. 이러한 또 다른 스프링이 두 질량을 연결합니다. 센서가 질량의 가속도인 과 를 Hz로 샘플링합니다.
총 측정 시간을 16초로 지정합니다. 샘플링 간격 을 정의합니다.
Fs = 16; dt = 1/Fs; N = 257; t = dt*(0:N-1);
시스템은 다음 상태공간 모델로 설명할 수 있습니다.
여기서 은 상태 벡터로, 와 는 각각 번째 질량의 위치와 속도를 나타냅니다. 입력 벡터 이고 출력 벡터 입니다. 상태공간 행렬은 다음과 같습니다.
연속시간 상태공간 행렬은 다음과 같습니다.
는 적절한 크기의 단위 행렬을 나타냅니다.
Ac = [0 1 0 0; -2 0 1 0; 0 0 0 1; 1 0 -2 0]; A = expm(Ac*dt); Bc = [0 0; 1 0; 0 0; 0 1]; B = Ac\(A-eye(4))*Bc; C = [-2 0 1 0; 1 0 -2 0]; D = eye(2);
첫 번째 질량 이 양의 방향으로 단위 임펄스를 받습니다.
ux = [1 zeros(1,N-1)]; u0 = zeros(1,N); u = [ux;u0];
모델을 사용하여 모든 항목이 0인 초기 상태에서 시스템의 시간 변화를 계산합니다.
x = [0 0 0 0]'; y = zeros(2,N); for k = 1:N y(:,k) = C*x + D*u(:,k); x = A*x + B*u(:,k); end
두 질량의 가속도를 시간 함수로 플로팅합니다.
stem(t,y','.') xlabel('t') legend('a_1','a_2') title('Mass 1 Excited') grid
시스템을 전달 함수 표현식으로 변환합니다. 시스템이 첫 번째 질량에 양의 단위 임펄스를 받아 어떤 반응을 하는지 알아봅니다.
[b1,a1] = ss2tf(A,B,C,D,1); y1u1 = filter(b1(1,:),a1,ux); y1u2 = filter(b1(2,:),a1,ux);
결과를 플로팅합니다. 전달 함수를 사용해도 상태공간 모델을 사용한 것과 반응이 동일합니다.
stem(t,[y1u1;y1u2]','.') xlabel('t') legend('a_1','a_2') title('Mass 1 Excited') grid
시스템이 초기 구성으로 초기화됩니다. 이제 다른 질량 가 양의 방향으로 단위 임펄스를 받습니다. 시스템의 시간 변화를 계산합니다.
u = [u0;ux]; x = [0;0;0;0]; for k = 1:N y(:,k) = C*x + D*u(:,k); x = A*x + B*u(:,k); end
가속도를 플로팅합니다. 각 질량의 반응이 바뀝니다.
stem(t,y','.') xlabel('t') legend('a_1','a_2') title('Mass 2 Excited') grid
시스템이 두 번째 질량에 양의 단위 임펄스를 받아 어떤 반응을 하는지 알아봅니다.
[b2,a2] = ss2tf(A,B,C,D,2); y2u1 = filter(b2(1,:),a2,ux); y2u2 = filter(b2(2,:),a2,ux);
결과를 플로팅합니다. 전달 함수를 사용해도 상태공간 모델을 사용한 것과 반응이 동일합니다.
stem(t,[y2u1;y2u2]','.') xlabel('t') legend('a_1','a_2') title('Mass 2 Excited') grid
입력 인수
A
— 상태 행렬
행렬
상태 행렬로, 행렬로 지정됩니다. 시스템이 p개 입력값과 q개 출력값을 갖고 n 상태 변수로 설명될 경우 A
는 n×n입니다.
데이터형: single
| double
B
— 입력-상태 행렬
행렬
입력-상태 행렬로, 행렬로 지정됩니다. 시스템이 p개 입력값과 q개 출력값을 갖고 n 상태 변수로 설명될 경우 B
는 n×p입니다.
데이터형: single
| double
C
— 상태-출력 행렬
행렬
상태-출력 행렬로, 행렬로 지정됩니다. 시스템이 p개 입력값과 q개 출력값을 갖고 n 상태 변수로 설명될 경우 C
는 q×n입니다.
데이터형: single
| double
D
— 피드스루 행렬
행렬
피드스루 행렬로, 행렬로 지정됩니다. 시스템이 p개 입력값과 q개 출력값을 갖고 n 상태 변수로 설명될 경우 D
는 q×p입니다.
데이터형: single
| double
ni
— 입력 인덱스
1 (디폴트 값) | 정수 스칼라
입력 인덱스로, 정수 스칼라로 지정됩니다. 시스템이 p개 입력값을 가지면 ss2tf
에 후행 인수 ni
= 1, …, p를 사용하여 ni
번째 입력값에 적용된 단위 임펄스에 대한 응답을 계산합니다.
데이터형: single
| double
출력 인수
b
— 전달 함수의 분자 계수
벡터 | 행렬
전달 함수의 분자 계수로, 벡터나 행렬로 반환됩니다. 시스템이 p개 입력값과 q개 출력값을 갖고 n 상태 변수로 설명될 경우, 각 입력값에 대해 b
는 q×(n+1)입니다. 계수는 내림차순으로 정렬된 s 또는 z로 반환됩니다.
a
— 전달 함수의 분모 계수
벡터
전달 함수의 분모 계수로, 벡터로 반환됩니다. 시스템이 p개 입력값과 q개 출력값을 갖고 n 상태 변수로 설명될 경우 각 입력값에 대해 a
는 1×(n+1)입니다. 계수는 내림차순으로 정렬된 s 또는 z로 반환됩니다.
세부 정보
전달 함수
이산시간 시스템에서 상태공간 행렬은 상태 벡터 x, 입력값 u, 출력값 y의 관계를 다음과 같이 규정합니다.
전달 함수는 시스템의 임펄스 반응에 대한 Z 변환입니다. 또한 상태공간 행렬로 다음과 같이 표현할 수 있습니다.
연속시간 시스템에서 상태공간 행렬은 상태 벡터 x, 입력값 u, 출력값 y의 관계를 다음과 같이 규정합니다.
전달 함수는 시스템의 임펄스 반응에 대한 라플라스 변환입니다. 또한 상태공간 행렬로 다음과 같이 표현할 수 있습니다.
버전 내역
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)