반응형

 

 

 

 

 

스탭모터의 가속 제어가 필요하여 검색하던 중 유용한 자료 발견!

스탭모터를 처음부터 빠른 속도로 돌리면 탈조가 나서 동작하지 않는 주파수대가 된다.

이것은 스탭모터 특성 그래프 참고! ^^

 

그래서 가속을 구현해야 하기에 아래 코드를 참고하여 구현해 보았다.

 

STM32 스탭 모터 Scurve 가속 코드 구현.

www.programmersought.com/article/85951804968/

 

STM32 stepper motor S curve acceleration code implementation - Programmer Sought

Equation of the S-curveThe graph in [-5, 5] is shown below: If you want to apply this curve to the acceleration and deceleration of the stepper motor, you need to translate the equation in the XY coordinate system and pull the curve up and down: The A comp

www.programmersought.com

자세한 내용은 위 링크 자료 참고.

이 사이트에 많은 좋은 자료가 있다. ^^

 

아래의 공식을 코드로 구현한 것이다.

 

 

온라인 컴파일러로 코드를 테스트 해 보았다.

 

 

아래는 결과를 그래프로 나타내 본 것.

이것을 역으로 적용하면 가속 구간으로 적용할 수 있다.

STM32의 출력 Period 를 반대로 주어야 하는 상황이라서 데이터를 반대로 나타내었다. ^^

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Online C compiler to run C program online
#include <stdio.h>
#include <math.h>
 
int main() {
    
    float fre[100];
    unsigned short period[100];
    float  len = 100;
    float fre_max = 18000;
    float fre_min = 1900;
    float flexible = 4;
    
    int i=0, j=0;
    float deno ;
    float melo ;
    float delt = fre_max-fre_min;
    for(; i<len; i++)
    {
        melo = flexible * (i-len/2/ (len/2);
        deno = 1.0 / (1 + expf(-melo));
        //expf is a library function of exponential(e) 
        fre[i] = delt * deno + fre_min;
        period[i] = (unsigned short)(10000000.0 / fre[i]); 
        // 10000000 is the timer driver frequency
        //printf("%d\n", period[i]);
        printf("%.0f, ", fre[i]);
        j++;        
        if(j > 9) {
            printf("\n");
            j = 0;            
        }
    }
 
    printf("\n");
 
    for(i=99; i>=0; i--)
    {
        printf("%.0f, ", fre[i]);
        j++;        
        if(j > 9) {
            printf("\n");
            j = 0;            
        }
    }
    
    return 0;
}
cs

 

 

 

 

 

728x90
반응형
반응형

 

스텝 모터 드라이버 (TB6560AHQ)를 사용하는데 설정하는 excitation mode.

 

 

 

Full step, Half step, micro step (1/4, 1/8, 1/16) 으로 표시되지 않고 phase로 표시되어 있다.

전기적 특성표를 보면 phase와 theta로 알수 있다.

 

 

 

그러나 더 알아보기 쉬운 방법으로 다른 device는 아래와 같이 표시되어 있다.

이것을 보면 driving mode를 이해하기가 더 쉽다.

 

C.f.) Step motor driver AD1231

 

 

 

 

 

728x90
반응형

'공부 > HW' 카테고리의 다른 글

201013 백래시  (0) 2020.10.13
200928 SystemWorkbench - 문자열 연결  (0) 2020.09.28
200319 산요 팬 속도 제어  (0) 2020.09.25
200923 SystemWorkbench - Source folder copy  (0) 2020.09.24
180124 Absolute vs. Incremental encoder  (0) 2020.09.22
반응형

Step motor Rated Voltage vs. Power Supply Voltage

스텝모터의 정격 전압과 전원 공급

Stepping motor의 사용 전압에 대한 정리.

아래 링크 내용을 번역하여 정리해 보았다.

https://www.machinedesign.com/motors-drives/article/21835161/misconceptions-about-stepper-motors-explained

 

 

 

아마도 가장 혼란스러운 점 중 하나는 스테퍼 모터의 데이터 시트에 나열된 코일 전압과 일반적으로 함께 사용되는 훨씬 더 큰 전원 공급 장치 사이의 불일치입니다. 데이터 시트에 3.4V의 코일 전압이 표시되어 있는 경우 48VDC 전원 공급 장치와 사용할 수 있는가? 아니면 80V 전원은 사용될 수 있는가?

정격 전압을 무시 하십시오. 대신 current rate에 주의 하세요.

대부분의 스테퍼 모터 드라이버가 초퍼 드라이브이기 때문에 이것이 가능합니다. 이 드라이브는 코일 전류의 상승을 모니터링하고 코일 전압을 무시합니다. 전류가 사전 정의 된 임계 값 (최대 모터 전류)에 도달하면 모터 전원을 차단합니다. 즉, 자릅니다. 드라이버의 최대 정격 전압을 초과하지 마십시오.

아래 사양의 step motor를 예로 들면,

 

정격 된 전압 : 12V

정격 전류 : 0.33A

권선 저항 : 32.6Ω

권선 인덕턴스 : 48mH

12V의 정격 전압은 최대 값이 아닙니다. 이 정격이 실제로 말하는 것은이 모터의 코일에 12V를 적용하면 코일 저항이 32.6Ω이기 때문에 약 0.33A의 전류가 설정된다는 것입니다.

>> 12V / 32.6Ω = 0.36A

만약 H-브리지 또는 매우 간단한 유형의 드라이버로 스테퍼를 제어하는 경우, 정격 전류 최대값을 초과하지 않도록 모터 전압을 12V로 제한해야 합니다.

초퍼 드라이브의 경우 정격 전압을 초과해도 문제가되지 않습니다. 전압이 높을수록 모터가 자기 포화에 더 빨리 도달합니다. 모터는 완전히 포화되었을 때 가장 강합니다. 아래에 주어진 공식은 요점을 설명합니다. 이것은 주어진 시간 프레임 이후에 코일을 통과하는 전류를 계산합니다.

Voltage * (tim /inductance) = coil current

1 ms 동안 50mH 인덕터를 통과하는 전류는 적용된 전압에 비례하여 증가합니다.

모터가 필요한 토크를 내기에 충분히 포화되기 전에 스텝을 이동하면 스텝을 잃기 시작합니다. 실제로 모터가 특정 속도에서 스텝을 놓치고 있으면 더 높은 전압의 전원 공급 장치를 사용하십시오.

>> Chopper 방식의 stepper motor driver를 사용할 경우 motor driver의 정격 전압과 정격 전류를 고려한다.

728x90
반응형

'공부 > HW' 카테고리의 다른 글

200603 FR4 와 UL94 V-0  (0) 2020.09.20
190705 칩 저항 사양  (0) 2020.09.18
200818 LED 저항 계산  (0) 2020.09.14
200814 Quartus Prime download & install  (0) 2020.09.13
200528 UL94V-0는 무엇인가요?  (0) 2020.09.11
반응형

Step motor Rated Voltage vs. Power Supply Voltage

스텝모터의 정격 전압과 전원 공급

Stepping motor의 사용 전압에 대한 정리.

아래 링크 내용을 번역하여 정리해 보았다.

https://www.machinedesign.com/motors-drives/article/21835161/misconceptions-about-stepper-motors-explained

 

아마도 가장 혼란스러운 점 중 하나는 스테퍼 모터의 데이터 시트에 나열된 코일 전압과 일반적으로 함께 사용되는 훨씬 더 큰 전원 공급 장치 사이의 불일치입니다. 데이터 시트에 3.4V의 코일 전압이 표시되어 있는 경우 48VDC 전원 공급 장치와 사용할 수 있는가? 아니면 80V 전원은 사용될 수 있는가?

정격 전압을 무시 하십시오. 대신 current rate에 주의 하세요.

대부분의 스테퍼 모터 드라이버가 초퍼 드라이브이기 때문에 이것이 가능합니다. 이 드라이브는 코일 전류의 상승을 모니터링하고 코일 전압을 무시합니다. 전류가 사전 정의 된 임계 값 (최대 모터 전류)에 도달하면 모터 전원을 차단합니다. 즉, 자릅니다. 드라이버의 최대 정격 전압을 초과하지 마십시오.

아래 사양의 step motor를 예로 들면,

 

정격 된 전압 : 12V

정격 전류 : 0.33A

권선 저항 : 32.6Ω

권선 인덕턴스 : 48mH

12V의 정격 전압은 최대 값이 아닙니다. 이 정격이 실제로 말하는 것은이 모터의 코일에 12V를 적용하면 코일 저항이 32.6Ω이기 때문에 약 0.33A의 전류가 설정된다는 것입니다.

>> 12V / 32.6Ω = 0.36A

만약 H-브리지 또는 매우 간단한 유형의 드라이버로 스테퍼를 제어하는 경우, 정격 전류 최대값을 초과하지 않도록 모터 전압을 12V로 제한해야 합니다.

초퍼 드라이브의 경우 정격 전압을 초과해도 문제가되지 않습니다. 전압이 높을수록 모터가 자기 포화에 더 빨리 도달합니다. 모터는 완전히 포화되었을 때 가장 강합니다. 아래에 주어진 공식은 요점을 설명합니다. 이것은 주어진 시간 프레임 이후에 코일을 통과하는 전류를 계산합니다.

Voltage * (tim /inductance) = coil current

1 ms 동안 50mH 인덕터를 통과하는 전류는 적용된 전압에 비례하여 증가합니다.

모터가 필요한 토크를 내기에 충분히 포화되기 전에 스텝을 이동하면 스텝을 잃기 시작합니다. 실제로 모터가 특정 속도에서 스텝을 놓치고 있으면 더 높은 전압의 전원 공급 장치를 사용하십시오.

>> Chopper 방식의 stepper motor driver를 사용할 경우 motor driver의 정격 전압과 정격 전류를 고려한다.

728x90
반응형

+ Recent posts