4.2. Chọn và xác định thông số bộ điều chỉnh. 4.2.1. Chọn bộ điều chỉnh. Mỗi một hệ thống điều khiển tự động đều cần phải ổn định và chính xác. Để hệ thống ổn định chúng ta phải tổng hợp hệ thống. Việc tổng hợp hệ thống có thể thực hiện bằng nhiều phơng pháp nh là thay đổi thông số của hệ thống hoặc thay đổi cấu trúc của hệ thống bằng cách lắp thêm vào đó các bộ điều chỉnh. Có những hệ thống điều khiển dù thay đổi thông số đến mức nào cũng không làm nó ổn định đợc. Vì vậy ta nên sử dụng phơng pháp thay đổi cấu trúc của hệ thống. Sau đây là một số bộ điều chỉnh điển hình đó: * Bộ điều chỉnh tỷ lệ (P). * Bộ điều chỉnh tích phân (I). * Bộ điều chỉnh tỷ lệ tích phân (PI). * Bộ điều chỉnh vi phân (D). * Bộ điều chỉnh tỷ lệ vi phân (PD). * Bộ điều chỉnh tỷ lệ vi tích phân (PID). Trớc khi chọn bộ điều chỉnh ta cần hiểu khái niệm sai lệch tĩnh là gì. Sai lệch tĩnh xác định độ chính xác tĩnh của hệ. Sai lệch tĩnh đợc tính theo định lý tới hạn: () == > tee t ss lim 0 )(.lim >s sEs Hình 4.4 có nêu ảnh hởng của các bộ điều chỉnh khác nhau đối với sai lệch e(t) của hệ: Hình 4.4 - ảnh hởng của các bộ điều chỉnh đối với sai lệch e(t) a) Không có bộ điều chỉnh. b) Bộ điều chỉnh tỷ lệ P. c) Bộ điều chỉnh tích phân I. d) Bộ điều chỉnh tỷ lệ tích phân PI. e) Bộ điều chỉnh tỷ lệ vi phân PD. f) Bộ điều chỉnh tỷ lệ vi tích phân PID. Trong các bộ điều chỉnh trên thì bộ điều chỉnh tỷ lệ là đơn giản nhất, tác động nhanh nhng nó không triệt tiêu đợc sai lệch tĩnh vì hệ số khuếch đại cao quá sẽ làm hệ thống mất ổn định. Với bộ điều chỉnh I thì nó có thể triệt tiêu đợc sai lệch tĩnh. Nhng tín hiệu điều khiển chậm so với sai lệch 90 0 nên hệ thống mất ổn định. Vì vậy mà điều chỉnh I và P không đợc sử dụng rộng rãi mà phải kết hợp P và I thành bộ điều chỉnh PI. Đối với bộ điều chỉnh vi phân thì cũng giống nh bộ P là sẽ có sai lệch tĩnh và hệ thống sẽ mất ổn định khi có nhiễu tác động nên ta cũng không sử dụng bộ điều chỉnh D đơn thuần mà thờng kết hợp với bộ điều khiển P => PD và PI =>PID. Thành phần vi phân D làm tăng nhanh tốc độ tác động do a) b) c) d) e) f ) t t t t t t e(t) khâu vi phân cho đầu ra sớm pha so với đầu vào góc /2. Tuy nhiên quy luật PD không làm giảm sai lệch tĩnh. Vì vậy trong công nghiệp thờng sử dụng trong hệ thống đòi hỏi tác động nhanh. Bộ điều chỉnh PID là bộ điều chỉnh kết hợp đợc u điểm của cả 3 bộ điều chỉnh P,I,D. Tuy nhiên bộ điều chỉnh này sẽ rất phức tạp nên ngời ta thờng hay sử dụng bộ điều khiển PD,PI. Thực tế bộ điều khiển PD đợc dùng trong điều khiển ngời máy, tay máy; còn PI đợc dùng trong điều khiển quá trình nh nhiệt độ, áp suất lực. Vì vậy trong đề tài này chúng tôi chọn bộ điều chỉnh PI. 4.2.2. Xác định thông số bộ điều chỉnh. Hàm truyền của bộ điều chỉnh PI là: G PI (s) = K p T T i i s s . .1+ Sơ đồ hệ thống điều khiển đợc vẽ lại nh sau: Thông thờng thông số tối u đợc chọn là: T i = T = 36 Hàm truyền của hệ hở đợc chọn là: W(s) = G c (s)*G(s) = e s Ts K 1 với K1= K p .K Môđun và pha đợc xác định nh ở hình IV.2.2 và bằng: |W(j)| = T K 1 = - - 2 Z Y U X E e s Ts K + 1 K p T T i i s s . .1+ Hình 4.5 - Đặc tính tần biên pha của hệ thống. Nếu độ dự trữ ổn định về biên độ đợc chọn là 0,5 ( độ dự trữ ổn định về biên độ xác định bởi tỷ số của hệ số khuếch đại giới hạn k g với hệ số khuếch đại hiện hành: = () || 1 jWk k g = ); ứng với góc lệch pha - = - - 2 Từ đó : : |W(j )| = T K . 2 1 Với độ dự trữ ổn định nh trên ta có: K1= K p .K 4 T = 4 = 35,34 ệ K p 35,34: 3,9 = 9 Vậy bộ điều chỉnh PI đợc chọn nh sau: G PI (s) = 9. s s 36 361+ Để thực hiện hàm này trong vi điều khiển ta phải tiến hành chuyển nó về phơng trình sai phân bằng cách thay 1 1 . 2 + = z z T s với T là thời gian trích mẫu (Lấy thời gian trích mẫu là 1s) ta có: G(z) = 1 7172 z z hay = )( )( zU zY 1 7172 z z Y(z).z - Y(z) = 72.U(z).z - 71U(z). Y(z).z = 72.U(z).z - 71.U(z) + Y(z) Với Y(z) là tín hiệu ra rời rạc và U(z) là tín hiệu vào rời rạc. Theo tÝnh chÊt dÞch hµm gèc th× z z .Y(z) = Y(k+n) Nh− vËy ta cã Y(k+1) = 72.U(k+1) - 71.U(k)+Y(k) Ch¦¥ng V lập trình 5.1. Thuật toán điều khiển. 5.1.1. Chơng trình chính. Hình 5.1 - Thuật toán đo và điều khiển nhiệt độ buồng sấy. 5.1.2. Giải thuật chơng trình đọc A/D. Kết thúc Điều khiển Thyristor Hiển thị nhiệt độ đo và nhiệt độ đặt Hiển thị nhiệt độ đo Ke y 2 = 1 Đọc ADC Ke y 1 = 1 Nhiệt độ đặt ban đầu Bắt đầu Hiển thị nhiệt độ đặt lại Tăng t 0 đặt Giảm t 0 đặt Ke y 3= 1 Hình 5.2 - Giải thuật chơng trình đọc A/D 5.1.3. Giải thuật chơng trình tăng giảm nhiệt độ đặt. Hình 5.3 - Giải thuật chơng trình tăng giảm nhiệt độ đặt. 5.1.4. Giải thuật chuyển từ số nhị phân ra số BCD. Bắt đầu Đọc dữ liệu A/D Đổi dữ liệu ra số BCD cất vào RAM ở các địa chỉ 30h,31h,32h Kết thúc Key1=1 Bắt đầu T 0 đặt < 100 0 Key2=1 T 0 đặt >25 0 Đ Tăng nhiệt độ đặt lên 1 đơn vị Giảm nhiệt độ đặt xuống 1 đơn vị Kết thúc Đ Vi xử lý thờng làm việc với các số nhị phân. Tuy nhiên khi lu trữ, khi hiển thị hoặc khi truyền giữa các thiết bị các giá trị số 0 9, thực chất ta làm việc với mã ascii của các số đó,tức là các số 30H 39H. Nh vậy ta thấy trong một byte mã Ascii biểu diễn các số 0 9 có 4 bit thấp ứng với mã BCD của chính các số đó, 4 bit cao bao giờ cũng ứng với mã BCD của số 3 (0011B). Nếu trong byte mã Ascii này ta thay 4 bit cao bằng 0H thì ta thu đợc số BCD. Ngợc lại nếu thay 4 bit của byte cao của số BCD bằng 0011 thì ta thu đợc mã Ascii của số đó. Vậy để hiển thị và lu trữ các giá trị đọc đợc từ ADC ta cầnchuyển các số nhị phân sang mã BCD và sau đó chuyển từ BCD sang Ascii bằng cách cộng số BCD đó với 30H. Thuật toán chuyển từ số nhị phân sang BCD nh sau: Hình 5.4 - Giải thuật chuyển từ số nhị phân ra số BCD. 5.1.5. Giải thuật chơng trình điều khiển Triac. Bắt đầ Chia số cần đổi cho10 đợc số d là hàng đơn vị Chia tiếp kết quả cho 10 đợc số hàng chục và trăm Cất kết quả vào bộ nhớ ở địa chỉ 30H, 31H, 32H Kết thúc Hình 5.5 - Giải thuật chơng trình điều khiển Triac. 5.2. Lập trình. 5.2.1. Ngôn ngữ lập trình. CPU chỉ tính toán trên các số nhị phân với tốc độ rất cao. Tuy nhiên, đối với con ngời, nếu phải lập trình với các số nhị phân thì thật nhàm chán và chậm chạp. Thời kỳ đầu của máy tính lập trình viên phải viết chơng trình dới dạng ngôn ngữ máy (chỉ gồm các số 0 và 1). Mặc dù số thập lục phân (số Hexa) đã biểu diễn khá hiệu quả số nhị phân, song làm việc trên mã máy vẫn là công việc khá nặng nhọc đối với con ngời. Cuối cùng hợp ngữ đã đợc xây dựng, trong đó có sử dụng các từ gợi nhớ và cùng với những đặc tính khác nữa, hợp ngữ đã giúp cho việc lập trình dễ dàng và ít lỗi hơn. Các chơng trình hợp ngữ cần đợc dịch ra dạng mã máy nhờ một chơng trình đợc gọi là trình hợp dịch. Hợp ngữ đợc coi là một ngôn ngữ bậc thấp vì nó có quan hệ trực tiếp với cấu trúc bên trong của của CPU. Để lập trình hợp ngữ lập trình viên Đ Đ S Sau 1s S Giữ nguyên góc mở Triac Tính toán để tăng góc mở Triac Cho góc mở Triac ban đầu Tính toán để giảm góc mở Triac T 0 đo < T 0 đ ặ t ) thờng nắm vững tất cả các thanh ghi của CPU, kích thớc của chúng cũng nh các chi tiết liên quan khác. Ngày nay, ta có thể sử dụng các ngôn ngữ lập trình khác nhau nh Basic, Pascal, C, C ++ , Java và nhiều ngôn ngữ khác. Các ngôn ngữ này là những ngôn ngữ bậc cao vì lập trình viên không cần phải tơng tác với các chi tiết bên trong CPU. Các ngôn ngữ bậc cao đợc dịch ra mã máy bằng một chơng trình gọi là trình biên dịch. Tuy nhiên khi lập trình bằng ngôn ngữ cao thờng tốn nhiều bộ nhớ hơn và tốc độ xử lý của chíp sẽ chậm hơn. Vì vậy trong đề tài này chúng tôi sử dụng hợp ngữ. 5.2.2. Cấu trúc của hợp ngữ. Một chơng trình hợp ngữ bao gồm một chuỗi các dòng lệnh hợp ngữ . Một lệnh hợp ngữ bao gồm một từ gợi nhớ và tuỳ theo lệnh mà sau đó có một hoặc hai toán hạng. Từ gợi nhớ là lệnh yêu cầu CPU thực hiện còn các toán hạng là các dữ liệu cần thao tác. Sau đây là một ví dụ về chơng trình hợp ngữ: ORG 0H; MOV R5,#25H MOV R7,#34H MOV A,#0 ADD A,R5 ADD A,R7 ADD A,#12H HERE: SJMP HERE END Chơng trình trên đây là một chuỗi các câu lệnh, trong đó có các lệnh hợp ngữ nh ADD, MOV và các chỉ dẫn. Lệnh hợp ng luôn yêu cầu CPU thực hiện một nhiệm vụ , còn chỉ dẫn có nhiệm vụ hớng dẫn cho hợp ngữ chứ không yêu cầu CPU thực hiện hành động nào. ở ví dụ trên thì ADD, MOV là lệnh còn ORG và END là chỉ dẫn. Nh vậy một chơng trình hợp ngữ luôn đợc bắt đầu và kết thúc bằng các chỉ dẫn. . trong của của CPU. Để lập trình hợp ngữ lập trình viên Đ Đ S Sau 1s S Giữ nguyên góc mở Triac Tính toán để tăng góc mở Triac Cho góc mở Triac ban đầu Tính toán để giảm góc mở Triac . hợp ngữ nh ADD, MOV và các chỉ dẫn. Lệnh hợp ng luôn yêu cầu CPU thực hiện một nhiệm vụ , còn chỉ dẫn có nhiệm vụ hớng dẫn cho hợp ngữ chứ không yêu cầu CPU thực hiện hành động nào. ở ví dụ. khác nữa, hợp ngữ đã giúp cho việc lập trình dễ dàng và ít lỗi hơn. Các chơng trình hợp ngữ cần đợc dịch ra dạng mã máy nhờ một chơng trình đợc gọi là trình hợp dịch. Hợp ngữ đợc coi là một