Đơn vị 10 / 11

Tự động hóa tính toán kỹ thuật với Python

Lợi nhuận:

  • Khả năng tự động hóa tính toán kỹ thuật, quản lý đơn vị và xử lý dữ liệu bằng mã Python được hỗ trợ bởi AI
  • Khả năng xác thực mã AI bằng cách kiểm tra đơn vị, kiểm tra kết quả đã biết và các trường hợp đặc biệt
  • Khả năng tạo thói quen tạo các tài liệu tài khoản có thể lặp lại, có thể theo dõi và kiểm soát phiên bản

Trong kỹ thuật cơ khí, cùng một phép tính được thực hiện lặp đi lặp lại: ứng suất của một họ bộ phận, công suất bơm cho một loạt điểm vận hành, bảng thuộc tính ở các nhiệt độ khác nhau. Thực hiện những việc này một cách thủ công vừa chậm vừa dễ xảy ra lỗi. Python (một ngôn ngữ lập trình dễ học với các thư viện kỹ thuật phong phú) tự động hóa các bước lặp này; Nó làm cho tài khoản có thể lặp lại, có thể theo dõi và kiểm soát phiên bản. Trí tuệ nhân tạo (AI) Python tạo mã cực kỳ nhanh: chuyển đổi công thức thành hàm, thêm quản lý đơn vị, đọc dữ liệu, vẽ biểu đồ. Nhưng có một quan niệm sai lầm nguy hiểm ở đây: chỉ vì mã hoạt động không có lỗi không có nghĩa là nó tính toán chính xác. Mã AI có thể âm thầm trả về kết quả không chính xác do chuyển đổi đơn vị không chính xác, công thức không chính xác hoặc trong các trường hợp khó khăn và chương trình sẽ tiếp tục chạy mà không gặp bất kỳ lỗi nào. Đó là lý do tại sao mọi mã kỹ thuật được tạo ra bằng AI; Đầu vào thử nghiệm có kết quả đã biết sẽ không đáng tin cậy nếu không được xác minh bằng kiểm tra đơn vị (kích thước) và thử nghiệm trường hợp biên. Trong phần này, bạn sẽ tìm hiểu cách thiết lập tự động hóa tài khoản Python một cách an toàn bằng AI.

Tại sao phải mã hóa tài khoản? Truy xuất nguồn gốc và khả năng tái tạo

Việc tính toán thủ công chỉ diễn ra một lần; Khi đầu vào thay đổi, nó sẽ được thực hiện lại từ đầu và các bước trung gian sẽ bị mất. Tính toán được thực hiện bằng mã giống như một tài liệu: đầu vào, công thức và đầu ra được viết rõ ràng; bạn thay đổi đầu vào và nhận được kết quả mới trong vòng vài giây; Với kiểm soát phiên bản (như git), "những gì tôi đã tính toán với giá trị nào vào ngày nào" có thể được theo dõi. Điều này là vô giá về mặt kiểm soát và trách nhiệm giải trình. Nhưng sức mạnh này phụ thuộc vào tính đúng đắn của mã; Một mã sai sẽ tạo ra kết quả sai, đồng thời có thể lặp lại và nhanh chóng.

Mẹo: Viết bài kiểm tra cho từng hàm tính toán kèm theo kết quả đúng đã biết bên cạnh (xác nhận bằng Python). Ví dụ: hàm ứng suất của bạn sẽ cho 28,1 MPa trong một mẫu đã biết. Kiểm tra này sẽ ngay lập tức cảnh báo bạn nếu bạn làm hỏng thứ gì đó khi thay đổi mã trong tương lai. Mã kỹ thuật chưa được kiểm tra là tài khoản chưa được xác minh.

Quản lý ổ đĩa: Nguồn lỗi phổ biến nhất

Trong mã kỹ thuật, hầu hết các lỗi đều xuất phát từ các đơn vị: N với kN, m với mm, Pa với MPa, có thể bị nhầm lẫn với hệ số 1000 hoặc 1.000.000. Có hai cách phòng thủ. Đầu tiên là kỷ luật: chọn một hệ thống đơn vị ngay từ đầu (ví dụ: N, mm, MPa) và chuyển đổi tất cả đầu vào sang hệ thống đó và thêm đơn vị vào tên biến (length_mm, Force_N). Thứ hai là công cụ: một thư viện như pint chứa các đơn vị trong mã và coi hoạt động không nhất quán là lỗi.

Cách tiếp cận

Nó hoạt động như thế nào

Lợi thế

Kỷ luật đặt tên

như lực_N, chiều dài_mm

Đơn giản, không phụ thuộc

hệ thống đơn vị

Tất cả được chuyển đổi sang N-mm-MPa

Đơn giản, tốc độ

thư viện pint

Di chuyển đơn vị theo biến

Tự động nắm bắt sự không nhất quán

Kiểm tra kết quả đã biết

tham chiếu với khẳng định

Bắt lỗi công thức/đơn vị

Thận trọng: Chuyển đổi đơn vị có thể bị thiếu hoặc không chính xác trong mã do AI tạo và mã sẽ vẫn "hoạt động". Ví dụ: nếu đường kính là mm và diện tích dự kiến ​​​​là m2, kết quả sẽ sai lệch 1.000.000 lần, nhưng chương trình sẽ không đưa ra lỗi. Trước khi chạy mã, hãy nhận xét đơn vị của đầu vào và đầu ra; sau đó cung cấp kết quả với một ví dụ đã biết.

Từng bước: Mã tài khoản có thể xác minh bằng AI

  1. Làm rõ vấn đề và hệ thống đơn vị. Đầu vào, đầu ra, đơn vị.
  2. Tạo hàm. Chịu trách nhiệm duy nhất, giải thích, đoàn kết.
  3. Thêm kết quả kiểm tra đã biết. Khẳng định với ví dụ tham khảo.
  4. Hãy thử các trường hợp cạnh. Đầu vào bằng 0, âm, rất lớn/nhỏ.
  5. Thực hiện kiểm tra đơn vị. Đơn vị đầu ra có phù hợp với những gì được mong đợi không?
  6. Tài liệu và phiên bản. Giả định, nguồn, ngày tháng; truy xuất nguồn gốc với git.

Nhắc tạo chức năng và kiểm tra

Vai trò: Nhà phát triển Python có kinh nghiệm viết các phép tính kỹ thuật. Bài tập: Viết hàm tính ứng suất uốn lớn nhất trong dầm đúc hẫng có tiết diện hình chữ nhật. Đầu vào: F (N), L (mm), b (mm), h (mm). Đầu ra: sigma (MPa).Quy ước: Hệ đơn vị N-mm-MPa; nhận xét đơn vị của mỗi mục. Quy tắc: sử dụng I = b*h^3/12 và sigma = M*c/I; nhận xét các bước. Quy tắc: Thêm một bài kiểm tra với KẾT QUẢ ĐÃ BIẾT: sigma ~28,1 MPa cho F=500,L=300,b=20,h=40; Kiểm tra bằng khẳng định (dung sai nhỏ).

Lời nhắc trạng thái cạnh

Thêm kiểm tra trường hợp biên vào hàm trên:- Nếu b, h hoặc L bằng 0 hoặc âm, hãy đưa ra một lỗi đáng kể (tăng ValueError).- Nhận xét nếu có vấn đề tràn/độ chính xác với đầu vào rất lớn/nhỏ. Đồng thời thêm 3 đầu vào thử nghiệm khác nhau và ghi kết quả mong đợi; giải thích kết quả theo cách mà tôi có thể xác minh chúng theo cách thủ công.

Lời nhắc bảo mật đơn vị (pint)

Đơn vị an toàn cùng một tài khoản với thư viện 'pint'. Cho phép đầu vào được xác định theo đơn vị (ví dụ: 500 * ureg.newton). Chuyển đổi đầu ra thành MPa và in nó. Thêm một ví dụ nhỏ cho thấy pint bị lỗi như thế nào khi nhập sai đơn vị.

Lời nhắc kiểm tra mã

Hãy phê bình mã tính toán kỹ thuật của tôi bên dưới từ góc độ đánh giá mã, đừng đồng ý với tôi. Cụ thể: việc chuyển đổi đơn vị có đúng không, công thức có đúng không, các trường hợp đặc biệt (không, âm) đã được xem xét chưa, các thử nghiệm có thực sự xác nhận không? Đối với mỗi phát hiện, hãy viết cách khắc phục.[code]

Nhắc yếu / Nhắc mạnh

Dấu nhắc yếu:

Viết mã Python để tính toán ứng suất.

Không có sự lựa chọn về đơn vị, công thức, định nghĩa đầu vào và bài kiểm tra; AI tạo ra mã hoạt động nhưng chưa được xác minh và không xác định được đơn vị.

Lời nhắc mạnh mẽ:

Viết hàm ứng suất uốn trong dầm đúc hẫng. Đầu vào F(N), L(mm), b(mm),h(mm); sigma đầu ra (MPa). Hệ thống N-mm-MPa, ghi rõ từng đơn vị trong nhận xét. Thêm một thử nghiệm có kết quả đã biết (F=500, L=300, b=20, h=40 → ~28,1 MPa, khẳng định). Đưa ra lỗi ở đầu vào 0/âm. Giải thích các trường hợp cạnh.

Lời nhắc thứ hai yêu cầu hệ thống đơn vị, công thức, dữ liệu đầu vào, bài kiểm tra và các trường hợp đặc biệt; Nó làm cho mã có thể được kiểm chứng.

Ba hộp nhỏ (theo số)

Trường hợp 1 - Lỗi âm lượng im lặng. Phép tính diện tích do AI tạo ra lấy đường kính tính bằng mm và cho mm² với pi*d**2/4, nhưng dòng tiếp theo sẽ đưa nó vào công thức mong đợi m²; Mã hoạt động không có lỗi và giảm căng thẳng xuống 1.000.000 lần. Khi kỹ sư chạy thử nghiệm với kết quả đã biết (xác nhận abs(sigma-28.1)<0,5), thử nghiệm sẽ không hoạt động và lỗi được phát hiện. Nếu không có bài kiểm tra, kết quả sai sẽ được đưa vào báo cáo mà không được chú ý. Bài học: mã làm việc ≠ mã đúng.

Trường hợp 2 - Sự cố trạng thái biên. Trong mã lặp cho một họ bộ phận, độ dày h=0 được nhập vào một dòng; Khi I = b*h**3/12 = 0, sigma = M*c/I đưa ra phép chia cho sai số bằng 0. Nhờ điều khiển if h<=0: raise ValueError được AI thêm vào, mã dừng lại với một thông báo có ý nghĩa và không âm thầm tạo ra inf. Bài học: xử lý trước các trường hợp khó khăn.

Trường hợp 3 - Độ lợi lặp lại. Một kỹ sư phải mất nửa ngày để tính toán thủ công công suất bơm cho 40 điểm vận hành khác nhau. Được viết bằng AI, tập lệnh sẽ đọc CSV, tính toán công suất cho từng dòng và xác minh một điểm đã biết bằng xác nhận, giảm thời gian làm việc xuống còn ~2 phút và ghi kết quả vào một tệp có thể theo dõi. Khi một mục thay đổi, toàn bộ bảng sẽ được cập nhật mỗi giây. Bài học: tự động hóa đã được xác minh vừa nhanh vừa đáng tin cậy.

Những lỗi thường gặp

  • Ngụy biện "Đã làm việc = đúng": Nghĩ rằng mã hoạt động không có lỗi là đúng.
  • Không viết bài kiểm tra: Dựa vào mã mà không có bài kiểm tra tham khảo với kết quả đã biết.
  • Đơn vị không rõ ràng: Không giải thích được đơn vị đầu vào/đầu ra, bỏ qua chuyển đổi.
  • Bỏ qua các trường hợp đặc biệt: Lỗi im lặng hoặc sự cố ở đầu vào 0/âm.
  • Không ghi lại nguồn/giả định: Không ghi lại nguồn và giả định của công thức được sử dụng.
  • Không lập phiên bản: Để lại tài khoản dưới dạng tệp một lần mà không thể theo dõi được (git).

Tóm lại

  • Python làm cho tính toán kỹ thuật có thể lặp lại, có thể theo dõi và kiểm soát phiên bản.
  • AI tạo mã rất nhanh; Nhưng việc mã hoạt động không có lỗi không có nghĩa là nó tính toán chính xác.
  • Mọi mã phải được xác thực thông qua kiểm tra kết quả đã biết, kiểm tra đơn vị và các trường hợp đặc biệt.
  • Lỗi đơn vị là nguồn lỗi thường gặp nhất và nguy hiểm nhất; Bảo vệ bằng hệ thống đơn vị duy nhất, danh pháp hoặc pint.
  • Tự động hóa được xác thực giúp tiết kiệm thời gian và mang lại sự tự tin; Mã chưa được xác minh là nguy hiểm.

Nhiệm vụ ứng dụng

Chọn tính toán kỹ thuật định kỳ (chẳng hạn như ứng suất, công suất bơm, tải nhiệt). Viết hàm Python cho AI thực hiện phép tính này; Nhận xét đơn vị của từng đầu vào và đầu ra, đồng thời thêm bài kiểm tra khẳng định với kết quả đã biết. Chạy thử nghiệm và xem nó có vượt qua không. Sau đó, thực hiện thêm hai lần xác minh: thử trường hợp đặc biệt (đầu vào bằng 0 hoặc âm) để kiểm tra xem mã có trả về lỗi đáng kể hay không và cung cấp đơn vị đầu ra theo cách thủ công trong một ví dụ. Nếu có thể, hãy sản xuất một phiên bản an toàn cho đơn vị bằng pint. Cuối cùng, thêm các giả định của phép tính, nguồn công thức và ngày tháng vào mã dưới dạng tiêu đề ngắn và viết lý do tại sao mã này vẫn cần có sự phê duyệt của kỹ sư.

danh sách kiểm tra

  • [ ] Đơn vị đầu vào và đầu ra được ghi rõ ràng trong mã; hệ thống đơn vị duy nhất đã được chọn.
  • [ ] Một bài kiểm tra (khẳng định) với kết quả đã biết đã được thêm vào và đã vượt qua.
  • [ ] Đã thử ít nhất một trường hợp biên (không/âm); Mã đã đưa ra một lỗi đáng kể.
  • [ ] Đơn vị đầu ra được cung cấp bởi một ví dụ thủ công (không giả sử "đã hoạt động = chính xác").
  • [ ] Nguồn công thức, giả định và ngày tháng được ghi trong mã.
  • [ ] Tài khoản được theo dõi/theo dõi; phê duyệt cuối cùng được để lại cho kỹ sư.