Unit 10 / 11

Automasi Pengiraan Kejuruteraan dengan Python

Keuntungan:

  • Keupayaan untuk mengautomasikan pengiraan kejuruteraan, pengurusan unit dan pemprosesan data dengan kod Python berkuasa AI
  • Keupayaan untuk mengesahkan kod AI dengan pemeriksaan unit, ujian keputusan yang diketahui dan kes tepi
  • Keupayaan untuk mendapatkan tabiat menghasilkan dokumen akaun yang boleh diulang, boleh dikesan dan dikawal versi

Dalam kejuruteraan mekanikal, pengiraan yang sama dilakukan berulang kali: tegasan keluarga bahagian, kuasa pam untuk julat titik operasi, jadual harta pada suhu yang berbeza. Melakukannya secara manual adalah kedua-duanya perlahan dan terdedah kepada ralat. Python (bahasa pengaturcaraan yang mudah dipelajari dengan perpustakaan yang kaya untuk kejuruteraan) mengautomasikan lelaran ini; Ia menjadikan akaun boleh berulang, boleh dikesan dan versi dikawal. Kecerdasan buatan (AI) Python sangat pantas menjana kod: menukar formula kepada fungsi, menambah pengurusan unit, membaca data, memplot graf. Tetapi terdapat salah tanggapan yang berbahaya di sini: hanya kerana kod berfungsi tanpa ralat tidak bermakna ia mengira dengan betul. Kod AI boleh mengembalikan hasil yang salah secara senyap disebabkan penukaran unit yang salah, formula yang salah atau dalam kes tepi, dan program akan terus berjalan tanpa sebarang ralat. Itulah sebabnya setiap kod kejuruteraan yang dihasilkan dengan AI; Input ujian dengan keputusan yang diketahui tidak boleh dipercayai tanpa pengesahan oleh semakan unit (saiz) dan percubaan kes tepi. Dalam unit ini, anda akan belajar cara menyediakan automasi akaun Python dengan AI dengan selamat.

Mengapa Akaun Kod? Kebolehkesanan dan Kebolehulangan

Pengiraan manual adalah sekali sahaja; Apabila input berubah, ia dilakukan dari awal dan langkah perantaraan hilang. Pengiraan yang dilakukan dalam kod adalah seperti dokumen: input, formula dan output ditulis dengan jelas; anda menukar input dan mendapatkan hasil baharu dalam beberapa saat; Dengan kawalan versi (seperti git), "apa yang saya kira dengan nilai pada tarikh mana" boleh dijejaki. Ini tidak ternilai dari segi kawalan dan akauntabiliti. Tetapi kuasa ini bergantung pada ketepatan kod; Kod yang salah menghasilkan hasil yang salah, juga boleh dihasilkan semula dan cepat.

Petua: Tulis ujian untuk setiap fungsi pengiraan dengan hasil sebenar yang diketahui di sebelahnya (tegaskan dalam Python). Sebagai contoh, fungsi tegasan anda harus memberikan 28.1 MPa dalam sampel yang diketahui. Ujian ini segera memberi amaran kepada anda jika anda melanggar sesuatu apabila anda menukar kod pada masa hadapan. Kod kejuruteraan yang tidak diuji ialah akaun yang tidak disahkan.

Pengurusan Kelantangan: Sumber Ralat Paling Biasa

Dalam kod kejuruteraan, kebanyakan ralat datang daripada unit: N dengan kN, m dengan mm, Pa dengan MPa, yang boleh dikelirukan dengan faktor 1000 atau 1,000,000. Terdapat dua pertahanan. Yang pertama ialah disiplin: memilih sistem unit tunggal dari awal (cth. N, mm, MPa) dan menukar semua input kepadanya dan menambah unit kepada nama pembolehubah (length_mm, force_N). Yang kedua ialah alat: perpustakaan seperti pint membawa unit dalam kod dan menangkap operasi yang tidak konsisten sebagai ralat.

Pendekatan

Bagaimana ia berfungsi

Kelebihan

Menamakan disiplin

seperti force_N, length_mm

Mudah, tiada kebergantungan

sistem unit tunggal

Semua ditukar kepada N-mm-MPa

Kesederhanaan, kelajuan

perpustakaan pint

Menggerakkan unit mengikut pembolehubah

Secara automatik menangkap ketidakkonsistenan

Ujian keputusan yang diketahui

rujukan dengan tegas

Menangkap ralat formula/unit

Awas: Penukaran unit mungkin hilang atau salah dalam kod yang dijana AI dan kod itu masih akan "berfungsi". Sebagai contoh, jika diameter ialah mm dan luasnya dijangka m², hasilnya akan menyimpang sebanyak 1,000,000 kali, tetapi program tidak akan memberikan ralat. Sebelum menjalankan kod, ulas unit input dan output; kemudian berikan hasilnya dengan contoh yang diketahui.

Langkah demi Langkah: Kod Akaun Boleh Disahkan AI

  1. Menjelaskan masalah dan sistem unit. Input, output, unit.
  2. Hasilkan fungsi. Tunggal bertanggungjawab, tafsir, bersatu.
  3. Tambah ujian keputusan yang diketahui. Tegaskan dengan contoh rujukan.
  4. Cuba kes tepi. Sifar, negatif, input sangat besar/kecil.
  5. Buat pemeriksaan unit. Adakah unit output sepadan dengan apa yang dijangkakan?
  6. Dokumen dan versi. Andaian, sumber, tarikh; kebolehkesanan dengan git.

Prompt yang menjana fungsi dan ujian

Peranan: Pemaju Python yang berpengalaman menulis pengiraan kejuruteraan. Tugasan: Tulis satu fungsi yang mengira tegasan lentur maksimum dalam rasuk julur keratan rentas segi empat tepat. Input: F (N), L (mm), b (mm), h (mm). Output: sigma (MPa).Konvensyen: Sistem unit N-mm-MPa; komen unit setiap entri.Peraturan: gunakan I = b*h^3/12 dan sigma = M*c/I; ulas langkah.Peraturan: Tambah ujian dengan KEPUTUSAN YANG DIKENALI: sigma ~28.1 MPa untuk F=500,L=300,b=20,h=40; Semak dengan tegas (toleransi kecil).

Gesaan status tepi

Tambah semakan kes tepi pada fungsi di atas:- Jika b, h atau L adalah sifar atau negatif, berikan ralat yang ketara (naikkan ValueError).- Komen jika terdapat masalah limpahan/ketepatan dengan input yang sangat besar/kecil. Tambah juga 3 lagi input ujian berbeza dan tulis hasil yang dijangkakan; terangkan hasilnya dengan cara yang saya boleh mengesahkannya secara manual.

Gesaan keselamatan unit (pint).

Unit-safe akaun yang sama dengan perpustakaan 'pint'. Biarkan input ditakrifkan dalam unit (cth. 500 * ureg.newton). Tukar output kepada MPa dan cetaknya. Tambah contoh kecil yang menunjukkan bagaimana pint gagal apabila diberi input dengan unit yang salah.

Gesaan semakan kod

Kritik kod pengiraan kejuruteraan saya di bawah dari perspektif semakan kod, jangan bersetuju dengan saya. Khususnya: adakah penukaran unit betul, adakah formula betul, adakah kes tepi (sifar, negatif) telah dipertimbangkan, adakah ujian benar-benar mengesahkan? Untuk setiap penemuan, tulis cara membetulkannya.[kod]

Gesaan Lemah / Gesaan Kuat

Gesaan yang lemah:

Tulis kod Python untuk pengiraan tegasan.

Tiada pilihan unit, formula, definisi input dan ujian; AI menjana kod yang berfungsi tetapi tidak disahkan dan unitnya tidak diketahui.

Gesaan kuat:

Tulis fungsi tegasan lentur dalam rasuk julur. Input F(N), L(mm), b(mm),h(mm); sigma keluaran (MPa). Sistem N-mm-MPa, nyatakan setiap unit dalam ulasan. Tambah ujian dengan keputusan yang diketahui (F=500, L=300, b=20, h=40 → ~28.1 MPa, tegaskan). Berikan ralat pada input sifar/negatif. Mentafsir kes tepi.

Gesaan kedua memerlukan sistem unit, formula, input, ujian dan kes tepi; Ia menjadikan kod itu boleh disahkan.

Tiga Sarung Mini (Mengikut Nombor)

Kes 1 - Ralat kelantangan senyap. Pengiraan luas yang dihasilkan oleh AI mengambil diameter dalam mm dan memberikan mm² dengan pi*d**2/4, tetapi baris seterusnya memasukkannya ke dalam formula yang menjangkakan m²; Kod ini berfungsi tanpa ralat dan memberikan tekanan 1,000,000 kali lebih rendah. Apabila jurutera menjalankan ujian dengan keputusan yang diketahui (tegaskan abs(sigma-28.1)<0.5), ujian meletup dan ralat ditangkap. Jika tiada ujian, keputusan yang salah akan memasuki laporan tanpa disedari. Pelajaran: kod kerja ≠ kod yang betul.

Kes 2 - Ranap keadaan tepi. Dalam kod yang bergelung untuk keluarga sebahagian, ketebalan h=0 dimasukkan dalam satu baris; Apabila I = b*h**3/12 = 0, sigma = M*c/I memberikan pembahagian dengan ralat sifar. Terima kasih kepada if h<=0: meningkatkan kawalan ValueError yang ditambahkan oleh AI, kod itu berhenti dengan mesej yang bermakna dan tidak menghasilkan inf secara senyap. Pengajaran: kendalikan kes tepi terlebih dahulu.

Kes 3 - Keuntungan kebolehulangan. Jurutera mengambil masa setengah hari untuk mengira kuasa pam secara manual untuk 40 titik operasi yang berbeza. Ditulis dalam AI, skrip membaca CSV, mengira kuasa untuk setiap baris dan mengesahkan titik yang diketahui dengan penegasan, mengurangkan kerja kepada ~2 minit dan menulis hasilnya pada fail yang boleh dikesan. Apabila entri berubah, keseluruhan jadual dikemas kini setiap saat. Pengajaran: automasi yang disahkan adalah pantas dan boleh dipercayai.

Kesilapan biasa

  • Kekeliruan "Worked = correct": Memikirkan bahawa kod yang berfungsi tanpa ralat adalah betul.
  • Tidak menulis ujian: Bergantung pada kod tanpa ujian rujukan dengan keputusan yang diketahui.
  • Kekaburan unit: Membiarkan unit input/output tidak ditafsirkan, melangkau penukaran.
  • Mengabaikan kes tepi: Ralat senyap atau ranap pada input sifar/negatif.
  • Tidak mendokumenkan sumber/andaian: Tidak menulis sumber dan andaian formula yang digunakan.
  • Bukan versi: Meninggalkan akaun sebagai fail sekali sahaja tanpa menjadikannya boleh dikesan (git).

Secara ringkasnya

  • Python menjadikan pengiraan kejuruteraan boleh diulang, boleh dikesan dan versi dikawal.
  • AI sangat pantas menjana kod; Tetapi hakikat bahawa kod berfungsi tanpa ralat tidak bermakna ia mengira dengan betul.
  • Setiap kod harus disahkan melalui ujian hasil yang diketahui, pemeriksaan unit dan kes tepi.
  • Ralat unit adalah punca ralat yang paling kerap dan paling berbahaya; Pertahankan dengan sistem unit tunggal, tatanama atau pint.
  • Automasi yang disahkan menjimatkan masa dan memberikan keyakinan; Kod yang tidak disahkan adalah berbahaya.

Tugasan permohonan

Pilih pengiraan kejuruteraan berulang (seperti tegasan, kuasa pam, beban haba). Tulis fungsi Python kepada AI yang melakukan pengiraan ini; Ulas unit bagi setiap input dan output dan tambahkan ujian assert dengan keputusan yang diketahui. Jalankan ujian dan lihat jika ia lulus. Kemudian lakukan dua lagi pengesahan: cuba kes tepi (input sifar atau negatif) untuk menyemak sama ada kod tersebut mengembalikan ralat yang ketara dan berikan unit output secara manual dalam contoh. Jika boleh, sediakan juga versi selamat unit yang dihasilkan dalam pint. Akhir sekali, tambahkan andaian pengiraan, sumber formula dan tarikh pada kod sebagai tajuk pendek dan tulis mengapa kod ini masih memerlukan kelulusan jurutera.

senarai semak

  • [ ] Unit input dan output didokumenkan dengan jelas dalam kod; sistem unit tunggal telah dipilih.
  • [ ] Satu ujian (menegaskan) dengan keputusan yang diketahui telah ditambah dan diluluskan.
  • [ ] Sekurang-kurangnya satu sarung tepi (sifar/negatif) telah dicuba; Kod tersebut memberikan ralat yang ketara.
  • [ ] Unit output disediakan oleh contoh manual (tidak menganggap "berfungsi = betul").
  • [ ] Sumber formula, andaian dan tarikh tercatat dalam kod.
  • [ ] Akaun disimpan boleh dikesan/dijejaki; kelulusan akhir diserahkan kepada jurutera.