tf2ss
전달 함수 필터 파라미터를 상태공간 형식으로 변환
설명
예제
전달 함수를 상태공간 형식으로 변환하기
다음 전달 함수로 정의되는 시스템이 있다고 가정하겠습니다.
tf2ss
를 사용하여 이 시스템을 상태공간 형식으로 변환합니다.
b = [0 2 3; 1 2 1]; a = [1 0.4 1]; [A,B,C,D] = tf2ss(b,a)
A = 2×2
-0.4000 -1.0000
1.0000 0
B = 2×1
1
0
C = 2×2
2.0000 3.0000
1.6000 0
D = 2×1
0
1
질량-스프링 시스템(Mass-Spring System)
1차원의 이산시간 진동 시스템은 단위 탄성 상수를 갖는 스프링으로 벽에 연결된 단위 질량 으로 구성됩니다. 센서가 질량의 가속도 를 Hz로 샘플링합니다.
50개의 시간 샘플을 생성합니다. 샘플링 간격을 로 정의합니다.
Fs = 5; dt = 1/Fs; N = 50; t = dt*(0:N-1); u = [1 zeros(1,N-1)];
시스템의 전달 함수는 다음과 같은 해석적 표현을 갖습니다.
.
시스템에 양의 방향으로 단위 임펄스를 가합니다. 전달 함수를 사용하여 시스템의 시간 변화를 계산합니다. 응답을 플로팅합니다.
bf = [1 -(1+cos(dt)) cos(dt)]; af = [1 -2*cos(dt) 1]; yf = filter(bf,af,u); stem(t,yf,'o') xlabel('t')
시스템의 상태공간 표현을 구합니다. 모두 0으로 구성된 초기 상태에서 시작하여 시간 변화를 계산합니다. 이를 전달 함수 예측값과 비교합니다.
[A,B,C,D] = tf2ss(bf,af); x = [0;0]; for k = 1:N y(k) = C*x + D*u(k); x = A*x + B*u(k); end hold on stem(t,y,'*') hold off legend('tf','ss')
입력 인수
b
— 전달 함수의 분자 계수
벡터 | 행렬
전달 함수의 분자 계수로, 벡터 또는 행렬로 지정됩니다. b
가 행렬이면 b
의 각 행은 시스템의 출력값에 대응됩니다.
이산시간 시스템의 경우
b
는 z의 거듭제곱 내림차순으로 정렬된 계수를 포함합니다.연속시간 시스템의 경우
b
는 s의 거듭제곱 내림차순으로 정렬된 계수를 포함합니다.
이산시간 시스템의 경우 b
의 열 개수는 a
의 길이와 동일해야 합니다. 개수가 다른 경우 0을 채워서 같게 만드십시오. eqtflength
함수를 사용하여 이를 수행할 수 있습니다.
a
— 전달 함수의 분모 계수
벡터
전달 함수의 분모 계수로, 벡터로 지정됩니다.
이산시간 시스템의 경우
a
는 z의 거듭제곱 내림차순으로 정렬된 계수를 포함합니다.연속시간 시스템의 경우
a
는 s의 거듭제곱 내림차순으로 정렬된 계수를 포함합니다.
출력 인수
A
— 상태 행렬
행렬
상태 행렬로, 행렬로 반환됩니다. 시스템이 n개 상태 변수로 설명될 경우 A
는 n×n입니다.
데이터형: single
| double
B
— 입력-상태 행렬
행렬
입력-상태 행렬로, 행렬로 반환됩니다. 시스템이 n개 상태 변수로 설명될 경우 B
는 n×1입니다.
데이터형: single
| double
C
— 상태-출력 행렬
행렬
상태-출력 행렬로, 행렬로 반환됩니다. 시스템이 q개 출력값을 갖고 n개 상태 변수로 설명될 경우 C
는 q×n입니다.
데이터형: single
| double
D
— 피드스루 행렬
행렬
피드스루 행렬로, 행렬로 반환됩니다. 시스템이 q개 출력값을 가질 경우 D
는 q×1입니다.
데이터형: single
| double
세부 정보
전달 함수
tf2ss
는 지정된 시스템에 대한 전달 함수 표현의 파라미터를 그에 상응하는 상태공간 표현의 파라미터로 변환합니다.
이산시간 시스템에서 상태공간 행렬은 상태 벡터 x, 입력값 u, 출력값 y와 다음 관계를 가집니다.
전달 함수는 시스템의 임펄스 응답에 대한 Z 변환입니다. 또한 상태공간 행렬로 다음과 같이 표현할 수 있습니다.
연속시간 시스템에서 상태공간 행렬은 상태 벡터 x, 입력값 u, 출력값 y와 다음 관계를 가집니다.
전달 함수는 시스템의 임펄스 응답에 대한 라플라스 변환입니다. 또한 상태공간 행렬로 다음과 같이 표현할 수 있습니다.
확장 기능
C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.
버전 내역
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)