Matlab là phần mềm cung cấp môi trường tính toán số và lập trình, do công ty MathWorks thiết kế. Matlab cho phép tính toán số với ma trận, vẽ đồ thị hàm số hay biểu đồ thông tin, thực hiện thuật toán, tạo các giao diện người dùng và liên kết với những chương trình máy tính viết trên nhiều ngôn ngữ lập trình khác.
Với thư viện Toolbox, Matlab cho phép mô phỏng tính toán, thực nghiệm nhiều mô hình trong thực tế và kỹ thuật. Matlab giúp đơn giản hóa việc giải quyết các bài toán tính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống như C, C+ + và Fortran.
Với Matlab, có thể thiết lập một hệ thống để điều khiển quá trình, ví dụ như bộ PID, ngoài ra Matlab còn mang tính học thuật cao, do đó nó rất phù hợp để chọn thực hiện đề tài. Trong luận văn này sẽ sử dụng SIMULINK, là phần mềm mô phỏng các hệ thống động học trong môi trường Matlab để mô phỏng hệ thống lò nhiệt. Đặc điểm của Simulink là lập trình ở dạng các khối, do vậy sẽ rất trực quan và dễ hiểu.
3.1. Matlab Real–time Workshop
Để phục vụ cho quá trình nhận dạng hệ thống cũng như điều khiển hệ thống theo thời gian thực, có thể dùng Matlab Real–time Workshop.
Real–time Workshop là một phần mở rộng của Simulink và Matlab, đóng gói và biên dịch mã nguồn từ các mô hình Simulink để tạo ra các ứng dụng phần mềm thời gian thực trên các hệ thống
Hình 3.7. Sơ đồ khối Real–time Workshop.
Kiểm soát thời gian thực: Từ hệ thống điều khiển thiết kế bằng Matlab &
Simulink, tạo mã từ sơ đồ khối của mô hình; có thể biên dịch và tải trực tiếp đến phần cứng mục tiêu.
Xử lý tín hiệu thời gian thực: Có thể thiết kế thuật toán xử lý tín hiệu bằng
cách sử dụng Matlab & Simulink. Các mã được tạo ra từ sơ đồ khối sau đó có thể được biên dịch và tải về phần cứng mục tiêu.
Mô phỏng phần cứng: Có thể tạo ra mô hình Simulink mô phỏng những phép
đo thực tế, động lực học hệ thống, tín hiệu cơ cấu chấp hành.
Tương tác điều chỉnh thông số thời gian thực: Cho phép thay đổi thông số ngay trong khi chương trình hoạt động.
Mô phỏng độc lập tốc độ cao.
Tạo ra mã code C để dùng cho các chương trình mô phỏng khác.
3.2. System Identification Toolbox
Có nhiều cách khác nhau để nhận dạng một hệ thống, Matlab cung cấp cho người dùng một công cụ rất mạnh để hỗ trợ việc nhận dạng, đó là System Identification Toobox (từ đây sẽ gọi tắt là Ident Tool). Công cụ này giúp nhận dạng được những mô hình không dễ dàng mô hình hóa bằng các nguyên tắc hay thông số kỹ thuật ban đầu của hệ thống. Toolbox này chỉ nhận dạng được những mô hình tuyến tính.
Mô hình toán học sẽ được xây dựng từ dữ liệu đầu vào và đầu ra của hệ thống. Toolbox có thể sử dụng cả dữ liệu vào – ra theo miền thời gian hay miền tần số để nhận dạng hàm truyền liên tục hay gián đoạn, các mô hình quá trình hay các mô hình không gian trạng thái.
Toolbox này cũng cung cấp các kỹ thuật nhận dạng như: Maximum likelihood, Prediction–Error Minimization (PEM), subspace system identification. Vì được tích hợp trong Matlab nên ta có thể sử dụng Toolbox bằng hai cách: dùng lệnh trong của sổ Command của Matlab, hoặc sử dụng trực tiếp trên giao diện của Toolbox này.
3.3. Phần cứng thu thập dữ liệu
Card NI 6052E là một DAQ (Data Acquisition) của Nationnal Instrument. Đây là một thiết bị đa chức năng (Analog, Digital, Timing I/O) có hiệu suất cao cho các bus máy tính PCI, PXI hoặc 1394. Trong luận văn này, card sẽ được kết nối vào cổng PCI của máy tính nên sẽ gọi là card PCI 6052E.
Hình 3.8. Card giao tiếp NI 6052E.
Thiết bị có các tính năng sau:
• 2 bộ chuyển đổi ADC 16-bit với 16 ngõ vào tương tự.
• Bộ chuyển đổi ADC 16-bit với ngõ ra điện áp.
• 8 đường logic transistor-transistor (TTL) tương ứng với ngõ vào ra số.
• 2 bộ đếm/định thời 24-bit cho ngõ vào ra thời gian. Tính phân cực đầu vào và phạm vi đầu vào:
• PCI 6052E có hai chế độ phân cực đầu vào: đơn cực và lưỡng cực.
• Ở chế độ đơn cực điện áp sẽ có phạm vi từ 0V đến 10V. Ở chế độ lưỡng cực, phạm vi điện áp sẽ là -5V đến 5V.
• Người dùng có thể lập trình chọn chế độ đơn cực hay lưỡng cực để thiết lập cho mỗi kênh đầu vào.
CHƯƠNG 4
THIẾT KẾ BỘ ĐIỀU KHIỂN VÀ MÔ PHỎNG HỆ THỐNG 1. Phương pháp thiết kế bộ điều khiển lò tôi
1.1. Mô hình lò tôi thực tế
Lò tôi dao cắt giấy của công ty Z.C. Việt Nam có các thông số cơ bản sau:
• Hãng sản xuất : HAYES. Inc. (Mỹ)
• Nhiệt độ tôi : 80 – 120
• Nguồn điện : 230V / 50Hz, 1 Phase
• Công suất : 120 KW
Hình 4.1. Lò nhiệt của công ty ZC Việt Nam.
Có nhiều phương pháp để lựa chọn tham số cho bộ điều khiển PID, trong đó phương pháp Ziegler – Nichols được dùng phổ biến cho các bộ điều khiển P, PI và PID, phương pháp này đơn giản và dễ sử dụng. Là phương pháp dựa trên đặc tính quá độ của quá trình thu được từ thực nghiệm với giá trị thay đổi bậc thang và đối tượng áp dụng cho phương pháp này là các quá trình có đặc tính quán tính với thời gian trễ tương đối nhỏ. Phương pháp này thường dùng tốt để giảm các nhiễu loạn của hệ thống.
Để thực hiện mục tiêu đề tài, tác giả cần thu thập được dữ liệu từ hệ thống thực, phân tích dữ liệu đó để tìm ra hàm truyền mô tả hệ thống, sau đó đưa hàm truyền này vào chương trình điều khiển để viết giải thuật điều khiển cho hệ thống thực. Để làm được những việc trên, cần một hệ thống với các thiết bị và công cụ có thể tương tác và hỗ trợ nhau như: phần cứng thu thập dữ liệu, trung tâm điều khiển (máy tính, PLC…), phần mềm và công cụ hỗ trợ (Matlab, Labview…).
Trong luận văn này, tác giả đã kết hợp giữa phần cứng thu thập dữ liệu là card PCI với trung tâm điều khiển là máy tính và phần mềm điều khiển là Matlab (dưới sự giúp đỡ của phòng lab Điều khiển tự động, bộ môn Cơ điện tử, trường Đại học Sư phạm kỹ thuật Tp.HCM).
1.2. Mô hình toán điều khiển lò tôi
Lò tôi có đầu vào là điện áp (hay công suất) cung cấp cho dây điện trở và ngỏ ra là nhiệt độ bên trong lò. Để thành lập hàm truyền lò tôi cần phải khảo sát phương trình vi phân mô tả các quan hệ nhiệt độ - năng lượng.
Một cách gần đúng, có thể xem môi trường tôi là đồng chất, đẳng nhiệt. Từ phương trình cân bằng năng lượng: điện năng cung cấp sẽ được dùng để bù vào lượng nhiệt truyền ra bên ngoài và tích nhiệt vào môi trường tôi, nên có thể tính được hàm truyền lò là bậc nhất có dạng như sau:
(4.1) Trong đó:
• P: công suất cung cấp
• : độ tăng nhiệt độ ngõ ra so với nhiệt độ môi trường
• K : hệ số tỉ lệ cho biết quan hệ vào ra ở chế độ xác lập
• T : thời hằng, thể hiện quán tính nhiệt của hệ thống
Mô hình hàm truyền này cho thấy quá trình quá độ với đầu vào hàm nấc có dạng hàm mũ. Thực tế cho thấy mô hình trên chỉ là gần đúng, hệ thống có bậc cao
hơn nhưng quá trình quá độ đầu vào hàm nấc vẫn là không vọt lố, khi cho nhiệt độ đầu bằng 0.
Theo Ziegler-Nichols thì một hệ thống như vậy có thể được biểu diễn dưới dạng hàm truyền sau.
(4.2) Bao gồm:
• Một khâu quán tính hệ số khuếch đại K
• Thời hằng T và khâu trễ thời gian L
Hệ số khuếch đại K được tính như sau:
(4.3)
• Khi nhiệt độ đầu vào khác không, K được tính từ độ tăng nhiệt độ ngõ ra so với môi trường.
• Để áp dụng cho hệ tuyến tính, có thể lấy khai triển Talor của hàm truyền trở nên.
Trong lò tôi dao cắt giấy sử dụng tại công ty Z.C. Việt Nam, các số liệu được đưa ra như sau:
• K = 100
• L = 8
• T = 26
Vậy hàm truyền của lò tôi được xác định dựa trên Ziegler-Nichols là:
(4.4)
Hình 4.2. Mô hình hệ thống lò tôi dao vòng hở.
Step là tín hiệu hàm nấc thể hiện phần trăm công suất cung cấp cho lò tôi. Kết quả mô phỏng như sau:
Hình 4.3. Đáp ứng vòng hở của hệ thống lò tôi dao.
Hàm truyền liên tục PID có dạng:
(4.5) Trong đó:
• u: ngõ ra bộ hiệu chỉnh
• e : ngõ vào bộ hiệu chỉnh
Thuật toán PID có thể nhận được khi sai phân hàm truyền trên, tương ứng phương trình vi tích phân sau:
(4.6) Gián đoạn hoá:
• Khâu vi phân (dùng định nghĩa sai phân):
(4.7)
• Khâu tích phân (theo nguyên tắc hình thang):
với (4.8)
Suy ra:
(4.9) Với , thay (n) = (n – 1) và trừ vào phương trình (4.9) đưa đến công thức cho phép tính u(n) từ u(n – 1) và các giá trị liên tiếp của e(n) như sau:
(4.10)
Với: (T là chu kỳ lấy mẫu)
• • •
2. Nhận dạng hệ thống
Như mục tiêu đã đặt ra, yêu cầu đối với luận văn là phải nhận dạng được hệ thống lò tôi dao đã thiết kế và chế tạo của công ty Z.C. Việt Nam, đưa ra được hàm truyền mô hình và kiểm chứng mô hình vừa nhận dạng được. Từ đó, có thể điều khiển nhiệt độ của hệ thống bằng bộ điều khiển PID.
Để có được những nhận định ban đầu về hệ thống, luận văn đã khảo sát đặc tính vòng hở của hệ thống. Phương pháp này dựa vào đáp ứng quá độ của hệ thống, nghĩa là cho đầu vào là tín hiệu hàm nấc và quan sát tín hiệu đầu ra trên hệ thống. Chương trình khảo sát như sau:
Hình 4.4. Chương trình khảo sát đặc tính vòng hở của hệ thống.
Khối Step là tín hiệu đầu vào cho hệ thống, có giá trị đầu là 1V, giá trị sau là 5V, thời gian lấy mẫu là 1s, mốc thời gian chuyển đổi giá trị là tại 0s.
Khối Analog Output có chức năng xuất tín hiệu từ khối Step cho đầu ra của card PCI. Tín hiệu này sẽ là tín hiệu điều khiển cho khối công suất, từ đó điều khiển công suất của hai thanh gia nhiệt.
Khối Analog input chứa tín hiệu từ cảm biến truyền về Card PCI, có mức tín hiệu từ 1 ÷ 5V (do bộ cảm biến trả về dòng từ 4 ÷ 20mA). Tín hiệu mong muốn thu thập được là nhiệt độ đầu ra của lò. Vì vậy cần phải chuyển đổi tín hiệu đọc được từ cảm biến ra nhiệt độ. Với tầm nhiệt độ giới hạn đo đã điều chỉnh trên bộ cảm biến là [0 ÷ 200] 0C, điện áp trả về là [1 ÷ 5]V. Công thức chuyển đổi:
Trong đó:
• T : nhiệt độ (0C)
• AI : tín hiệu từ cảm biến (V)
• 0,01 : offset của card PCI
Hình 4.5. Đồ thị biểu diễn đáp ứng vòng hở của hệ thống.
Dựa vào đồ thị, có thể thấy hệ thống là khâu quán tính. Thời gian quá độ của hệ thống rất lâu, do vậy có thể đoán hệ thống có hằng số thời gian rất lớn. Tuy vậy, ở khoảng thời gian đầu, nhiệt độ hệ thống tăng rất nhanh, vì vậy rất có thể hệ thống có nghiệm zero. Hệ thống có bậc một, bậc hai, hay có bậc cao, điều này sẽ được giải quyết ở phần nhận dạng mô hình tiếp theo.
2.2. Nhận dạng hệ thống bằng System Identification Toolbox 2.2.1. Thu thập dữ liệu
a. Chuẩn bị tín hiệu đầu vào
Ident Tool cung cấp hàm idinput để thu thập dữ liệu, hàm này có cấu trúc:
u = idinput(N, type, band, levels)
N: là số mẫu dữ liệu sẽ được tạo, N càng lớn càng tốt, vì sẽ mang đến nhiều thông tin của hệ thống cho quá trình nhận dạng.
type: là loại tín hiệu sẽ tạo, như đã đề cập ở phần cơ sở lý thuyết, Ident Tool cung cấp cho người dùng 4 loại tín hiệu: RGS, RBS, PRBS, sine. Trong phạm vi đề tài đã chọn loại tín hiệu RBS (Random Binary Signal).
band: [wlow whigh] - dải tần số của tín hiệu lấy mẫu. Tùy theo hệ thống mà sẽ chọn band khác nhau. Đối với hệ thống lò nhiệt này, hằng số thời gian là rất lớn nên sẽ chọn chu kỳ lấy mẫu lớn, nghĩa là dải tần sẽ hẹp lại.
levels: [minu maxu] – giới hạn lớn nhất và nhỏ nhất của tín hiệu đầu vào. Với hàm idinput này, tín hiệu tạo ra sẽ chỉ có 2 mức đó là
minu và maxu. Code tạo tín hiệu đầu vào:
u=idinput(3000,'RBS',[0 0.02],[1 5]);
for k=1:3000
input(k,1)=k; input(k,2)=u(k);
end
b. Chương trình thu thập dữ liệu
Chương trình trên sẽ xuất ra 2 biếnin và out lưu vào trong workspace. 2 biến này được dùng để chuẩn bị dữ liệu cho nhận dạng mô hình bằng Ident Tool.
in1=in.signals.values; out1=out.signals.values; offset = 31.2648; for k=1:3000 in2(k,1)=in1(k,1)-1; out2(k,1)=out1(k,1)- offset; end
Bộ dữ liệu (in1, out1) không được lấy làm bộ dữ liệu đầu vào cho quá trình nhận dạng vì bộ dữ liệu này chưa được đưa về dạng chuẩn. in1 có tầm giá trị là [1 ÷ 5], out1 thì vẫn còn lượng offset nhiệt độ môi trường. Do vậy, phải trừ đi hai tham số này, kết quả (in2, out2) chính là bộ dữ liệu cần tìm.
Hình 4.6. Chương trình thu thập dữ liệu.
2.2.2. Nhập dữ liệu nhận dạng
Mở Ident Tool bằng lệnh: ident[Enter].
Hình 4.7. Cửa sổ Indent Tool.
Tại nút Import Data, chọn Time-Domain Data, vì dữ liệu khảo sát là dữ liệu ở miền thời gian. Bảng Import Data xuất hiện như sau:
Đánh giá mô hình Vùng hiển thị mô hình ước lượng Chọn cấu trúc mô hình Vùng hiển thị dữ liệu vào Vùng nhập dữ liệu
Hình 4.8. Cửa sổ Import Data.
2.2.3. Tiền xử lý dữ liệu
Với 3000 mẫu dữ liệu đã thu được, sẽ chia làm hai phần. 2000 mẫu đầu tiên sẽ dùng để nhận dạng mô hình. 1000 mẫu còn lại dùng để đánh giá mô hình. Ngoài ra, cũng có thể có cách chọn khác hơn là chọn dữ liệu nhận dạng và dữ liệu đánh giá từ nhiều lần lấy mẫu khác nhau.
Từ cửa sổ Ident Tool, chọn Preprocess Select Range. Tại đây, chọn Time span: 0 - 1999, tương ứng với mẫu 1 - 2000, sau đó Insert vào chương trình với tên gọi mydatae. Tương tự, có thể trích ra dữ liệu mydatav chứa 1000 mẫu còn lại để đánh giá mô hình.
Gói dữ liệu tín hiệu đầu vào và đầu ra của hệ thống dùng để nhận dạng bằng Ident Tool được biểu diễn như sau:
Dữ liệu thu được
Thời gian lấy mẫu
Hình 4.9. Đồ thị biểu diễn tín hiệu input và output của các mẫu dữ liệu.
Trong đó:
• màu đỏ : dữ liệu dùng để nhận dạng
• màu vàng : dữ liệu dùng để đánh giá
2.2.4. Chọn cấu trúc mô hình, ước lượng thông số và đánh giá mô hình
a. Nhận dạng mô hình trong miền rời rạc
Để chọn cấu trúc mô hình trong miền rời rạc, trong cửa sổ System Identification Tool, từ mục Estimate, chọn Polynomial Models. Ident Tool hỗ trợ người dùng nhiều loại cấu trúc mô hình khác nhau như: ARX, ARMAX, OE hay
BJ. Do đó, có thể chọn các tham số đặc trưng của mô hình như na, nb, nc, nd, nf, nk tùy từng loại cấu trúc mô hình.
Sau khi chọn các tham số cho mô hình muốn nhận dạng, để ước lượng thông số mô hình, trong của sổ Polynomial Models, nhấn Estimate. Ident Tool sẽ tự ước lượng thông số mô hình dựa trên các tham số bậc mô hình đã chọn.
Hình 4.10. Polynomial Models.
Sau nhiều lần chọn loại mô hình nhận dạng và chọn tham số cho từng loại mô hình đó, sẽ có kết quả sau:
Hình 4.11. Nhận dạng mô hình miền rời rạc.
a1. Mô hình dạng ARX
Chọn các tham số đặc trưng Chọn cấu trúc mô hình
Lựa chọn bậc thấp cho mô hình thì sau khi nhận dạng thu được mô hình không “fit” với dữ liệu nhận dạng. Thông số của một mô hình có dạng ARX221:
arx221 =
Discrete-time ARX model: A(z)y(t) = B(z)u(t) + e(t)
A(z) = 1-1.984(+/-0.0008103)z^-1 + 0.9845(+/-0.0008071)z^-2 B(z) = 0.02308(+/-0.001533)z^-1 - 0.02202(+/-0.001568)z^-2 Name: arx221
Sample time: 1 seconds Parameterization:
Polynomial orders: na=2 nb=2 nk=1 Number of free coefficients: 4
Use "polydata", "getpvec", "getcov" for parameters and their uncertainties.
Status:
Estimated using ARX on time domain data "mydatae".
Fit to estimation data: 69.47% (simulation focus)