Satuan 10 / 11

Otomatisasi Perhitungan Teknik dengan Python

Keuntungan:

  • Kemampuan untuk mengotomatiskan penghitungan teknik, manajemen unit, dan pemrosesan data dengan kode Python yang didukung AI
  • Kemampuan untuk memvalidasi kode AI dengan pemeriksaan unit, pengujian hasil yang diketahui, dan kasus tepi
  • Kemampuan untuk membiasakan diri membuat dokumen akun yang dapat diulang, dilacak, dan dikontrol versinya

Dalam teknik mesin, penghitungan yang sama dilakukan berulang-ulang: tegangan pada sekumpulan komponen, daya pompa untuk rentang titik operasi, tabel properti pada temperatur berbeda. Melakukannya secara manual lambat dan rawan kesalahan. Python (bahasa pemrograman yang mudah dipelajari dengan perpustakaan yang kaya untuk teknik) mengotomatiskan iterasi ini; Itu membuat akun dapat diulang, dilacak, dan dikontrol versinya. Kecerdasan buatan (AI) Python sangat cepat dalam menghasilkan kode: mengubah rumus menjadi fungsi, menambahkan manajemen unit, membaca data, membuat grafik. Namun ada kesalahpahaman yang berbahaya di sini: hanya karena kode berfungsi tanpa kesalahan tidak berarti kode tersebut menghitung dengan benar. Kode AI mungkin secara diam-diam memberikan hasil yang salah karena konversi unit yang salah, rumus yang salah, atau kasus tepi, dan program akan terus berjalan tanpa kesalahan apa pun. Itu sebabnya setiap kode teknik diproduksi dengan AI; Input pengujian dengan hasil yang diketahui tidak dapat diandalkan tanpa verifikasi melalui pemeriksaan unit (ukuran) dan uji kasus tepi. Di unit ini, Anda akan mempelajari cara mengatur otomatisasi akun Python dengan AI dengan aman.

Mengapa Kode Akun? Ketertelusuran dan Reproduksibilitas

Perhitungan manual hanya dilakukan satu kali saja; Ketika suatu masukan berubah, hal itu dilakukan dari awal dan langkah-langkah perantara akan hilang. Perhitungan yang dilakukan dalam kode seperti dokumen: masukan, rumus, dan keluaran ditulis dengan jelas; Anda mengubah masukan dan mendapatkan hasil baru dalam hitungan detik; Dengan kontrol versi (seperti git), "apa yang saya hitung dengan nilai berapa pada tanggal berapa" dapat dilacak. Hal ini sangat berharga dalam hal pengendalian dan akuntabilitas. Namun kekuatan ini bergantung pada kebenaran kodenya; Kode yang salah menghasilkan hasil yang salah, juga dapat direproduksi dan cepat.

Tip: Tulis pengujian untuk setiap fungsi komputasi dengan hasil sebenarnya yang diketahui di sebelahnya (tegaskan dengan Python). Misalnya, fungsi tegangan Anda seharusnya menghasilkan 28,1 MPa dalam sampel yang diketahui. Tes ini segera memperingatkan Anda jika Anda memecahkan sesuatu saat Anda mengubah kode di masa mendatang. Kode teknik yang tidak diuji adalah akun yang belum terverifikasi.

Manajemen Volume: Sumber Kesalahan Paling Umum

Dalam kode teknik, sebagian besar kesalahan berasal dari satuan: N dengan kN, m dengan mm, Pa dengan MPa, yang dapat dikacaukan dengan faktor 1000 atau 1.000.000. Ada dua pertahanan. Yang pertama adalah disiplin: memilih sistem satuan tunggal dari awal (misalnya N, mm, MPa) dan mengubah semua masukan ke dalamnya dan menambahkan satuan ke nama variabel (panjang_mm, gaya_N). Yang kedua adalah alatnya: perpustakaan seperti pint membawa unit-unit di dalam kode dan menangkap operasi yang tidak konsisten sebagai kesalahan.

Pendekatan

Bagaimana cara kerjanya

Keuntungan

Penamaan disiplin

seperti force_N, panjang_mm

Sederhana, tidak ada ketergantungan

sistem satuan tunggal

Semua dikonversi ke N-mm-MPa

Kesederhanaan, kecepatan

perpustakaan pint

Memindahkan unit demi variabel

Secara otomatis menangkap ketidakkonsistenan

Tes hasil yang diketahui

referensi dengan menegaskan

Menangkap kesalahan rumus/satuan

Perhatian: Konversi unit mungkin hilang atau salah dalam kode yang dihasilkan AI dan kode tersebut akan tetap "berfungsi". Misalnya diameternya mm dan luasnya diharapkan m², maka hasilnya akan menyimpang 1.000.000 kali lipat, tetapi program tidak akan memberikan error. Sebelum menjalankan kode, beri komentar pada unit input dan output; kemudian berikan hasilnya dengan contoh yang diketahui.

Langkah demi Langkah: Kode Akun AI yang Dapat Diverifikasi

  1. Memperjelas masalah dan sistem satuannya. Input, output, unit.
  2. Hasilkan fungsinya. Tunggal bertanggung jawab, interpretatif, bersatu.
  3. Tambahkan tes hasil yang diketahui. Tegaskan dengan contoh referensi.
  4. Coba kasus tepi. Nol, negatif, masukan sangat besar/kecil.
  5. Lakukan pengecekan unit. Apakah unit keluarannya sesuai dengan yang diharapkan?
  6. Dokumen dan versi. Asumsi, sumber, tanggal; ketertelusuran dengan git.

Prompt yang menghasilkan fungsi dan tes

Peran: Pengembang Python berpengalaman menulis perhitungan teknik. Tugas: Tuliskan fungsi yang menghitung tegangan lentur maksimum pada balok kantilever berpenampang persegi panjang. Masukan: F (N), L (mm), b (mm), h (mm). Keluaran: sigma (MPa). Konvensi: Sistem satuan N-mm-MPa; beri komentar pada unit setiap entri. Aturan: gunakan I = b*h^3/12 dan sigma = M*c/I; beri komentar langkah-langkahnya. Aturan: Tambahkan pengujian dengan HASIL YANG DIKETAHUI: sigma ~28.1 MPa untuk F=500,L=300,b=20,h=40; Periksa dengan tegas (toleransi kecil).

Perintah status tepi

Tambahkan pemeriksaan kasus tepi ke fungsi di atas: - Jika b, h atau L nol atau negatif, berikan kesalahan yang signifikan (naikkan ValueError). - Beri komentar jika ada masalah overflow/presisi dengan input yang sangat besar/kecil. Tambahkan juga 3 input tes berbeda dan tulis hasil yang diharapkan; jelaskan hasilnya sedemikian rupa sehingga saya dapat memverifikasinya secara manual.

Perintah keamanan unit (pint).

Amankan unit akun yang sama dengan perpustakaan 'pint'. Biarkan input didefinisikan dalam satuan (misalnya 500 * ureg.newton). Ubah hasilnya menjadi MPa dan cetak. Tambahkan contoh kecil yang menunjukkan bagaimana pint gagal ketika diberi masukan dengan satuan yang salah.

Perintah pemeriksaan kode

Kritik kode perhitungan teknik saya di bawah ini dari sudut pandang tinjauan kode, jangan setuju dengan saya. Secara khusus: apakah konversi satuannya benar, apakah rumusnya benar, apakah kasus tepi (nol, negatif) telah dipertimbangkan, apakah pengujian tersebut benar-benar bersifat konfirmasi? Untuk setiap temuan, tulis cara memperbaikinya.[kode]

Prompt Lemah / Prompt Kuat

Perintah yang lemah:

Tulis kode Python untuk perhitungan stres.

Tidak ada pilihan unit, rumus, definisi masukan, dan tes; AI menghasilkan kode yang berfungsi tetapi belum diverifikasi dan unitnya tidak diketahui.

Perintah yang kuat:

Tuliskan fungsi tegangan lentur pada balok kantilever. Masukan F(N), L(mm), b(mm),h(mm); sigma keluaran (MPa). Sistem N-mm-MPa, tentukan setiap unit di komentar. Tambahkan pengujian dengan hasil yang diketahui (F=500, L=300, b=20, h=40 → ~28.1 MPa, tegaskan). Memberikan kesalahan pada input nol/negatif. Menafsirkan kasus tepi.

Prompt kedua memerlukan sistem satuan, rumus, masukan, pengujian, dan kasus tepi; Itu membuat kode dapat diverifikasi.

Tiga Kotak Mini (Berdasarkan Angka)

Kasus 1 - Kesalahan volume senyap. Penghitungan luas yang dihasilkan oleh AI mengambil diameter dalam mm dan menghasilkan mm² dengan pi*d**2/4, namun baris berikutnya memasukkannya ke dalam rumus yang mengharapkan m²; Kode ini berfungsi tanpa kesalahan dan memberikan tekanan 1.000.000 kali lebih rendah. Ketika insinyur menjalankan pengujian dengan hasil yang diketahui (assert abs(sigma-28.1)<0.5), pengujian meledak dan kesalahan diketahui. Jika tidak ada tes, hasil yang salah akan masuk ke laporan tanpa disadari. Pelajaran: kode yang berfungsi ≠ kode yang benar.

Kasus 2 - Keadaan tepi crash. Dalam kode yang mengulang untuk bagian keluarga, ketebalan h=0 dimasukkan dalam satu baris; Ketika I = b*h**3/12 = 0, sigma = M*c/I memberikan kesalahan pembagian dengan nol. Berkat kontrol if h<=0: raise ValueError yang ditambahkan oleh AI, kode berhenti dengan pesan yang bermakna dan tidak menghasilkan inf secara diam-diam. Pelajaran: tangani kasus tepi terlebih dahulu.

Kasus 3 - Peningkatan kemampuan pengulangan. Seorang insinyur memerlukan waktu setengah hari untuk menghitung daya pompa secara manual untuk 40 titik pengoperasian yang berbeda. Ditulis dalam AI, skrip membaca CSV, menghitung daya untuk setiap baris, dan memverifikasi titik yang diketahui dengan tegas, mengurangi pekerjaan menjadi ~2 menit dan menulis hasilnya ke file yang dapat dilacak. Ketika sebuah entri berubah, seluruh tabel diperbarui setiap detik. Pelajaran: otomatisasi terverifikasi cepat dan andal.

Kesalahan umum

  • Kekeliruan "Berhasil = benar": Berpikir bahwa kode yang berfungsi tanpa kesalahan adalah benar.
  • Tidak menulis tes: Mengandalkan kode tanpa tes referensi dengan hasil yang diketahui.
  • Ambiguitas unit: Membiarkan unit input/output tidak diinterpretasikan, melewatkan konversi.
  • Mengabaikan kasus tepi: Kesalahan diam atau crash pada input nol/negatif.
  • Tidak mendokumentasikan sumber/asumsi: Tidak menuliskan sumber dan asumsi rumus yang digunakan.
  • Tidak membuat versi: Membiarkan akun sebagai file satu kali tanpa membuatnya dapat dilacak (git).

Singkatnya

  • Python membuat komputasi teknik dapat diulang, dilacak, dan dikontrol versinya.
  • AI sangat cepat dalam menghasilkan kode; Tetapi fakta bahwa kode tersebut berfungsi tanpa kesalahan tidak berarti kode tersebut menghitung dengan benar.
  • Setiap kode harus divalidasi melalui pengujian hasil yang diketahui, pemeriksaan unit, dan kasus tepi.
  • Kesalahan unit adalah sumber kesalahan yang paling sering dan berbahaya; Pertahankan dengan sistem satuan tunggal, nomenklatur atau pint.
  • Otomatisasi yang tervalidasi menghemat waktu dan memberikan kepercayaan diri; Kode yang tidak terverifikasi berbahaya.

Tugas aplikasi

Pilih perhitungan teknik berulang (seperti tegangan, daya pompa, beban panas). Tulis fungsi Python ke AI yang melakukan perhitungan ini; Komentari unit setiap masukan dan keluaran dan tambahkan tes penegasan dengan hasil yang diketahui. Jalankan tes dan lihat apakah berhasil. Kemudian lakukan dua verifikasi lagi: coba kasus tepi (input nol atau negatif) untuk memeriksa apakah kode mengembalikan kesalahan yang signifikan, dan berikan unit output secara manual sebagai contoh. Jika memungkinkan, buat juga versi unit-safe yang diproduksi dalam ukuran pint. Terakhir, tambahkan asumsi penghitungan, sumber rumus, dan tanggal ke dalam kode sebagai judul singkat dan tulis mengapa kode ini masih memerlukan persetujuan insinyur.

daftar periksa

  • [ ] Unit masukan dan keluaran didokumentasikan dengan jelas dalam kode; sistem unit tunggal dipilih.
  • [ ] Sebuah tes (menegaskan) dengan hasil yang diketahui telah ditambahkan dan dilewati.
  • [ ] Setidaknya satu kasus tepi (nol/negatif) telah dicoba; Kode tersebut memberikan kesalahan yang signifikan.
  • [ ] Unit keluaran disediakan melalui contoh manual (tidak mengasumsikan "berhasil = benar").
  • [ ] Sumber rumus, asumsi dan tanggal dicatat dalam kode.
  • [ ] Akun tetap dapat dilacak/dilacak; persetujuan akhir diserahkan kepada insinyur.