Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 95 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
95
Dung lượng
5,6 MB
Nội dung
1 Mục lục : Mục lục: 01 Lời cảm ơn: 07 Phụ lục 1:………………………………………………………………………… 77 Danh mục bảng: Bảng 1.1: Bảng thông số làm việc tời…………………………………………10 Bảng 2.1: Ảnh hưởng giá trị Kp, Kd, Ki lên mô hình 17 Bảng 3.1: Thông số làm việc mô hình …………………………………………….31 Bảng 3.2: Ảnh hưởng giá trị Kp, Kd, Ki lên mô hình 35 Bảng 3.3: Sai số vị trí tải có nhiểu dùng điều khiển PID 36 Bảng 3.4: Bảng luật mờ xác định ngõ Kp 44 Bảng 3.5: bảng luật mờ chọn ngõ KD 45 Bảng 3.6: Bảng luật mờ xác định KI .46 Bảng 3.7: Sai số vị trí tải có nhiễu dùng điều khiển Mờ PID 48 Bảng 3.8: Sai số vị trí tải có nhiễu dùng điều khiển Mờ trượt…………… 54 Danh mục hình: Hình 1.1: Mô hình demo hãng Scantrol 09 Hình 1.2: Mô hình hãng ACE Winch .09 Hình 1.3: Hình ảnh làm việc tời kéo môi trường biển 10 Hình 1.4: Hình ảnh làm việc cầu môi trường biển 10 Hình 1.5: Mô điều khiển Fuzzy_PID Simuli …………………… 11 Hình 1.6: Kết mô điều khiển Fuzzy_PID………………………… 11 Hình 1.7: Cơ cấu truyền động thủy lực …………………… 12 Hình 1.8: Cơ cấu truyền động trực tiếp motor điện 13 Hình 1.9: Sơ đồ mô hình khí hệ thống tời kéo 13 Hình 1.10: Sơ đồ khối ổn định vị trí tải dùng STM32 F3 Discovery .14 Hình 2.1: Bộ điều khiển PID 16 Hình 2.2: Hàm liên thuộc 18 Hình 2.3: Các dạng hàm thuộc 19 Hình 2.4: Tập mờ biến tốc độ 19 Hình 2.5: Hàm liên thuộc hình chuông 23 Hình 2.6: Hàm liên thuộc hình thang .24 Hình 2.7: Cấu trúc điều khiển mờ 26 Hình 2.8: Sơ đồ khối hệ thống 27 Hình 2.9: Bộ mờ ngỏ vào ngỏ ra………………………………………… 29 Hình 3.1: Dạng mô hình hóa tời kéo 30 Hình 3.2: Sơ đồ khối simulink mô hệ thống hệ thống tời kéo .32 Hình 3.3: Đáp ứng nhiểu sóng vị trí tải 33 Hình 3.4: Sơ đồ khối simulink mô hệ thống hệ thống tời kéo 33 Hình 3.5: Đáp ứng nhiễu sóng, điểm đặt, vị trí tải……………………………… 34 Hình 3.6: Bộ điều khiển PID 34 Hình 3.7: Sơ đồ khối simulink mô hệ thống hệ thống tời kéo 36 Hình 3.8: Bộ điều khiển PID 36 Hình 3.9: Đáp ứng vị trí tải có nhiễu tần số 0.5 Hz 37 Hình 3.10: Đáp ứng vị trí tải có nhiễu tần số Hz 37 Hình 3.11: Đáp ứng vị trí tải có nhiễu tần số 0.5 Hz 38 Hình 3.12: Đáp ứng vị trí tải có nhiễu tần số Hz 38 Hình 3.13: Cấu trúc điều khiển mờ PID……………………………………… 39 Hình 3.14: Tập mờ ngỏ vào e 40 Hình 3.15: Tập mờ ngỏ vào de 40 Hình 3.16: Tập mờ ngỏ Kp 41 Hình 3.17: Tập mờ ngỏ Kd 42 Hình 3.18: Tập mờ ngỏ Ki 42 Hình 3.19: Luật suy diễn xác định Kp .44 Hình 3.20: Luật suy diễn xác định Kd 46 Hình 3.21: Luật suy diễn xác định Ki .47 Hình 3.22: Sơ đồ khối simulink mô hệ thống hệ thống tời kéo 47 Hình 3.23: Bộ điều khiển mờ PID…………………………………………………48 Hình 3.24: Kết mô nhiễu sóng……………………… …48 Hình 3.25: Đáp ứng vị trí tải có nhiễu tần số 0.5 Hz 49 Hình 3.26: Đáp ứng vị trí tải có nhiễu tần số Hz 49 Hình 3.27: Đáp ứng vị trí tải có nhiễu tần số 0.5 Hz 50 Hình 3.28: Đáp ứng vị trí tải có nhiễu tần số Hz 50 Hình 3.29: Cấu trúc điều khiển mờ trượt PID .51 Hình 3.30: Mặt trượt S(e) 51 Hình 3.31: Sơ đồ khối simulink mô hệ thống hệ thống tời kéo 53 Hình 3.32: Bộ điều khiển mờ trượt PID……………………………………… ….53 Hình 3.33: Đáp ứng vị trí tải có nhiễu tần số 0.5 Hz 54 Hình 3.34: Đáp ứng vị trí tải có nhiễu tần số Hz 55 Hình 3.35: Đáp ứng vị trí tải có nhiễu tần số 0.5 Hz 55 Hình 3.36: Đáp ứng vị trí tải có nhiễu tần số Hz 56 Hình 4.1: Mô hình khí hệ thống 57 Hình 4.2: Mô hình thực hệ thống …… 58 Hình 4.3 : Board điều khiển hệ thống 59 Hình 4.4: Hai động điều khiển quay tang trống kéo bệ 59 Hình 4.5: Board mở rộng STM32 F3 Discovery 60 Hình 4.6: Encoder đo tốc độ motor 61 Hình 4.7: Cảm biến hồng ngoại .61 Hình 4.8: Board công suất điều khiển động .62 Hình 5.1: Sơ đồ khối simulink điều khiển mờ trượt PID 64 Hình 5.2: Sơ đồ khối điều khiển motor làm giao động bệ 65 Hình 5.3: Sơ đồ khối cảm biến encoder 65 Hình 5.4: Sơ đồ khối cảm biến hồng ngoại .65 Hình 5.5: Sơ đồ khối SCI_Module 66 Hình 5.6: Sơ đồ khối U điều khiển motor .67 Hình 5.7: Sơ đồ khối mặt trượt S(e) 67 Hình 5.8: Giao diện lập trình 69 Hình 5.9: Giao diện hiển thị chạy ứng dụng 60 Hình 5.10: Đáp ứng vị trí tải 71 Hình 5.11: Đáp ứng vị trí tải 72 LỜI CẢM ƠN Luận văn thực Trường Đại học giao thông vận tải thành phố Hồ Chí Minh Để hoàn thành luận văn nhận nhiều động viên, giúp đỡ nhiều cá nhân tập thể Trước hết, xin bày tỏ lòng biết ơn sâu sắc đến TS Đặng Xuân Kiên trực tiếp hướng dẫn thực luận văn Xin bày tỏ lòng biết ơn chân thành tới thầy cô giáo, người đem lại cho kiến thức bổ trợ, vô có ích năm học vừa qua Cũng xin gửi lời cám ơn chân thành tới Ban Giám hiệu nhà trường, Phòng Đào tạo sau đại học, Khoa điện-điện tử viễn thông tạo điều kiện cho trình học tập hoàn thiện luận văn Cuối xin gửi lời cám ơn đến gia đình, bạn bè, người bên tôi, động viên khuyến khích trình thực đề tài nghiên cứu CHƯƠNG I: TỔNG QUAN ĐỀ TÀI NGHIÊN CỨU 1.1 Đặt vấn đề Ngày nay, kỹ thuật điều khiển tự động hoá không khái niệm mơ hồ mà ứng dụng thực tiễn, sử dụng rộng rãi giới nhiều lĩnh vực Trong thập kỷ gần đây, với phát triển mạnh mẽ khoa học kỹ thuật ngành máy tính điện tử công nghệ điện tử Cùng với bùng nổ thông tin, cộng với phát nhiều quy luật điều khiển như: kỹ thuật điều khiển mờ, điều khiển thích nghi, điều khiển nơron, …, Các công nghệ ứng dụng ngày phổ biến cấp thiết trình sản xuất, ngành công nghiệp đòi hỏi xác cao có khả nguy hiểm công nghiệp hóa lọc dầu, công nghiệp hóa chất, sản xuất thép, xi măng… thúc đẩy kỹ thuật điều khiển tự động hoá công nghệ phát triển mạnh mẽ, sâu rộng ngày hoàn thiện Với phát triển vậy, việc áp dụng luật điều khiển thông minh cho thiết bị điều khiển tàu thủy ngày phổ biến Như biết, tàu dịch vụ thường lắp đặt tời kéo công suất lớn, dùng để nâng hạ thiết bị mà thiết bị làm việc môi trường biển chẳng hạn đưa robot xuống biển làm việc Do tác động sóng biển làm cho tàu nhấp nhô lên xuống làm cho tời lắp tàu nhấp nhô lên xuống theo tàu Như vậy, tời bị nâng lên hạ xuống làm cho thiết bị tải gắn vào tời làm việc biển bị dịch chuyển lên hay dịch chuyển xuống Vấn đề yêu cầu thực tiễn thiết bị tải làm việc biển không bị dịch chuyển lên xuống cần thiết, sóng cấp làm cho thiết bị làm việc nâng lên hạ xuống tới 4m Trong luận văn đưa giải pháp để giải vấn đề này, sử dụng cảm biến đo chuyển động lên xuống tàu, kết hợp với điều khiển mờ lai để điều khiển tời kéo tải lên hay hạ xuống, để bù vào độ dịch chuyển tải sóng tác động vào tàu Ngoài ra, điều khiển áp dụng cho thiết bị cẩu lắp tàu, khác tải làm việc cạn Nên có số thông số thay đổi trình xây dựng mô hình toán học 1.2 Các công trình nghiên cứu liên quan 1.2.1 Các mô hình điều khiển bù nhấp nhô 1.2.1.1 Hệ thống mô hình hãng SCANTROL Hệ thống mô hình điều khiển bù nhấp nhô hãng SCANTROL [9] Hình 1.1: Mô hình demo hãng Scantrol Hệ thống gồm chuyển động lên xuống, mô cho chuyển động tàu sóng Trên có cảm biến đo độ nhấp nhô tời điện Hệ thống điều khiển dây tời kéo lên hay thả xuống, để giữ vật vị trí ổn định theo chuyển động 1.2.1.2 Hệ thống hãng ACE WINCH Hệ thống tời kéo có điều khiển bù nhấp nhô hãng ACE WINCH [10] Hình 1.2: Mô hình hãng ACE WINCH Hệ thống làm việc tốt điều kiện sau: Bảng 1.1: Các thông số làm việc tời Khoảng cách dịch chuyển tải sóng tác động Chu kỳ nhấp nhô sóng Tải trọng Chiều dài dây cáp tang trống Bù nhấp nhô Tốc độ lớn tang trống Moment lớn 5m(+/-2.5) 8s 12 4000m 90% 120rpm 11.5KNM 1.2.2 Các hệ thống thực tế bên Hình 1.3: Hình ảnh làm việc tời kéo môi trường biển Hình1.4: Hình ảnh làm việc cẩu môi trường biển Ta thấy hệ thống tời kéo cẩu dùng biển phổ biến, việc giữ ổn định vị trí tải cần thiết, thời tiết biển thay đổi liên tục Do áp dụng điều khiển bù nhấp nhô hợp lý, cho ta vị trí tải mong muốn 1.3 Các báo nghiên cứu liên quan đến đề tài Hiện hãng sản xuất tời kéo SCANTROL, ACE WINCH đưa điều khiển giữ thăng vào hệ thống tời kéo Thuật toán thường dùng điều khiển PID để giữ thăng Những báo nghiên cứu vấn đề [1], [2], [3], dùng điều khiển Fuzzy_PID để điều khiển hệ thống tời thủy lực, phương pháp xây dựng mô lại Hình 1.5 Matlab: Hình 1.5: Mô điều khiển Fuzzy_PID Simulink Kết mô thể Hình 1.6: Hình 1.6: Kết mô điều khiển Fuzzy_PID Bằng khảo sát thông qua kết mô phỏng, thấy đáp ứng đầu hệ thống dao động tương đối mạnh xung quanh vị trí đặt Điều cho thấy khả thích nghi phương pháp chưa cao Từ đánh giá trên, luận văn 10 trình bày phương pháp điều khiển mờ lai với kiểu lai ghép mờ PID vàkiểu lai ghép mờ trượt PID, với mong muốn tìm điều khiển tốt khắc phục ảnh hưởng sóng biển lên ổn định vị trí tải 1.4 Giới hiệu cấu hình hệ thống Có hai loại cấu hình truyền động thực tế bên ngoài: 1.4.1 Truyền động thủy lực Hình 1.7: Cơ cấu truyền động thủy lực Trong mô hình trên, hệ thống truyền động tời thủy lực Hệ thống gồm có tang trống quấn cáp, cáp truyền động qua puly Để quay tang trống có nguồn thủy lực bơm vào motor thủy lực tang trống Nguồn thủy lực cung cấp thông qua bơm van điện từ Có cảm biến đo độ nhấp nhô tời để đưa vào điều khiển Bộ điều khiển làm nhiệm vụ điều khiển đóng mở van điện từ, cho nguồn thủy lực vào motor thủy lực theo chiều quay ngược hay quay thuận tang trống, để bù vào độ nhấp nhô tương ứng nhiễu sóng bên ngoài, làm vị trí tải ổn định 81 LineItem curve1 = zedGraphControl1.GraphPane.CurveList[0] as LineItem; LineItem curve2 = zedGraphControl1.GraphPane.CurveList[1] as LineItem; if (curve1 == null) return; if (curve2 == null) return; // list chứa điểm // Get the PointPairList IPointListEdit list1 = curve1.Points as IPointListEdit; IPointListEdit list2 = curve2.Points as IPointListEdit; if (list1 == null) return; if (list2 == null) return; // Time tính ms double time = (Environment.TickCount - tickStart) / 1000.0; // Tính toán giá trị thị // Muốn thị việc thay vào setpointx list1.Add(time, setpoint1); // Đây hàm hiển thị liệu lên đồ thị // list2.Add(time, setpoint2); // Đây hàm hiển thị liệu lên đồ thị // Ko vẽ setpoint2 mà thử vẽ đồ thị hình sin với seconds per cycle list2.Add(time, setpoint2); 82 // đoạn chương trình thực vẽ đồ thị Scale xScale = zedGraphControl1.GraphPane.XAxis.Scale; if (time > xScale.Max - xScale.MajorStep) { //xScale.Max = time + xScale.MajorStep; // xScale.Min = xScale.Max - 30.0; // Timer chạy qua 30 tự động dịch chuyển tịnh tiến sang trái // Nếu ko muốn dịch chuyển mà chạy : xScale.Min = 0; if (btCompact.Text == "COMPACT") { xScale.Max = time + xScale.MajorStep; xScale.Min = xScale.Max - 30.0; } else { xScale.Max = time + xScale.MajorStep; xScale.Min = 0; } } // Vẽ đồ thị zedGraphControl1.AxisChange(); // Force a redraw zedGraphControl1.Invalidate(); } public void draw1(string current2, string current3) // Ở ví dụ có đường { double setpoint11, setpoint12, setpoint13, setpoint14; double.TryParse(current2, out setpoint13); 83 double.TryParse(current3, out setpoint14); setpoint11 = setpoint13; setpoint12 = setpoint14; if (zedGraphControl2.GraphPane.CurveList.Count xScale.Max - xScale.MajorStep) { //xScale.Max = time + xScale.MajorStep; // xScale.Min = xScale.Max - 30.0; // Timer chạy qua 30 tự động dịch chuyển tịnh tiến sang trái // Nếu ko muốn dịch chuyển mà chạy : xScale.Min = 0; if (btCompact.Text == "COMPACT") { xScale.Max = time1 + xScale.MajorStep; xScale.Min = xScale.Max - 30.0; } else { xScale.Max = time1 + xScale.MajorStep; xScale.Min = 0; } } // Vẽ đồ thị zedGraphControl2.AxisChange(); // Force a redraw zedGraphControl2.Invalidate(); } public void draw2(string current4, string current5) // Ở ví dụ có đường { 85 double setpoint21, setpoint22, setpoint23, setpoint24; double.TryParse(current4, out setpoint23); double.TryParse(current5, out setpoint24); setpoint21 = setpoint23; setpoint22 = setpoint24; if (zedGraphControl3.GraphPane.CurveList.Count xScale.Max - xScale.MajorStep) { //xScale.Max = time + xScale.MajorStep; // xScale.Min = xScale.Max - 30.0; // Timer chạy qua 30 tự động dịch chuyển tịnh tiến sang trái // Nếu ko muốn dịch chuyển mà chạy : xScale.Min = 0; if (btCompact.Text == "COMPACT") { xScale.Max = time2 + xScale.MajorStep; xScale.Min = xScale.Max - 30.0; } else { xScale.Max = time2 + xScale.MajorStep; xScale.Min = 0; } } // Vẽ đồ thị zedGraphControl3.AxisChange(); // Force a redraw zedGraphControl3.Invalidate(); } // Hàm kiện nhận dử liệu gọi đến Mục đích để hiển thị 87 private void DataReceive(object obj, SerialDataReceivedEventArgs e) { InputData = P.ReadLine (); if (InputData != String.Empty) { // txtIn.Text = InputData; // Ko dùng đc khác threads } } // Hàm em Đừng hỏi lại private void tachchuoi(string text) { int length = text.Length; if(length ==36) { vitri = text.Substring(0, 6) + "\t"; vantoc = text.Substring(6, 6) +"\t"; alpha = text.Substring(12, 6) + "\t"; alphadot = text.Substring(18, 6) + "\t"; udk = text.Substring(24, 6) + "\t"; vitridat = text.Substring(28, 6) + "\t"; } } private void label3_Click_1(object sender, EventArgs e) { } private void cbCom_SelectedIndexChanged(object sender, EventArgs e) { if (P.IsOpen) { 88 P.Close(); // Nếu mở Port phải đóng lại } P.PortName = cbCom.SelectedItem.ToString(); // Gán PortName COM chọn } private void cbRate_SelectedIndexChanged(object sender, EventArgs e) { if (P.IsOpen) { P.Close(); } P.BaudRate = Convert.ToInt32(cbRate.Text); } private void cbBits_SelectedIndexChanged(object sender, EventArgs e) { if (P.IsOpen) { P.Close(); } P.DataBits = Convert.ToInt32(cbBits.Text); } private void cbParity_SelectedIndexChanged(object sender, EventArgs e) { if (P.IsOpen) { P.Close(); } // Với thằng Parity lằng nhằng Nhưng OK ^_^ switch (cbParity.SelectedItem.ToString()) 89 { case "Odd": P.Parity = Parity.Odd; break; case "None": P.Parity = Parity.None; break; case "Even": P.Parity = Parity.Even; break; } } private void cbBit_SelectedIndexChanged(object sender, EventArgs e) { if (P.IsOpen) { P.Close(); } switch (cbBit.SelectedItem.ToString()) { case "1": P.StopBits = StopBits.One; break; case "1.5": P.StopBits = StopBits.OnePointFive; break; case "2": P.StopBits = StopBits.Two; break; 90 } } private void button1_Click(object sender, EventArgs e) { try { P.Open(); btNgat.Enabled = true; btKetNoi.Enabled = false; // Hiện thị Status status.Text = "Đang kết nối với cổng " + cbCom.SelectedItem.ToString(); } catch (Exception ex) { MessageBox.Show("Không kết nối được.","Thử lại",MessageBoxButtons.OK,MessageBoxIcon.Error); } lblConnect.Text = "Connected"; } private void btNgat_Click(object sender, EventArgs e) { P.Close(); btKetNoi.Enabled = true; btNgat.Enabled = false; // Hiện thị Status status.Text = "Đã Ngắt Kết Nối"; } private void button4_Click(object sender, EventArgs e) { 91 DialogResult kq = MessageBox.Show("Bạn thực muốn thoát", "TRICLUBVN", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (kq == DialogResult.Yes) { MessageBox.Show("Cảm ơn bạn sử dụng chương trình","TRICLUBVN"); this.Close(); } } private void tacGiaToolStripMenuItem_Click(object sender, EventArgs e) { } private void txtkq_TextChanged(object sender, EventArgs e) { } private void label5_Click(object sender, EventArgs e) { } private void label2_Click(object sender, EventArgs e) { } private void txtvitrihihi_TextChanged(object sender, EventArgs e) { } private void label1_Click(object sender, EventArgs e) { } private void label3_Click(object sender, EventArgs e) 92 { } private void toolStripStatusLabel1_Click(object sender, EventArgs e) { } private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void status_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { } private void toolStripStatusLabel1_Click_1(object sender, EventArgs e) { } private void timer1_Tick(object sender, EventArgs e) { tachchuoi(InputData); draw(vitri, vitridat ); draw1(alpha, "0"); draw2(udk, "0"); txt_r.Text = vitri; txt_rdot.Text = vantoc; txt_alpha.Text = alpha; txt_alphadot.Text = alphadot; txt_udk.Text = udk; } 93 int check = 0; // nhấn Start điểm private void button1_Click_1(object sender, EventArgs e) { if (btStart.Text == "START") { timer1.Enabled = true; btStart.Text = "STOP"; // Khởi động timer vị trí ban đầu if (check == 0) { tickStart = Environment.TickCount; check = 1; } } else { timer1.Enabled = false; btStart.Text = "START"; } } private void button3_Click(object sender, EventArgs e) { if (btCompact.Text == "COMPACT") btCompact.Text = "SROLL"; else btCompact.Text = "COMPACT"; } private void btXoa_Click(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { Form2 frm = new Form2(); frm.ShowDialog(); } 94 private void zedGraphControl1_Load(object sender, EventArgs e) { } private void label6_Click(object sender, EventArgs e) { } private void groupBox1_Enter(object sender, EventArgs e) { } private void label7_Click(object sender, EventArgs e) { } private void textBox2_TextChanged(object sender, EventArgs e) { } private void groupBox2_Enter(object sender, EventArgs e) { } private void txtSend_TextChanged(object sender, EventArgs e) { } private void pictureBox1_Click(object sender, EventArgs e) { 95 } } } [...]... của mô hình cần điều khiển Bước 2: Xác định các hệ số bộ điều khiển Kp, Kd và Ki Dựa vào đặc tính của mô hình, sự ảnh hưởng của các thông số lên bộ điều khiển và qua nhiều bước thử sai chúng ta có được các hệ số điều khiển với đáp ứng như mong muốn 33 3.3.2 Mô phỏng hệ thống bằng phương pháp điều khiển PID Hình 3.7: Sơ đồ khối simulink mô phỏng hệ thống tời kéo Hình 3.8: Bộ điều khiển PID Thông s cho. .. ra đạt được như mong muốn và thỏa các điều kiện thiết kế Từ điều này ta dễ dàng nhận thấy rằng trong bộ điều khiển phải có ba bộ điều khiển mờ để chọn ra các thông số tương ứng KP, KI, KD cho cả bộ điều khiển Dưới đây ta tiến hành xây dựng và thiết kế bộ điều khiển mờ đã giới thiệu ở trên 3.4.1 Xây dựng các tập mờ 3.4.1.1 Xây dựng các tập mờ cho các biến ngõ vào Chọn các biến vào ra: - Ld là vị trí của... động này để xây dựng mô hình toán và luật điều khiển cho hệ tời kéo Hình 1.9: Sơ đồ mô hình cơ khí của thống tời kéo 12 Hình 1.10: Sơ đồ khối điều khiển dùng STM32-F3 Discovery Như vậy theo mô hình cơ khí trên, ta thấy khi hệ thống hoạt động vị trí đặt tải sẽ không ổn định do tác động của sóng biển (hay mô hình là bệ tạo nhấp nhô).Do đó, ta phải thiết kế bộ điều khiển làm sao để điều khiển tang trống quay... một bộ điều khiển mờ Một bộ điều khiển mờ gồm 3 khâu cơ bản: + Khâu mờ hoá + Thực hiện luật hợp thành + Khâu giải mờ Xét bộ điều khiển mờ MISO sau, với véctơ đầu vào X = [ U1 U2 …….Un]ᵗ Hình 2.7: Cấu trúc bộ điều khiển mờ 2.2.7.2 Nguyên lý điều khiển mờ Hình 2.8:Sơ đồ khối của hệ thống 25 * Các bước thiết kế hệ thống điều khiển mờ + Giao diện đầu vào gồm các khâu: mờ hóa và các khâu hiệu chỉnh như tỷ... các hàm thuộc có dạng Singleton thì ta được: (2.7) 23 Đây là công thức giải mờ theo phương pháp độ cao 2.2.6 Mô hình mờ Tagaki-Sugeno Mô hình mờ mà ta nói đến trong các phần trước là mô hình Mamdani.Ưu điểm của mô hình Mamdani là đơn giản, dễthực hiện nhưng khả năng mô tảhệ thống không tốt.Trong kỹ thuật điều khiển người ta thường sử dụng mô hình mờ Tagaki-Sugeno (TS) Tagaki-Sugeno đưa ra mô hình mờ. .. giải mờ và các khâu giao diện trực tiếp với đối tượng 2.2.7.3 Thiết kế bộ điều khiển mờ Các bước thiết kế: Bước 1: Định nghĩa tất cả các biến ngôn ngữ vào/ra Bước 2: Xác định các tập mờ cho từng biến vào/ra (mờ hoá) + Miền giá trị vật lý của các biến ngôn ngữ + Số lượng tập mờ + Xác định hàm thuộc + Rời rạc hoá tập mờ Bước 3: Xây dựng luật hợp thành Bước 4: Chọn thiết bị hợp thành Bước 5: Giải mờ và... phương pháp điều khiển PID Sử dụng phương trình toán học chúng ta đã thành lập được, từ đó thiết kế các phương pháp điều khiển cho hệ thống ổn định vị trí tải của tời kéo Kỹ thuật PID là một trong những kỹ thuật điều khiển kinh điển hầu như là phổ biến nhất Hình 3.6: Bộ điều khiển PID 32 Trong bộ điều khiển PID trên, hàm truyền của khâu PID là: (3.8) Với : Kp: độ lợi khâu tỉ lệ KI: độ lợi khâu tích phân... là thiết kế bộ điều khiển, điều khiển tang trống quay thuận hay nghịch bù vào vị trí của tải bị nâng lên hay hạ xuống, để làm được điều này thì phải giải quyết các công việc sau: - Mô hình hóa hệ thống với sai số nhỏ nhất: Thiết lập công thức toán học cho hệ thống - Thiết kế và tìm luật điều khiển phù hợp nhất để cho chất lượng tốt nhất: có thể dùng một số phương pháp điều khiển ổn định như: PID, mờ. .. của tời kéo - Chương 5: Kết quả kiểm nghiệm mô hình thực tế - Chương 6: Kết luận và hướng phát triển 14 CHƯƠNG II: CƠ SỞ LÝ THUYẾT ĐIỀU KHIỂN LIÊN QUAN 2.1 Phương pháp điều khiển PID Sử dụng phương trình toán học chúng ta đã thành lập được, từ đó thiết kế các phương pháp điều khiển cho hệ thống ổn định vị trí tải của tời kéo Hệ thống của chúng ta khảo sát là sự kết hợp motor quay tang trống để giữ. .. một vài kỹ thuật được sử dụng để điều khiển giữ vị trí tải ổn định Kỹ thuật PID là một trong những kỹ thuật điều khiển kinh điển hầu như là phổ biến nhất Hình 2.1: Bộ điều khiển PID Trong bộ điều khiển PID trên, hàm truyền của khâu PID là : (2.1) Với: Kp: độ lợi khâu tỉ lệ KI: độ lợi khâu tích phân KD: độ lợi khâu vi phân Việc hiệu chỉnh phù hợp ba thông số KP, KI, KD sẽ làm tăng chất lượng điều khiển ... được, từ thiết kế phương pháp điều khiển cho hệ thống ổn định vị trí tải tời kéo Kỹ thuật PID kỹ thuật điều khiển kinh điển phổ biến Hình 3.6: Bộ điều khiển PID 32 Trong điều khiển PID trên, hàm... để xây dựng mô hình toán luật điều khiển cho hệ tời kéo Hình 1.9: Sơ đồ mô hình khí thống tời kéo 12 Hình 1.10: Sơ đồ khối điều khiển dùng STM32-F3 Discovery Như theo mô hình khí trên, ta thấy... phương pháp xây dựng mô lại Hình 1.5 Matlab: Hình 1.5: Mô điều khiển Fuzzy_PID Simulink Kết mô thể Hình 1.6: Hình 1.6: Kết mô điều khiển Fuzzy_PID Bằng khảo sát thông qua kết mô phỏng, thấy đáp