• 검색 결과가 없습니다.

▪ 동적 시스템의 주파수 응답 해석 (MATLAB 실습 3)

N/A
N/A
Protected

Academic year: 2022

Share "▪ 동적 시스템의 주파수 응답 해석 (MATLAB 실습 3)"

Copied!
30
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

▪ 동적 시스템의 시간영역 해석 동적 시스템의 주파수 응답 해석

▪ 동적 시스템의 주파수 응답 해석 (MATLAB 실습 3)

Vehicle Dynamics and Control Laboratory

(2)

■ 선형 시간 불변 모델의 time response

함수 내 용

step 계단입력에 대한 선형 시간 불변 모델의 응답을 구한다.

Impulse 충격량 입력에 대한 선형 시간 불변 모델의 응답을 구한다.

Initial 상태방정식으로 표현된 모델의 초기 조건에 의한 과도응답을 구한다.

lsim 임의의 입력에 대한 선형 시간 불변 모델의 응답을 구한다.

time response란 선형 시간 불변 모델에 시간 t의 함수로 표현되는 입력이 가해질

경우에 응답을 시간 t에 대해 구하는 것을 말한다. 보통 time response를 구하는

목적은 delay time rise time peak time max overshoot settling time 등과 같은 과도

목적은 delay time, rise time, peak time, max overshoot, settling time 등과 같은 과도

상태에서 제어 시스템의 성능을 나타내는 값들을 계산하기 위함이다.

(3)

■ step 을 사용한 응답

step : 단위 계단 입력에 대한 응답을 얻고자 할 경우 사용된다.

l 1 사용 예 Example.1 사용 예

step(num,den) % num, den으로 정의된 transfer function에 대한 step response를 그린다.

step(num,den,t) % num, den으로 정의된 transfer function에 대한 step response를 시간 t에 대해 그린다.

step(A,B,C,D) % 상태공간으로 정의된 시스템에 대한 step response를 그린다.

step(A,B,C,D,ui) % 상태공간으로 정의된 시스템의 input ui에 대한 step response를 그린다.

step(A,B,C,D,ui,t) % 상태공간으로 정의된 시스템에 input ui에 대한 step response를 시간 t에 대해 그린다.

(4)

■ step 을 사용한 응답

Example.2

1) m 파일 editor window (명령어 입력)

clear; clc;

% t=0:0.01:10;

[ ]

num=[0 0 25];

den=[1 4 25];

step(num,den); % 단위계단응답

% step(num,den,t); 시간 t에 대한 단위 계단 응답 grid on;

title('unit step response of G(s)=25/(s^2+4s+25)')

(5)

■ step 을 사용한 응답

2) 결과

1.4

unit step response of G(s)=25/(s2+4s+25)

1 1.2

0.6 0.8

Amplitude

0.2 0.4

0 0.5 1 1.5 2 2.5 3

0

Time (sec)

(6)

■ step 을 사용한 응답

Example.3

1) m 파일 editor window (명령어 입력)

clear; clc;

A=[-1 -1; 6.5 0];

B=[1 1; 1 0];

C=[1 0; 0 1];

D=[0 0; 0 0];

figure(1)

step(A,B,C,D,1) % input u1에 대한step response grid on;

grid on;

title('step response plot : input =u1(u2=0)');

figure(2)

step(A,B,C,D,2) % input u2에 대한 step response grid on;

title('step resp nse pl t : input u2(u1 0)');

title('step response plot : input =u2(u1=0)');

figure(3)

step(A,B,C,D) % input u1,u2에 대한 step response grid on;

(7)

■ step 을 사용한 응답

step response plot inp t 1( 2 0) step response plot : input =u2(u1=0)

2) 결과

0 2 0 0.2 0.4

To: Out(1)

step response plot : input =u1(u2=0)

0 1 0 0.1 0.2 0.3

To: Out(1)

-0.4 -0.2

1.5 2

t(2)

Amplitude

-0.2 -0.1

1 1.5 2

ut(2)

Amplitude

0 2 4 6 8 10 12

0 0.5 1

To: Out

Time (sec)

0 2 4 6 8 10 12

0 0.5 1

To: O

Time (sec) Step Response

0 0.2 0.4

From: In(1)

o: Out(1)

From: In(2) Step Response

-0.4 -0.2

T

1.5 2

Amplitude

0 2 4 6 8 10 12

0 0.5 1

To: Out(2)

0 2 4 6 8 10 12

Ti ( )

Time (sec)

(8)

■ impulse를 사용한 응답

impulse : 단위 충격량 입력에 대한 응답을 얻고자 할 경우 사용된다.

l 4 사용 예( 명령문의 경우와 동일하다)

Example.4 사용 예( step 명령문의 경우와 동일하다)

impulse(num,den) % num, den으로 정의된 transfer function에 대한 impulse response를 그린다.

impulse(num,den,t) % num, den으로 정의된 transfer function에 대한 impulse response를 시간 t에 대해 그린다.

impulse( A,B,C,D) % 상태공간으로 정의된 시스템에 대한 impulse response를 그린다.

impulse(A,B,C,D,iu) % 상태공간으로 정의된 시스템의 input iu에 대한 impulse response를 그린다.

impulse(A,B,C,D,iu,t) % 상태공간으로 정의된 시스템에 input iu에 대한 impulse response를 시간 t에 대해 그린다.

(9)

■ initial을 사용한 응답

initial : 상태방정식으로 표현된 모델의 초기 조건에 의한 과도응답을 얻고자 할 경우 사용된다.

이나 i 는 외부 입력에 대한 응답을 구한다 이 때 초기조건은 모두 0으로 step 이나 impulse는 외부 입력에 대한 응답을 구한다. 이 때 초기조건은 모두 0으로 되는데, 초기 조건에 대한 응답을 구하고 싶을 때는 initial 을 사용한다. 즉, initial은 외부 입력이 없다고 하고 단지 초기 조건에 대한 응답만을 구한다.

외부 입력이 없다고 하고 단지 초기 조건에 대한 응답만을 구한다.

이때에는 모델이 상태방정식으로 표현된 모델이어야만 하는데 그 이유는 전달함수

의 경우에는 이미 전달함수를 유도하기 위해 초기조건을 모두 0으로 한다는 가정을

사용했기 때문이다.

(10)

■ initial을 사용한 응답

Example.5 사용 예

Initial( A,B,C,D,x0) % 상태공간으로 정의된 시스템의 초기값 x0에 대한 response를 그린다.

Initial(A,B,C,D,x0, t) % 상태공간으로 정의된 시스템에 input iu에 대한 impulse response를 시간 t에 대해 그린다.

1) m 파일 editor window (명령어 입력)

clear; clc;

A=[-1 -1; 6.5 0];

B=[1 1; 1 0];

C=[1 0; 0 1];

D=[0 0; 0 0];

x0=[1;0]; % x1의 초기값 1, x2의 초기값 0

figure(1)

initial(A,B,C,D,x0);

grid on;

title('initial response plot');

title(initial response plot);

(11)

■ initial을 사용한 응답

2) 결과

0.5 1

t(1)

initial response plot

-1 -0.5 0

To: Out

ude

0 1 2

Out(2)

Amplit

0 2 4 6 8 10 12

-2 -1 0

To: O

Time (sec)

(12)

■ lsim을 사용한 응답

lsim : 임의의 입력에 대한 선형 시간 불변 모델의 응답을 구한다 이나 i l 는 미리 정해진 외부 입력에 대한 응답을 구한다 step 이나 impulse는 미리 정해진 외부 입력에 대한 응답을 구한다.

하지만 lsim은 임의의 입력에 대한 응답 을 구할 수 있다.

E l 6 사용 예

Example.6 사용 예

lsim(num,den,u,t) % transfer function으로 정의된 시스템의 input u에 대한 response를 시간 t에 대해그린다.

lsim(num,den,u,t,x0) % transfer function으로 정의된 시스템의 초기값 x0, input u에 대한 response를 시간 t에 대해그린다.

lsim(A,B,C,D,u,t) % 상태공간으로 정의된 시스템의 input u에 대한 response를 시간 t에 대해그린다.

lsim(A,B,C,D,u,t,x0) % 상태공간으로 정의된 시스템의 초기값 x0, input u에 대한 response를 시간 t에 대해그린다.

(13)

■ lsim을 사용한 응답

Example.7

1) m 파일 editor window (명령어 입력)

clear; clc;

t=0:0.01:10;

A=[-1 -1; 6.5 0];

B=[1 1; 1 0];

C=[1 0; 0 1];

D=[0 0; 0 0];

u=[0*t+2; 0*t+5]; % input u1=2*1(t), u2=5*1(t) u [0 t 2; 0 t 5]; % input u1 2 1(t), u2 5 1(t)

x0=[5;0]; % 초기값 x1=5, x2=0

figure(1)

lsim (A,B,C,D,u,t) % 시간 t에 동안 상태 방정식으로 정의된 시스템의 input u에 대한 response grid on;

title('linear simulation response plot');

title(linear simulation response plot);

figure(2)

lsim (A,B,C,D,u,t,x0) % 시간 t에 동안 상태 방정식으로 정의된 시스템의 input u와 초기값 x0에 대한 response grid on;

grid on;

title('linear simulation response plot');

(14)

■ lsim을 사용한 응답

2) 결과

4 6

linear simulation response plot

4 6

linear simulation response plot

-4 -2 0 2

To: Out(1)

ude

-2 0 2

To: Out(1)

ude 4

10 15 20

To: Out(2)

Amplitu

2

4 6 8 10 12

To: Out(2)

Amplitu

0 1 2 3 4 5 6 7 8 9 10

0 5

T

Time (sec)

0 1 2 3 4 5 6 7 8 9 10

0 2

T 4

Time (sec)

(15)

B-8-9 (MATLAB Program) ( g )

B-8-9. 그림의 기계시스템을 생각해보자. t<0에서는 정지해 있다. 진자 m2가 질량 에 의해 지지되어 있는데 m1은 탄성 연결때문에 진동한다. 시스템의 운동방정식을

유도하라. 변위 x는 t<0 에 대해 평형위치로 부터 측정된다. 각 변위는 진자의 중심 을 통과하는 수직축으로부터 측정된다.

(0) 0.1 , (0) 0 /

(0) 0 (0) 0 /

x m x m s

rad rad s

θ θ

= =

= =

&

&

1 2

(0) 0 , (0) 0 /

10 , 1 , 250 / , 1

rad rad s

m kg m kg k N m l m

θ = θ =

= = = =

(16)

B-8-9 (MATLAB Program) ( g )

d d

1 2 2 2

: ( sin ) 2

x

d d

F m x m x l kx

dt + dt + θ = −

d θ θ d θ θ θ

⎛ + ⎞ + ⎛ ⎞ = −

(17)

B-8-9 (MATLAB Program) ( g )

2 2

1 2 2 2

: ( sin ) 2

x

d d

F m x m x l kx

dt + dt + θ = −

sin θ θ

⎢ ⎥

1 2 2 2

2

1 2

1 2

( sin cos ) 2

( ) 2

x

dt dt

m x m x l l kx

m x m x l kx

θ θ θ θ

θ

+ − ⋅ + ⋅ = −

+ + ⋅ = −

& &&

&& &&

&&

&& && 2

cos 1

0 θ θ

⎢ ≈ ⎥

⎢ ⎥

⎢ ≈ ⎥

⎢ ⎥

( )

1 2

1 2 2

( ) 2

2

m x m x l kx

m m x m l kx

θ θ

+ +

+ && + && = − ⎢ ⎣ θ & 2 ≈ 0 ⎥ ⎦

2 2

2 2 2 2 2

2

: ( sin ) cos ( cos ) sin sin

o

d d

M m x l l m l l m gl

dt θ θ dt θ θ θ

⎛ ⎞ ⎛ ⎞

+ + = −

⎜ ⎟ ⎜ ⎟

⎝ ⎠ ⎝ ⎠

&

(

2

&& ) ( &

2

&& )

2

sin

m ( x l && − θ θ ⋅ + l ) ( )

( ) ( )

2

2 2

2 2 2

cos l cos m l cos l sin l sin m gl sin

m x l l m l l m gl

θ θ θ θ θ θ θ θ θ

θ θ θ θ θ

⋅ ⋅ + − ⋅ − ⋅ = −

+ && + − ⋅ && = −

&&

&&

2

2 2 2

m lx && + m l θ && = − m gl θ

(18)

B-8-9 (MATLAB Program) ( g )

( m 1 m 2 ) x m l 2 θ 2 kx m l 1 θ ( m 1 m 2 ) g θ 2 kx

⎛ + + = − ⎞ ⎛ + + = − ⎞

⎜ ( ) && && ⎟ ⎜ && ( ) ⎟

2

1 2

2 2 2 m x 2 kx m g

m lx m l θ m gl θ θ

⎜ ⎟ ⎜ ⎟

⎜ ⎟ ⇒ ⎜ ⎟

⎜ + = − ⎟ ⎜ + = ⎟

⎝ && && ⎠ ⎝ && ⎠

⎝ ⎠ ⎝ ⎠

1 2

x = x

⎡ ⎤

x &

1

= x

2

⎡ ⎤

⎢ &

1 2

1 2

2 1 3

2 1 1

x x 2 k m

x x x g x

x x m m

let

⎢ ⎥

⎡ = ⎤ ⎢ = = − + ⋅ ⎥

⎢ = ⎥ ⎢ ⎥

⎢ ⎥ ⇒ ⎢ ⎥

⎢ ⎥

& &&

&

1 2

1 2

2 1 3

2 1 1

x x 2 k m

x x x g x

x x m m

let

⎢ ⎥

⎡ = ⎤ ⎢ = = − + ⋅ ⎥

⎢ = ⎥ ⎢ ⎥

⎢ ⎥ ⇒ ⎢ ⎥

⎢ ⎥

& &&

&

3 3 4

1 2

4

4 1 3

2

let x x x

m m

x k

x x g x

m l m l

θ

θ θ

⇒ ⎢ ⎥

⎢ = ⎥ ⎢ = ⎥

⎢ = ⎥ ⎢ + ⎥

⎢ ⎥

⎣ ⎦ ⎢ = = − − ⋅ ⎥

⎣ ⎦

&

& & &&

3 3 4

1 2

4

4 1 3

2

let x x x

m m

x k

x x g x

m l m l

θ

θ θ

⇒ ⎢ ⎥

⎢ = ⎥ ⎢ = ⎥

⎢ = ⎥ ⎢ + ⎥

⎢ ⎥

⎣ ⎦ ⎢ = = − − ⋅ ⎥

⎣ ⎦

&

& & &&

1 1

m l m l

m l

1

m l

1

⎣ ⎦

(19)

B-8-9 (MATLAB Program) ( g )

0 1 0 0

2k 0

⎡ ⎤

⎢ ⎥ ⎡ ⎤

x Ax Bu C D

= +

+

&

2

1 1

2 0

0 0

, 0

0 0 0 1 0

m

k g

m m

A B

⎢ ⎥ ⎡ ⎤

⎢ − ⎥ ⎢ ⎥

⎢ ⎥ ⎢ ⎥

= ⎢ ⎢ ⎥ ⎥ = ⎢ ⎥ ⎢ ⎥

y = Cx + Du

1 2

1 1

0 0 0 0

0

2 k 0 m m 0

m l m l g

⎢ ⎥ ⎢ ⎥ ⎢ ⎥

⎢ − − + ⎥ ⎣ ⎦

⎢ ⎥

⎣ ⎦

1 0 0 0 0

0 0 1 0 , 0

C ⎡ ⎤ D ⎡ ⎤

= ⎢ ⎥ = ⎢ ⎥

⎣ ⎦ ⎣ ⎦

⎡ 0.1 ⎤ (0) 0

x 0

⎡ ⎤

⎢ ⎥

⎢ ⎥

= ⎢ 0 ⎥ 0

⎢ ⎥

⎢ ⎥

⎣ ⎦

(20)

MATLAB Commands (M file Editor Window)

clear;clc;

A=[0 1 0 0;

50 0 1 0 -50 0 1 0;

0 0 0 1;

-50 0 -11 0];

B=[0;0;0;0];

C=[1 0 0 0 ; 0 0 1 0];

D=[0;0];

t=0:0 01:10;

t=0:0.01:10;

u=0*t;

x0=[0.1; 0; 0; 0];

( )

lsim(A,B,C,D,u,t,x0);

% Initial(A,B,C,D,x0);

(21)

Simulation Results

Linear Simulation Results

0 0.1 0.2

Out(1)

Linear Simulation Results

-0.2 -0.1

To:

0.3

Amplitude

0.1 0.2

Response to Initial Conditions

0 0.1 0.2

To: Out(2)

A

-0.1 0

To: Out(1)

e

0 1 2 3 4 5 6 7 8 9 10

-0.2 -0.1

Time (sec)

-0.2

0.1 0.2 0.3

Out(2)

Amplitud

0 1 2 3 4 5 6 7 8 9 10

-0.2 -0.1 To: O 0

Ti ( )

Time (sec)

(22)

B-8-20 (MATLAB Program) ( g )

B-8-20. 문제 B-8-19의 시스템에 대하여 MATLAB으로 시간t에 대한 응답 곡선 x

11

(t), x ( )

22

(t)를 구하여라. ( )

, (0) 0

0 1 0 1

x = Ax + Bu x =

⎡ ⎤ ⎡ ⎤

&

1

0 1 0 1

6 5 , 1 1

2 1( )

A B

u t

u

⎡ ⎤ ⎡ ⎤

= ⎢ ⎣ − − ⎥ ⎦ = ⎢ ⎣ ⎥ ⎦

⎡ ⎤ ⎡ ⋅ ⎤

= ⎢ ⎥ ⎢ = ⎥

2

5 1( )

u = ⎢ ⎥ ⎢ ⎣ ⎦ u = ⎣ ⋅ t ⎥ ⎦

(23)

MATLAB Commands (M file Editor Window)

clear;clc;

A=[0 1; -6 -5];

B [0 1 1 1]

B=[0 1;1 1];

C=[1 0; 0 1];

D=[0 0;0 0];

t=0:0.01:10; % 시간 정의

u1=0*t+2; % u1정의 (그냥 2로 하면 matrix가 아니므로 이런 수식으로 u1을 1X1001 행렬로 만든다.)

u2=0*t+5;

u=[u1;u2];

x0=[0;0]; % 초기값 정의

Figure

% lsim(A,B,C,D,u,t,x0);

y=lsim(A,B,C,D,u,t,x0);

plot(t,y(:,1),'linewidth',2);hold on; %y의 1열의 값을 출력하고, figure창을 그대로 hold (유지) plot(t,y(:,2),'r','linewidth',2); % y의 2열의 값을 출력

grid on

legend('x1','x2');

(24)

Simulation Results

6

x1

0 2 4

x1 x2

-4 -2 0

0 1 2 3 4 5 6 7 8 9 10

-6

2 3

16 17

( ) 11

t t

x t

1

= e

+ e

2 3

2

( ) 11

3 3

( ) 5 22

t

17

t

x t e e

x t e

e

= − +

= − + −

(25)

A-9-16 (MATLAB Program) ( g )

A-9-16. 초기조건이 다음과 같이 주어질 경우 진동을 구하라.

( ) (0) 0 0280 8 & (0) 0 / (0) 0 1 & (0) 0 /

1 2

1 , 2 , 10 / , 40 / m = kg M = kg k = N m k = N m

( ) (0) 0.028078 , (0) 0 / , (0) 0.1 , (0) 0 /

( ) (0) 0.017808 , (0) 0 / , (0) 0.1 , (0) 0 /

a x m x m s y m y m s

b x m x m s y m y m s

= = = =

= = = − =

& &

& &

( ) ( ) , ( ) , y ( ) , y ( )

(26)

A-9-16 (MATLAB Program) ( g )

System equations

1

( )

2

0 (1)

Mx && + k xy + k x = m

y

1

( ) 0 (2)

my && + k yx = State Equation

1 2

x x x x x y

⎧ =

⎪ = ⎪

⎨ = ⎪

&

y

3 4

x y x y

⎪ ⎪ =

⎩ &

M

x ⎧ & x

1

= x

2

x

1 2

1 2 1

2 1 3

x x

k k k

x x x

M M

x x

⎧ ⎪ +

⎪ = − +

⎪ ⎨ =

&

&

3 4

x = x

⎪ ⎪

(27)

A-9-16 (MATLAB Program) ( g )

State Equation

4 1 1 1

x Ax Bu x

y Cx Du u

= + ∈ ×

= + ∈ ×

&

0 1 0 0

0

⎡ ⎤

⎢ ⎥ ⎡ ⎤

1 2 1

0

0 0

, 0

0 0 0 1 0

k k k

M M

A B

⎢ + ⎥ ⎡ ⎤

⎢ − ⎥ ⎢ ⎥

⎢ ⎥ ⎢ ⎥

= ⎢ ⎥ = ⎢ ⎥

⎢ ⎥

1 1

0 0 0 1 0

0 0 0

k k

m m

⎢ ⎥ ⎢ ⎥ ⎢ ⎥

⎢ − ⎥ ⎣ ⎦

⎢ ⎥

⎣ ⎦

1 0 0 0 0

0 0 1 0 , 0

C = ⎡ ⎢ ⎤ ⎥ D = ⎡ ⎤ ⎢ ⎥

⎣ ⎦ ⎣ ⎦

(28)

MATLAB Commands (M file Editor Window)

clear; clc;

A=[0 1 0 0;

-25 0 5 0;

0 0 0 1 0 0 0 1;

10 0 -10 0];

B=[0;0;0;0];

C=[1 0 0 0;[ 0 0 1 0];

D=[0; 0];

x0=[0 028078; 0; 0 1; 0]; %초기값 정의

x0=[0.028078; 0; 0.1; 0]; %초기값 정의

t=0:0.01:10;

y=initial(A,B,C,D,x0,t); % 초기값에 대한 응답을 시간 t동안 계산하여 y에 저장. 이때 y에는 2개 state 에 대한 응답이 열 벡터 형태로 저장된다. 즉 nX2 행렬이 생성된다.

figure(1) subplot(211)

plot(t,y(:,1),'linewidth',2) % y의 1열의 값을 출력 (즉 x의 응답 출력) xlabel('time[sec]'); ylabel('x(t)');grid on;

xlabel( time[sec] ); ylabel( x(t) );grid on;

(29)

Simulation Results

0.04

-0.02 0 0.02

x(t)

0 1 2 3 4 5 6 7 8 9 10

-0.04

time[sec]

0.2

0 0.1

y(t)

0 1 2 3 4 5 6 7 8 9 10

-0.2 -0.1

time[sec]

(30)

수고하셨습니다!!!

참조

관련 문서

• MEMS 추력기 제작 기술(Glass 에칭, PhotoResist, UV 노광, 박막 공정 등)은 종래 까지 궤도 검증된바 없으며, 본 STEP Cube Lab.을 통해 MEMS추력기를 궤도

(b) 입력이 단위계단함수인 경우 출력을 구하고 파형을 그려 보라... 신호와 시스템

선형 시불변 시스템의 임펄스 응답만 알면 시간 영역에서 출력을 계산할 수도 있고 임펄스 응답의 푸리에 변환을 통해서 주파수 특성도 파악할 수 있다 임펄스 응답

(George Bernard

(g) Use MATLAB to plot the step response of the position servo system for values of the gain K = 0.5, 1, and Þnd the overshoot and rise time of the three step responses

step(A,B,C,D,ui,t) % 상태공간으로 정의된 시스템에 input ui에 대한 step response를 시간 t에

 &gt;MN d#  d#t f fT ;u FFFFFFFFFFFFFFFF .  &gt;MN d#  d#t f fT ;u B*A

계획수립 단계주요 내용실시기관 Step 1연간 기본계획 수립KOICA Step 2연수기관 선정KOICA 연수기관 Step 3연간 기본계획 확정 및 통보KOICA Step