PID điều chỉnh nhiệt độ lò điện pdf

20 873 8
PID điều chỉnh nhiệt độ lò điện pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

: PID đi ề u ch ỉ nh nhi ệ t đ ộ lò đi ệ n mumoi 18-12-05, 11:17 Chào các bạn. Mình đang làm về PID điều khiển nhiệt độ sử dụng AT89C51. Các bạn có thể chỉ giáo cho tôi mấy chiêu về PID được không. Tôi đã viết PID trên C và: Phương trình sai phân của PID số được viết dưới dạngsai phân sau: U(i+1) = Kp*e + Kd* [e(i+1)-e(i)]/Ts + Ki*Se(i)*Ts Ở đây: e là sai số. Ts là thời gian lấy mẫu. U là đầu ra. Vấn đề là ở chỗ góc mở a cho Triac của bộ tạo nhiệt. Ta có a nằm trong khoảng 0o đến 180o. Khi đó nhiệt độ đầu ra tương ứng là toout = Tmax¸ 0. Trong lập trình thì góc mở a tương ứng với thời gian trễ của góc mở so với tín hiệu đồng pha được phát hiện bởi ngắt ngoài. Do đó a = 0o¸ 180o tương ứng a = 0 ¸ 10000ms (ở đây tần số công nghiệp là 50Hz). Vấn đề là mình không tìm được mối quan hệ giữa đầu ra của PID là U và góc mở Triac a. Mình có suy nghĩ như thế này không biết ý các cao nhân thế nào: Tức là ứng với giá trị nhiệt độ đặt là td thì ta có góc mở là ad. Như vậy góc mở tại thời điểm i là: a(i) = ad - au. trong đó au = f(U). Vấn đề là hàm f(U) xác định như thế nào? Mình chưa làm thực tế về PID bao giờ nên bỡ ngỡ quá. Các bạn chỉ cho mình mấy chiêu được không. Mình cảm ơn anh nha! Chào. Chúc vui vẻ. AFH 18-12-05, 13:33 Công thức bạn đưa ra là đúng rồi đấy. Nhưng tôi thấy bạn chưa hiểu rõ về PID vì vậy bạn nên tìm mua sách mà học PID cho cẩn thận (cái món PID này tưởng dễ chứ thực ra khó phết đấy). Còn về góc mở a thì bạn cho một biến đếm thời gian như bạn đã ghi ấy. nghĩ là góc mở 0 tương ứng với 0 và góc mở 180 độ tương ứng với 10000 us (micro giây). Giá trị trả về của bộ PID bạn cho qua bộ chặn trên và chặn dưới. Nghĩa là Umax=10000 và Umin = 0. Sau đó gán Biến đếm thời gian = U là xong. Việc điều chỉnh ổn định điều khiển phải được thực hiện qua các thống số là: Hệ số khuếch đại Kp, Hằng số tích phân Ti và hắng số vi phân Td. Chúc bạn thành công. AFH Amateur 18-12-05, 13:57 Tôi nghĩ không cần lập quan hệ Góc mở ~ Nhiệt độ. Ta điều khiển theo quan niệm: Còn sai, thì còn điều chỉnh. Nếu lò nhiệt có tải (tiêu thụ năng lượng nhiệt) thì còn phải thay đổi góc mở. Thậm chí có khi mở hết 180 độ mà bạn vẫn không đạt được nhiệt độ mong muốn đấy, do đó không thể có quan hệ Góc mở ~ NHiệt độ lò. Quan hệ này chỉ có khi nhiệt lượng tiêu thu là không đổi hay quá nhỏ. Tại một thời điểm, đang mở a độ. Nếu ta nhận được sai số nhiệt độ là e, tính ra gia số góc mở theo PID (Delta a), sau đó góc mở mới = a + delta a. Tiếp tục tìm sai lệch Vấn đề tìm ra bộ thông số Kp, Ki, Kd. Và với hệ rời rạc này, ta chọn tiếp tham số thứ 4 là Ts - Thời gian giữa 2 lần lấy mẫu. mumoi 19-12-05, 16:48 Bác AFH ơi đúng là PID phức tạp thật, bác có nói tới bộ chặn trên và bộ chặn dưới, vậy nó là gì vậy, bác chỉ rõ cho tôi được không. Cám ơn bác. To Amateur: Bác có thể nói rõ cách tính delta a như thế nào được không, tôi đang mắc chỗ đó đó. Cảm ơn nha. Chúc vui vẻ! CHIBANG 19-12-05, 17:02 Chặn trên và dưới nghĩa là các thành phần tỷ lệ, vi phân và tích phân, rồi góc mở đều có giới hạn. Nếu nó vượt qua thì gán nó bằng cái chặn gần nhất. Ví dụ: if(p>P_MAX) p=P_MAX; Biểu thức liên hệ giữa góc mở và công suất thì chỉ là biểu thức tương đối. Ví dụ bạn chia ra 1000 mức công suất đều nhau thì ứng với mức 1 góc mở 1, mức 2 góc mở 2 công suất mức 1000 góc mở 1000. 1000 mức công suất đều nhau nhưng 1000 mức góc mở lại phi tuyến vì do hàm sin. Bạn dùng exel mà suy ra. Thực tế nếu bạn dùng uC thì có thể dùng timer của nó để làm như bác AFH nói. Và có thể chỉ chia mức công suất thành vài đoạn rồi nội suy ra thời gian mở để tiết kiện Flash AFH 19-12-05, 18:41 bạn có thể hiểu chặn trên và chặn dưới nghĩa là chỉ cho giá trị điều khiển nằm trong 1 khoảng nào đấy thôi. Một ví dụ là nếu bộ điều khiển của bạn kô thể đạt giá trị đặt -> bộ tích phân cứ tiếp tục tăng -> giá trị điều khiển tăng liên tục -> tràn bộ tích phân hoặc tràn giá trị điều khiển (cái này bạn rõ nhất khi khai báo kiểu CHAR và giá trị 255 + 1 = 0 do tràn só mà) Nếu bạn dùng PID thì kô cần quan tâm đến chia đoạn công suất làm gì. Cứ còn sai lệhc thì còn tăng giá trị điều khiển đến khi nào U = U max hoặc sai lệch = 0 thì mới thôi. Chúc thành công. AFH PPIICC 19-12-05, 20:26 Nếu bạn dùng PID thì kô cần quan tâm đến chia đoạn công suất làm gì. Cứ còn sai lệhc thì còn tăng giá trị điều khiển đến khi nào U = U max hoặc sai lệch = 0 thì mới thôi. Chúc thành công. AFH Vậy là bác điều khiển định tính à? Vậy làm sao chính xác được nhỉ? Ví dụ: Công suất p =k*e Giả sử k=100, e=4 > cong suat mức là 400 e=3 >công suất là mức 300. Vậy nghĩa là phải chia mức chứ? Hơn nữa nếu điều khiển theo thời gian thì chu kỳ bán sin điện lưới 10ms. Nêu chia đều 256 mức thì mức i là (10-i/256)ms. Vậy nếu chia đều như thế này thì sẽ rất thiếu chính xác bởi lẽ những mức cận 0ms và 10ms sẽ rất bé, còn các mức ở giữa gần 5ms sẽ rất thô(do biên độ). Bởi vậy ChiBang nói đúng. AFH 19-12-05, 20:39 PID nó tự tính cho mình, chả cần chia khoảng công suất làm gì. Thế mới gọi là PID xịn chứ. :D AFH PPIICC 19-12-05, 21:37 PID nó tự tính cho mình, chả cần chia khoảng công suất làm gì. Thế mới gọi là PID xịn chứ. :D AFH Nghe bí hiểm quá =; p ở trên tỷ lệ với góc mở, chúng nó là một, chia khoảng góc mở tức là chia khoảng công suất. Công suất mình ko cần biết đích xác bao nhiêu mà chỉ cần biết % của nó và nó ứng với góc mở. Ví dụ: 50 % công suất thì ứng góc mở tại 5ms. 30% công suất ứng với góc mở khoảng 6.5ms chẳng hạn. Vậy dùng một bảng tra hay một hàm để liên hệ giữa góc mở và % công suất. Còn PID chỉ là công thức liên hệ giữa % công suất với nhiệt độ đặt, các nhiệt độ đo. Nói cách khác %công suất ~ f(Tset,Tdo) AFH 19-12-05, 22:59 bạn cần học thêm về PID thì sẽ thấy là chỉ cần biết giải điều khiển (ví dụ như góc mở anpha thì là từ 0 độ đến 180 độ) mục đích là để giới hạn giá trị điểu khiển trong khoảng đó, ngoài ra thì PID nó làm cho mình hết. Thế mới hay. Để PID có chất lượng tốt thì cần quan tâm đến 4 thông số là: Kp, Ti, Td, và Ts. AFH Amateur 19-12-05, 23:18 Bạn PII có một chút nhầm lẫn. Góc mở a sẽ có quan hệ với dòng điện qua tải (điện trở nhiệt), chứ không có quan hệ với nhiệt độ lò. Vì ta không biết được vật cần sấy trong lò sẽ tiêu thụ bao nhiêu nhiệt lượng, sự mất nhiệt qua thành lò là bao nhiêu VÌ vậy, nếu tôi mở góc a chưa nóng, tôi tiếp tục tăng a+a1, nếu chưa được, tôi lại tăng thêm một lượng a2 Thậm chí để rã đông tảng thịt bò Úc, có khi mở hết cả chu kỳ dòng điện. Chính thế nên cần PID. Nếu biết chính xác nhiệt độ với độ mở thì chẳng cần PID (Ví dụ như điều chỉnh độ sáng của bóng đèn, k0 cần PID). Còn PID thế nào, nên đọc sách. Mỗi người sẽ tìm ra một cách cụ thể, đôi khi là bí quyết. BẠn mumoi, cái U(i+1) của bạn sẽ là gia số của góc mở, vấn đề là bạn dò tìm ra các hệ số Kp, Ki, cho phù hợp. Khi tính ra, đơn giản cho nó là độ mở luôn. Nếu thấy quá lớn, tìm hệ số Kp, Ki để giảm xuống. Đúng là phải chặn, để tránh dao động. Nôm na, khi thấy xe giảm tốc độ, phải tăng ga, nhưng theo kinh nghiệm về chiếc xe của mình, sẽ tìm ra mức độ hạn chế sự tăng/giảm ga để tránh bị giật cục. PPIICC 20-12-05, 09:50 Ko nhầm đâu bạn ạ. Vì mình ko phải dân tự động hóa nên diễn đạt có thể ko đúng từ ngữ lắm. Góc mở có quan hệ với nhiệt độ của lò, chắc chắc chứ. Nếu nói một các thô thiển, nếu nhiệt độ lò chưa bằng nhiệt độ đặt thì góc mở sẽ điều chỉnh và tính toán lại để thay đổi công suất. Việc điều chỉnh đó như thế nào là phụ thuộc vào các đại lượng P,I,D. Nói tóm lại: -Góc mở và % công suất là một biểu thức phụ thuộc vào nhau. Dùng bảng tra để tìm ra cái này. -Tính được % công suất theo biểu thức PID dựa vào các thông số: T đặt, T đo(T1,T2 T hiện tại), Ki,kp,kd. Sau khi tính được mức công suất(hay dải công suất, hay % công suất) thì dùng bảng tra để tra ngược trở lại tìm ra góc mở tương ứng với % công suất đó. To AFH: PID mình có làm rồi, nói đúng hơn đã làm PI. Lúc đầu có khó khăn đôi chút, nhưng rồi sau nhờ có sư phụ mách nước nên hiểu được và lập trình được. Độ phân giải của ADC là 0.1 độ thì mình khống chế sai số được 0.2-0.3 độ thì ngon ơ. Nhưng khó cái là chỉnh kp,ki rất mất thời gian. Luôn tiện đây mình nói vê cách chỉnh Kp,ki=1/Ti mọi người góp ý kiến nhé: -Bước 1: cho ki=0,chỉnh Kp tăng dần:=1 quan sát một quá trình, =2 rồi quan sát =i rồi quan sát Giả sử khi ki=a, nhiệt độ chưa vọt lố, nhưng ki=a+1 thì vọt lố(nhiệt độ tăng quá nhiệt độ đặt tại thời điểm nào đó). Vậy giá trị ki=a được chấp nhận. -Bước 2: ki=a, rồi ki=1 quan sát, = 2 quan sát Ki càng nhỏ thì ổn định nhưng thời gian bám lâu. Vậy chỉnh ki đến b, rròi b+1, nếu b+1 bị vọt lố mà b ko bị vọt lố thì giá trị b được lưu lại -Bước 3: đặt kp=a,ki=b. Ấn nút chạy :-w AFH 20-12-05, 10:26 Gửi bạn PCIICC Bạn mua sách lý thuyết điều khiển tuyến tính của thầy Nguyễn Doãn Phước về đọc nhé. Trong đó nói rõ cách xác định tham số PID đó. Tóm lại là bạn chưa hiểu rõ về PID (tớ nói bạn đừng buồn và đừng giận). Bạn cần học PID cho bài bản để tránh những hậu quả kô ngờ. Thiệt đó, nếu kô tin lời tôi, rồi một ngày bạn sẽ nếm trải điều này. Nhất là khi bạn thiết kế PID cho động cơ. Tin hay kô thì tùy. Chúc bạn thành công AFH PPIICC 20-12-05, 12:20 Cảm ơn lời khuyên của bạn. Bạn có thể chỉ rõ một số vấn đề sai sót của mình được ko? vì mình có đọc một số quyển rồi, và thưch tế thì đã làm được, nhưng có thể gặp một số trường hợp ko ngờ nhưng chưa gặp như bạn nói. Amateur 20-12-05, 17:19 Vẫn nhầm 2*PIC ơi. Góc mở và công suất thì OK. Công suất và nhiệt độ thì lại khác. NHiệt độ phụ thuộc vào cân bằng nhiệt lượng trao đổi giữa lò và vật tiêu thụ nhiệt. Cũng như độ mở tay ga tỷ lệ với công suất động cơ, như k0 tỷ lệ với tốc độ xe. Tốc độ phụ thuộc tải trọng, độ dốc đường, tốc độ gió Các bước lựa chọn thì cứ theo sách, tôi làm rồi, ổn đấy. PPIICC 20-12-05, 17:42 NHiệt độ phụ thuộc vào cân bằng nhiệt lượng trao đổi giữa lò và vật tiêu thụ nhiệt. Nếu vậy cái đó lấy ở đâu ra vậy? bác nói mơ hồ quá. Việc mô hình hóa để tìm ra hàm đối tượng và suy ra các hệ số ki,kp,kd thường làm trên lý thuyết, thực tế thì người ta chỉnh theo kinh nghiệm hoặc cao cấp hơn các bộ điều khiển hiện nay có chế độ tự chỉnh hết cả rồi. Còn tui, cứ công thức mà tương với việc điều khiển nhiệt: e=Tset-T đo. s=s+e (s là thành phần tích phân) %Công suất= k*e+ki*s Và giới hạn các thông số như: s,% công suất trong một dải nào đó. Và từ việc tính được % công suất này, sẽ tính ra được góc mở > thay đổi góc mở. Còn việc chỉnh k,ki cho phù hợp lò nhiệt thì cần mất ít thời gian. To AFH: nếu bác tìm ra cái sai của tui thì tâm phục khẩu phục, còn chỉ nói thì ai cũng nói được. AFH 20-12-05, 20:36 Nếu vậy cái đó lấy ở đâu ra vậy? bác nói mơ hồ quá. Việc mô hình hóa để tìm ra hàm đối tượng và suy ra các hệ số ki,kp,kd thường làm trên lý thuyết, thực tế thì người ta chỉnh theo kinh nghiệm hoặc cao cấp hơn các bộ điều khiển hiện nay có chế độ tự chỉnh hết cả rồi. Còn tui, cứ công thức mà tương với việc điều khiển nhiệt: e=Tset-T đo. s=s+e (s là thành phần tích phân) %Công suất= k*e+ki*s Và giới hạn các thông số như: s,% công suất trong một dải nào đó. Và từ việc tính được % công suất này, sẽ tính ra được góc mở > thay đổi góc mở. Còn việc chỉnh k,ki cho phù hợp lò nhiệt thì cần mất ít thời gian. To AFH: nếu bác tìm ra cái sai của tui thì tâm phục khẩu phục, còn chỉ nói thì ai cũng nói được. Ái chà, chưa chịu khuất phục đây. :D Thế này nhé, Thứ nhất: với chương trình trên của bạn, tôi không gán nó bằng %Công Suất mà gán góc mở anpha = k*e+ki*s thì có được không? bạn nghĩ thử coi? Nếu được thì tôi đâu cần quan tâm đến công suất phải kô? Thứ hai:cách chỉnh Kp và Ki của bạn chả có cơ sở lý thuyết gì cả, đấy là chỉnh mò. Trong sách có dậy cách chỉnh theo đặc tính tải, hoặc theo mô hình toán học (thông thường theo đặc tính tải thì dễ hiểu hơn vì nó thực tế còn tính theo mô hình toán học thì có phải tải nào ta cũng biết mô hình toán học đâu?) Thứ ba: Chỉnh thông số Kp và Ki như bạn thì mấy ngày mới xong? Bởi quá trình nung nhiệt thì nhanh, nhưng quá trình chờ nó nguội có khi cả tiếng đồng hồ. Thứ tư: Công thức của bạn thiếu mất chu kỳ trích mẫu. Cái này cũng quan trọng đấy. hay bạn lấy chu kỳ trích mẫu là 1 giây? Thứ năm: Bạn không thiết kế bù bộ tích phân khi đầu ra lớn hơn U_max hoặc nhỏ hơn U_min. Bạn có ghi là giới hạn s, nhưng bộ tích phân thì ta kô giới hạn mà phải thiết kế bù dư và bù hụt, nếu giới hạn thì biết bao nhiêu là đủ?. Việc này bạn đã nghĩ đến chưa? ví dụ kiểu int chỉ đến 32767 thôi, cộng thêm 1 là nó về -32768 đấy. Vậy đủ chưa bạn PPIICC?? Thật ra tớ cũng chả giỏi gì hơn bạn, chẳng qua là tớ cũng bị mắc nhiều lỗi trong lập trình và trong giải thuật một bài toán cụ thể nên càng thấm thía hơn việc phải học kỹ lý thuyết, từ đó có một đường lối đúng đắn để giải quyết bài toán. Tớ khuyên bạn học cho bài bản là vì thế, chứ kô có ý lên mặt dậy đời. Thông cảm nha. Còn ví dụ về cái "trường hợp kô ngờ" thì tôi xin nêu một ví dụ thế này. Giả sử bạn dùng PID để điều khiển một tay đòn bám theo một tín hiệu nào đó. Nhưng vì lỡ để giá trị Kp lớn và Ti nhỏ. nên động cơ chạy công suất lớn nhất ngay ở giai đoạn ấn nút START xong. Kết quả là do quán tính, cái cánh tay đòn ấy phang bay luôn cả cái công tắc báo giới hạn chuyện động đi. :D :D :D Bạn thấy tai hại chưa? Chúc bạn thành công AFH PPIICC 20-12-05, 21:18 Hê hê bác chẳng làm tui khuất phục một chút nào cả. Tui lần lượt tả lời theo thứ tự của bác từ thứ nhất đến thứ hết nhé. -Thứ nhất: đó là cách của bác, còn tui lại dùng % công suất làm biến trung gian. Sau khi tính được % công suất thì suy ra được góc mở dùng bảng tra hoặc dùng một hàm liên hệ. Việc này sẽ làm tuyến tính hơn, bạn đã nghĩ điều này chưa? và biết lý do tôi dùng như thế sẽ hợp lý hơn bạn là cái chắc. -Thứ 2 và thứ 3: tôi thấy một số tài liệu họ chỉnh như vậy, cái này ko phải tôi nghĩ ra, đọc một số tài liệu về đồng hồ nhiệt của Hàn Quốc bạn sẽ biết. Nếu muốn chỉnh nhanh hơn thì phải dự đoán mà ko làm kiểu tăng từng bước mà là tăng nhảy cóc. Các câu còn lại:4-5 Dăm ba câu làm sao tôi nói hết tất cả các vấn đề cụ thể ra được. Vấn đề bạn đặt ra đó hết sức vô lý. -Thứ 4: cái này thì bạn nói làm gì? tôi làm tốt hơn bạn về khoản này là cái chắc. Vấn đề xử lý nhiễu đầu đo và lấy mẫu của tôi cực ổn. Số cuối cùng của tôi ko hề nhấp nháy một tý nào cả. Và cái này bạn lại sai, chu kỳ lấy mẫu ko quan trọng, mà là chu kỳ điều khiển. Anh có thể lấy mẫu liên tục nhưng ko cần điều khiển thì chết toi à? Vậy bạn sửa lại là chu kỳ điều khiển mới đúng. Chu kỳ điều khiển càng lớn thì đồng nghĩa thành phần tích phân lớn. Quá trình nhiệt thường biến đôi nhiệt chậm, nên thường người ta đặt khoảng trên dưới 1 giây. Của tôi, đại lượng này tôi có thể vào bằng tay(nút ấn) và thường đặt = 0.5 giây. -Thứ 5: Tôi vẫn giới hạn vì rằng nó không thể lớn hơn giới hạn của % công suất. Nó chỉ tăng tính ổn định chứ ko làm giảm chất lượng. Ví dụ: % công suất có 100 mức: 0.1 100(max) thì đương nhiên thành phần tích phân này phải <100*ki chẳng hạn. Bởi thế thành phần này tương đối lớn nên dùng kiểu long int. Bởi thế rất nhiều thứ thứ tôi đều có giới hạn trên và dưới. Thứ hết: khi xây dựng một hệ điều khiển, phải có chế độ Protect và cảnh báo. Ví dụ: các cảnh báo như đứt sensor, đứt tải(điều khiển mãi nhưng ko nhiệt độ ko tăng ) cái đó là những việc phải làm khi đưa thiết bị bàn giao cho khách hàng. Tôi vẫn mong bạn có cái gì thú vị hơn, và mong bạn có một thói quen suy nghĩ kỹ vấn đề người khác nói trước khi phát ngôn. Mong bạn bớt giận /:) nếu có gì quá AFH 20-12-05, 22:58 Chả biết nói gì hơn, bạn này chả hiểu gì về PID, thế mới buồn. :( Mất công mình trả lời. :( Bạn cứ làm theo cách của bạn. Tôi chả có gì thú vị dành cho bạn nữa rồi. :D AFH falleaf 20-12-05, 23:28 F nhảy vào một tí được không nhỉ? Bác ba quẳng cho cái link này trong lúc đang bận rộn :( Nhiệt độ đặt (Tset) (+-) > PID (U) >(a= góc mở hoặc A công suất) Máy tạo nhiệt > Nhiet độ (T) Rồi sau đó lấy T loop lại cái chỗ (+-). Đó là hệ thống của các bác phải không? Vậy thì làm như cách của 2PIC hay của AFH đều đúng. Vấn đề là các bạn quan niệm ngõ vào của máy tạo nhiệt là góc mở hay công suất máy mà thôi. Cái điều khó khăn mà chúng ta không biết, đó là hàm truyền của máy tạo nhiệt vào trong căn phòng. Có nghĩa là dù góc mở a hay công suất A thì các bạn cũng không thể nào biết được hàm truyền này. Như vậy, từ U chuyển sang a hay A thì chúng ta đều dùng hệ số tuyến tính để chuyển. Công thức có thể viết lại như sau: e = Tset - T U = P.e + D.diff(e) + I. int(e); A = kA * U hoặc a = ka *U Hay A = kA*P. e + kA*D.diff(e) + kA*I.int(e); hoặc a = ka*P. e + ka*D.diff(e) + ka*I.int(e); Đặt P' = kA*P Mối quan hệ giữa ka và kA là một mối quan hệ khá phức tạp. Tùy theo chúng ta quan niệm, tôi tạm thời chưa bàn ở đây. Vậy thì chúng ta có lại công thức của bộ PID. Như vậy, với quan niệm này, cả hai bạn đều đúng. Chỉ có điều chọn bộ PID như thế nào cho đúng? Đây là một điều rất cần quan tâm. Cả bài toán PID điều quan trọng nhất là tìm các hệ số này mà thôi. Có rất nhiều cách biến đổi, và để tìm ra các hệ số này, hoặc có thể ghép thêm các bộ điều khiển khác, để tự tìm ra hệ số này, gọi là các hệ điều khiển lai. Tuy nhiên, trong giới hạn của em đặt ra bài toán (thiệt tình là em L có viết thư cho tôi, nhưng tôi bận đến mức độ không thể trả lời được, nhưng vì tránh tình hình anh em lại gây chiến với nhau, cho nên phải post bài). Bạn 2PIC, Bạn có thể thấy rằng, cho dù bạn cố gắng làm cho công suất có vẻ tuyến tính hơn, khi chuyển đổi qua công suất bằng cách dùng bảng tra, thì thực ra, mối quan hệ giữa nhiệt độ phòng nhiệt và công suất cũng chính là một mối quan hệ không tuyến tính. Bởi vì bạn quên chưa kể đến khả năng hấp thụ nhiệt của thành lò và của các vật liệu trong lò. Mối quan hệ này là phi tuyến. Nếu như mối quan hệ này là nhỏ, bạn có thể ước lượng được đặc tính hàm truyền của lò. Nhưng thực tế không phải vậy. Bởi vì một điều rất rõ ràng rằng, nếu như có được đặc tình hàm truyền này, thì chúng ta có thể điều khiển chỉ cần dùng P, nếu bạn đã coi các tiêu hao là nhỏ. AFH, Bạn sai ở chỗ nói về chu kỳ lấy mẫu. Bởi vì trong công thức, khi đã xét chu kỳ lấy mẫu, thì chu kỳ lấy mẫu được coi là 1 đơn vị thời gian tsampling. Đơn vị trong hàm truyền PID bạn hoàn toàn có thể tính bằng 1 tsampling. Thời gian lấy mẫu chỉ có giá trị, khi bạn khảo sát hàm truyền của lò. Khi đó, giả sử hàm truyền của lò là L(s) (từ công suất hoặc góc mở trên cho nhiệt độ ngõ ra). Thì lúc đó, bạn phải rời rạc thành hàm L(z). Lúc này mới kể đến thời gian sampling. Chính vì không có L(s), cho nên việc giả định thời gian sampling đều không có ý nghĩa gì. Bởi vì với mọi hàm PID(s) bạn đều có thể biến đổi thành hàm PID(z). Nhưng vì bạn không có hàm truyền của plant L(z), vậy thì việc biến đổi sang miền rời rạc của PID cũng không cần thiết. Khi viết các công thức PID cũng không cần kể đến thời gian tsampling. Theo kinh nghiệm điều khiển nhiệt độ bằng PID, thì hệ số I không ảnh hưởng lớn. Bởi vì nhiệt độ lò biến đổi khá chậm, bạn dùng PD là đã đủ tốt rồi. Đây là vấn đề kinh nghiệm của một số người đã làm PID với lò nhiệt. Hệ số I cũng khá nhỏ. falleaf 20-12-05, 23:28 Bởi vì quá trình nhiệt diễn ra như sau: - mở máy, mở công suất. Công suất xem như xấp xỉ với nhiệt lượng tỏa ra ở bề mặt máy. Nhiệt lượng này lan tỏa vào trong phòng, sẽ gần như xấp xỉ bậc 3 với kích thước phòng. Mà kích thước này với đơn vị m cũng là một hệ số đáng kể. - Hệ số lệch giữa nhiệt độ thường 30C và 31C chẳng hạn, thì có thể thấy công suất phải thay đổi rất lớn để tăng được 1C, và đáp ứng lại rất chậm. Chính vì vậy, nếu dùng I, cố gắng tăng nhanh nhiệt độ lò, thì lúc giữ cho nhiệt độ lò ổn định lại rất khó, vì đáp ứng chậm. Nó như hiện tượng trễ. - Với động cơ, thì mình thườgn chú trognj đến việc tăng rising time, nhưng với lò nhiệt, thì mình lại thường chú trọng đến sự ổn định. Chính vì thế mà đối với lò nhiệt, I thường có giá trị nhỏ. Những vấn đề điều khiển PID, có thể giải toán rất hay, nhưng mà khi áp dụng thực tế, thì thường là mình dùng nhiều đến kinh nghiệm. Nếu bây giờ mà ngồi tìm hàm truyền max của lò, làm vài thí nghiệm để ước lượng hàm truyền của lò như làm với động cơ, thì có nước mà đốt cả đống hàng. Bởi vì không có hàng ở trong đó, thì nó không thể hiện được đặc tính nhiệt đúng với những gì mình muốn làm. Phải đưa cái gì đó vào, có khả năng hấp thụ nhiệt giốgn như món hàng mình muốnnung thì mới được. Hơn nữa, thời gian thực hiện thí nghiệm cũng khá dài, bởi vì một ván đề, với động cơ, mình có thể có giá trị âm của điều khiển, nhưng với máy tạo nhiệt, thì không thể làm cho nó có giá trị âm. Nếu như có một máy thổi khí lạnh vào, thì mình có thể làm cho nó có một giá trị âm (so với nhiệt độ đặt). Lúc này có thể biến đổi nhanh hơn một chút, nhưng dù sao, ảnh hưởng của nhiệt cũng rất chậm. Chính vì vậy, việc tìm hàm truyền với lò nhiệt gần như không khả thi. Nếu liều lĩnh, có thể làm một chuyện như sau. Bỏ khối hàng vào, mở công suất tối đa, lấy mẫu liên tục, mở đến khi nào đạt được nhiệt độ cao nhất, nằm ngoài khoảng giới hạn của mình. Vd: mình cần nung lên đến 200C, thì mình mở công suất lò lên cao nhất, cho nó lên đến 220C rồi ngừng lại. Từ đó vẽ đặc tuyến thuận của lò. Sau đó, chờ cho lò hạ nhiệt độ xuống, vẽ đặc tính ngược của lò. Chỉ làm duy nhất 1 lần, chắc cũng hết một ngày. Nó có trễ, và tiêu một lô hàng. Sau đó tin tưởng rằng thí nghiệm của mình không bị sai, và máy tao nhiệt không bao giờ bị hao mòn. Mình có thể dùng matlab để tìm ra hàm truyền ước lượng của lò. Như vậy, chúng ta sẽ xem xét tính khả thi của mỗi cách làm, và cũng xem xét luôn chi phí chấp nhận để đầu tư. Hy sinh một lô hàng để làm thử, hoặc là ngồi dò. Tùy theo yêu cầu của khách hàng và khả năng chi trả của họ. Nếu họ giàu, muốn ổn định cao, thì bảo họ hi sinh nhiều nhiều lô hàng một tí, thì tính gần đúng sẽ tốt hơn :D 2PIC, Chu kỳ lấy mẫu sampling time chính là chu kỳ của hệ điều khiển, chứ bạn không nên hiểu đó là chu kỳ lấy cái mẫu nhiệt độ. Khi người ta nói chu kỳ lấy mẫu, có nghĩa là nói đến sampling time. Cái này là bạn dùng từ sai. AFH, Công thức của 2PIC đưa ra hoàn toàn đúng, chỉ có điều đó là bộ điều khiển PI bình thường, chẳng qua là bỏ đi phần D, cũng là một kinh nghiệm điều khiển lò nhiệt. Cái này tôi không biết. Nếu bỏ đi phần D, nhiệt độ lò sẽ dễ bị dao động lắm, bởi vì nó đáp ứng chậm. Chỉ cần nó lệch một tí, thì P sẽ thay đổi nhiều, mà P đáp ứng lại bị trễ, thế nên cứ trồi lên hạ xuống. Tôi nghĩ nên có thêm thành phần D thì sẽ ổn định hơn (định tính, không định lượng, cái này các bạn áp vào [...]... bộ điều khiển dùng họ 8051 cho lò xi-măng rất hiệu quả opentdoors 24-02-06, 14:51 Chào các bạn Mình đang làm về PID điều khiển nhiệt độ sử dụng AT89C51 Các bạn có thể chỉ giáo cho tôi mấy chiêu về PID được không Chào Chúc vui vẻ Tôi lấy 1 quá trình hoạt động của 1 bộ điều khiển nhiệt độ Gerfan, có hỗ trợ "Dual-slop PID Algorithm" Tức là nhiệt độ cần điều khiển nằm giữa 2 ngưỡng trên và dưới của nhiệt. .. nghiệm điều khiển nhiệt độ bằng PID, thì hệ số I không ảnh hưởng lớn Bởi vì nhiệt độ lò biến đổi khá chậm, bạn dùng PD là đã đủ tốt rồi Đây là vấn đề kinh nghiệm của một số người đã làm PID với lò nhiệt Hệ số I cũng khá nhỏ Úi, giờ em mới nghe nói đến điều khiển PID không cần quan tâm tới thời gian trích mẫu Bác F nói điều khiển nhiệt kô cần dùng đến bộ I là sai hoàn toàn Sai 100% luôn giả sử bác cần điều. .. giữa 2 ngưỡng trên và dưới của nhiệt độ Đầu ra điều khiển triac sử dụng PWM, hoặc theo tần số Giá trị nhiệt độ thu được thông qua đầu dò J hoặc K, khi nhiệt độ lò đạt đến ngưỡng dưới của khoảng nhiệt độ thì bắt đầu xử lý theo PID Do đó đầu ra bộ điều khiển gồm đầu ra điều khiển triac để đốt, và đầu điều khiển quạt làm lạnh (nếu cần thiết) và đầu cảnh báo khi nhiệt độ đo vượt quá ngưỡng trên hoặc time-out... dùng ADC 12 bit cho bộ điều khiển nhiệt độ, nhưng trong các bộ điều khiển nhiệt độ có hỗ trợ PID mà chỗ tôi đang sử dụng chỉ dùng ADC 8 bit, để điều khiển những bếp nhiệt trên dưới 300 độ C Mà cái bộ ADC 8 bit này lại là on-chip của 83cxxx tại 11.0592MHz( lại 8051), chỉ cho 256 mức Thế mà với 8 bit nó lại điều khiển tới hơn 300 độ Tại sao thế nhỉ ?:D Đầu ra của nó luôn là PWM để gia nhiệt, phần chấp hành... gian mà tương luôn góc mở sẽ gây ra sự phi tuyến cực lớn do biên độ sóng sin ko đều Góc mở gần 0 và 180 chứa sự thay đổi công suât rất ít, còn góc mở ở 90 độ lại chứa một phần công suất rất lớn Ví dụ từ: "90 độ rồi đến 91 độ" sẽ cho một sai lệch công suất > nhiễu lần nếu "5 độ lên 6 độ" -Cái PID cho lò nhiệt thì bác F xem lại, do tốc độ tăng nhiệt chậm nên thành phần D bỏ qua chứ I tuyệt đối ko được bỏ... gian mà tương luôn góc mở sẽ gây ra sự phi tuyến cực lớn do biên độ sóng sin ko đều Góc mở gần 0 và 180 chứa sự thay đổi công suât rất ít, còn góc mở ở 90 độ lại chứa một phần công suất rất lớn Ví dụ từ: "90 độ rồi đến 91 độ" sẽ cho một sai lệch công suất > nhiễu lần nếu "5 độ lên 6 độ" -Cái PID cho lò nhiệt thì bác F xem lại, do tốc độ tăng nhiệt chậm nên thành phần D bỏ qua chứ I tuyệt đối ko được bỏ... mới nghe nói đến điều khiển PID không cần quan tâm tới thời gian trích mẫu Bác F nói điều khiển nhiệt kô cần dùng đến bộ I là sai hoàn toàn Sai 100% luôn giả sử bác cần điều khiển từ 0 đến 1000 độ Theo bộ PID của bác là: U_dieu_khien = Kp*e+Kd*de Kp: hệ số khuếch đại bộ P lấy ví dụ Kp=1; Kd: hệ số khuếch đại bộ D với Kd=(Kp*Td)/T_sampling ; lấy ví dụ Kd=0.5 khi cho hệ thống chạy, nhiệt độ tăng dần, nhưng... đơn giản hơn nhưng cách anh ppiicc lại hợp lý hơn đó opentdoors 24-02-06, 14:40 Các tham số PID sử dụng để điều khiển lò là dựa trên phương pháp thực nghiệm Ziegler-Nichol Do phương pháp này là dựa trên quỹ đạo nghiệm nên để điều khiển chính xác, cần phải sử dụng Fuzzy Logic Khi khối xử lý PID có khả năng tự điều chỉnh các tham số của nó thì khối này phải có thuật toán auto-tuning Đây là một đề tài tốt... cần điều khiển từ 0 đến 1000 độ Theo bộ PID của bác là: U_dieu_khien = Kp*e+Kd*de Kp: hệ số khuếch đại bộ P lấy ví dụ Kp=1; Kd: hệ số khuếch đại bộ D với Kd=(Kp*Td)/T_sampling ; lấy ví dụ Kd=0.5 khi cho hệ thống chạy, nhiệt độ tăng dần, nhưng khi đến khoảng 700 độ thì gia trị đầu ra như sau U=Kp*300 + Kd*0 (vì de là đạo hàm của e, e biến đổi chậm nên de ~ 0 Do vậy hệ thống cứ mãi nằm ở vị trí nhiệt. .. cộng hưởng làm các vật dẫn điện như các máng cáp điện, các nền máy làm bằng vật liệu dẫn điện rung bần bật HaiAu2005 04-03-06, 08:42 Nếu các bạn sử dụng MATLAB/Simulink làm mô phỏng cho hệ thống điều khiển PID sẽ hiểu rõ hơn, và việc chọn các hệ số khuếch đại điều khiển Kp, Ki, Kd cũng sẽ dễ dàng hơn Nếu dùng C/C++ nên dùng Visual Studio 6.0 trở lên để có thể lập chương trình điều khiển hoặc mô phỏng . mở hết cả chu kỳ dòng điện. Chính thế nên cần PID. Nếu biết chính xác nhiệt độ với độ mở thì chẳng cần PID (Ví dụ như điều chỉnh độ sáng của bóng đèn, k0 cần PID) . Còn PID thế nào, nên đọc sách hệ với nhiệt độ của lò, chắc chắc chứ. Nếu nói một các thô thiển, nếu nhiệt độ lò chưa bằng nhiệt độ đặt thì góc mở sẽ điều chỉnh và tính toán lại để thay đổi công suất. Việc điều chỉnh đó như. với dòng điện qua tải (điện trở nhiệt) , chứ không có quan hệ với nhiệt độ lò. Vì ta không biết được vật cần sấy trong lò sẽ tiêu thụ bao nhiêu nhiệt lượng, sự mất nhiệt qua thành lò là bao

Ngày đăng: 08/08/2014, 10:22

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan