Professional Documents
Culture Documents
Đồ Án PID
Đồ Án PID
-1-
PHẦN 1: LÝ THUYẾT.................................3
CHƯƠNG 1: ĐỘNG CƠ ĐIỆN MỘT CHIỀU......................................................3
1.1 Giới thiệu động cơ DC:..................................................................................3
1.2 Mô hình hóa động cơ DC:.............................................................................3
1.3 Phương pháp điều khiển tốc độ động cơ:.....................................................4
1.4 Khảo sát hàm truyền:....................................................................................5
1.4.1 Hàm truyền lý tưởng:.............................................................................5
1.4.2 Hàm truyền gần đúng tìm được bằng thực nghiệm:............................6
1.5 Phương pháp ổn định tốc độ động cơ dùng PID:........................................7
1.5.1 Thuật toán PID:.......................................................................................7
1.5.2 Phương pháp hiệu chỉnh thông số bộ PID Ziegler-Nichols:................9
Chương 2 TỔNG QUAN VỀ PSoC IC CỦA HÃNG CYPRESS.......................10
2.1. Giới thiệu:....................................................................................................10
2.2. Giới thiệu IC khả trình PSoC của hãng CYPRESS.................................10
2.2.1 Khái niệm PSoC....................................................................................10
2.2.2 Tổng quan về tài nguyên chip PSoC....................................................10
2.2.3 Cấu trúc chi tiết bên trong chip PSoC................................................13
2.3 Giới thiệu phần mềm PSoC Designer của hãng CYPRESS.....................27
2.3.1 Tổng quan về PSoC Designer...............................................................27
2.3.2 Xây dựng kiến trúc phần cứng( Device Editor).................................27
2.3.3 Cửa sổ viết ứng dụng(Application Editor)..........................................36
CHƯƠNG 3: LÝ THUYẾT VỀ MOSFET..........................................................38
3.1 Giới thiệu về MOSFET................................................................................38
3.2 Cấu trúc cơ bản của NMOS kiểu tăng cường :........................................38
3.3 Ưu nhược điểm và các thông số quan trọng của MOSFET:....................40
3.3.1 Những ưu điểm của mosfet :................................................................40
3.3.2 Các nhược điểm của mosfet..................................................................40
3.3.3 Các thông số quan trọng của mosfet :.................................................40
PHẦN 2: THIẾT KẾ VÀ THI CÔNG.......43
CHƯƠNG 4: THIẾT KẾ VÀ THI CÔNG PHẦN CỨNG.............................43
4.1 Sơ đồ nguyên lý:...........................................................................................43
4.2 Tính toán các thông số của mạch:..............................................................44
4.2.1. Mạch đảo chiều động cơ:.....................................................................44
4.2.2 Tính toán cho FET:...............................................................................45
4.2.3 Tính toán mạch Driver cho MOSFET:...............................................47
4.3 Tính toán các tham số của bộ điều khiển PID số:.....................................49
5.1 Cấu hình bên trong PSOC:.........................................................................52
5.2 Giải thuật phần mềm:..................................................................................57
La
Ua
1
+
A Eg
-
2
dia
u a R a i a La e g (1.1)
dt
e g k v n (1.2)
Trong đó Φ là từ thông do nam châm vĩnh cữu gây ra. n là tốc độ động
cơ.
Momen điện từ:
Td = Kt Φia (1.3)
Phương trình của động cơ:
d
Td J B TL (1.4)
dt
B: hệ số ma sát
T: monen tải.
Ở chế độ xác lập:
u a Ra i a e g (1.5)
Td 2nB TL K t ia (1.6)
Ta có được tốc độ động cơ ở chế độ xác lập:
U a I a Ra
n (1.7)
Kv
Udk
Ia
U a ( p ) Ea ( p)
I a ( p) (1.14)
Ra ( a p 1)
Trong đó: a =La/Ra Hằng số thời gian của mạch phần ứng
Eg(p
)
kv
Vậy hàm truyền của động cơ lúc này có dạng khâu dao động.
1.4.2 Hàm truyền gần đúng tìm được bằng thực nghiệm:
Để tìm hàm truyền bằng thực nghiệm ta tìm đáp ứng xung của động cơ.
Ta đặt áp bằng áp định mức vào động cơ và vẽ đồ thị vận tốc theo thời gian.
Vì thời gian lấy mẫu vận tốc nhỏ do đó ta không thấy được các điểm uốn
kU = 150 vòng/s
T = 30ms=0.03s
Vậy hàm truyền gần đúng:
k 150 / 24 37.5
G
Tp 1 0.03 p 1 0.03 p 1
Dựa vào bảng trên ta thấy rằng luật tỉ lệ (P) có đặc điểm tác động nhanh
nhưng không triệt tiêu được sai lệch, đồng thời làm vọt lố của hệ thống
tăng. Khâu tích phân cho phép triệt tiêu sai lệch nhưng tác động chậm.
Khâu vi phân phản ứng với tốc độ biến thiên của sai lệch. Ta cần xác định
các thông số Kp, Ki, Kd để được hệ thống có chất lượng mong muốn.
Thuật toán của bộ điều khiển PID số:
Khâu tỉ lệ P (Proportional): GP(z) = KP
Khâu tích phân I (Integrate):
kT k
1
GI ( z) K I T
1 z 1
với e(t )dt Te (nT )
0 n 0
Trong đó T là chu kì lấy mẫu vận tốc. Công thức tích phân
gần đúng theo thuật toán xấp xỉ hình chữ nhật tới.
Để tìm được Kgh và Tgh, ban đầu ta chỉnh Ki, Kd bằng 0 sau đó tăng từ từ
Kp để hệ thống ở biên giới ổn định (dao động với biên độ và chu kì không đổi),
tại đây ta xác định được Kgh và Tgh sau đó tính các thông số khác tùy theo bộ
điều khiển như bảng trên.
Ki = Kp/Ti
Kd = KxTd
2 4
Các module đã
sử dụng
Hình 2.36Output
LC D 16x2 LS1
12V J1
C 1
VC C 4 1
10
11
12
13
14
15
16
D 3 D 4 3 104 2
1
2
3
4
5
6
7
8
9
VC C 5
LC D _W R
5
6
4
7
8
LC D _R S
C O N 2
_D
_D
_D
_D
LC D _E
6
P1
D
D
D
D
7
C
C
C
C
C O N N E C TO R D B 9 1
L
L
L
L
2K7 2
R 11
P 2 .3 Q 2 R E LA Y D P D T
2SC 1815
5
9
4
8
3
7
2
6
1
VC C R 8
LC D _D 4
LC D _D 5
R 13 1K
MACH DAO CHIEU DONG CO
G N D
SD A
SC L
VC C 1k
FET
C 4
10u SW 3 D 2
U 15 U 4
R ESET LED
2
1
0
9
8
7
6
5
4
3
2
C Y 29566 12V
2
2
2
2
1
1
1
1
1
1
1
1
13 12
R 1 IN R 1O U T
1 [6 ]
1 [4 ]
P 1 [1 ]
P 1 [7 ]
P 3 [1 ]
3 [0 ]
1 [2 ]
1 [0 ]
P 1 [3 ]
P 1 [5 ]
V+
VSS
14 11 R 14
T1O U T T 1 IN LC D _D 6 2 3 11 LC D _D 7 1k8 DC motor
P
P
P
P
P
LC D _E 2 4 P3 [2 ] P 3 [3 ] 10 LC D _R S
10 7 LC D _W R 2 5 P3 [4 ] P 3 [5 ] 9 J11
8 T 2 IN T2O U T 9 XR E S 2 6 P3 [6 ] P 3 [7 ] 8
R 2 IN R 2O U T 2 7 XR ES CY29566 SM P 7 1 Q 4
1 2 8 P4 [0 ] P 4 [1 ] 6 2 2SC 2383
10u C 2 3 C 1+ 2 9 P4 [2 ] P 4 [3 ] 5 3 C O N 4 Q 1
C 1- J13 P4 [4 ] P 4 [5 ]
3 0 4 4 IR F 5 4 0 N /T O
4 4 3 1 P4 [6 ] P 4 [7 ] 3 E ncoder Q 3
5 C 2+ 3 3 2 P2 [0 ] P 2 [1 ] 2
C 2- P2 [2 ] P 2 [3 ]
V-
R 9 2 3 3 1 P 2 .5 2SA 1013
P2 [4 ] P 2 [5 ] R 6
10k 1
0 [2 ]
0 [4 ]
0 [7 ]
0 [5 ]
2 [7 ]
2 [6 ]
0 [0 ]
0 [6 ]
0 [3 ]
0 [1 ]
D D
10u C 3 M A X2 32 Q 5
6
2SC 1815
P
P
P
P
P
V
P
P
P
P
P
C O N 4 R 15
4K7
4
5
6
7
8
9
0
1
2
3
4
C 5 1K
3
3
3
3
3
3
4
4
4
4
4
10u
SW 2
J7
S W T H W H E E L -D E C
1
9
0
5 VC C U 16 J8
G N D J14 D 5
4
3 XR E S 2 1 3 VC C 1
IN O U T
G N D
2 SC L 1 2
1 SD A R 5
D IO D E L M 7 8 0 5 C /T O 2 2 0 R E S IS T O R
C O N 2 C O N 2
2
C 6 C 7 C 8 C 9
C AP C AP D 6
C AP C AP LED
J9
2 12V
1 G N D
C O N 2
KHOI NGUON CUNG CAP
R 13 1K
MACH DAO CHIEU DONG CO
FET
Để điều khiển chiều quay của động cơ điện 1 chiều, ta có thể dùng mạch
cầu H, hoặc có thể dùng Relay. Vì dùng relay chi phí thấp hơn nên trong đồ
án này chúng tôi đã lựa chọn giải pháp này. Nguyên lý của mạch này đơn
giản như sau:
Khi chân P2.3 ở mức thấp, BJT Q2 tắt, tiếp điểm 3 nối đến 4, tiếp điểm
6 nối đến 8, khi đó Vcc nối tới chân 2 của CON2, cực D của FET nối tới
chân 2 của CON2 động cơ chạy theo chiều thuận(chiều quy ước). Khi có tín
hiệu kích 5V tại chân P2.3, BJT Q2 dẫn, tiếp điểm 3 nối đến 5, tiếp điểm 6
nối đến 7, lúc đó nguồn cung cấp cho động cơ đảo ngược so với trường hợp
trên, do đó động cơ quay theo chiều ngược lại.
Ta tính chọn với dòng cực đại qua động cơ là 5A, Chọn Relay 10A.
Công suất của relay 530mW, -> dòng qua relay 0.530/12 = 44mA. Công
suất tổn hao trên BJT Q2 chủ yếu là công suất dẫn: P = V cesat xIcsat =
0.25x44mA = 11mW.
TL B
Ia
K m
Ứng với tải cụ thể ta có thể xác định được TL từ đó ta có thể xác định
được dòng Ia cực đại qua động cơ.
Giả sử ta tính với dòng tối đa qua động cơ là 5 A
Ta phải chọn MOSFET có VDS >2Vđộng cơ, dòng >1.5 -> 2lần Imax,
khoảng10A, công suất tiêu tốn trên MOSFET tùy thuộc vào từng loại FET,
ở đây ta chọn các thông số của IRF540 để tham khảo sau đó kiểm tra lại
công suất có đảm bảo hay không..
Công suất tiêu tán trên MOSFET bao gồm 2 thành phần: công suất tiêu
tán khi FET dẫn và công suất chuyển mạch:
Ptt = Pd + Psw
Công suất tiêu tán khi FET dẫn được tính theo công thức:
Ton
Pd I 2 .RDSon .
T
Theo datasheet của IRF540, RDsonMax = 2.5Ω (Tj=150oC), Imax = 2.5 A,
Ton
max = 1
T
Pdmax = 52x2.5 = 62.5W
Công suất tiêu tán khi MOSFET hoạt chuyển mạch:
1
Psw = Vcc .I DS .(t r t f ). f sw
2
Tần số điều xung được sử dụng ở đây là 24khz, trong phần mềm sử
dụng 2000 mức điều xung, tuy nhiên, ta chỉ cần mạch đáp ứng 100 mức
điều xung (vì thời gian đáp ứng càng nhanh thì giá trị dòng đỉnh nạp cho tụ
Nhóm 1 – Lớp 04DT2
Đồ án môn học: ĐIỆN TỬ CÔNG SUẤT VÀ TRUYỀN ĐỘNG ĐIỆN Trang
- 47 -
ngõ vào của FET càng lớn, ta không muốn dòng đỉnh này quá lớn). Thời
gian của 1 mức điều xung lúc này là: 1/(24.1000.100) = 0.417µs =417ns.
Tổng thời gian nạp và xả tụ ngõ vào tại cực G phải nhỏ hơn giá trị này. Ta
chọn tr + tf =200ns
Psw = 30.5. 200.10-9.24.103 = 720 mW.
Trong đó fsw là tần số chuyển mạch.
Công suất tổng cộng lớn nhất: 63.2W
Vậy MOSFET IRF540 có các thông số: VDSS = 100V, IDS = 33A, Pmax =
130W thỏa mãn các yêu cầu đề ra.
4.2.3 Tính toán mạch Driver cho MOSFET:
Sơ đồ mạch Driver:
12V
R 14
1k8 DC motor
Q 4
2SC 2383
Q 1
IR F 5 4 0 N /TO
Q 3
2SA1013
R 6
Q 5
2SC 1815
R 15
4K7 1K
Mạch Diver được mắc theo kiểu totem-pole gồm 2 BJT 2SC2383 và
2SA1013 để đảm bảo tần số chuyển mạch nhanh cho FET.
Tính công suất của Q3 và Q4:
Ta tính dựa vào điện tích cần nạp cho tụ CGS.
PDRI = V.QG.fsw = 12.72.10-9.24.3 = 21mW.
QG :tổng điện tích nạp hoặc xả cho cực G. Theo datasheet, QG = 72nC
Mà: tx = QG/IG => IG = QG/tx
Tx thời gian nạp hoặc xả tụ ngõ vào, 2.tx =200ns=(tr + tf)
IG > 72.2/200 = 720mA
Chọn BJT Q3,Q4: có Vce > 2Vcc, P>2.21mW.
Ic
Icsat
Vcesat
Icoff
Vce t
Vcc
Công suất tổn hao trong BJT ở chế độ chuyển mạch gồm công suất tổn
hao khi dẫn bão hòa và công suất tổn hao chuyển mạch.
P = Psw + Pdẫn
Ton Ton
* Pon Vces.Icsat. Pdan VCEs I CEs
T T
(1)
*Dựa vào đồ thị ta thấy : trong quá trình chuyển đổi trạng thái làm việc,
dòng điện cực góp ic(t) và thời gian t có quan hệ tuyến tính :
Ic = Kt
Icsat-Icoff
Với K=
Tsw
Icsat
Icoff có thể bỏ qua => K=
Tsw
Icsat
=> ic= t
Tsw
(Trục hoành tính theo đơn vị là 0.05s do chu kì lấy mẫu là 50ms)
Khi vận tốc động cơ ở biên giới ổn định này, ta có được Kgh = 12.3,
Tgh = 7x0.05s = 0.35s
Vậy Kp = 0.6x12.3 = 7.4
Ti = 0.5x0.35 = 0.175 =>KI= K/Ti = 7.4/0.175 = 42.3
Td = 0.125x0. 35 = 0.04375 => KD = KxTd
Ki (của bộ PID số) = KIxT = 42.3x0.05 = 2.1
Kd (của bộ PID số) = KD/T
= 7.4x0.04375/0.05= 6.475
Đáp ứng vận tốc của động cơ lúc này:
Tuy nhiên, phương pháp Ziegler – Nichols là phương pháp đã làm xấp xỉ hàm
truyền, do đó áp dụng với động cơ có thể đáp ứng chưa được như mong muốn,
ta có thể hiệu chỉnh các thông số này để có đáp ứng mong muốn dựa theo đồ
thị.
Ở đây chọn CPU_Clock là 24Mhz, bộ chia tần sô VC1 và VC2 được Set
để có tần số VC2 là 1M để phục vụ cho các khối định thời và điều xung. Bộ
chia VC3 được chọn là 26 để chọn tốc độ baud cho khối UART.
- Cấu hình các khối số:
Khối điều xung:chọn bộ điều xung PWM 16bit để có thể dễ dàng thay
đổi tần số điều xung,. đặt tại block DB00 và DB01.
Đầu ra của khối PWM nối đến Row_0_output_1 sau đó nối đến chân
P2.5
Cấu hình các thông số khác cho khối PWM như hình vẽ:
Tần số clock đầu vào là 48MHz, chu kì là 2000 xung tương ứng với
tần số đầu ra là 48MHz/2000 = 24KHz.
Khối giao tiếp UART:
Khối UART được đặt tại block DCB02 và DCB03, đối với các khối
chức năng giao tiếp như UART, I2C, SPI… phục vụ cho truyền thông
thì ta phải đặt tại các block số DCBxx (khác với DBBxx).
Đầu vào được nối đến Row_0_Input_2 sau đó nối đến chân P4.2
Đầu ra nối đến Row_0_Output_0 -> đến chân P4.4
Kích thước bộ đệm nhận 16byte.
Kí tự kết thúc lệnh 13 (ứng với Enter, kí tự CR)
Kí tự phân cách các tham số trong dòng lệnh 32 (kí tự Space).
Các thông số khác như hình vẽ:
Khối định thời: dùng để đinh thời gian lấy mẫu tốc độ. Ta chọn bộ đinh
thời 16 bit để dễ dàng thay đổi tốc độ lấy mẫu, định thời gian linh hoạt
hơn.
Ở đây chu kì lấy mẫu vận tốc là 50ms, tần số clock đầu vào là 1MHz
nên chọn chu kì là 50000.
Khối counter 16 bit: dung để đếm số xung từ Encoder:
Khối này được đặt ở block DBB20 và DBB21 như hình vẽ
Thiết lập các thông số: xung clock ngõ vào là tín hiệu từ Encoder, do đó
ta nối tới Row_2_Input_1 -> chân P2.1.
Đồng thời ta phải thiết lập chân P2.1 là ngõ vào, chọn Mode là High Z.
Các thông số khác được chọn như hình sau:
Giá trị Period sẽ giảm mỗi khi có 1 clock ngõ vào, do đó ta thiêt lập giá
trị này ban đầu là 65535.
Khối giao tiếp LCD:
Khối này thiêt lập bằng phần mềm, do đó không cần block số nào. Để
thiêt lập ta chỉ cần chọn cổng nối tới LCD. Giao tiếp LCD ở đây hoạt
động theo chế độ 4 bit nên chỉ cần 4 đường dữ liệu. Chọn Port giao tiếp
LCD là P3.
5.2 Giải thuật phần mềm:
Lưu đồ thuật toán chương trình chính:
Begin
Khởi động
các Modul
Giải thích:
- Phần khởi động các module bao gồm:
o Khởi động Module LCD
o Khởi động Module UART
o Khởi động khối PWM.
o Khởi động Timer dùng để định thời gian lấy mẫu vận tốc và
Counter để đếm xung từ Encoder.
o Enable ngắt toàn cục và ngắt do timer
- Mỗi lần có ngắt timer (kết thúc chu kì lấy mẫu), VDK sẽ đọc giá trị bộ
đếm (Counter), Reset bộ đếm để bắt đầu lại từ đầu. Sau đó VDK tính
void pid_control(){
e1=v_set-save_count;
P_Term=(kp*e1)/10; //K'p = 0.1 -> 5 khi kp = 1-50, tranh
truong hop tinhs toan vuot khoi nguong cua integer
e00=e0;
e0=e1;
I_state=(I_state+e1)/10;
I_Term=(ki*I_state)/10;//k'i = 0.01,0.02 ...1
Begin
Kp = Dữ liệu từ
Str[0]= PC
’P’
Ki = Dữ liệu từ
Str[0]= PC
’I’
Kd = Dữ liệu từ
Str[0]= PC
’D’
Đồ án môn học: ĐIỆN TỬ CÔNG SUẤT VÀ TRUYỀN ĐỘNG
Đóng Relaay đảo
ĐIỆN Trang
Str[0]= - 62 - chiều động cơ
’D’
void send_data_pc(){
int tem1;
tem1=save_count*3;
itoa(sp,tem1,10);
UART_1_PutString(sp);
}
Trước khi gửi dữ liệu lên PC ta convert sang dạng chuỗi dùng hàm
itoa(sp,tem1,10).
End Sub
End Sub