Курсова работа ЕР

Post on 29-Jul-2015

189 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Т е хнически университет − София, филиал Пловдив

Курсова работа

ПоЕлектронни регулатори

Изготвил: : Специалност Електроника

Ф№

: 31 Група б

Ръководител: ..................................

/ . . . /гл ас С Василева

Задание:

Тема:

Електронна система за позициониране на стъпков двигател

:Изходни данни

+5V – захранващо напрежение;

Да се управлява на цяла стъпка;

Да има възможност за реверсиране на посоката;

I. Теоретична част. Предимства на електромеханични системи ЕМС със стъпкови двигатели:

;Голяма точност при позициониране ;Лесно регулиране на скоростта вширок диапазон , Възможност за изграждане на качествени отворени системи без

;скъпоструващи датчици за обратна връзка ОВ “ ” ;Пособност за запомняне на информацията Скоросста остава постоянна при изменение на натоварването в

;широки граници ; Добра съвместимост с цифрови управляващи устройства

- :По съществени недостатъци на тези ЕМС

;Сравнително малък въртящмомент Относително нисък коефициент на полезно действие

:Видове стъпкови двигатели

Според магнитната си система биват:1. Д вигатели с променливо магнитно съпротивлени(Variable

Reluctance) - роторът е магнитопровод със ситни зъби и работи на привличане от статорните .полюси

2. Д вигатели с постоянни магнити(Permanent Magnet) - роторът съдържа магнити и има явни полюси.

3. Х ибридни двигатели(Hybrid) - ( комбинирани назъбен ротор и 1-2 )вградени само магнита .

:Според електрическата си схема1. Стъпкови униполярни двигатели - еднопосочна намотка със среден извод,

комутират се двата й края за дветете посоки на движение, работи само половината намотка.

2. Стъпкови биполярни двигатели - мостови схеми тип "Н", винаги работи с пълен въртящ момент.

3. Сервомотори – постоянно токови или променливотокови мотори с монтиран на вала декодер за посока и стъпка, който дава точна информация по всяко време и следи да не се изпуснат стъпки поради претоварване и коригира местоположението на вала - с ООВ.

. Принцип на действие на стъпковите електродвигатели

Осъщесвява се на дискретно изменение на електромагнитното поле в работна въздушна междина за сметка на импулсно възбуждане или

, . . превключване на намотките им т е стъпковите двигатели са , електромеханични устройства който преобразуват електрическите

импулси на управляващото напрежение в дискретни ъглови или (“ ”) нелинейни премествания стъпки на ротора с възможност за

. фиксирането му вжелани положения Срещат се различни конструкции , - на стъпкови двигатели но принципът им е един и същ многофазен и

, многополюсен синхронен двигател който се захранва с постояннотокови . електрически импулса Статорът има листов строеж иможе да бъде

. явнополюсен или неявнополюсен На полюсите или в каналите му са поставениm- (фазни намотки m=1,2,3,4,... . ., - 2 4). и т н но най често и Роторите

: се срещат в два конструктивни вида

( , активен с постоянни магнити или рядко електромагнити възбудени ); от източник за постоянене ток

( , ). пасивен без възбуждане но задължително с явни полюси

При захранване на отделни фази роторътще заема такова равновесно, положение при което съпротивлението на магнитното поле да е.минимално

:Управление на стъпковия двигател

- симетрично при което управляващите сигнали се подават ;последователно на групи от еднакъв брой фази

- несиметрично при което управляващите сигнали се подават ;последователно на групи от нееднакъв брой фази

:Друго деление според управлението е

- потенциално напрежението на намотките се изменя само в . момента на подаване на управляващия сигнал При липса на , следващ управляващ сигнал една или повече фази остават под

, , напрежение подадено от предшестващия сигнал така че роторът ; заема напълно определено фиксирано напрежение

- импулсно една или повече фази получават управляващия сигнал с , . определена продължителност след което остават без захранване В

, паузата между сигнални импулси роторът се фиксира от вътрешен

( ) активен момент при активен ротор или от специално фиксиращо.устойство

:Управление на цяла стъпка и на полустъпка

Управлението на стъпков двигател се усъществява чрез прилагането на . серия от стъпки Скороста на въртене се управлява от времето за

. : , прилагане на стъпките Има три основни видове стъпки цяла . полустъпка и микростъпка

При управлението на четири фазен стъпков двигател с цяла стъпка през статорните намотки последоветлно през определен интервал от време се

, пропуска ток и те създават полярност която насочва роторния постоянен , . . магнит къл активната намотка т е

90ротораще се върти през 0 , като се стреми да се изравнява с активните

.намотки

Освен по цяла стъпка може да се управлява и на полустъпка като към пълната стъпка се прибавят и междустъпките с напрежението създадено

. между две намотки Това се осъществява като едновременно се включат

.два съседни магнита

При управление на полустъпка се увеличават броят стъпките на. преместване

Като пример нека разгледаме един стандартен хибриден стъпков, 200 200 . двигател който има зъба или това са стъпки за оборот Като 200 360разделим стъпки на 0 1.8ще получим ъгъл на завъртане 0. При

, 400 0.9полустъпкатаще се получи че стъпкище доведът до 0 ъгъл на.завъртане

:Управляващи сигнали на униполярен стъков двигател

:Операция на стъпките на униполярен стъпков двигател

II. Принципна Схема

III. Описание на схемата

За да се осигури нормалната работа на PIC16F628A той трябва да бъде захранен с

3 5 напрежение от до волата и да му се осигури желаната честота на . работа Това става чрез външен кристал/резонатор (XT) за този

- 4микроконтролер избирам най високата MHz. Кондензаторите за кристала - :се избират от таблицата по долу

Високия капацитет на кондензаторите повишава стабилноста накристала, но също така повишава и времето за стартиране на

. микроконтролера Данните в таблицата са само препоръчителни от производителя и кондензаторите също така трябва да се съобразят и с

. конкретния избран резонатор За да осигуря стабилната работа на кристала избирам за C1 и C2 30по pF.

Използваме PORTA , за цифров изход с който се управлява стъпковиядвигател, a PORTB за цифрови входове, по които да получавам

.управляващи сигнали за двигателя

На PORTA имаме изходен ток до 20mA, , а за двигателя който съм избрал трябва да се осигури номинален ток I НОМ= 250mA. За целта използваме

2SD1209K - , транзистори тип схема Дарлингтон чрез които усиолваме тока .необходим за задвижването на стъпковия двигател

2SC1815 и потенциометър служат за контролиране на скоростта на.мотора

Диодите се използват за защита на транзисторите от обратна , . елктротродвижеща сила която настъпва в бобините на стъпковия мотор

.Тя зависи от вида на стъпковия мотор

Бутони , те за контрол с възможност за реверсиране посоката на въртене и спиране на мотора.

IV. Алгоритъм

V. Sorce code;********************************************************

;

; Stepper Motor controller

;

; Author : Seiichi Inoue

;********************************************************

list p=pic16f84a

include p16f84a.inc

__config _hs_osc & _wdt_off & _pwrte_on & _cp_off

errorlevel -302 ;Eliminate bank warning

;**************** Label Definition ********************

cblock h'0c'

mode ;Operation mode

;0=stop 1=right 2=left

count1 ;Wait counter

count2 ;Wait counter(for 1msec)

endc

rb0 equ 0 ;RB0 of PORTB

rb1 equ 1 ;RB1 of PORTB

rb2 equ 2 ;RB2 of PORTB

rb5 equ 5 ;RB5 of PORTB

rb7 equ 7 ;RB7 of PORTB

;**************** Program Start ***********************

org 0 ;Reset Vector

goto init

org 4 ;Interrupt Vector

clrf intcon ;Clear Interruption reg

;**************** Initial Process *********************

init

bsf status,rp0 ;Change to Bank1

clrf trisa ;Set PORTA all OUT

movlw b'00100111' ;RB0,1,2.5=IN RB7=OUT

movwf trisb ;Set PORTB

movlw b'10000000' ;RBPU=1 Pull up not use

movwf option_reg ;Set OPTION_REG

bcf status,rp0 ;Change to Bank0

clrf mode ;Set mode = stop

clrf count1 ;Clear counter

clrf count2 ;Clear counter

movlw b'00000101' ;Set PORTA initial value

movwf porta ;Write PORTA

bsf portb,rb7 ;Set RB7 = 1

btfsc portb,rb5 ;RB5 = 0 ?

goto $-1 ;No. Wait

start

;************* Check switch condition *****************

btfsc portb,rb1 ;RB1(stop key) = ON ?

goto check1 ;No. Next

clrf mode ;Yes. Set stop mode

goto drive ;No. Jump to motor drive

check1

btfsc portb,rb2 ;RB2(right key) = ON ?

goto check2 ;No. Next

movlw d'1' ;Yes. Set right mode

movwf mode ;Save mode

goto drive ;No. Jump to motor drive

check2

btfsc portb,rb0 ;RB0(left key) = ON ?

goto drive ;No. Jump to motor drive

movlw d'2' ;Yes. Set left mode

movwf mode ;Save mode

;******************** Motor drive *********************

drive

movf mode,w ;Read mode

bz start ;mode = stop

bsf portb,rb7 ;Set RB7 = 1

btfsc portb,rb5 ;RB5 = 0 ?

goto $-1 ;No. Wait

movlw d'5' ;Set loop count(5msec)

movwf count1 ;Save loop count

loop call timer ;Wait 1msec

decfsz count1,f ;count - 1 = 0 ?

goto loop ;No. Continue

bcf portb,rb7 ;Set RB7 = 0

btfss portb,rb5 ;RB5 = 1 ?

goto $-1 ;No. Wait

movf porta,w ;Read PORTA

sublw b'000000101' ;Check motor position

bnz drive2 ;Unmatch

movf mode,w ;Read mode

sublw d'1' ;Right ?

bz drive1 ;Yes. Right

movlw b'00001001' ;No. Set Left data

goto drive_end ;Jump to PORTA write

drive1

movlw b'00000110' ;Set Right data

goto drive_end ;Jump to PORTA write

;-------

drive2

movf porta,w ;Read PORTA

sublw b'000000110' ;Check motor position

bnz drive4 ;Unmatch

movf mode,w ;Read mode

sublw d'1' ;Right ?

bz drive3 ;Yes. Right

movlw b'00000101' ;No. Set Left data

goto drive_end ;Jump to PORTA write

drive3

movlw b'00001010' ;Set Right data

goto drive_end ;Jump to PORTA write

;-------

drive4

movf porta,w ;Read PORTA

sublw b'000001010' ;Check motor position

bnz drive6 ;Unmatch

movf mode,w ;Read mode

sublw d'1' ;Right ?

bz drive5 ;Yes. Right

movlw b'00000110' ;No. Set Left data

goto drive_end ;Jump to PORTA write

drive5

movlw b'00001001' ;Set Right data

goto drive_end ;Jump to PORTA write

;-------

drive6

movf porta,w ;Read PORTA

sublw b'000001001' ;Check motor position

bnz drive8 ;Unmatch

movf mode,w ;Read mode

sublw d'1' ;Right ?

bz drive7 ;Yes. Right

movlw b'00001010' ;No. Set Left data

goto drive_end ;Jump to PORTA write

drive7

movlw b'00000101' ;Set Right data

goto drive_end ;Jump to PORTA write

;-------

drive8

movlw b'00000101' ;Compulsion setting

drive_end

movwf porta ;Write PORTA

goto start ;Jump to start

;************* 1msec Timer Subroutine *****************

timer

movlw d'200' ;Set loop count

movwf count2 ;Save loop count

tmlp nop ;Time adjust

nop ;Time adjust

decfsz count2,f ;count - 1 = 0 ?

goto tmlp ;No. Continue

return ;Yes. Count end

;********************************************************

; END of Stepper Motor controller

;********************************************************

end

top related