Pelnas:
- Gebėjimas automatizuoti inžinerinius skaičiavimus, vienetų valdymą ir duomenų apdorojimą naudojant AI valdomą Python kodą
- Galimybė patvirtinti AI kodą su vienetų tikrinimu, žinomų rezultatų testavimu ir kraštutiniais atvejais
- Galimybė įgyti įprotį rengti pakartojamus, atsekamus ir pagal versijas valdomus sąskaitos dokumentus
Mechaninėje inžinerijoje tas pats skaičiavimas atliekamas vėl ir vėl: dalių šeimos įtempiai, siurblio galia įvairiuose veikimo taškuose, savybių lentelės esant skirtingoms temperatūroms. Tai daryti rankiniu būdu yra lėta ir kyla klaidų. Python (lengvai išmokstama programavimo kalba su turtingomis inžinerijos bibliotekomis) automatizuoja šias iteracijas; Dėl to paskyra yra kartojama, atsekama ir valdoma versija. Dirbtinis intelektas (DI) Python neįtikėtinai greitai generuoja kodą: paverčia formulę į funkciją, prideda vienetų valdymą, nuskaito duomenis, braižo grafikus. Tačiau čia yra pavojinga klaidinga nuomonė: tai, kad kodas veikia be klaidų, nereiškia, kad jis skaičiuoja teisingai. AI kodas gali tyliai grąžinti neteisingus rezultatus dėl neteisingo vieneto konvertavimo, neteisingos formulės arba kraštutiniais atvejais, o programa toliau veiks be klaidų. Štai kodėl kiekvienas inžinerinis kodas sukurtas naudojant AI; Bandymo įvestis su žinomais rezultatais yra nepatikimos, jei netikrinama vieneto (dydžio) tikrinimu ir kraštinių atvejų bandymais. Šiame skyriuje sužinosite, kaip saugiai nustatyti Python paskyros automatizavimą naudojant AI.
Kodėl kodo sąskaita? Atsekamumas ir atkuriamumas
Rankinis skaičiavimas yra vienkartinis; Kai įvestis pasikeičia, tai daroma nuo nulio ir prarandami tarpiniai žingsniai. Kode atliekamas skaičiavimas yra kaip dokumentas: įvestis, formulės ir išėjimai yra aiškiai parašyti; pakeičiate įvestį ir per kelias sekundes gaunate naują rezultatą; Su versijos valdymu (pvz., git) galima sekti „ką su kokia reikšme kurią datą apskaičiavau“. Tai neįkainojama kontrolės ir atskaitomybės požiūriu. Tačiau ši galia priklauso nuo kodo teisingumo; Neteisingas kodas sukuria neteisingą rezultatą, taip pat atkuriamą ir greitai.
Patarimas: parašykite kiekvienos skaičiavimo funkcijos testą su žinomu tikru rezultatu šalia jo (tvirtinti Python). Pavyzdžiui, jūsų įtempio funkcija žinomame pavyzdyje turėtų duoti 28,1 MPa. Šis testas iš karto įspėja, jei ateityje keisdami kodą ką nors sugadinsite. Inžinerinis kodas, kuris nėra išbandytas, yra nepatvirtinta paskyra.
Apimties valdymas: dažniausiai pasitaikantis klaidų šaltinis
Inžineriniame kodekse daugiausia klaidų kyla iš vienetų: N su kN, m su mm, Pa su MPa, kuriuos galima supainioti 1000 arba 1 000 000 kartų. Yra dvi gynybos priemonės. Pirmoji yra disciplina: nuo pat pradžių pasirenkama vieno vieneto sistema (pvz., N, mm, MPa) ir į ją konvertuojami visi įvesties duomenys bei pridedami vienetai prie kintamųjų pavadinimų (ilgis_mm, jėga_N). Antrasis yra įrankis: tokia biblioteka kaip pint perkelia vienetus kode ir nenuoseklią operaciją pagauna kaip klaidą.
Prieiga
Kaip tai veikia
Privalumas
Įvardijimo disciplina
kaip jėga_N, ilgis_mm
Paprasta, jokių priklausomybių
vieno vieneto sistema
Viskas konvertuota į N-mm-MPa
Paprastumas, greitis
pintų biblioteka
Perkelia vienetą pagal kintamąjį
Automatiškai užfiksuoja neatitikimus
Žinomų rezultatų testas
nuoroda su tvirtinimu
Gauna formulės / vieneto klaidą
Įspėjimas: AI sukurtame kode gali trūkti vieneto konvertavimo arba jis yra neteisingas, o kodas vis tiek „veiks“. Pavyzdžiui, jei skersmuo yra mm, o plotas turėtų būti m², rezultatas nukryps 1 000 000 kartų, tačiau programa neduos klaidos. Prieš paleisdami kodą, pakomentuokite įvesties ir išvesties vienetus; tada pateikite rezultatą žinomu pavyzdžiu.
Žingsnis po žingsnio: AI patvirtinamas paskyros kodas
- Išsiaiškinkite problemą ir įrenginio sistemą. Įėjimai, išėjimai, vienetai.
- Sugeneruokite funkciją. Vienišas atsakingas, supratingas, vieningas.
- Pridėkite žinomus testo rezultatus. Teikti su nuoroda pavyzdžiu.
- Išbandykite kraštinius dėklus. Nulis, neigiamas, labai didelis / mažas įvestis.
- Atlikite vieneto patikrinimą. Ar išvesties vienetas atitinka tai, ko tikimasi?
- Dokumentas ir versija. Prielaidos, šaltinis, data; atsekamumas naudojant git.
Užklausa, kuri generuoja funkcijas ir testus
Vaidmuo: patyręs Python kūrėjas, rašantis inžinerinius skaičiavimus. Užduotis: Parašykite funkciją, kuri apskaičiuoja didžiausią lenkimo įtempį stačiakampio skerspjūvio konsolinėje sijoje. Įvestis: F (N), L (mm), b (mm), h (mm). Išėjimas: sigma (MPa). Susitarimas: vienetų sistema N-mm-MPa; pakomentuokite kiekvieno įrašo vienetą.Taisyklė: naudokite I = b*h^3/12 ir sigma = M*c/I; pakomentuokite veiksmus.Taisyklė: pridėkite testą su ŽINOMU REZULTATAI: sigma ~28,1 MPa F=500,L=300,b=20,h=40; Patikrinkite tvirtindami (maža paklaida).
Edge būsenos raginimas
Į aukščiau pateiktą funkciją įtraukite kraštinių raidžių patikrinimus:- Jei b, h arba L yra nulis arba neigiamas, pateikite reikšmingą klaidą (padidinkite ValueError).- Komentuokite, jei yra perpildymo / tikslumo problema su labai didelėmis / mažomis įvestimis. Taip pat pridėkite dar 3 skirtingus testo įvestis ir parašykite laukiamą rezultatą; paaiškinkite rezultatus taip, kad galėčiau juos patikrinti rankiniu būdu.
Vieneto saugumo (pintos) raginimas
Vienetui saugi ta pati paskyra su „pintų“ biblioteka. Tegul įvestys yra apibrėžtos vienetais (pvz., 500 * ureg.newton). Konvertuokite išvestį į MPa ir atspausdinkite. Pridėkite nedidelį pavyzdį, rodantį, kaip pint sugenda, kai įvedamas netinkamas vienetas.
Raginimas patikrinti kodą
Kritikuokite toliau pateiktą inžinerinio skaičiavimo kodą iš kodo peržiūros perspektyvos, nesutinkate su manimi. Visų pirma: ar teisinga vieneto perskaičiavimas, ar teisinga formulė, ar buvo atsižvelgta į kraštutinius atvejus (nulis, neigiamas), ar testai tikrai patvirtina? Prie kiekvieno radinio parašykite, kaip jį ištaisyti.[kodas]
Silpnas raginimas / stiprus raginimas
Silpnas raginimas:
Parašykite Python kodą streso skaičiavimui.
Jokio vienetų, formulių, įvesties apibrėžimų ir testų pasirinkimo; AI generuoja kodą, kuris veikia, bet yra nepatvirtintas ir kurio vienetas nežinomas.
Galingas raginimas:
Užrašykite lenkimo įtempių funkciją konsolinėje sijoje. Įvestis F(N), L(mm), b(mm),h(mm); išvesties sigma (MPa). N-mm-MPa sistema, kiekvieną vienetą nurodykite komentare. Pridėkite testą su žinomais rezultatais (F=500, L=300, b=20, h=40 → ~28,1 MPa, tvirtinti). Pateikite nulinės / neigiamos įvesties klaidą. Interpretuokite kraštutinius atvejus.
Antrasis raginimas reikalauja vienetų sistemos, formulės, įvesties, testo ir kraštinių atvejų; Tai leidžia patikrinti kodą.
Trys mini dėklai (pagal numerius)
1 atvejis – tylaus garso klaida. AI atliktas ploto skaičiavimas paima skersmenį mm ir pateikia mm² su pi*d**2/4, tačiau kitoje eilutėje jis įdedamas į formulę, kurioje tikimasi m²; Kodas veikia be klaidų ir suteikia 1 000 000 kartų mažesnį įtampą. Kai inžinierius atlieka testą su žinomu rezultatu (assert abs(sigma-28.1)<0.5), bandymas sprogsta ir klaida užfiksuojama. Jei testo nebūtų, klaidingas rezultatas būtų nepastebėtas įtrauktas į ataskaitą. Pamoka: darbo kodas ≠ teisingas kodas.
2 atvejis – krašto būsenos avarija. Kode, kuriame kilpos detalių šeimai, storis h=0 įrašomas vienoje eilutėje; Kai I = b*h**3/12 = 0, sigma = M*c/I duoda dalijimą iš nulio. Dėl AI pridėto valdiklio if h<=0: raise ValueError, kodas sustoja su prasmingu pranešimu ir tyliai nepateikia inf. Pamoka: iš anksto tvarkykite kraštus.
3 atvejis – pakartojamumo padidėjimas. Inžinierius užtruko pusę dienos, kad rankiniu būdu apskaičiuotų siurblio galią 40 skirtingų darbo taškų. Parašytas AI, scenarijus nuskaito CSV, apskaičiuoja kiekvienos eilutės galią ir patikrina žinomą tašką su tvirtinimu, sumažindamas darbą iki ~ 2 minučių ir įrašydamas rezultatus į atsekamąjį failą. Kai įrašas pasikeičia, visa lentelė atnaujinama kas sekundę. Pamoka: patikrinta automatika yra greita ir patikima.
Dažnos klaidos
- Klaidingumas „Suveikė = teisingas“: teisinga manyti, kad kodas veikia be klaidų.
- Nerašyti testų: pasikliauti kodu be etaloninio testo su žinomu rezultatu.
- Vienetų dviprasmiškumas: įvesties / išvesties vienetai paliekami neinterpretuoti, praleidžiamas konvertavimas.
- Kraštinių atvejų nepaisymas: tyli klaida arba strigtis įvedant nulinę / neigiamą įvestį.
- Šaltinio/prielaidos nedokumentavimas: šaltinio ir naudotos formulės prielaidos neužrašas.
- Neversijų nustatymas: paskyros palikimas kaip vienkartinis failas, nesuteikiant jo atsekamo (git).
Apibendrinant
- „Python“ daro inžinerinius skaičiavimus kartojamus, atsekamus ir valdomą versiją.
- AI labai greitai generuoja kodą; Tačiau tai, kad kodas veikia be klaidų, nereiškia, kad jis skaičiuoja teisingai.
- Kiekvienas kodas turi būti patvirtintas atliekant žinomų rezultatų testavimą, vienetų patikrą ir kraštutinius atvejus.
- Vieneto klaidos yra dažniausias ir klastingiausias klaidų šaltinis; Ginti pagal vieno vieneto sistemą, nomenklatūrą arba pintą.
- Patvirtinta automatika taupo laiką ir suteikia pasitikėjimo; Nepatvirtintas kodas yra pavojingas.
Taikymo užduotis
Pasirinkite pasikartojančius inžinerinius skaičiavimus (pvz., įtempius, siurblio galią, šilumos apkrovą). Parašykite Python funkciją į AI, kuri atlieka šį skaičiavimą; Komentuokite kiekvienos įvesties ir išvesties vienetus ir pridėkite tvirtinimo testą su žinomu rezultatu. Atlikite testą ir pažiūrėkite, ar jis praeina. Tada atlikite dar du patikrinimus: išbandykite kraštinę raidę (nulis arba neigiama įvestis), kad patikrintumėte, ar kodas pateikia reikšmingą klaidą, ir rankiniu būdu pateikite išvesties vienetą pavyzdyje. Jei įmanoma, turėkite ir vienetui saugią versiją, pagamintą pintos spalvos. Galiausiai pridėkite skaičiavimo prielaidas, formulės šaltinį ir datą prie kodo kaip trumpą pavadinimą ir parašykite, kodėl šiam kodui vis dar reikalingas inžinieriaus patvirtinimas.
kontrolinis sąrašas
- [ ] Įvesties ir išvesties vienetai yra aiškiai dokumentuoti kode; buvo pasirinkta vieno vieneto sistema.
- [ ] Testas (teiginys) su žinomu rezultatu buvo pridėtas ir išlaikytas.
- [ ] Buvo bandoma bent viena kraštinė raidė (nulis / neigiamas); Kodas davė didelę klaidą.
- [ ] Išvesties vienetas buvo pateiktas rankiniu pavyzdžiu (nepriimant prielaidos, kad „veikė = teisingai“).
- [ ] Kode nurodyti formulės šaltinis, prielaidos ir data.
- [ ] Sąskaita buvo stebima / sekama; galutinis patvirtinimas buvo paliktas inžinieriui.