1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.

143 17 0

Đ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

Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.

LỜI CAM ĐOAN Tôi xin cam đoan đề tài nghiên cứu riêng Các số liệu kết nêu luận án trung thực chƣa đƣợc công bố đề tài nghiên cứu khác Hà Nội, tháng năm 2022 Nghiên cứu sinh i LỜI CẢM ƠN Nghiên cứu sinh (NCS) xin chân thành cảm ơn Trƣờng Đại học Bách khoa Hà Nội, Phịng Đào tạo, Trƣờng Cơ khí nhóm chun mơn Ơ tơ xe chun dụng cho phép NCS thực luận án Trƣờng Đại học Bách khoa Hà Nội Xin cảm ơn Phòng Đào tạo Trƣờng Cơ khí hỗ trợ giúp đỡ suốt trình NCS làm luận án NCS xin chân thành cảm ơn PGS.TS Đàm Hoàng Phúc TS Lại Năng Vũ hƣớng dẫn NCS tận tình chu đáo mặt chun mơn để NCS thực hồn thành luận án NCS xin chân thành biết ơn Q thầy, nhóm Ôtô xe chuyên dụngTrƣờng Đại học Bách khoa Hà Nội giúp đỡ dành cho NCS điều kiện thuận lợi để hoàn thành luận án NCS xin cảm ơn Ban Giám hiệu trƣờng trƣờng Đại học Sƣ phạm Kỹ thuật Nam Định hậu thuẫn động viên NCS suốt trình nghiên cứu học tập NCS xin bày tỏ lòng biết ơn sâu sắc đến thầy phản biện, thầy hội đồng chấm luận án đồng ý đọc duyệt góp ý kiến quý báu để NCS hoàn chỉnh luận án định hƣớng nghiên cứu tƣơng lai Cuối NCS xin gửi lời cảm ơn chân thành tới gia đình bạn bè, ngƣời động viên khuyến khích NCS suốt thời gian NCS tham gia nghiên cứu thực cơng trình Nghiên cứu sinh Nguyễn Trung Kiên ii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT vi DANH MỤC CÁC BẢNG viii DANH MỤC CÁC HÌNH ẢNH, ĐỒ THỊ ix CHƢƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Tình hình nghiên cứu ngồi nƣớc 1.2.1 Động lực học hệ thống treo 1.2.2 Thiết kế hệ thống treo thụ động 1.2.3 Hệ thống treo điều khiển điện tử 1.2.4 Cảm biến hệ thống treo điều khiển điện tử 1.2.5 Kỹ thuật điều khiển 11 1.3 Chỉ tiêu đánh giá hệ thống treo 21 1.4 Mục tiêu luận án 24 1.5 Đóng góp luận án 24 1.6 Nội dung luận án 24 1.7 Bố cục luận án 25 1.8 Kết luận 25 CHƢƠNG XÂY DỰNG MƠ HÌNH 26 2.1 Đặt vấn đề 26 2.1.1 Mô hình hệ thống treo tồn xe 26 2.1.2 Mơ hình hệ thống treo ½ 27 2.1.3 Mơ hình hệ thống treo ¼ 27 2.1.4 Mơ hình hệ thống treo ¼ bán tích cực 28 iii 2.2 Giảm chấn từ tính 32 2.2.1 Chất lỏng từ tính 32 2.2.2 Chất lỏng MR 34 2.2.3 Kết cấu giảm chấn MR 35 2.3 Mơ hình giảm chấn MR 36 2.3.1 Mơ hình bán tĩnh 37 2.3.2 Mơ hình tham số giảm chấn MR 40 2.2.2 Mơ đặc tính giảm chấn 42 2.2.3 Đánh giá đặc tính điều khiển đến hoạt động giảm chấn MR 46 2.4 Mơ hình hệ thống treo có giảm chấn MR 52 2.4.1 Mơ hình tổng thể 52 2.4.2 Mô hoạt động 53 2.5 Kết luận 55 CHƢƠNG XÂY DỰNG, THIẾT KẾ BỘ ĐIỀU KHIỂN 57 3.1 Đặt vấn đề 57 3.2 Bộ điều khiển LQR 59 3.3 Bộ quan sát Kalman (bộ lọc Kalman) 64 3.4 Bộ điều khiển LQG 67 3.5 Mô lựa chọn điều khiển 69 3.5.1 Kịch mô 69 3.5.2 Kết đánh giá 71 3.6 Đánh giá hiệu điều khiển LQG2 77 3.6.1 Đánh giá theo xung tác động dạng sin 77 3.6.2 Đánh giá dƣới tác động mặt đƣờng ngẫu nhiên 81 3.7 Kết luận 83 iv CHƢƠNG THỰC NGHIỆM XÁC ĐỊNH THÔNG SỐ GIẢM CHẤN MR 85 4.1 Mục đích 85 4.2 Yêu cầu bệ thử 85 4.3 Trình tự thực 85 4.4 Cấu tạo vào nguyên lý hoạt động bệ thử 86 4.4.1 Sơ đồ nguyên lý bệ thử 86 4.4.2 Nguyên lý hoạt động bệ thử 87 4.5 Kết cấu thiết bị thí nghiệm đặc tính giảm chấn 90 4.5.1 Kết cấu 90 4.5.2 Các thông số thiết bị 90 4.5.3 Các phận thiết bị 91 4.6 Thực nghiệm xác định đặc tính giảm chấn 91 4.6.1 Kịch thử nghiệm 92 4.6.2 Kết thử nghiệm 92 4.6.3 Xác định thơng số mơ mơ hình Dahl 96 4.7 Kết luận 103 KẾT LUẬN VÀ KIẾN NGHỊ 105 TÀI LIỆU THAM KHẢO 107 DANH MỤC CÁC CÔNG TRÌNH ĐÃ CƠNG BỐ CỦA LUẬN ÁN 117 PHỤ LỤC 118 PHỤ LỤC Bảng so sánh lực giảm chấn mô thực nghiệm vị trí dịch chuyển, dƣới tác dụng điện áp 0.1V 118 PHỤ LỤC Bảng so sánh lực giảm chấn mô thực nghiệm vị trí vận tốc, dƣới tác dụng điện áp 0.1V 118 PHỤ LỤC Chƣơng trình tính tốn liệu nạp vào Adruino 119 PHỤ LỤC 4: Chƣơng trình giao diện hiển thị 121 v DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Danh mục ký hiệu Ký hiệu Đơn vị Ma trận vật lý hệ thống treo A aWZ Giải thích m/s2 Gia tốc bình phƣơng trung binh B Ma trận điều khiển C Ma trận tín hiệu đầu Hệ số cản giảm chấn c Ns/m mb kg Khối lƣợng phần đƣợc treo mw kg Khối lƣợng phần không đƣợc treo K N/m Độ cứng phần tử đàn hồi kt N/m Độ cứng lốp zb m Dịch chuyển thân xe zw m Dịch chuyển bánh xe zr m Dịch chuyển mặt đƣờng x Trạng thái y Tín hiệu đầu F N Lực giảm chấn cần thiết Fb N Lực giảm chấn MR theo mơ hình Bouc-wen Fd N Lực giảm chấn MR theo mơ hình Dahl F-t Đặc tính lực giảm chấn – thời gian F-x Đặc tính lực giảm chấn – chuyển vị piston F-v Đặc tính lực giảm chấn – vận tốc piston G Ma trận tín hiệu nhiễu K Ma trận phản hồi trạng thái L Độ lợi Kalman Q Qe Ma trận trọng số quan tâm đến chất lƣợng điều khiển Ma trận hiệp phƣơng sai nhiễu vi Ký hiệu Đơn vị Ma trận trọng số quan tâm đến lƣợng điều R khiển Re ma trận hiệp phƣơng sai phép đo nhiễu Re U Giải thích V Điện áp điều khiển Danh mục chữ viết tắt Ký hiệu Giải thích D/A Digital to Analog Bộ chuyển số sang tƣơng tự DM Mean damping ratio Tỷ lệ giảm chấn trung bình ER Electrorheological Chất lỏng điện trƣờng LQG Linear–quadratic–Gaussian LQR Linear–quadratic regulator Điều khiển Gauss tuyến tính-bậc hai Điều chỉnh tồn phƣơng tuyến tính LQG1 Bộ điều khiển LQG2 Bộ điều khiển LQG3 Bộ điều khiển LQG4 Bộ điều khiển MEMS Micro Electro Mechanical Hệ thống vi điện tử Systems MR Magnetorheological Chất lỏng từ hoá MRD Magnetorheological Device Bộ giảm chấn từ tính RMS Root Mean Square Chỉ tiêu gia tốc bình phƣơng trung bình vii DANH MỤC CÁC BẢNG Bảng 1.1 Bảng đánh giá độ êm dịu ô tô theo ISO 2631-1 [99] 23 Bảng 2.1 Thơng số mơ hình treo ¼ 32 Bảng 2.2 Các đặc tính điển hình chất lỏng ER MR [27], [103] 34 Bảng 2.3 Thơng số mơ hình Bouc-Wen [110] 41 Bảng 2.4 Tham số mô hình Dahl [110] 42 Bảng 2.5 Kịch mô giảm chấn MR 43 Bảng 2.6 Kịch mơ đặc tính giảm chấn MR 46 Bảng 2.7 Phƣơng án mô hệ thống treo với giảm chấn MR 53 Bảng Giá trị điểm cực có điều khiển 63 Bảng 3.2 Mô theo chủng loại cảm biến 70 Bảng 3.3 Mơ theo vị trí lắp cảm biến 70 Bảng 3.4 So sánh hiệu điều khiển LQG2 80 Bảng 3.5 So sánh hiệu điều khiển LQG2 tốc độ khác 83 Bảng 4.1 Thử nghiệm xác định đặc tính giảm chấn MR 92 Bảng 4.2 Tƣơng quan mô thực nghiệm 100 Bảng 4.3 Sự phụ thuộc tham số mơ hình Dahl theo điện áp cấp 101 Bảng 4.4 Quan hệ tham số trễ mơ hình Dahl theo điện áp 103 viii DANH MỤC CÁC HÌNH ẢNH, ĐỒ THỊ Hình 1.1 Mơ hình hệ thống treo ¼ Hình 1.2 Hệ thống treo điều khiển điện tử Hình 1.3 Sơ đồ kết cấu hệ thống treo ô tô Hình 1.4 Mơ hình hệ thống treo Skyhook 13 Hình 1.5 Đáp ứng miền tần số hệ thống treo thụ động 14 Hình 1.6 Đáp ứng miền tần số hệ thống treo skyhook 15 Hình 1.7 Mơ hình hệ thống treo Groundhook 16 Hình 1.8 Điều khiển trƣợt mặt phẳng pha 18 Hình 2.1 Mơ hình khơng gian xe 26 Hình 2.2 Mơ hình phắng dao động tơ cầu 27 Hình 2.3 Mơ hình ¼ 28 Hình 2.4 Mơ hình hệ thống treo ¼ bán tích cực 29 Hình 2.5 Minh họa hoạt động chất lỏng MR 35 Hình 2.6 Cấu tạo giảm chấn MR 35 Hình 2.7 Nguyên lý hoạt động giảm chấn MR 36 Hình 2.8 Các thơng số piston van điều khiển giảm chấn MR 39 Hình 2.9 Mơ hình Bouc-Wen 40 Hình 2.10 Mơ hình Dahl 42 Hình 2.11 Đặc tính lực theo thời gian (F-t) 44 Hình 2.12 Đặc tính F-v 44 Hình 2.13 Đặc tính F-x 45 Hình 14 Sơ đồ mơ ảnh hƣởng điện áp đến đặc tính giảm chấn MR 46 Hình 2.15.Đặc tính F-t cấp điện áp điều khiển không đổi 47 Hình 2.16 Đặc tính F-v cấp điện áp điều khiển không đổi 47 Hình 2.17 Đặc tính F-x cấp điện áp điều khiển khơng đổi 47 Hình 2.18 Đặc tính điện áp điều khiển theo sƣờn dƣơng 48 Hình 2.19 Đặc tính F-t cấp điện áp điều khiển theo sƣờn dƣơng 49 Hình 2.20 Đặc tính F-v cấp điện áp điều khiển theo sƣờn dƣơng 49 Hình 2.21 Đặc tính F-x cấp điện áp điều khiển theo sƣờn dƣơng 50 ix Hình 2.22 Đặc tính điện áp điều khiển đối xứng âm-dƣơng 50 Hình 2.23 Đặc tính F-t cấp điện áp điều khiển đối xứng âm-dƣơng 50 Hình 2.24 Đặc tính F-v cấp điện áp điều khiển đối xứng âm-dƣơng 51 Hình 2.25 Đặc tính F-x cấp điện áp điều khiển đối xứng âm-dƣơng 51 Hình 2.26 Mơ hình hệ thống treo ¼ với giảm chấn MR 53 Hình 27 Đặc tính F-v hệ thống treo ¼ có giảm chấn MR 54 Hình 2.28 Đặc tính F-x hệ thống treo ¼ có giảm chấn MR 54 Hình 2.29 So sánh dịch chuyển thân xe 54 Hình 3.1 Sơ đồ bố trí điều khiển hệ thống treo bán tích cực 57 Hình 3.2 Mơ hình khơng gian trạng thái kết hợp điều khiển LQR 59 Hình 3.3 Sơ đồ mơ hệ thống điều khiển hệ thống treo theo luật LQR 60 Hình 3.4 Sơ đồ khối kết nối lọc Kalman 64 Hình 3.5 Sơ đồ lọc Kalman liên tục 65 Hình 3.6 Bộ quan sát Kalman điều khiển hệ thống treo bán tích cực 65 Hình 3.7 Các bƣớc thực Kalman 66 Hình 3.8 Sơ đồ điều khiển hệ thống treo theo thuật tốn LQG 67 Hình 3.9 Dịch chuyển thân xe với phƣơng án điều khiển 71 Hình 3.10 Biên độ dao động thân xe cực đại 71 Hình 3.11 Đặc trƣng dao động tắt dần 72 Hình 3.12 So sánh hiệu dập tắt dao động 73 Hình 3.13 Đặc tính lực giảm chấn cần thiết hệ thống treo ¼ 73 Hình 3.14 Dao động thân xe LQG2, LQG3 LQG4 74 Hình 3.15 So sánh biên độ dao động cực đại theo phƣơng án điều khiển 75 Hình 3.16 So sánh hiệu dập tắt dao động theo phƣơng án điều khiển 75 Hình 3.17 Lực giảm chấn cần thiết cần thiết phƣơng án 76 Hình 3.18 Đặc tính dịch chuyển thân xe 78 Hình 3.19 Độ giảm dịch chuyển thân xe cực đại 78 Hình 3.20 Đặc tính gia tốc dao động thân xe 79 Hình 3.21 Độ giảm gia tốc cực đại 79 Hình 3.22 Độ giảm RMS 79 x PHỤ LỤC PHỤ LỤC Bảng so sánh lực giảm chấn mơ thực nghiệm vị trí dịch chuyển, dƣới tác dụng điện áp 0.1V Lực giảm chấn (N) Vị trí dịch chuyển Thực nghiệm Mơ -4.75 116 123.1 -4.75 104 123.1 -2.11 184 191.6 -2.05 180 191.6 1.66 205 199.8 1.87 208 197.5 4.65 132 133 4.66 148 130.5 -4.89 -68 -112.4 -4.86 -140 -115.2 -2.92 -196 -183.6 0.71 -200 -204 1.09 -188 -201 4.19 -100 -145.2 4.32 -88 -139.8 PHỤ LỤC Bảng so sánh lực giảm chấn mô thực nghiệm vị trí vận tốc, dƣới tác dụng điện áp 0.1V Lực giảm chấn Vị trí vận tốc Thực nghiệm Mô -30.54 -196 -202 -29.81 -200 -200 -25.93 -188 -183.6 -13.96 -100 -135 -12.33 -88 -126.1 -8.282 -68 -84.99 118 Lực giảm chấn Vị trí vận tốc Thực nghiệm Mô 9.262 148 117.6 10.01 132 120.4 17.16 116 147.8 25.45 208 180.6 27.97 205 191.6 -30.54 -196 -202 -29.81 -200 -200 -25.93 -188 -183.6 -13.96 -100 -135 -9.451 -140 -117.9 16.88 104 68.35 PHỤ LỤC Chƣơng trình tính tốn liệu nạp vào Adruino #include SimpleKalmanFilter cambienluc(1, 1, 0.001); #define INTERRUPT_INPUT #define dem int pulse_counter = 0; int pulse_counter1 = 0; int state = 0; // Tạo biến kiện để điều khiển Arduino // Tạo biến để xác định thời gian thực Arduino long time_now = 0; long time_start = 0; float bien_tro();// doc gia tri bien tro long goc_quay = 0; long test = 0; long data = 0; long data2 = 0; long check1=0; long check2=0; float data1();// doc gia tri van toc float check(); void setup() { Serial.begin(9600); // Khởi tạo giao thức Serial, chọn baudrate 9600 digitalWrite(INTERRUPT_INPUT, HIGH); digitalWrite(dem, HIGH); attachInterrupt(INTERRUPT_INPUT , interrupt_handler, RISING); attachInterrupt(dem ,interrupt_handler1 , RISING); 119 } void loop() { // Điều khiển Arduino qua giá trị biến state if (Serial.available()) { char temp = Serial.read(); if (temp == '0') state = 0; if (temp == '1') state = 1; if (temp == '2') state = 2; } // Thực thi trường hợp với giá trị biến state switch (state) { // state = 0: dừng Arduino case 0: break; // state = 1: thực thi hàm đọc giá trị biến trở, xuất liệu thời gian thực qua Serial, phân tách ký tự gạch đứng “|” case 1: // if(check()== 2) { bien_tro(); data1(); Serial.print(time_now); Serial.print("|"); Serial.print(data2); Serial.print("|"); Serial.println(goc_quay); } break; // state = 2: Reset liệu thời gian case data = 0; goc_quay = 0; time_now = 0; state = 0; pulse_counter=0; pulse_counter1=0; test=0; break; } } 120 // Hàm tạo đọc giá trị biến trở đếm thời gian float check(){ if (pulse_counter1 > 0) { test = pulse_counter1; delay(5); } } float bien_tro() { time_start = millis(); int sensorValue = analogRead(A0); float voltage = sensorValue * (5000 / 1023); data = cambienluc updateEstimate(voltage); data2= data -146; delay(10); time_now = time_now + millis() - time_start; } float data1() { if (pulse_counter > 0) { goc_quay = pulse_counter; delay(5); } } void interrupt_handler() { pulse_counter ++; } void interrupt_handler1() { pulse_counter1 ++; } PHỤ LỤC 4: Chƣơng trình giao diện hiển thị using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; using System.IO.Ports; using System.Xml; using ZedGraph; namespace GraphRealTime { public partial class Form1 : Form 121 { string SDatas = String.Empty; string SDatas1 = String.Empty; string SRealTime = string.Empty; int status = 0; double realtime = 0; double datas = 0; double datas1 = 0; const float pi = 3.14F; double goc_quay; double chuyen_vi_x; double van_toc; int = 0; double temp; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { comboBox1.DataSource = SerialPort.GetPortNames(); comboBox1.Text = Properties.Settings.Default.ComName; //1 GraphPane myPane1 = zedGraphControl1.GraphPane; myPane1.Title.Text = "Đồ thị lực theo thời gian"; myPane1.XAxis.Title.Text = "Thời gian (s)"; myPane1.YAxis.Title.Text = "Lực (N)"; RollingPointPairList list1 = new RollingPointPairList(60000); LineItem curve1 = myPane1.AddCurve("F", list1, Color.Black, SymbolType.None); myPane1.XAxis.MajorGrid.IsVisible = true;// tạo lưới cho biểu đồ myPane1.YAxis.MajorGrid.IsVisible = true; myPane1.XAxis.MajorGrid.Color = Color.Black; myPane1.YAxis.MajorGrid.Color = Color.Black; myPane1.Chart.Fill = new Fill(Color.Red,Color.FromArgb(255, 255, 255), 90F); myPane1.Title.FontSpec.FontColor = Color.Red; curve1.Line.Width = 1.0F; myPane1.XAxis.Scale.Min = 0; myPane1.XAxis.Scale.Max = 30; myPane1.XAxis.Scale.MinorStep = 1; myPane1.XAxis.Scale.MajorStep = 5; myPane1.YAxis.Scale.Min = -250; myPane1.YAxis.Scale.Max = 25; myPane1.AxisChange(); //2 GraphPane myPane2 = zedGraphControl2.GraphPane; myPane2.Title.Text = "Đồ thị lực theo chuyển vị"; myPane2.XAxis.Title.Text = "Chuyển vị (cm)"; 122 myPane2.YAxis.Title.Text = "Lực (N)"; RollingPointPairList list2 = new RollingPointPairList(60000); LineItem curve2 = myPane2.AddCurve("F-S", list2, Color.Black, SymbolType.None); myPane2.XAxis.MajorGrid.IsVisible = true; myPane2.YAxis.MajorGrid.IsVisible = true; myPane2.XAxis.MajorGrid.Color = Color.Black; myPane2.YAxis.MajorGrid.Color = Color.Black; myPane2.Chart.Fill = new Fill(Color.Green, Color.FromArgb(255, 255, 255), 90F); myPane2.Title.FontSpec.FontColor = Color.Green; myPane2.XAxis.Scale.Min = -6; myPane2.XAxis.Scale.Max = 6; myPane2.XAxis.Scale.MinorStep = 1; myPane2.XAxis.Scale.MajorStep = 10; myPane2.YAxis.Scale.Min = -250; myPane2.YAxis.Scale.Max = 250; myPane2.AxisChange(); //3 GraphPane myPane3 = zedGraphControl3.GraphPane; myPane3.Title.Text = "Đồ thị lực theo vận tốc"; myPane3.XAxis.Title.Text = "Vận tốc (cm/s)"; myPane3.YAxis.Title.Text = "Lực (N)"; RollingPointPairList list3 = new RollingPointPairList(60000); LineItem curve3 = myPane3.AddCurve("F-V", list3, Color.Black, SymbolType.None); myPane3.XAxis.MajorGrid.IsVisible = true; myPane3.YAxis.MajorGrid.IsVisible = true; myPane3.XAxis.MajorGrid.Color = Color.Black; myPane3.YAxis.MajorGrid.Color = Color.Black; myPane3.Chart.Fill = new Fill(Color.Violet, Color.FromArgb(255, 255, 255), 90F); myPane3.Title.FontSpec.FontColor = Color.Violet; myPane3.XAxis.Scale.Min = -40; myPane3.XAxis.Scale.Max = 40; myPane3.XAxis.Scale.MinorStep = 1; myPane3.XAxis.Scale.MajorStep = 5; myPane3.YAxis.Scale.Min = -250; myPane3.YAxis.Scale.Max = 250; myPane3.AxisChange(); } // mở cổng serial private void timer1_Tick(object sender, EventArgs e) { if (!serialPort1.IsOpen) { progressBar1.Value = 0; } else if (serialPort1.IsOpen) { progressBar1.Value = 100; 123 Draw(); Data_Listview(); status = 0; } } // Hàm lưu lại cổng COM chọn cho lần kết nối private void SaveSetting() { Properties.Settings.Default.ComName = comboBox1.Text; Properties.Settings.Default.Save(); } // Nhận xử lý string gửi từ Serial private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { try { string[] arrList = serialPort1.ReadLine().Split('|'); // Đọc dòng Serial, cắt chuỗi gặp ký tự gạch đứng SRealTime = arrList[0]; // Chuỗi lưu vào SRealTime SDatas = arrList[1]; // Chuỗi thứ hai lưu vào SDatas if (Int32.Parse(SDatas) < min) { = Int32.Parse(SDatas); } SDatas1 = arrList[2].Replace("\r",""); double.TryParse(SDatas, out datas); // Chuyển đổi sang kiểu double double.TryParse(SDatas1, out datas1); double.TryParse(SRealTime, out realtime); realtime = realtime / 1000.0; // Đối ms sang s datas = datas + 0; goc_quay = (datas1 / 1000) * * pi; chuyen_vi_x = * ((1 - Math.Cos(goc_quay)) + 0.05 * (1 - Math.Cos(2 * goc_quay))); chuyen_vi_x = Math.Round(chuyen_vi_x, 2)-5; //if(chuyen_vi_x>-0.08 && chuyen_vi_x < -0.071) { MessageBox.Show(goc_quay + ""); } van_toc = * ((goc_quay) / realtime) * (Math.Sin(goc_quay) + 0.1 * Math.Sin(2 * goc_quay)); van_toc = Math.Round(van_toc, 2); status = 1; // Bắt kiện xử lý xong chuỗi, đổi starus để hiển thị liệu ListView vẽ đồ thị } catch { return; } } // Hiển thị liệu ListView 124 private void Data_Listview() { if (status == 0) return; else { ListViewItem item = new ListViewItem(realtime.ToString().Replace(",", ".")); // Gán biến realtime vào cột ListView item.SubItems.Add(datas.ToString().Replace(",", "."));// Gán biến datas vào cột ListView if (chuyen_vi_x.ToString().Length > 5) { item.SubItems.Add(temp.ToString().Replace(",", ".")); } else { item.SubItems.Add(chuyen_vi_x.ToString().Replace(",", ".")); } item.SubItems.Add(van_toc.ToString().Replace(",", ".")); item.SubItems.Add(datas1.ToString().Replace(",", ".")); listView1.Items.Add(item); // Không nên gán string SDatas xuất liệu sang Excel dạng string, khơng thực phép tốn listView1.Items[listView1.Items.Count - 1].EnsureVisible(); // Hiện thị dòng gán gần ListView, tức cuộn ListView theo liệu gần temp = chuyen_vi_x; } } // Vẽ đồ thị private void Draw() { //1 if (zedGraphControl1.GraphPane.CurveList.Count xScale1.Max - xScale1.MajorStep) { xScale1.Max = realtime + xScale1.MajorStep; 125 xScale1.Min = xScale1.Max - 30; } // Tự động Scale theo trục y if (datas > yScale1.Max - yScale1.MajorStep) { yScale1.Max = datas + yScale1.MajorStep; } else if (datas < yScale1.Min + yScale1.MajorStep) { yScale1.Min = datas - yScale1.MajorStep; } zedGraphControl1.AxisChange(); zedGraphControl1.Invalidate(); zedGraphControl1.Refresh(); //2 if (zedGraphControl2.GraphPane.CurveList.Count xScale2.Max - xScale2.MajorStep) { xScale2.Max = chuyen_vi_x + xScale2.MajorStep; xScale2.Min = xScale2.Max - 30; } // Tự động Scale theo trục y if (datas > yScale2.Max - yScale2.MajorStep) { yScale2.Max = datas + yScale2.MajorStep; } else if (datas < yScale2.Min + yScale2.MajorStep) { yScale2.Min = datas - yScale2.MajorStep; } zedGraphControl2.AxisChange(); zedGraphControl2.Invalidate(); zedGraphControl2.Refresh(); //3 if (zedGraphControl3.GraphPane.CurveList.Count xScale3.Max - xScale3.MajorStep) { xScale3.Max = van_toc + xScale3.MajorStep; xScale3.Min = xScale3.Max - 30; } // Tự động Scale theo trục y if (datas > yScale3.Max - yScale3.MajorStep) { yScale3.Max = datas + yScale3.MajorStep; } else if (datas < yScale3.Min + yScale3.MajorStep) { yScale3.Min = datas - yScale3.MajorStep; } zedGraphControl3.AxisChange(); zedGraphControl3.Invalidate(); zedGraphControl3.Refresh(); } // Xóa đồ thị, private void ClearZedGraph() { //1 zedGraphControl1.GraphPane.CurveList.Clear(); // Xóa đường zedGraphControl1.GraphPane.GraphObjList.Clear(); // Xóa đối tượng zedGraphControl1.AxisChange(); zedGraphControl1.Invalidate(); GraphPane myPane1 = zedGraphControl1.GraphPane; myPane1.Title.Text = "Đồ thị lực theo thời gian"; myPane1.XAxis.Title.Text = "Thời gian (s)"; myPane1.YAxis.Title.Text = "Lực (N)"; RollingPointPairList list1 = new RollingPointPairList(60000); LineItem curve1 = myPane1.AddCurve("F",list1, Color.Black, SymbolType.None); myPane1.XAxis.MajorGrid.IsVisible = true; myPane1.YAxis.MajorGrid.IsVisible = true; myPane1.XAxis.MajorGrid.Color = Color.Black; myPane1.YAxis.MajorGrid.Color = Color.Black; 127 myPane1.Chart.Fill = new Fill(Color.Red, Color.FromArgb(255, 255, 255), 90F); myPane1.Title.FontSpec.FontColor = Color.Red; myPane1.XAxis.Scale.Min = 0; myPane1.XAxis.Scale.Max = 30; myPane1.XAxis.Scale.MinorStep = 1; myPane1.XAxis.Scale.MajorStep = 5; myPane1.YAxis.Scale.Min = -250; myPane1.YAxis.Scale.Max = 250; zedGraphControl1.AxisChange(); //2 zedGraphControl2.GraphPane.CurveList.Clear(); // Xóa đường zedGraphControl2.GraphPane.GraphObjList.Clear(); // Xóa đối tượng zedGraphControl2.AxisChange(); zedGraphControl2.Invalidate(); GraphPane myPane2= zedGraphControl2.GraphPane; myPane2.Title.Text = "Đồ thị lực theo chuyển vị "; myPane2.XAxis.Title.Text = "Chuyển vị (cm)"; myPane2.YAxis.Title.Text = "Lực (N)"; RollingPointPairList list2 = new RollingPointPairList(60000); LineItem curve2 = myPane2.AddCurve("F-S", list2, Color.Black, SymbolType.None); myPane2.XAxis.MajorGrid.IsVisible = true; myPane2.YAxis.MajorGrid.IsVisible = true; myPane2.XAxis.MajorGrid.Color = Color.Black; myPane2.YAxis.MajorGrid.Color = Color.Black; myPane2.Chart.Fill = new Fill(Color.Green, Color.FromArgb(255, 255, 255), 90F); myPane2.Title.FontSpec.FontColor = Color.Green; myPane2.XAxis.Scale.Min = -7; myPane2.XAxis.Scale.Max = 7; myPane2.XAxis.Scale.MinorStep = 1; myPane2.XAxis.Scale.MajorStep = 5; myPane2.YAxis.Scale.Min = -250; myPane2.YAxis.Scale.Max = 250; zedGraphControl2.AxisChange(); //3 zedGraphControl3.GraphPane.CurveList.Clear(); // Xóa đường zedGraphControl3.GraphPane.GraphObjList.Clear(); // Xóa đối tượng zedGraphControl3.AxisChange(); zedGraphControl3.Invalidate(); GraphPane myPane3 = zedGraphControl3.GraphPane; myPane3.Title.Text = "Đồ thị lực theo vận tốc "; myPane3.XAxis.Title.Text = "Vận tốc (cm/s)"; myPane3.YAxis.Title.Text = "Lực (N)"; RollingPointPairList list3 = new RollingPointPairList(60000); LineItem curve3 = myPane3.AddCurve("F-V", list3, Color.Black, SymbolType.None); myPane3.XAxis.MajorGrid.IsVisible = true; myPane3.YAxis.MajorGrid.IsVisible = true; myPane3.XAxis.MajorGrid.Color = Color.Black; 128 myPane3.YAxis.MajorGrid.Color = Color.Black; myPane3.Chart.Fill = new Fill(Color.Violet, Color.FromArgb(255, 255, 255), 90F); myPane3.Title.FontSpec.FontColor = Color.Violet; myPane3.XAxis.Scale.Min = -40; myPane3.XAxis.Scale.Max = 40; myPane3.XAxis.Scale.MinorStep = 1; myPane3.XAxis.Scale.MajorStep = 5; myPane3.YAxis.Scale.Min = -250; myPane3.YAxis.Scale.Max = 250; zedGraphControl3.AxisChange(); } // Hàm xóa liệu private void ResetValue() { realtime = 0; datas = 0; datas1 = 0; goc_quay = 0; chuyen_vi_x = 0; van_toc = 0; SDatas = String.Empty; SDatas1 = String.Empty; SRealTime = String.Empty; status = 0; // Chuyển status } // Hàm lưu ListView sang Excel private void SaveToExcel() { Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application(); xla.Visible = true; Microsoft.Office.Interop.Excel.Workbook wb = xla.Workbooks.Add(Microsoft.Office.Interop.Excel.XlSheetType.xlWorksheet); Microsoft.Office.Interop.Excel.Worksheet ws = (Microsoft.Office.Interop.Excel.Worksheet)xla.ActiveSheet; // Đặt tên cho hai ô A1 B1 "Thời gian (s)" "Lực (N)", sau tự động dãn độ rộng Microsoft.Office.Interop.Excel.Range rg = (Microsoft.Office.Interop.Excel.Range)ws.get_Range("A1", "B1"); ws.Cells[1, 1] = "Thời gian (s)"; ws.Cells[1, 2] = "Lực (N)"; ws.Cells[1, 3] = "Chuyển vị x (cm) "; ws.Cells[1, 4] = "Vận tốc (cm/s) "; rg.Columns.AutoFit(); // Lưu từ ô dòng thứ 2, tức ô A2 129 int i = 2; int j = 1; foreach (ListViewItem comp in listView1.Items) { ws.Cells[i, j] = comp.Text.ToString(); foreach (ListViewItem.ListViewSubItem drv in comp.SubItems) { ws.Cells[i, j] = drv.Text.ToString(); j++; } j = 1; i++; } } // Sự kiện nhấn nút btConnect private void btConnect_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Write("2"); //Gửi ký tự "2" qua Serial, tương ứng với state = serialPort1.Close(); btConnect.Text = "Kết nối"; btExit.Enabled = true; SaveSetting(); // Lưu cổng COM vào ComName } else { serialPort1.PortName = comboBox1.Text; // Lấy cổng COM serialPort1.BaudRate = 9600; // Baudrate 9600, trùng với baudrate Arduino try { serialPort1.Open(); btConnect.Text = "Ngắt kết nối"; btExit.Enabled = false; } catch { MessageBox.Show("Không thể mở cổng" + serialPort1.PortName, "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } // Sự kiện nhấn nút btExit private void btExit_Click(object sender, EventArgs e) 130 { DialogResult traloi; traloi = MessageBox.Show("Bạn có muốn thoát?", "Thoát", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (traloi == DialogResult.OK) { Application.Exit(); // Đóng ứng dụng } } // Sự kiện nhấn nút btSave private void btSave_Click(object sender, EventArgs e) { DialogResult traloi; traloi = MessageBox.Show("Bạn có muốn lưu số liệu?", "Lưu", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (traloi == DialogResult.OK) { SaveToExcel(); // Thực thi hàm lưu ListView sang Excel } } // Sự kiện nhấn nút btRun private void btRun_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Write("1"); } else MessageBox.Show("Bạn chạy chưa kết nối với thiết bị", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } // Sự kiện nhấn nút btPause private void btPause_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { serialPort1.Write("0"); //Gửi ký tự "0" qua Serial, Dừng Arduino DialogResult traloi; traloi = MessageBox.Show("Bạn có muốn lưu số liệu?", "Lưu", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (traloi == DialogResult.OK) { SaveToExcel(); // Thực thi hàm lưu ListView sang Excel } 131 } else MessageBox.Show("Bạn dừng chưa kết nối với thiết bị", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } // Sự kiện nhấn nút Clear private void btClear_Click(object sender, EventArgs e) { if (serialPort1.IsOpen) { DialogResult traloi; traloi = MessageBox.Show("Bạn có muốn xóa?", "Xóa liệu", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning); if (traloi == DialogResult.OK) { if (serialPort1.IsOpen) { serialPort1.Write("2"); //Gửi ký tự "2" qua Serial listView1.Items.Clear(); // Xóa listview //Xóa đường đồ thị ClearZedGraph(); //Xóa liệu Form ResetValue(); } else MessageBox.Show("Bạn dừng chưa kết nối với thiết bị", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else MessageBox.Show("Bạn xóa chưa kết nối với thiết bị", "Thơng báo", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } 132 ... nên mô hình hệ thống treo ¼ đƣợc coi mơ hình nghiên cứu kinh điển phạm vi nghiên cứu phát triển thuật toán điều khiển hệ thống treo 2.1.4 Mơ hình hệ thống treo ¼ bán tích cực Mơ hình hệ thống treo. .. toàn mà không yêu cầu nguồn lƣợng lớn Trong hệ thống treo bán tích cực, hệ số giảm chấn đƣợc điều chỉnh theo thời gian thực Do hầu hết hệ thống treo bán tích cực điều biến lực giảm chấn theo... NCS lựa chọn đề tài ? ?Nghiên cứu điều khiển giảm chấn từ trường hệ thống treo bán tích cực tơ con” CHƢƠNG TỔNG QUAN 1.1 Đặt vấn đề Một nghiên cứu sớm hệ thống treo có điều khiển điện tử báo Crosby

Ngày đăng: 06/12/2022, 16:53

Xem thêm:

HÌNH ẢNH LIÊN QUAN

Fb N Lực giảm chấn MR theo mơ hình Bouc-wen - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
b N Lực giảm chấn MR theo mơ hình Bouc-wen (Trang 6)
Hình 2.11. Đặc tính lực theo thời gian (F-t) - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.11. Đặc tính lực theo thời gian (F-t) (Trang 55)
Hình 2.16. Đặc tính F-v khi cấp điện áp điều khiển khơng đổi - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.16. Đặc tính F-v khi cấp điện áp điều khiển khơng đổi (Trang 58)
Hình 2.19. Đặc tính F-t khi cấp điện áp điều khiển theo sườn dương - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.19. Đặc tính F-t khi cấp điện áp điều khiển theo sườn dương (Trang 60)
Hình 2.20. Đặc tính F-v khi cấp điện áp điều khiển theo sườn dương - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.20. Đặc tính F-v khi cấp điện áp điều khiển theo sườn dương (Trang 60)
Hình 2.22÷2.25 thể hiện đặc tính lực giảm chấn khi cấp điện áp đối xứng - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.22 ÷2.25 thể hiện đặc tính lực giảm chấn khi cấp điện áp đối xứng (Trang 61)
Hình 2.21. Đặc tính F-x khi cấp điện áp điều khiển theo sườn dương - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.21. Đặc tính F-x khi cấp điện áp điều khiển theo sườn dương (Trang 61)
Hình 2.25. Đặc tính F-x khi cấp điện áp điều khiển đối xứng âm-dương - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.25. Đặc tính F-x khi cấp điện áp điều khiển đối xứng âm-dương (Trang 62)
Hình 2.24. Đặc tính F-v khi cấp điện áp điều khiển đối xứng âm-dương - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2.24. Đặc tính F-v khi cấp điện áp điều khiển đối xứng âm-dương (Trang 62)
Hình 2. 27. Đặc tính F-v trên hệ thống treo ¼ có giảm chấn MR - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 2. 27. Đặc tính F-v trên hệ thống treo ¼ có giảm chấn MR (Trang 65)
Kết quả mơ phỏng đƣợc trình bày trong hình 2.27÷2.29 - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
t quả mơ phỏng đƣợc trình bày trong hình 2.27÷2.29 (Trang 65)
Hình 3.1 là sơ đồ điều khiển cho hệ thống treo bán tích cực. - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.1 là sơ đồ điều khiển cho hệ thống treo bán tích cực (Trang 68)
Hình 3.7. Các bước thực hiện trong Kalman - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.7. Các bước thực hiện trong Kalman (Trang 77)
Bảng 3.2. Mô phỏng theo chủng loại cảm biến - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Bảng 3.2. Mô phỏng theo chủng loại cảm biến (Trang 81)
Hình 3.13. Đặc tính lực giảm chấn cần thiết trong hệ thống treo ¼ - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.13. Đặc tính lực giảm chấn cần thiết trong hệ thống treo ¼ (Trang 84)
Hình 3.12. So sánh hiệu quả dập tắt dao động - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.12. So sánh hiệu quả dập tắt dao động (Trang 84)
Hình 3.15. So sánh biên độ dao động cực đại theo 4 phương án điều khiển - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.15. So sánh biên độ dao động cực đại theo 4 phương án điều khiển (Trang 86)
Hình 3.16. So sánh hiệu quả dập tắt dao động theo 4 phương án điều khiển - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.16. So sánh hiệu quả dập tắt dao động theo 4 phương án điều khiển (Trang 86)
Hình 3.18. Đặc tính dịch chuyển thân xe - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.18. Đặc tính dịch chuyển thân xe (Trang 89)
Hình 3.20. Đặc tính gia tốc dao động thân xe - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.20. Đặc tính gia tốc dao động thân xe (Trang 90)
Hình 3.23. Đặc tính lực tác động xuống mặt đường - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.23. Đặc tính lực tác động xuống mặt đường (Trang 91)
Hình 3.25. Dịch chuyển thân xe dưới tác động mặt đường C-D theo ISO 8608:1995 ở tốc độ 40km/h  - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 3.25. Dịch chuyển thân xe dưới tác động mặt đường C-D theo ISO 8608:1995 ở tốc độ 40km/h (Trang 93)
- Tính tốn các thơng số trễ trên mơ hình Dahl - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
nh tốn các thơng số trễ trên mơ hình Dahl (Trang 97)
Mơ hình tổng thể thiết bị đƣợc thể hiện trên hình 4.3 - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
h ình tổng thể thiết bị đƣợc thể hiện trên hình 4.3 (Trang 101)
Bảng 4.1. Thử nghiệm xác định đặc tính giảm chấn MR - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Bảng 4.1. Thử nghiệm xác định đặc tính giảm chấn MR (Trang 103)
Hình 4.6. Đặc tính chuyển vị và vận tốc piston - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 4.6. Đặc tính chuyển vị và vận tốc piston (Trang 104)
Hình 4.9. Đặc tính lực giảm chấn– dịch chuyển piston - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 4.9. Đặc tính lực giảm chấn– dịch chuyển piston (Trang 105)
Hình 4.11. Đặc tính lực đo được ở trạng thái tĩnh - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 4.11. Đặc tính lực đo được ở trạng thái tĩnh (Trang 106)
Hình 4.12. So sánh đặc tính lực đo được tại loadcell - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 4.12. So sánh đặc tính lực đo được tại loadcell (Trang 107)
Hình 4.23. Đặc tính thơng số k theo điện áp cấp - Nghiên cứu điều khiển giảm chấn từ trường trong hệ thống treo bán tích cực trên ô tô con.
Hình 4.23. Đặc tính thơng số k theo điện áp cấp (Trang 113)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w