7
Bài tập lớn môn Kỹ thuật lập trình 20141 Bài tập 1. Xây dựng chương trình cho phép thực hiện khảo sát phân tích hệ thống điều khiển cho ở dạng hàm truyền: - Tính số nghiệm dương, âm, bằng 0 (dùng bảng Routh) và phân tích tính ổn định - Chuyển đổi hệ thống sang dạng không gian trạng thái - Nhập thêm điều kiện đầu, thời gian giới hạn T và bước lặp ΔT, thực hiện tính toán mô phỏng - Tất cả kết quả đều lưu ra các file .txt, trong đó kết quả mô phỏng có thể vẽ lại trên MATLAB Bài tập 2. Xây dựng chương trình cho phép thực hiện khảo sát phân tích hệ thống điều khiển cho ở dạng mô hình trong không gian trạng thái. - Tính số nghiệm dương, âm, bằng 0 của phương trình đặc trưng (dùng bảng Routh) và phân tích tính ổn định - Nhập thêm điều kiện đầu, thời gian giới hạn T và bước lặp ΔT, thực hiện tính toán mô phỏng - Chuyển đổi hệ thống sang dạng hàm truyền - Tất cả kết quả đều lưu ra các file .txt, trong đó kết quả mô phỏng có thể vẽ lại trên MATLAB Bài tập 3. Xây dựng chương trình cho phép quản lý động cơ và tính toán tham số của chúng theo các thông số của nhà sản xuất cung cấp. - Sơ đồ các lớp và thừa kế:

Baitaplon_KTLT20141.pdf

Embed Size (px)

Citation preview

Page 1: Baitaplon_KTLT20141.pdf

Bài tập lớn môn Kỹ thuật lập trình 20141

Bài tập 1. Xây dựng chương trình cho phép thực hiện khảo sát phân tích hệ thống

điều khiển cho ở dạng hàm truyền:

- Tính số nghiệm dương, âm, bằng 0 (dùng bảng Routh) và phân tích tính ổn định

- Chuyển đổi hệ thống sang dạng không gian trạng thái

- Nhập thêm điều kiện đầu, thời gian giới hạn T và bước lặp ΔT, thực hiện tính

toán mô phỏng

- Tất cả kết quả đều lưu ra các file .txt, trong đó kết quả mô phỏng có thể vẽ lại

trên MATLAB

Bài tập 2. Xây dựng chương trình cho phép thực hiện khảo sát phân tích hệ thống

điều khiển cho ở dạng mô hình trong không gian trạng thái.

- Tính số nghiệm dương, âm, bằng 0 của phương trình đặc trưng (dùng bảng

Routh) và phân tích tính ổn định

- Nhập thêm điều kiện đầu, thời gian giới hạn T và bước lặp ΔT, thực hiện tính

toán mô phỏng

- Chuyển đổi hệ thống sang dạng hàm truyền

- Tất cả kết quả đều lưu ra các file .txt, trong đó kết quả mô phỏng có thể vẽ lại

trên MATLAB

Bài tập 3. Xây dựng chương trình cho phép quản lý động cơ và tính toán tham số

của chúng theo các thông số của nhà sản xuất cung cấp.

- Sơ đồ các lớp và thừa kế:

Page 2: Baitaplon_KTLT20141.pdf

- Cho phép nhập các tham số tương ứng và tính toán công suất

- Có thể lưu/đọc dữ liệu từ file

Bài tập 4. Xây dựng thư viện các phép toán học cho vector/ma trận và thao tác

thuận tiện như Matlab hỗ trợ.

- Lớp tên là Matrix

- Các phép toán cơ bản: cộng, trừ, nhân/chia với số, nhân ma trận/vector, mũ số

nguyên, phủ định, so sánh bằng/khác

- Trích phần tử với toán tử [ ]

- Các phương thức: tính định thức, nghịch đảo, chuyển vị, giải phương trình

- Chương trình demo

Bài tập 5. Xây dựng hai chương trình truyền thông qua giao diện RS-232 cho

phép gửi file giữa hai máy tính: một chương trình gửi và một chương trình nhận

- Có thể dùng các hàm đọc/ghi file chuẩn của C, hoặc tự tìm hiểu thêm và dùng các

hàm API của Windows: http://msdn.microsoft.com/en-us/library/aa363196

Bài tập 6. Xây dựng chương trình thực hiện chức năng mô phỏng hệ thống điều

khiển số cho ở dạng hàm truyền với nhiều khối.

- Các khối chức năng có thể kết nối linh hoạt (nối tiếp/song song/hồi tiếp) theo yêu

cầu.

- Dữ liệu các khối của hệ thống được mô tả trong một file, chương trình đọc file đó

sau đó đưa ra hàm truyền tổng và tiến hành mô phỏng.

Page 3: Baitaplon_KTLT20141.pdf

VD: (G1{2.5 10 / 1 4.4 5.22} - (G2{1.1 2.1 1.2 / 1 5.4 2.3 5.3} // G3{1 / 1.2

3.3})) < G4{1 / 5.2 2.3}

(G1 nối tiếp (G2 song song G3)) hồi tiếp G4

- Kết quả mô phỏng được lưu trong một file .txt để có thể vẽ lại trên MATLAB.

- Gợi ý: để làm được bài này, nên xây dựng một lớp Polynomial để làm việc với

các đa thức: cộng, trừ, nhân… sau đó xây dựng một lớp TransferFunction để làm

việc với các hàm truyền

Bài tập 7. Xây dựng chương trình mô phỏng bộ điều khiển PID cho một hệ thống

1 đầu vào, 1 đầu ra.

- Hệ thống được điều khiển (tuyến tính hoặc phi tuyến) cho sẵn ở dạng không gian

trạng thái và viết sẵn trong chương trình

- Các hệ số PID được nhập từ tham số dòng lệnh của chương trình

- Yêu cầu không được tính toán hàm truyền tổng

- Kết quả mô phỏng được lưu trong một file .txt để có thể vẽ lại trên MATLAB

Bài tập 8. Xây dựng một chương trình phục vụ mô phỏng hoạt động mạch điện:

- Mạch gồm các phần tử cơ bản (R, L, C) cùng với các thông số

- Cấu trúc của mạch điện được mô tả trong một file đầu vào có dạng:

VD: ((R1{R 5} // L1{L 1.2} // C1{C 3.2}) - L2{L 1.5}) // R2{R 4.3}

((R1 ss L1 ss C1) nt L2) ss R2)

- Cho một tín hiệu điện áp vào hai đầu của mạch và tiến hành mô phỏng: tính điện

áp và dòng ở từng phần tử

- Kết quả lưu vào một file .txt để có thể vẽ lại trên MATLAB

Bài tập 9. Xây dựng chương trình khảo sát mạch điện xoay chiều:

- Mạch gồm các phần tử cơ bản (điện trở, tụ, cuộn cảm) cùng với các thông số

- Hiện một menu lựa chọn với các chức năng:

Page 4: Baitaplon_KTLT20141.pdf

+ Nhập một mạch điện mới, cấu trúc nhập theo dạng:

VD: ((R1{R 5} // L1{L 1.2} // C1{C 3.2}) - L2{L 1.5}) // R2{R 4.3}

((R1 ss L1 ss C1) nt L2) ss R2)

+ Nhập một điện áp xoay chiều vào 2 đầu mạch

+ Tính tổng trở

+ Tính dòng tổng

+ Tính công suất tổng

+ Tính áp, dòng, công suất ở từng phần tử

- Các kết quả in ra màn hình

Bài tập 10. Xây dựng chương trình mô phỏng mạch điện tử số với các phần tử cơ

bản (đầu vào, AND, OR, XOR, NOT):

- Cấu trúc của mạch được mô tả trong một file đầu vào là một biểu thức logic

VD: (not (A and B) xor (C or D)) or (C and A)

Trong đó A, B, C, D là các tín hiệu logic vào (0/1)

- Các tín hiệu đầu vào được cho trong một file dưới dạng:

A B C D ...

0 1 1 0

1 1 0 1

0 0 0 1

1 1 0 1

...

- Hiển thị các sóng đầu vào và đầu ra trên màn hình console (tương tự như trên

nhưng thêm cột kết quả)

Bài tập 11. Tạo file có định dạng .txt chứa toạ độ của một tập các điểm theo dạng

(x, y). Viết chương trình đọc file này rồi tính hình bao lồi của tập điểm này và in

kết quả ra màn hình. Hình bao lồi của một tập điểm là hình đa giác nhỏ nhất có

chứa tất cả các điểm.

Page 5: Baitaplon_KTLT20141.pdf

Bài tập 12. Xây dựng chương trình kết nối cơ sở dữ liệu xây dựng trên MySQL

chứa dữ liệu sinh viên bao gồm: số sinh viên, họ tên và điểm trung bình. Viết

chương trình đọc dữ liệu từ MySQL, lọc ra các sinh viên có điểm trung bình nằm

trong khoảng 5 đến 7, sau đó ghi kết quả ra file “out.txt” theo thứ tự điểm tăng dần.

Bài tập 13. Tạo file định dạng .txt chứa các phép toán với đa thức, mỗi dòng là

một câu lệnh thuộc một trong hai loại:

- khai báo đa thức. VD: P2 = [5.134 -2 9.12] nghĩa là �2 = 5.134�� − 2� + 9.12

- thực hiện phép tính đơn (cộng, trừ, nhân). Các phép toán đều có 2 toán hạng,

mỗi toán hạng có thể là một hằng đa thức, hoặc một biến đã có ở trên.

Viết chương trình đọc file lệnh này, sau đó thực hiện từng câu lệnh và in kết quả ra

màn hình.

Bài tập 14. Tạo file định dạng .txt chứa các phép toán với ma trận, mỗi dòng là

một câu lệnh thuộc một trong hai loại:

- khai báo ma trận. VD: �� = [1.233.21;−50; 2.122.31] nghĩa là �� =

�1.23 3.21−5 02.12 2.31

- thực hiện phép tính đơn (cộng, trừ, nhân). Các phép toán đều có 2 toán hạng,

mỗi toán hạng có thể là một hằng ma trận, hoặc một biến đã có ở trên.

Viết chương trình đọc file lệnh này, sau đó thực hiện từng câu lệnh và in kết quả ra

màn hình.

Bài tập 15. Tạo file định dạng .txt chứa các phép toán với phân số, mỗi dòng là

một câu lệnh thuộc một trong hai loại:

- khai báo phân số. VD: A = 12:17 nghĩa là =��

�� . Nếu là số nguyên có thể viết

dưới dạng: A = 34.

- thực hiện phép tính đơn (cộng, trừ, nhân, chia). Các phép toán đều có 2 toán

hạng, mỗi toán hạng có thể là một hằng phân số, hoặc một biến đã có ở trên.

Page 6: Baitaplon_KTLT20141.pdf

Viết chương trình đọc file lệnh này, sau đó thực hiện từng câu lệnh và in kết quả ra

màn hình.

Bài tập 16. Viết chương trình thực hiện thuật toán lặp tìm nghiệm của Newton-

Raphson. Phương trình được cho dưới dạng �(�) = 0 trong đó �(�) được khai báo

trong chương trình và có thể thay đổi được. Người dùng nhập vào điểm khởi đầu

�� và độ chính xác �, chương trình cần tính và in ra màn hình nghiệm tìm được

bằng phương pháp trên. Điều kiện dừng của phép lặp là sai số giữa hai lần lặp liên

tiếp nhỏ hơn � hoặc số lần lặp vượt quá 100.

Bài tập 17. Sử dụng thư viện boost/asio () viết chương trình làm việc với cổng COM RS232 để truyền nhận dữ liệu theo định dạng 1 bit start, 1 bit stop, 8 bit dữ liệu, 1 bit kiểm tra chẳn lẻ (tổng số số 1 là chẳn), truyền ở tốc độ 9600 baud.

- Viết chương trình truyền - Viêt chương trình nhận - Viết hàm cấu hình cổng khi truyền/nhận - Viết hàm nhận dữ liệu - Viết hàm truyền dữ liệu

Bài tập 18. Sử dụng thư viện boost/CRC (http://www.boost.org/doc/libs/1_47_0/libs/crc/index.html) để thực hiện các công việc sau:

- Viết một hàm trả về mã kiểm lỗi checksum của một mảng dữ liệu gồm 16 byte trả về checksum theo các giải thuật crc_16_type, crc_ccitt_type, crc_xmodem_type, crc_32_type

- Viết một hàm nhận 16 byte dữ liệu, 1 checksum tương ứng với giải thuật trên, viết một hàm kiểm tra xem có lỗi hay không

Bài tập 19.Tìm hiểu sử dụng boost.filesystem (http://www.boost.org/doc/libs/1_47_0/libs/filesystem/v3/doc/tutorial.html) để thao tác trên hệ thống file:

- Viết hàm tìm file (ví dụ : abc.txt) tại một đường dẫn xác định (ví dụ: c:\)

- Viết hàm trả về tất cả các file (ví dụ : *.wav) trong đường dẫn cho trước, kết

quả lưu trong một mảng động chứa tên file

- Viết hàm trả về kích thước một file, tên file là đầu vào của hàm

- Viết chương trình test các công việc đã được triển khai trong các hàm trên.

Page 7: Baitaplon_KTLT20141.pdf

Bài tập 20: Viết chương trình đường đi ngắn nhất (là bài toán tìm một đường đi

giữa hai đỉnh sao cho tổng các trọng số của các cạnh tạo nên đường đi đó là nhỏ

nhất) theo thuật toán Dijkstra. Đầu vào của bài toán là file chứa dữ liệu các đỉnh

cho dưới dạng ma trận (số lượng các đỉnh có giới hạn dưới 1000). Ghi kết quả ra

file out.txt.