Trong Matlab đã tích hợp sẵn rất nhiều công cụ chuyên dùng để giải các bài toán khác nhau như: nhận dạng các đối tượng động học, điều khiển tối ưu, điều khiển bền vững, điều khiển mờ, x
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ
MINH
ĐỒ ÁN TỐT NGHIỆP
ỨNG DỤNG MÁY TÍNH TRONG MÔ PHỎNG HỘP SỐ TỰ
ĐỘNG TRÊN Ô TÔ
NGÀNH: CÔNG NGHỆ KỸ THUẬT Ô TÔ
GIẢNG VIÊN HƯỚNG DẪN: TS NGUYỄN TRỌNG HẢI
Tp Hồ Chí Minh, ngày 26 tháng 09 năm 2021
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ
MINH
ĐỒ ÁN TỐT NGHIỆP
ỨNG DỤNG MÁY TÍNH TRONG MÔ PHỎNG HỘP SỐ TỰ
ĐỘNG TRÊN Ô TÔ
NGÀNH: CÔNG NGHỆ KỸ THUẬT Ô TÔ
GIẢNG VIÊN HƯỚNG DẪN: TS NGUYỄN TRỌNG HẢI
Tp Hồ Chí Minh, ngày 26 tháng 09 năm 2021
Trang 6LỜI CAM ĐOAN
Tôi xin cam đoan rằng đồ án tốt nghiệp là công trình nghiên cứu của bản thân mình Những phần có sử dụng tài liệu tham khảo có trong đồ án đã được liệt kê và nêu rõ
ra tại phần tài liệu tham khảo Đồng thời những số liệu hay kết quả trình bày trong
đồ án đều mang tính chất trung thực, không sao chép, đạo nhái
Nếu như sai tôi xin chịu hoàn toàn trách nhiệm và chịu tất cả các kỷ luật của Viện cũng như nhà trường đề ra
Tp Hồ Chí Minh, Ngày 26 tháng 09 năm 2021
Sinh viên thực hiện
Trang 7LỜI CẢM ƠN
Trong suốt quá trình học tập và hoàn thành đồ án tốt nghiệp này, chúng em đã nhận được sự hướng dẫn, giúp đỡ quý báu của các thầy cô, các anh chị và các bạn Với lòng kính trọng và biết ơn sâu sắc chúng em xin được bày tỏ lời cảm ơn chân thành đến
Viện Kỹ Thuật Hutech trường Đại Học Công Nghệ TP.Hồ Chí Minh đã tạo mọi điều kiện thuận lợi để giúp đỡ chúng em trong quá trình học tập và hoàn thành đồ
án tốt nghiệp
TS Nguyễn Trọng Hải, người thầy kính mến đã hết lòng giúp đỡ, dạy bảo, động viên và tạo mọi điều kiện thuận lợi cho chúng em trong suốt quá trình học tập và hoàn thành luận văn tốt nghiệp Chúng em cũng muốn gửi lời cám ơn tới các thầy trong tổ phản biện, cũng là những người thầy đáng kính đã truyền đạt cho chúng em những kiến thức, kỹ năng thực hành quý báu trong chuyên ngành công nghệ ô tô Chúng em xin gửi lời cám ơn tới tất cả các thầy cô trong các khoa, phòng tại trường Đại Học Công Nghệ TP.Hồ Chí Minh - những người đi trước trên hành trình đi tìm tri thức, những người đã hướng dẫn, hỗ trợ chúng em suốt bốn năm học đại học Cuối cùng xin dành lời cảm ơn tới cha me, đã sinh ra và nuôi dưỡng chúng con đã luôn ở bên cạnh động viên và giúp đỡ chúng con học tập làm việc và hoàn thành đồ án
Trang 8MỤC LỤC
Phiếu đăng ký tên đề tài ĐATN
Phiếu giao nhiệm vụ
Lời cam đoan i
Lời cảm ơn ii
Mục lục iii
Danh sách các bảng vii
Danh sách các hình viii
Lời mở đầu 1
Chương 1: GIỚI THIỆU 4
1.1 Matlab và Simulink 4
1.1.1 Matlab 4
1.1.1.1 Ngôn ngữ lập trình 4
1.1.1.2 Phạm vi ứng dụng của Matlab 4
1.1.1.3 Một số thao tác cơ bản trong Matlab 5
1.1.2 Simulink 5
1.1.2.1 Khái niêm 5
1.1.2.2 Một số thư viện công cụ trong Matlab Simulink 6
1.1.2.3 Một số khối cơ bản của Simulink 11
1.2 Stateflow 16
1.2.1 Giới thiệu về Stateflow 16
1.2.2 Các đối tượng có trong Stateflow 18
1.2.2.1 State 18
1.2.2.2 Hệ thống phân cấp trong state 19
Trang 91.2.2.3 Sự phân chia trạng thái (State Decomposition) 19
1.2.2.4 State labels 20
1.2.2.5 State actions 21
1.2.2.6 Transition 21
1.2.2.7 Conditions (Điều kiện) 22
1.2.2.8 Default transitions 22
1.2.2.9 History junction 23
1.2.2.10 Connective Junctions 24
1.2.3 Các khối cơ bản trong Stateflow 24
1.2.3.1 Chart 24
1.2.3.2 State transition table 25
1.2.3.3 Truth table 26
1.2.3.4 Sequence viewer 26
1.3 Simscape 27
1.3.1 Tổng quan về Simscape 27
1.3.2 Thư viện của Simscape 29
1.3.2.1 Foundation library ( Thư viện nền tảng ) 29
1.3.2.2 Utilities library (Thư viện tiện ích) 32
1.3.2.3 Simscape Driveline 32
1.3.2.4 Simscape Electrical 35
1.3.2.5 Simscape Fluids 37
1.3.2.6 Simscape Multibody 39
Chương 2: TỔNG QUAN THỰC HIỆN CÁC PHƯƠNG PHÁP TRONG MATALAB 42
Trang 102.1 Matlab và Simulink 42
2.2 Stateflow 53
2.3 Simscape 70
Chương 3: SỬ DỤNG SIMULINK TRONG MÔ PHỎNG KỸ THUẬT Ô TÔ 90
3.1 Ứng dụng Simulink và Stateflow vào mô phỏng quá trình chuyển số của hộp số 90
3.1.1 Thuật toán điều khiển chuyển số 94
3.1.1.1 Điều khiển tăng số 94
3.1.1.2 Điều khiển giảm số 96
3.2 Sử dụng Simscape trong mô phỏng xe Fortuner với hệ thống sang số tự động 99
Chương 4: QUY TRÌNH THIẾT KẾ 110
4.1 Mô hình mô phỏng động cơ và quá trình chuyển số của hộp số tự động cấp số 110
4.1.1 Mô hình mô phỏng 110
4.1.2 Xây dựng mộ hình Stateflow của bộ điều khiển hộp số tự động 113
4.2 Mô hình mô phỏng xe Fortuner với hệ thống sang số tự động 6 cấp số 118
4.2.1 Mô hình mô phỏng 118
4.2.2 Xây dựng mộ hình Stateflow của bộ điều khiển hộp số tự động 123
Chương 5: KẾT QUẢ MÔ PHỎNG 125
5.1 Mô hình mô phỏng động cơ và quá trình chuyển số của hộp số tự động 5 cấp số 125
5.2 Mô hình mô phỏng xe Fortuner với hệ thống sang số tự động 6 cấp số 127
Chương 6: KẾT QUẢ, KẾT LUẬN 130
6.1 Kết luận 130
Trang 116.2 Hướng phát triển 130 Tài liệu tham khảo 133
Trang 12DANH SÁCH CÁC BẢNG
Bảng 1.1: Một số khối của thư viện Utilities 32
Bảng 1.2: Một số khối của thư viện Driveline 34
Bảng 1.3: Một số thư viện của Electrical 36
Bảng 1.4: Một sô khối cơ bản của Fluids 39
Bảng 1.5: Một số thư viên của Multibody 41
Bảng 4.1: Bảng tỉ số truyền của hộp số 111
Bảng 4.2: Bảng lên số 117
Bảng 4.3: Bảng xuống số 117
Bảng 4.4: Bảng lên số 124
Bảng 4.5: Bảng xuống số 124
Trang 13DANH SÁCH CÁC HÌNH
Hình 1.1: Biểu tượng Diagnostic Viewer 7
Hình 1.2: Hình biểu tượng Trace signal 8
Hình 1.3: Biểu tượng Comment Out 8
Hình 1.4: Biểu tượng Output Value 8
Hình 1.5: Hộp thoại Configuration Parameter 9
Hình 1.6: Hộp thoại Model Explorer 10
Hình 1.7: Khung hiển thị Model Data Editor 10
Hình 1.8: Hộp thoại khối Step 11
Hình 1.9: Hộp thoại khối Constant 11
Hình 1.10: Hộp thoại khối From Workspace 12
Hình 1.11: Hộp thoại khối Sine Wave 12
Hình 1.12: Khối Product 13
Hình 1.13: Khối Subsystem 13
Hình 1.14: Khối Integrator 14
Hình 1.15: Khối Integrator Limited 14
Hình 1.16: Khối Delay 14
Hình 1.17: 1-D Lookup Table 14
Hình 1.18: Khối Switch: 14
Hình 1.19: Khối Scope 15
Hình 1.20: Khối XY Graph 15
Hình 1.21: Khối To Workspace 15
Hình 1.22: Khối Display 15
Hình 1.23: Sơ đồ Stateflow 16
Hình 1.24: Các đối tượng có trong Stateflow 18
Hình 1.25: Phân cấp trong Stateflow 19
Hình 1.26: Vị dụ trang thái độc nhất (OR) 19
Hình 1.27: Ví dụ trạng thái song song (AND) 20
Hình 1.28: Ví dụ State labels 21
Hình 1.29: Ví dụ chuyển đổi giữa StateA1 với StateA2 22
Hình 1.30: Ví dụ điều kiện chuyển đổi 22
Hình 1.31: Biểu tượng Default transitions 23
Hình 1.32: Ví dụ History Junction 23
Hình 1.33: Ví dụ Connective Junctions 24
Trang 14Hình 1.34: Biểu tượng Chart 24
Hình 1.35: Biểu tượng State transition table 25
Hình 1.36: Biểu tượng Truth table 26
Hình 1.37: Biểu tượng Sequence viewer 26
Hình 1.38: Một số khối trong thư viện con Mechanical Sensor 29
Hình 1.39: Một số khối trong thư viện con Mechanical Sources 30
Hình 1.40: Một số khối trong thư viện con Translation Elements 31
Hình 1.41: Một số khối trong thư viện con Rotational Elements 31
Hình 1.42: Hình ảnh minh họa 32
Hình 1.43: Hình ảnh minh họa 35
Hình 1.44: Hình ảnh minh họa 37
Hình 1.45: Hình ảnh minh hoạ 39
Hình 2.1: Mô hình bài toán 42
Hình 2.2: Kết quả mô phỏng 43
Hình 2.3: Hình ảnh minh họa 43
Hình 2.4: Mô hình hoá bài toán 44
Hình 2.5: Hình ảnh minh hoạ 45
Hình 2.6: Hình ảnh minh hoạ 45
Hình 2.7: Hình ảnh minh họa 46
Hình 2.8: Hình ảnh minh họa 47
Hình 2.9: Hình ảnh minh họa 47
Hình 2.10: Hình ảnh minh họa 48
Hình 2.11: Hình ảnh minh họa 48
Hình 2.12: Hình ảnh minh họa 49
Hình 2.13: Hình ảnh minh họa 49
Hình 2.14: Hình ảnh minh họa 50
Hình 2.15: Hình ảnh minh họa 50
Hình 2.16: Hình ảnh minh họa 51
Hình 2.17: Hình ảnh minh họa 51
Hình 2.18: Hộp thoại Signal Generator 52
Hình 2.19: Khối Scope hiển thị kết quả 53
Hình 2.20: Biểu tượng State trên thanh Explorer 54
Hình 2.21: Ví dụ đặt tên cho khối 54
Hình 2.22: Nhập lệnh và điều kiện cho State 55
Hình 2.23: Khai báo dầu vào và đầu ra 55
Hình 2.24: Ví dụ điều chỉnh tốc độ 55
Hình 2.25: Điều khiển mô hình 56
Hình 2.26: Knop đạt giá trị 35 đèn tắt 56
Trang 15Hình 2.27: Knop đạt giá trị 65 đèn sáng 57
Hình 2.28: Hình ảnh minh họa 58
Hình 2.29: Bảng trạng thái của State transition Table 59
Hình 2.30: Khai báo tín hiệu đầu vào và đầu ra 59
Hình 2.31: Kết nối với khối Knob để điều chỉnh tốc độ 60
Hình 2.32: Tốc độ lớn hơn 0 km/h 60
Hình 2.33: Tốc độ dưới 5 km/h 61
Hình 2.34: Tốc độ lớn hơn 20 km/h 61
Hình 2.35: Tốc độ nhỏ hơn 23km/h 62
Hình 2.36: Tốc độ lớn hơn 30 km/h 62
Hình 2.37: Tốc độ nhỏ hơn 38 km/h 63
Hình 2.38: Tốc độ lớn hơn 50 km/h 63
Hình 2.39: Lấy khối Truth table từ thư viện Simunk 64
Hình 2.40: Bảng trạng thái của khối Truth table 65
Hình 2.41: Nối các khối lại với nhau 66
Hình 2.42: Giá trị đầu vào bình thường 66
Hình 2.43: Giá trị đầu vào 1 trong 3 trạng thái lỗi 67
Hình 2.44: Lấy khối Sequence Viewer từ thư viện Simulink 67
Hình 2.45: Bảng trạng thái của Sequence Viewer 68
Hình 2.46: Nhập tín hiệu dầu vào và đầu ra 68
Hình 2.47: Nối các khối với nhau 69
Hình 2.48: Biểu đồ hiển thị kết quả 69
Hình 2.49: Hình ảnh minh họa 70
Hình 2.50: Mô hình vật lý 70
Hình 2.51: Hình ảnh minh hoạ 71
Hình 2.52: Hình ảnh minh hoạ 72
Hình 2.53: Kết nối các khối 73
Hình 2.54: Hộp thoại khối Mass M1 74
Hình 2.55: Hộp thoại khối Mass M2 74
Hình 2.56: Hộp thoại khối Spring 75
Hình 2.57: Hộp thoại khối Damper M1 friction 75
Hình 2.58: Hộp thoại khối Damper M2 friction 76
Hình 2.59: Kết nối các khối lại với nhau 77
Hình 2.60: Hình ảnh minh hoạ 77
Hình 2.61: Hộp thoại khối Signal Generator Force input 78
Hình 2.62: Mô hình hoàn chỉnh 79
Hình 2.63: Kết quả đầu ra 79
Hình 2.64: Mô hình bài toán 80
Trang 16Hình 2.65: Mô hình vật lý của xe 81
Hình 2.66: Hình ảnh minh hoạ 82
Hình 2.67: Hình ảnh minh hoạ 83
Hình 2.68: Hộp thoại khối Engine 84
Hình 2.69: Hộp thoại khối Tire (Magic Formula) 84
Hình 2.70: Hộp thoại khối Tire (Magic Formula) 85
Hình 2.71: Hộp thoại khối Vehicle Body 86
Hình 2.72: Mô hình subsystem của bánh xe 86
Hình 2.73: Giá trị đầu vào của mô hình 87
Hình 2.74: Mô hình tổng quát 88
Hình 2.75: Kết quả của mô hình 89
Hình 3.1: Mô hình lý thuyết 91
Hình 3.2: Sơ đồ logic quá trình lên số 95
Hình 3.3: Sơ đồ logic quá trình xuống số 97
Hình 3.4: Sơ đồ thởi điểm sang số 98
Hình 3.5: Sơ đồ momen xoắn của động cơ 98
Hình 3.6: Sơ đồ giá trị K-factor và tỉ số momen xoắn 99
Hình 3.7: Mô hình lý thuyết 99
Hình 3.8: Khối Generic Engine 100
Hình 3.9: Các cài đặt cơ bản của khối Generic Engine 101
Hình 3.10: Khối Torque Converter 101
Hình 3.11: Các cài đặt cơ bản của khối Torque Converter 102
Hình 3.12: Khối Vehicle Body 102
Hình 3.13: Các cài đặt cơ bản của khối Vehicle Body 103
Hình 3.14: Khối Tire 104
Hình 3.15: Các cài đặt cơ bản của khối Tire 104
Hình 3.16: Khối Differential 105
Hình 3.17: Các cài đặt cơ bản của khối Differential 105
Hình 3.18: Khối Solver Configuration 106
Hình 3.19: Các cài đặt cơ bản của khối Solver Configuration 106
Hình 3.20: Khối Double-Shoe Brake 107
Hình 3.21: Khối Planetary Gear: 107
Hình 3.22: Khối Inertia 108
Hình 3.23: Các cài đặt cơ bản của khối Inertia 108
Hình 3.24: Khối Disk Friction Clutch 108
Hình 3.25: Khối Mechanical Rotational Reference 109
Hình 4.1: Mô hình tổng quát 110
Hình 4.2: Engine subsystem 111
Trang 17Hình 4.3: Torque converter subsystem 111
Hình 4.4: Transmission subsystem 112
Hình 4.5: Wheel speed subsystem 112
Hình 4.6: Mô hình tính Tload 113
Hình 4.7: Vehicle subsystem 113
Hình 4.8: Mô hình Stateflow quá trình chuyển số 115
Hình 4.9: State gear_state 115
Hình 4.10: State selection_state 116
Hình 4.11: Khối Simulink function 116
Hình 4.12: Mô hình khối Simulink function 117
Hình 4.13: Khai báo dữ liệu bên trong Chart 118
Hình 4.14: Mô hình tổng quát 118
Hình 4.15: Mô hình khối Control Unit 119
Hình 4.16: Subsystem điều chỉnh chế độ số 120
Hình 4.17: Subsystem tính lực ép của phanh 120
Hình 4.18: Mô hình hộp số sử dụng cơ cấu bánh răng hành tinh 121
Hình 4.19: Mô hình khối Body 122
Hình 4.20: Khối Stateflow tính toán chuyển số 123
Hình 5.1: Tín hiệu góc mở bướm ga 125
Hình 5.2: Tín hiệu lực phanh tác động 126
Hình 5.3: Sơ đồ cơ chế chuyển số của xe 126
Hình 5.4: Sơ đồ vận tốc của xe 127
Hình 5.5: Kết quả mô phỏng trường hợp 1 128
Hình 5.6: Kết quả mô phỏng trường hợp 2 129
Hình 5.7: Kết quả mô phỏng trường hợp 3 129
Trang 18LỜI MỞ ĐẦU
1 Tính cấp thiết của đề tài
Matlab là một phần mềm được sử dụng rộng rãi trong nhiều lĩnh vực nghiên cứu và ứng dụng với khối lượng tính toán lớn Một trong số những điểm mạnh của Matlab là khả năng lập trình Lập trình trong Matlab có thể giải quyết những bài toán trong nhiều lĩnh vực khoa học kỹ thuật cũng như trong lĩnh vực ô tô và đặc biệt
là trong động cơ ô tô
Với các thư viện Matlab được bổ sung các bộ công cụ cho phép nó kết nối và
điều khiển các hệ đo, thu thập dữ liệu làm mạnh tính năng và hiệu quả sử dụng Sử
dụng phần mềm Matlab để thiết kế và mô phỏng một số bài toán vật lý nhằm trang
bị kiến thức và khả năng ứng dụng chúng vào việc tiến hành mô phỏng hiệu quả và
kết quả chính xác để sử dụng mô phỏng vào động cơ ô tô
Vì vậy, dưới sự hướng dẫn của TS Nguyễn Trọng Hải, nhóm chúng em đã nghiên cứu đề tài: Ứng dụng phần mềm Matlab trong mô phỏng động cơ
2 Tình hình nghiên cứu
Thời đại công nghệ thông tin phát triển mạnh mẽ, cùng với nó là hàng loạt các phần mềm hỗ trợ kèm theo, Matlab và Simulink là một phần mềm mà ứng dụng của
nó trong điều khiển tự động quả là không nhỏ
Matlab và Simulink là một ngôn ngữ đa năng Nó tạo môi trường để Simulink thực hiện và liên kết Simulink với bên ngoài Trong Matlab đã tích hợp sẵn rất nhiều công cụ chuyên dùng để giải các bài toán khác nhau như: nhận dạng các đối tượng động học, điều khiển tối ưu, điều khiển bền vững, điều khiển mờ, xử lí tín hiệu số… Mô phỏng các hệ thống điều khiển tự động trong Matlab cho phép ta sử dụng các mô hình toán học khác nhau của hệ thống hoặc đối tượng cần khảo sát
Trang 19như: dùng hàm truyền đạt, dùng hàm trạng thái, dùng mô hình sơ đồ cấu trúc như trong Simulink Matlab cho phép ta khảo sát các hệ thống điều khiển tự động trong miền tần số và miền thời gian Matlab còn cho phép liên kết tối đa trong môi trường
để có thể tổ chức mô phỏng với mô hình bán tự nhiên, mô phỏng trong thời gian thực và mô phỏng các hệ thống lớn
3 Mục đích nghiên cứu
Nắm vững các kiến thức về phần mềm Matlab;
Xây dựng được mô hình Matlab từ cơ bản đến nâng cao;
Kết hợp được các thư viện có trong Matlab: Simulink, Stateflow; Simscape để mô phỏng động cơ.;
Làm tài liệu hỗ trợ giảng dạy
4 Nhiệm vụ nghiên cứu
Chỉ mô phỏng các mô hình của động cơ ô tô;
Chỉ mô phỏng và đưa ra kết quả trên máy tính, chưa tiến hành xây dựng mô hình thực nghiệm
5 Phương pháp nghiên cứu
Sử dụng cơ sở lí thuyết của các nguồn tài liệu tham khảo đã có trước
đó để xây dựng mô hình mới;
Phương pháp xử lý bài toán bằng lý thuyết: dùng lý thuyết môn học phân tích và xử lý dữ kiện của các bài toán vật lý mẫu làm cơ sở để xây dựng thuật toán tính toán, lập chương trình chi tiết;
Phương pháp xử lý bài toán bằng ứng dụng phần mềm: ứng dụng phần mềm Matlab xây dựng sơ đồ khối, thuật toán tính toán và lập chương trình để giải quyết các bài toán đa lựa chọn, kết quả mong đợi
là sẽ mô phỏng các bài toán một cách nhanh chóng, chính xác và trực quan với sự biến động và thay đổi của nhiều tham số đầu vào;
So sánh đánh giá đặc tuyến mô phỏng và đặc tuyến thực tế
Trang 206 Kết quả đạt được
Kết quả đạt được là ta có một mô hình sử dụng thông tin là góc mở bướm ga và lực phanh để cho ra kết quả là sơ đồ điều khiển hộp số và vận tốc của phương tiện Mô phỏng được quá trình sang số của hộp số tự động và thông số của vận tốc
khi đạp phanh
7 Đồ án gồm 6 chương
Chương 1 : Giới thiệu;
Chương 2: Tổng quan thực hiện các phương pháp trong Matlab;
Chương 3: Sử dụng Simulink trong mô phỏng kỹ thuật ô tô;
Chương 4: Quy trình thiết kế;
Chương 5: Kết quả mô phỏng;
Chương 6: Kết quả, kết luận
Trang 21
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
Phát triển thuật toán;
Tạo mô hình mô phỏng và tạo giao thức;
Khảo sát phân tích số liệu;
Đồ họa khoa học kỹ thuật;
Phát triển ứng dụng gồm cả xây dựng giao diện người dùng;
Thiết kế các hệ thống điều khiển trong thời gian thực
Trang 221.1.1.3 Một số thao tác cơ bản trong Matlab
Trong MATLAB, thanh trình đơn thay đổi tùy theo cửa sổ mà ta lựa chọn Tuy vậy các trình đơn File, Desktop, Window, Help có mặt hầu hết trong các thanh trình đơn
Trình đơn File:
New: Tạo một đối tượng mới (biến, m-file, figure, model, GUI);
Open: Mở một file theo định dạng của MATLAB (*.m, *.mat, *.mdl);
Import data: Nhập dữ liệu từ các file khác vào MATLAB;
Save workspace: Lưu các biến trong MATLAB vào file *.mat;
Set path: Khai báo các đường dẫn của các thư mục chứa các m-file;
Preferences: Thay đổi các định dạng về font, font size, color cũng như các tùy chọn cho Editor, Command Window v.v;
Page Setup: Định dạng trang in;
Print: in;
Desktop layout: Sắp xếp các cửa sổ trong giao diện;
Save layout: Lưu cách sắp xếp cửa sổ
1.1.2 Simulink
1.1.2.1 Khái niêm
Simulink là một môi trường mô phỏng và thiết kế dựa trên mô hình có sẵn Ta có thể tạo sơ đồ khối, trong đó các khối đại diện cho các bộ phận của hệ thống Một khối có thể đại diện cho một thành phần vật lý, một hệ thống nhỏ hoặc một chức năng Một mối quan hệ đầu vào - đầu ra hoàn toàn đặc trưng cho một khối Hãy xem xét các ví dụ sau:
Vòi nước làm đầy xô - Nước chảy vào xô với một tốc độ dòng chảy nhất định, và xô nặng hơn Một khối có thể đại diện cho thùng, với tốc độ dòng chảy là đầu vào và trọng lượng của nó là đầu ra;
Trang 23 Bạn sử dụng một cái loa để nghe giọng nói của mình - Âm thanh tạo ra ở một đầu của cái loa được khuếch đại ở đầu kia Loa là một khối, đầu vào là sóng âm tại nguồn của nó và đầu ra là sóng âm khi bạn nghe thấy;
Bạn đẩy xe hàng và nó di chuyển - Xe hàng là khối, lực bạn tác dụng là đầu vào và vị trí của xe đẩy là đầu ra
Định nghĩa của một khối chỉ hoàn chỉnh với các đầu vào và đầu ra của nó được xác định, nhiệm vụ này liên quan đến mục tiêu của mô hình
Ví dụ:
Bật lò sưởi không dẫn đến sự thay đổi nhiệt độ tức thì Đúng hơn, hành động này cung cấp đầu vào cho một phương trình vi phân Lịch sử của nhiệt độ (một trạng thái) cũng là một yếu tố
Khi mô phỏng yêu cầu giải một phương trình vi phân hoặc sai phân, Simulink sử dụng bộ nhớ và bộ giải số để tính toán các giá trị trạng thái cho bước thời gian Simulink xử lý dữ liệu trong ba danh mục:
Tín hiệu: Khối đầu vào và đầu ra, được tính toán trong quá
Chạy mô phỏng từng bước để xác định vấn đề, tiến hoặc lùi về một thời điểm
cụ thể trong thời gian mô phỏng
Trang 24- Log signals (ghi lại tín hiệu):
Simulink sẽ hiển thị kí hiệu báo tín hiệu đã ghi, cho mỗi tín hiệu
- Add viewer (thêm công cụ quan sát):
Viewer là một công cụ để tạo và trực quan hoá tín hiệu Giúp người dùng mô phỏng quan sát rõ hơn về một tín hiệu nào đó trong mô phỏng mà không cần phải dùng các khối hiển thị tín hiệu trong Library Browser
Hình 1.1: Biểu tượng Diagnostic Viewer
- Trace Signal (theo dõi tín hiệu):
Bạn có thể theo dõi tín hiệu của mô phỏng xác định nguồn hoặc đích đến của tín hiệu đó bằng cách dùng Trace Signal
Trang 25Hình 1.2: Hình biểu tượng Trace signal
- Comment Out:
Comment Out giúp bỏ qua một phần hoặc nhiều phần của mô phỏng khi bạn không muốn mô phỏng hoặc bạn chỉ muốn mô phỏng một hệ thống nào đó riêng lẻ trong một model
Hình 1.3: Biểu tượng Comment Out
- Output Values:
Đối với nhiều khối có tín hiệu mang dữ liệu, Simulink có thể hiển thị các giá trị tín hiệu (đầu ra khối) dưới dạng nhãn giá trị trên sơ đồ khối trong và sau khi mô phỏng Các nhãn giá trị hiển thị các giá trị đầu ra của khối khi Simulink chạy các phương thức đầu ra của khối
Hình 1.4: Biểu tượng Output Value
Trang 26Đặt thông số cấu hình mô hình cho một mô hình
Để xem và đặt thông số cấu hình cho mô hình của bạn, hãy mở hộp thoại Configuration Parameter Trong Simulink Editor, trên tab Modelling, hãy nhấp vào Model Settings
Hình 1.5: Hộp thoại Configuration Parameter
Trang 27Hình 1.6: Hộp thoại Model Explorer
- Model Data Editor:
Mô hình chứa các mục dữ liệu như tín hiệu, tham số khối (ví dụ: Tham số Gain của khối Gain) và kho dữ liệu Trình chỉnh sửa dữ liệu mô hình cho phép bạn kiểm tra và chỉnh sửa các mục dữ liệu trong danh sách mà bạn có thể sắp xếp, nhóm
và lọc Sau đó, bạn có thể định cấu hình các thuộc tính và tham số, chẳng hạn như kiểu dữ liệu và kích thước, mà không cần phải xác định vị trí các mục trong
sơ đồ khối
Hình 1.7: Khung hiển thị Model Data Editor
Để mở Model Data Editor trong một mô hình, trên tab Modeling, hãy nhấp vào Model Data Editor hoặc nhấn Ctrl + Shift + E
Trang 281.1.2.3 Một số khối cơ bản của Simulink
Khối đầu vào
- Khối Step:
Hình 1.8: Hộp thoại khối Step
Khối Step phát ra dạng sóng có tính chất hàm bước
Những thông số: Thời gian chuyển đổi (steptime), giá trị đầu, giá trị cuối
- Khối Constant:
Hình 1.9: Hộp thoại khối Constant
Trang 29Phát ra giá trị hằng số thực hoặc phức
Hằng số đó có thể là vector hay ma trận, tùy theo cách khai báo tham số Constant Value và ô Interpret vector parameter as 1-D có được chọn không
- Khối From Workspace:
Hình 1.10: Hộp thoại khối From Workspace
Đọc dữ liệu từ ma trận Matlab Ma trận này phải chứa ít nhất hai cột, cột đầu tiên phải là vector thời gian
- Khối Sine Wave:
Khối Sine Wave xuất ra dạng sóng hình sin
Hình 1.11: Hộp thoại khối Sine Wave
Trang 30 Khối thực hiện các phép toán, các điều kiện
- Khối Sum:
Ngõ ra bằng tổng (hiệu) của các ngõ vào Số dấu sẽ cho biết số ngõ vào của khối
- Khối Gain (khuếch đại tín hiệu đầu vào):
Khối Gain có tác dụng khuếch đại tín hiệu đầu vào bằng biểu thức khai báo tại ô Gain, biểu thức đó có thể chỉ là một số hay một biến Nếu là biến, biến đó phải tồn tại trong môi trường Matlab Workspace, chỉ khi ấy Simulink mới có thể tính toán được với biến
- Khối Product (nhân từng phần tử):
Khối Product thực hiện phép nhân từng phần tử hay
phép nhân ma trận, cũng như phép chia giữa các tín hiệu
(dạng 1 - D hay 2 - D) của khối phụ thuộc vào giá trị đặt
của tham số
- Khối Subsystem:
Hình 1.13: Khối Subsystem
Khối subsystem được sử dụng để tạo hệ thống con trong khuôn khổ của một
mô hình Simulink Việc ghép với mô hình thuộc các tầng ghép trên được thực hiện nhờ khối Inport và Outport Số lượng đầu vào và ra của khối subsystem phụ thuộc
số lượng khối Inport và Outport
Hình 1.12: Khối
Product
Trang 31- Khối Integrator:
Khối Integrator lấy tích phân tín hiệu đầu
vào của khối
- Khối Integrator Limited:
Khối Tích phân giới hạn giống hệt với khối Tích hợp ngoại trừ
đầu ra của khối bị giới hạn dựa trên giới hạn bão hòa trên và dưới
- Khối Delay:
Khối Delay xuất đầu vào của khối sau một khoảng thời
gian trễ Khối xác định thời gian trễ dựa trên giá trị của tham số
Độ dài trễ
- 1-D Lookup Table:
Khối có nhiệm vụ tra cứu dựa trên thông tin có sẵn trong bảng
để xuất ra giá trị
Thứ tự vị trí của giá trị được xuất ra sẽ tương ứng với thứ tự vị
của giá trị đầu vào Nếu giá trị đầu vào không có trong bảng tìm
kiếm thì khối sẽ dùng phép ngoại suy hoặc nội suy để tìm ra giá
trị đầu ra tương ứng
- Khối Switch:
Ngõ ra sẽ là giá trị của ngõ vào đầu tiên cho đến khi một giá trị
thứ hai lớn hơn giá trị ngưỡng thì ngõ ra mang giá trị ngõ vào
thứ hai, sau đó ngõ ra lại bằng giá trị thứ ba
Hình 1.18: Khối
Trang 32Khối Hiển thị kết nối với một tín hiệu trong mô hình của bạn và
hiển thị giá trị của nó trong quá trình mô phỏng
Hình 1.22: Khối
Display
Trang 331.2 Stateflow
1.2.1 Giới thiệu về Stateflow
Stateflow là một ứng dụng phần mềm được phát triển bởi MathWorks tương thích với hầu hết các hệ điều hành như Windows, MacOS, Linux,… trên nền tảng x64 bit Stateflow dùng để mô tả các thuật toán MATLAB hoặc làm một công cụ thiết kế đồ họa tương tác hoạt động với Simulink để lập nên mô hình và mô phỏng các hệ thống hướng sự kiện, còn được gọi là hệ thống phản ứng Stateflow cung cấp một ngôn ngữ đồ họa bao gồm các sơ đồ chuyển trạng thái, biểu đồ luồng, bảng chuyển trạng thái và bảng xác thực Nó cung cấp một trình soạn thảo đồ họa mà trên đó các đối tượng đồ họa Stateflow được kéo từ bảng thiết kế có thể được đưa vào để tạo finite state machines
Stateflow làm tăng sự dễ dàng của một mô hình bằng cách thêm vào hệ thống phân cấp (Hierarchy), song song (Parallelism), sự kiện (Events), hành động (Action), và lịch sử (History) Các khối Stateflow được xem là các khối Simulink tiêu chuẩn và
do đó có thể tích hợp trong các mô hình Simulink
Hình 1.23: Sơ đồ Stateflow
Stateflow thường được sử dụng để chỉ định bộ điều khiển rời rạc trong mô hình của
hệ thống kết hợp trong đó có động lực liên tục được chỉ định bằng Simulink
Trang 34Stateflow cho phép bạn thiết kế và phát triển kiểm soát giám sát, lập lịch tác vụ, quản lý lỗi, giao thức truyền thông, giao diện người dùng và hệ thống kết hợp
Với Stateflow, việc làm mô hình quyết định kết hợp và tuần tự có tính logic có thể được mô phỏng như một khối trong mô hình Simulink hoặc được thực thi như một đối tượng trong MATLAB Hoạt hình đồ họa cho phép bạn phân tích và gỡ lỗi logic của bạn trong khi nó đang thực thi Kiểm tra thời gian chỉnh sửa và thời gian chạy đảm bảo tính nhất quán và đầy đủ của thiết kế trước khi thực hiện
Sự khác nhau giữa Simulink và Stateflow:
Simulink là mô hình thuần toán học (bao gồm nhiều phép toán để xử lý, đưa ra kết quả), được sử dụng để đáp ứng các thay đổi liên tục trong các thay đổi động
Với Simulink chúng ta có thể xây dựng mô hình mô phỏng của hệ thống giống như khi ta vẽ sơ đồ khối Tuy nhiên, cơ sở logic có điều kiện của nó còn thiếu Nếu bạn
sử dụng cấu trúc if nhiều lần nó sẽ nhanh chóng trở nên lộn xộn và rất phức tạp Các hệ thống trong thực tế phải đáp ứng với cả những thay đổi liên tục và tức thời
Sử dụng cả Simulink và Stateflow để bạn có thể sử dụng đúng công cụ cho đúng công việc
Trang 351.2.2 Các đối tượng có trong Stateflow
Hình 1.24: Các đối tượng có trong Stateflow 1.2.2.1 State
Một state mô tả một chế độ hoạt động của một hệ thống phản ứng (reactive system) Trong biểu đồ Stateflow, các state được sử dụng để tạo ra các biểu đồ chuyển đổi trạng thái Các state có thể hoạt động hoặc không hoạt động Hoạt động hoặc không hoạt động của một state có thể thay đổi tùy thuộc vào các sự kiện
và điều kiện
Các state có nhãn có thể chỉ định các hành động được thực hiện theo một trình tự dựa trên loại hành động Các loại hành động là entry, during, exit và on
Trang 361.2.2.2 Hệ thống phân cấp trong state
Để quản lý độ phức tạp của các state nhiều cấp, hãy sử dụng hệ thống phân cấp trong biểu đồ Stateflow của bạn Với hệ thống phân cấp, bạn có thể biểu diễn nhiều cấp thành phần con trong một hệ thống
Trong hình, State A sẽ là state nguồn của hai state con là StateA1 và StateA2
Hình 1.25: Phân cấp trong Stateflow 1.2.2.3 Sự phân chia trạng thái (State Decomposition)
Phân chia trạng thái có thể là kiểu độc nhất (OR) hoặc kiểu song song (AND)
Trạng thái độc nhất (OR)
Các trạng thái con có đường viền liền khối biểu thị trạng thái độc nhất (OR) Sử dụng OR để mô tả các chế độ hoạt động loại trừ lẫn nhau Khi một trạng thái có sự phân chia kiểu OR thì chỉ có một trạng thái con có thể hoạt động tại một thời điểm
Hình 1.26: Vị dụ trang thái độc nhất (OR)
Trang 37Trạng thái song song (AND)
Các trạng thái con có đường viền đứt nét biểu thị sự phân chia song song (AND) Sử dụng sự phân chia này để mô tả các chế độ hoạt động đồng thời Khi một trạng thái có sự phân chia song song (AND), tất cả các trạng thái con đều hoạt động cùng một lúc
Hình 1.27: Ví dụ trạng thái song song (AND) 1.2.2.4 State labels
Nhãn cho một trạng thái xuất hiện ở góc trên cùng bên trái của hình chữ nhật trạng thái với định dạng chung sau:
name;
entry:entry actions;
during:during actions;
exit:exit actions;
on event_name:on event_name actions;
on message_name:on message_name actions;
bind:events
Trang 38Hình 1.28: Ví dụ State labels 1.2.2.5 State actions
Bạn nhập các câu lệnh hành động tùy chọn cho state với các từ khóa xác định loại hành động Bạn có thể chỉ định không, một số, hoặc tất cả chúng
Entry actions: Sẽ được thực thi khi một state hoạt động
Exit actions: được thực hiện khi một state đang hoạt động và sự chuyển đổi
ra khỏi trạng thái xảy ra
During actions: được thực thi khi một state đang hoạt động, một sự kiện nào
đó xảy ra nhưng không có chuyển đổi nào hợp lệ sang state khác hoặc state hiện tại đang hợp lệ
Bind actions: Bạn có thể liên kết dữ liệu và sự kiện với một state bằng cách
sử dụng bind action
1.2.2.6 Transition
Transition là một đường có đầu mũi tên liên kết một đối tượng đồ họa này với một đối tượng đồ họa khác Trong hầu hết các trường hợp, quá trình chuyển đổi thể hiện sự chuyển đổi của hệ thống từ chế độ (trạng thái) này sang chế độ (trạng thái)
Trang 39khác Quá trình chuyển đổi thường kết nối đối tượng nguồn và đối tượng đích Đối tượng nguồn là nơi quá trình chuyển đổi bắt đầu và đối tượng đích là nơi quá trình chuyển đổi kết thúc
Hình 1.29: Ví dụ chuyển đổi giữa StateA1 với StateA2 1.2.2.7 Conditions (Điều kiện)
Một điều kiện là một biểu thức đúng hoặc sai xác định rằng một quá trình chuyển đổi xảy ra, với điều kiện là biểu thức được chỉ định là đúng Trong sơ đồ Stateflow tóm tắt thành phần, đại diện cho một biểu thức đúng hoặc sai, phải đúng
để quá trình chuyển đổi xảy ra
Hình 1.30: Ví dụ điều kiện chuyển đổi 1.2.2.8 Default transitions
Các Defaut Transition chỉ định state nào sẽ hoạt động khi có sự không rõ ràng giữa hai hoặc nhiều state duy nhất ở cùng cấp độ trong hệ thống phân cấp
Trang 40Hình 1.31: Biểu tượng Default transitions 1.2.2.9 History junction
History Junction cung cấp phương tiện để chỉ định điểm đến của quá trình chuyển đổi dựa trên thông tin lịch sử trước đó Nếu state chính có History Junction, thì quá trình chuyển đổi sang state con đích được xác định là state con mà đã hoạt động gần đây nhất History Junction chỉ áp dụng cho state con mà trong đó state chính có History Junction
Hình 1.32: Ví dụ History Junction