Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... ·...

19
03: Table Interpolation and Feedforward Controller #1/19 Mechanical System Design Eng., JungHan Kim Table Interpolation and Feedforward Controller 11.1 Quatization Effect and Table Interpolation 11.2 Floating Point DSP 와 Quantization Effect 11.3 Motion Override Algorithm 11.4 Summary of Motion Profiles

Transcript of Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... ·...

Page 1: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #1/19

Mechanical System Design Eng., Jung‐Han Kim

Table Interpolation and Feedforward Controller

11.1 Quatization Effect and Table Interpolation

11.2 Floating Point DSP 와 Quantization Effect

11.3 Motion Override Algorithm

11.4 Summary of Motion Profiles

Page 2: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #2/19

Mechanical System Design Eng., Jung‐Han Kim

11.1 Quantization effect and Table Interpolation

제어 성능을 높이기 위하여 고속의 제어 주파수를 사용하려면, 계산 속도의 한계로 대부

분 테이블 방식의 구동 프로파일을 사용하게 된다. 이러한 경우 정밀한 Positioning을 위

하여 위치 테이블을 저장해 놓고 이용하게 되는데, 속도 및 가속도의 기준Reference 생성

시 위치 테이블 값을 읽어서 수치 미분하는 방식을 사용한다. 이번 절에서는 테이블의

읽기 Reading시 여러 가지 보간 방법과 그 영향에 대해서 고찰해 보자.

고성능 트랙킹 제어기는 Feed-Forward(F/F) 제어기가 반드시 필요한데, 이 F/F 제어기의

입력으로 속도 Reference 및 가속도 Reference가 사용된다. Feed-Forward 제어기의 설계

에 대한 내용은 제어기설계 편에서 자세히 다룰 것이기에, 본 절에서는 Feed-Forward 제

어기의 입력으로 사용되는 속도, 가속도, 저크 프로파일의 생성에 관해서만 생각해 보자.

많은 메모리를 할당하여 테이블을 저장한다고 하더라도, 테이블의 제한된 사이즈와 자릿

수 때문에 가속도나 저크의 프로파일 생성시 수치적으로 오차가 발생한다. 이러한 현상

은 시스템을 느리게 구동할 때 더 자주, 심하게 발생한다. 다음의 예제를 보자.

Design example 11.1

4kHz 의 인터럽트 주파수를 갖는 시스템에서, 기타의 비전시스템과의 타이밍 동기

(Timing synchronization)를 위해서 구동부를 30mm 에 100ms 로 움직여야 한다. 2048

개의 Cell 을 갖는 7차식의 구동 프로파일의 테이블에서 단순 Differential 을 이용하여

속도 프로파일을 구하여 도시하여라.

<Solution 11.1>

위의 Design Example 에서 생성한 테이블을 이용하여 각 프로파일을 도시하여 보자. 우

Page 3: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #3/19

Mechanical System Design Eng., Jung‐Han Kim

선 테이블의 읽기 참조폭을 구하면,

Table reading width = 2,048 / (100,000us/ 250us) = 5.12 (11.1)

테이블의 셀(Cell)의 참조 인덱스는 정수이므로, 참조폭이 소수점으로 구해질 경우 가장

간단히 생각할 수 있는 방법은 테이블의 인덱스 값을 소수로 더해나가면서 그 값을 정수

로 반올림 하여 테이블을 참조하는 방법이다. 다음과 같은 Matlab 프로그램을 보자.

TableWidth = 5.12;

For i=1:Number_Of_Interrupts,

TableIndex = round(i*TableWidth);

TargetPosition(i) = MotionTable(TableIndex);

TargetVelocity(i) = TargetPosition(i) ? TargetPosition_Old;

TargetPositionOld = TargetPosition(i);

End

위의 경우와 같이 소수를 계속 곱해 나가면서 그 값을 반올림해서 테이블의 참조 포인터

변수를 구하는 방법은 가장 쉽게 생각해 낼 수 있는 테이블 참조 알고리듬이다. 속도, 가

속도, 저크 프로파일은 보통 Feed-Forward 제어기의 입력으로 사용되므로 인터럽트 루틴

안에서 실시간으로 계산되어야 하므로 간단한 방법으로 생성되어야 한다. 그럼 실제로

이 알고리듬과 2048 개의 셀(Cell)로 이루어진 7차 프로파일 테이블에 의하여 생성되는

속도 프로파일을 도시하여 보자.

Page 4: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #4/19

Mechanical System Design Eng., Jung‐Han Kim

0 10 20 30 40 50 60 70 80 90 1000

100

200

300

400

500

600

700

800

ms

mm

/s

Fig. 11.1 7th order Motion Profile using differentiation in Table

<End of solution 2.5> ■

그림에 도시되는 것처럼 이처럼 단순한 방법으로 생성한 Position profile의 차분

(Differential)에 의한 속도 프로파일은 주기적인 노이즈를 포함하게 된다. 게다가 저크

(Jerk) 프로파일의 경우 위치 테이블로부터 세 번의 수치적인 도함수를 구하는 작업이기

때문에 Quantization 에러가 조금씩 쌓여도 저크 프로파일에 가서는 큰 노이즈를 포함하

게 된다. 따라서 이러한 노이즈가 포함된 레퍼런스 값이 Feed-Forward 제어기의 입력으

로 사용될 경우 구동성능의 감소와 특히 저속에서 불필요한 구동소음을 유발한다. 그렇

다면 테이블 보간법을 이용하여 테이블을 읽는다면 얼마나 에러가 감소할지 계산하여 보

자. 테이블 보간법에도 여러 가지 방법이 있으나 일단 그림2.31에서 도시된 가장 간단한

1차식에 의한 보간법을 응용하여 보자.

Page 5: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #5/19

Mechanical System Design Eng., Jung‐Han Kim

Fig. 11.2 Linear Interpolation method

스무드한 곡선은 실제 아날로그 프로파일을 도시한 것이고, 테이블에 저장되어 있는 값

들은 K, K+1로 표기된 부분의 디지털화된 값이다. 만약 테이블의 참조 포인터 값이

xK 라면,

xKfKfKfxKK

KfKfKfxKf

)]()1([)()1(

)()1()()(

(11.2)

으로 구해진다. 하지만 이 방법은 직선 보간법에 의한 것이기에 그림2.29에 표기된 것처

럼 만큼의 에러가 존재하게 된다. 다음의 그림2.32는 위의 예제에서 직선 보간법을 이

용하여 구한 속도 프로파일이고, F그림2.33과 그림2.34는 각각 속도로부터 도출된 가속도

및 저크 프로파일이다.

K K+1

x

y

Page 6: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #6/19

Mechanical System Design Eng., Jung‐Han Kim

0 10 20 30 40 50 60 70 80 90 1000

100

200

300

400

500

600

700

ms

mm

/s

Fig. 11.3 7th order Motion Profile (Velocity) using Linear Interpolation

0 10 20 30 40 50 60 70 80 90 100-25

-20

-15

-10

-5

0

5

10

15

20

25

ms

m/s

2

Fig. 11.4 7th order Motion Profile (Acceleration) using Linear Interpolation

Page 7: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #7/19

Mechanical System Design Eng., Jung‐Han Kim

0 10 20 30 40 50 60 70 80 90 100-2

-1.5

-1

-0.5

0

0.5

1

1.5

ms

km/s

3

Fig. 11.5 7th order Motion Profile (Jerk) using Linear Interpolation

Figure 11.3과 Fig. 11.4를 보면 가속도 프로파일까지는 적절한 형상을 유지하고 있지만

이를 한 번 더 수치 미분한 저크 프로파일에서는 많은 노이즈를 포함하고 있는 것을 확

인할 수 있다. 따라서 단순한 직선 보간법으로는 저크 프로파일까지 생성하기가 수월치

않다는 것을 확인 할 수 있다. 이에 관한 해결책으로는 다음과 같은 방법이 있다.

1. 정수의 테이블 참조폭 변수(TableWidth)를 이용한다.

2. 다수의 테이블을 이용한다.

3. 2차이상의 고차 테이블 보간법을 이용한다.

1번의 방법은 가장 간단한 해결책중 하나이다. 위의 예제에서 테이블 참조인덱스 폭

(TableWidth)를 소수가 아니라, 버림에 의하여 정수로 만들어 사용했을 때의 가속도, 저

Page 8: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #8/19

Mechanical System Design Eng., Jung‐Han Kim

크 프로파일을 구해보자. 테이블 참조폭의 값으로 5.12 대신 5를 사용하여 구한 프로파

일은 다음과 같다.

10 20 30 40 50 60 70 80 90 100

-20

-15

-10

-5

0

5

10

15

20

ms

m/s

2

Fig. 11.6 7th order Motion Profile (Acc.) using Integer Table Width

10 20 30 40 50 60 70 80 90 100

-1.5

-1

-0.5

0

0.5

1

1.5

ms

km/s

3

Fig. 11.7 7th order Motion Profile (Jerk) using Integer Table Width

Page 9: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #9/19

Mechanical System Design Eng., Jung‐Han Kim

이렇게 버림에 의하여 테이블 참조폭 변수를 정수로 만들어 사용했을 경우 매우 효과적

으로 노이즈를 제거할 수 있다. 반올림하지 않고 버림으로 소수점 이하를 잘라버리는 이

유는, 만약 반올림할 경우 테이블 참조폭 변수가 늘어나므로 정해진 시간 제한 값보다

더 빨리 구동될 경우가 발생하기 때문이다. 이러한 방법의 경우 치러야 할 대가는 바로

구동시간의 저하이다. 다음의 Fig. 11.8에 도시된 두 가지 경우에 대한 구동 시간 관계를

살펴보자.

0 1 2 3 4 5 6 7 8 9 10

x 104

0

50

100

150

200

250

300Working Time

distance um

time

ms

TheoreticalInteger TableWidth

Fig. 11.8 Motion Time with Integer Table Width

위의 Fig. 11.8에서 볼 수 있듯이 거리에 따른 구동시간이 정수 테이블 참조 인덱스를 사

용함에 따라 계단형으로 변형됨을 볼 수 있다. 만약 대상으로 하는 시스템이 특별한 시

간에 대한 구속조건이 없는 경우라면 정수 인덱스 참조폭을 사용하는 것도 하나의 해결

책이 될 것이다.

Page 10: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #10/19

Mechanical System Design Eng., Jung‐Han Kim

2번의 다수의 테이블을 쓰는 방법 같은 경우는, 위치 테이블과 가속도 테이블 2개를 이

용하여 각각 1 번씩만 차분하여 속도와 저크 프로파일을 구하는 구조 등으로 구현할 수

있으므로 만약 메모리가 허용된다면 매우 좋은 해결책이 될 것이다.

3번의 경우 여러 가지 특별한 필터링 알고리듬을 이용하여 테이블을 정밀하게 보간 하

는 방법 등이 있다. 이러한 방법은 아주 정밀한 구동기기에서 주로 사용된다. 3번과 같은

방법을 사용하면 정확히 설계된 타이밍으로 구동할 수 있는 장점이 있다.

11.2 Floating Point DSP 와 Quantization Effect

제어기에서 발생하는 Quantization 에러는 아날로그-디지털 경계가 아니더라도 한정된

자리수로 인하여 여러 가지 경우에 발생한다. 현재 모터 제어기로 많이 사용되고 있는

Floating point DSP의 소수점 이하 처리에 대하여 살펴보고, 이러한 구조에서 파생되는

디지털 누적 오차에 대하여 살펴보자. 제어기용 마이크로프로세서로 많이 사용되고 있는

Texas Instruments의 TMS320C3X 시리즈를 예로 들어보자. Floating Point 라는 말은 말

그대로 변수의 크기에 따라 소수점 이하의 자리 수가 변화하는 구조로 되어 있다. TMS

Floating points DSP 시리즈의 Single precision 32 bit 변수는 24 bit의 Mantissa 라고 불

리는 변수를 이용한 구조로 되어 있다.

31 24 23 22 0

FractionSignExponent

Mantissa

Page 11: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #11/19

Mechanical System Design Eng., Jung‐Han Kim

Fig. 11.9 Floating point format in TMS320Cx series

efssX 2. 2 (11.3)

여기서 Exponent e는 +127에서 -127까지의 값을 가지는 지수부이고, Fraction 2f 는 2

진수로 구성된 소수점 이하의 값을 가리킨다. 그리고 s 는 부호를 나타내는데 0과 1은

각각 양수와 음수를 표기한다. 위의 32 bit 변수가 나타내는 X의 값은 식(11.3)과 같은 형

식으로 계산된다. 양수, 음수, 영의 표기를 순서대로 표기하면 다음과 같다.

양수인 경우 efX 2.01 2 0sif (11.4)

음수인 경우 efX 2.10 2 1sif (11.5)

영의 경우 0X 128eif (11.6)

Fraction 2f 는 이진수에 의한 표기이다. 위의 구조에서 나타낼 수 있는 가장 큰 양수를

찾아보자. Sign 부분이 0이 되어야 되므로 위의 3가지 경우 중 첫 번째 이며, e=+127일

경우이다. 그리고 2.1 f 가 가리킬 수 있는 가장 큰 수는 2-2-23 이 되므로,

12723 2)22( mostX (11.7)

이 된다. 마찬가지로 위의 구조로 표기할 수 있는 양수 중 가장 작은 수는 s=0, f=0, e=-

127 일 경우이므로,

12721 leastX (11.8)

이 된다. 최소 양수의 경우 충분한 소수점 이하의 자리수를 가지고 있지만, 최고 양수일

경우 Exponent 값이 23을 넘어서면서부터 소수점 이하의 값이 아예 없어지는 것을 볼

Page 12: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #12/19

Mechanical System Design Eng., Jung‐Han Kim

수 있다. 여기의 주의 깊게 생각해야 하는 내용은 Floating point 라는 구조자체가 소수

점 이하 자리수가 일정치 않다는 것이다. 따라서 프로그램 코딩시 주의하지 않으면 이러

한 구조에서 오는 에러가 매우 커지는 수도 있다. 다음의 예제를 보자.

Design example 11.2

한 인터럽트 당 10000.123456789um를 움직이는 경우 10,000회의 인터럽트에 구동되는

최종 거리를 계산하는 DSP 프로그램으로 설계하여라.

<Solution 11.2>

C Software 의 경우로 한번 프로그래밍 하여 보자.

Step_Distance = 10000.123456789;

Target_Position = 0.0;

for (i=1;10000;i++)

{

Target_Position = Target_Position + Step_Distance;

}

이상적인 경우라면 Target_Position의 최종 값이 100001234.56789으로 계산되어야 하겠

지만 Floating point DSP에서는 위에서 설명한 이유로 그렇게 되지 않는다. 이는 소수점

위의 자리수가 늘어나면 한정된 자릿수 때문에 연산시 자동으로 소수점 이하의 값이 잘

려 나가기 때문이다. 따라서 소수점 이하의 자리수를 가진 변수를 계속해서 덧셈 혹은

곱셈하여야 할 경우 프로그램 코딩 시 매우 주의하여야 한다. 부득이하게 이러한 경우를

만났을 때는 한 변수 안에 담겨지는 소수점 이상의 값이 커지지 않도록 이를 나누어 계

산할 수 있도록 코딩하는 것이 가장 좋다.

Page 13: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #13/19

Mechanical System Design Eng., Jung‐Han Kim

다음에서 소개하는 반복 덧셈 알고리듬은 위와 같은 경우에 소수점에 의한 에러가 누적

되지 않게 해주는 특수한 알고리듬이다.

Step_Distance = 10000.123456789;

Target_Position = 0.0;

Sum_Fine_Difference = 0.0;

for (i=1;10000;i++)

{

Temp_Position = Target_Position;

Target_Position += Step_Distance;

Sum_Fine_Difference+=Step_Distance-(Target_Position-Temp_Position);

Final_Position = Target_Position + Sum_Fine_Difference;

}

간단하게 설명하면 Target_Position이라는 변수에 Step_Distance를 덧셈 후와 덧셈 전의

상태를 각각 비교하여 그 차이만큼을 Sum_Fine_Difference라는 변수 안에 따로 모은 것

이라고 생각하면 된다. 위의 알고리듬에서 보면 반복 연산이 끝난 후 소수점의 잘려지는

부분이 따로 Sum_Fine_Difference란 변수 안에 저장되므로 필요한 경우에 유용하게 사용

할 수 있다.

위의 예제에서 Final_Position은 잘려진 소수점 이하의 누적 값에 의해 소수점이상으로

자리 올림 된 값들을 반영하므로, 변수 Target_Position에 비해 훨씬 정확한 값을 가지고

있는 것을 알 수 있다. 많은 번수의 연산시 잘려진 소수점들의 누적이 대부분 소수점 위

로 올라가므로 이러한 경우는 그 차이가 더 벌어지게 된다. 위의 예제의 경우에는

Step_Distance가 상수이므로 곱셈을 이용하여 문제를 해결할 수 있지만, 매 Step 테이블

값을 읽는다든지 할 경우에는 위의 알고리듬과 같은 특수한 방법이 필요하다. 서보 시스

Page 14: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #14/19

Mechanical System Design Eng., Jung‐Han Kim

템의 프로그램 설계시 경우 천천히 긴 거리를 가게 될 때 이러한 오차 누적에 대한 고려

가 선행되어야 한다.

<End of solution 11.2>

11.3 Motion Override Algorithm

이번 절에서 설명하는 Motion Override 알고리듬은 최근에 개발되는 첨단 제어기에만 그 기능이

내장되어 있는 새로운 기능이다. 이 기능은 서보 시스템의 구동 중간에 어떠한 편차를 보정할 수

있도록 하여 모션 중간에 최종 위치변경이 가능하도록 해 주는 기능이다. 이러한 기능을

이용하면, 2단계로 구성된 작업을 1단계로 줄임으로써 대폭적인 시간의 절감과, 추가의 구동에서

오는 진동을 감소시켜 준다.

예를 들면 비전 센서와 결합된 장비에서 이러한 기능을 구현하면 작업 시간을 많이 단축할 수

있는데, 반도체 후 공정 중 다이싱(Dicing)이 끝난 웨이퍼를 각각의 리드프레임에 부착시켜 주는

다이 본더(Die Bonder)장비를 예를 들어 Motion override 기능을 설계하여 보자.

다이 본더(Die Bonder)는 위에서 간단히 설명한 대로 다이아몬드 칼날에 의해 하나의 칩

사이즈로 잘려진(Dicing Process) 웨이퍼로부터 칩을 진공 노즐을 이용하여, 하나하나씩 집어내서

리드 프레임위에 부착시키게 되는데, 이때 비전 카메라 위를 정속구동 하여 진공 노즐의

안착상태에 대한 위치 및 각도 보정치를 계산하게 된다. 반도체 장비들 뿐 아니라 많은 대량

생산용 장비들이 이와 유사한 공정을 포함하고 있다. 이러한 작업 공정을 서보 스테이지의

관점에서 3개의 공정으로 나눈다면,

1. Picking up a component from tray or feeder,

2. Constant moving for vision aligning,

Page 15: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #15/19

Mechanical System Design Eng., Jung‐Han Kim

3. Placing with compensating motion,

Fig. 11.10 Pickup, Scan, and Placing with compensation

등의 3가지로 크게 나눌 수 있다. 2번 공정은 Line CCD 비전 스캔을 위한 정속주행이며 만약

Area CCD를 사용하는 방식이면 생략될 수 있다.

3번 공정을 보다 세분화하면 3단계로 나눌 수 있는데, 일단 목적지까지 가는 1단계 동작과,

비전에 의한 위치 및 회전 보정량을 다시 이동하는 2번째 단계의 공정, 그리고 마지막으로

노즐이 부착된 Z축이 내려와 Component를 부착 혹은 압착하는 3단계 공정으로 나눌 수 있다.

이러한 경우 만약 제 1단계의 목적지까지의 이동 구동중에 비전 센서로부터의 위치 보정량을

반영하여 최종 위치를 변경시킬 수 있으면, 1단계와 2단계의 2개의 구동을 한 번의 구동으로

줄일 수 있다. 그럼 다음 예제를 통해 최첨단의 Motion Override 기능이 내장된 서보 시스템을

설계해 보자.

Design example 11.3

앞에서 예를 든 다이 본더(Die bonder)에서 정속구동 후 프로파일의 변경을 통하여, 최종 목적

위치를 구동 중간에 변경할 수 있는 Motion override 알고리듬을 설계하여라.

Pick up a chipfrom Wafer

Constant velocity movingover camera

Placing afterposition compensation

X

ZY

Page 16: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #16/19

Mechanical System Design Eng., Jung‐Han Kim

<Solution 11.3>

최근에는 많은 장비 및 응용장비 에서 고성능의 제어기가 요구되면서, 제어기의 인터럽트의

주파수는 점점 더 올라가게 되었다. 또한 한 개의 프로세서가 여러 축을 제어하는 다축 제어기가

보편화 되면서, 고속 프로세서라 하더라도 계산시간 면에서 그리 큰 여분을 가지지 못하는

경우가 일반적이다. 따라서 앞 절들에서 설명한 일반적인 구동 계산 등을 인터럽트 도중

실시간으로 다시 계산하기는 거의 불가능한 상황이다. 따라서 이러한 경우 중첩의 원리를

이용하여 구동 종료 전 일정 시점에서부터 위치 보정에 따른 제 2의 구동 프로파일(Residual

함수)을 구동 시키는 방법을 제시한다. 이러한 방법을 수식으로 도시하면 다음과 같다.

))(

()()( 1

dnom T

tty

T

ty

T

ty

(11.9)

만약 앞절에서 설명한 3차방정식을 이용한다면,

]))(

(2))(

(3[])(2)(3[)( 31212

321

dd T

tt

T

ttS

T

t

T

tS

T

ty

(11.10)

Where

11

11 ,

,0)(

tttt

tttt (11.11)

1S 은 원래의 Nominal 구동거리, 2S 는 비전에서 계산된 보정 거리, dT 는 Motion override

알고리듬 작동시간이다. 다음의 그림을 보자.

Page 17: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #17/19

Mechanical System Design Eng., Jung‐Han Kim

Fig. 11.11 Timing Diagram of Motion Override Algorithm

구간 A: 등속이동 구간,

구간 B: 비전 계산 시간,

구간 C: Residual 함수 계산 및 준비,

구간 dT : Motion override 작동 시간,

기점 d: Starting point of constant vel. Motion,

기점 e: End point of constant vel. Motion

기점 f: End of vision processing,

기점 g : Action start of motion override algorithm,

기점 h: Motion end.

구간 A는 X-Y 스테이지에 부착된 Z축의 흡착 노즐이 부품의 흡착 후, 라인 CCD 위로 등속

이동하는 구간이며, Residual 함수는 기점 g를 기준으로, 기존의 프로파일과 중첩된다. 다시

A B Cd e f g h

Distance

Time

T

ty

1t

dT

tty

)( 1

dT

Page 18: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #18/19

Mechanical System Design Eng., Jung‐Han Kim

설명하면 기존의 프로파일은 계속해서 원래의 프로파일을 생성해 내고, Residual 함수에 의하여

계산되는 보정량은 기점 g부터 시작되어 h까지 기존의 프로파일 위로 중첩시켜 준다. Motion

override 알고리듬의 작동 시간인 g의 설정은 비전으로부터 위치 보정 데이터를 받아서, Residual

함수를 준비하는데 걸리는 시간의 Maximum 시간과, 위치 보정이 일어날 수 있는 최대거리를

염두에 두고 설정하여야 한다. 일반적으로는 비전에서 보정하는 위치 데이터의 양은 전체

이송거리에 비해 매우 작은 값이므로 마지막 5 ~10 % 정도의 시간 구간이면 충분히 그 값을

보정할 수 있다. 일단 중첩된 포지션 레퍼런스가 나오면, 이의 Differential을 통해 Feedforward에

필요한 여러 가지 파라메터를 계산할 수 있다.

<End of solution 11.3> ■

한 가지 추가적으로 고려해야 할 것은, Residual function에 의하여 보정되는 양 때문에, 약간의

저크 및 가속도가 가감될 수 있으므로, 첨가되는 보정 치에 의한 추가적인 저크와 가속도에 대해

계산하여 마진을 확보해야 한다. 일반적으로 센서의 보정치 등은 이동거리에 비해 그 보정치가

매우 작으므로 설계시 가지고 있는 설계마진으로 흡수할 수 있는 경우가 대부분이다. Motion

Override 알고리듬의 더불어 얻을 수 있는 이점으로는 짧은 거리 이동시 생성되는 저크에 의해

발생하는 기구적인 진동 또한 줄일 수 있으므로 장착 정밀도 또한 개선할 수 있다는 것이다.

11.4 Summary of Motion Profiles

본 절에서 많은 지면을 할당하여 다양한 프로파일을 소개하는 이유는, 고성능 트랙킹 제어

시스템에서 모션 프로파일이 차지하는 비중이 그 만큼 크기 때문이다. 부연 설명하면 동일한 X-Y

스테이지라도 구동 프로파일에 따라, 모션 사양(Specification)이 달라질 정도로 성능이 변하기

때문이다. 경우에 따라서는 역으로 허용된 범위내의 에러 오차 안에서 최대의 모션 구동 사양을

이끌어 내야 하는 경우도 종종 발생한다.

구동 시간을 결정하는 3가지 요소 중, 긴 거리를 구동할 때는 주로 속도에 대한 한계에 걸리게

Page 19: Mechanical System Design Eng., Jung Han Kimsenslab.co.kr/Class/03 Table Interpolation and FF... · 2012-10-04 · 03: Table Interpolation and Feedforward Controller #1/19 Mechanical

 

03: Table Interpolation and Feedforward Controller #19/19

Mechanical System Design Eng., Jung‐Han Kim

된다. 그런데 앞에서 소개한 몇 가지의 구동 방정식은 속도 프로파일이 최고점을 가지는

변곡점을 가지는 형태로 구성되어 있기 때문에 먼 거리에서는 일반 사다리꼴 속도 구동

프로파일보다 느리게 되는 단점이 있다. 이러한 단점을 보완하기 위해 앞에서 소개한 7차식의

프로파일의 반을 잘라서 그 사이에 등속구간을 삽입하면 보다 빠른 프로파일을 설계할 수 있다.

따라서 거리에 따라 다른 종류의 프로파일을 사용하는 것도 매우 좋은 방법이며, 여기서 소개한

몇 가지 방법을 응용하면 보다 다양한 형태의 프로파일을 만들어 낼 수 있다. 이는 글을 읽는

독자들에 달린 일이다.

또한 전 절에서 소개한 Motion Override 알고리듬과 같이 특수 목적으로 설계된 프로파일은

2단계의 공정을 한 단계로 줄임으로써, 한 공정에 필요한 시간의 단축을 유발하여 보다 높은

성능의 제어 시스템의 설계를 가능하게 해 준다.

구동 프로파일의 경우 Feed-Forward 제어기와 많은 관련이 있으므로, Deadbit 제어기나 Zero

phase error tracking 제어기법등을 병행해서 연구하면 다양한 프로파일을 개발할 수 있을 것이다.