Dobici:
- Sposobnost automatizacije inženjerskih proračuna, upravljanja jedinicama i obrade podataka s Python kodom koji pokreće AI
- Sposobnost provjere AI koda s provjerom jedinica, testiranjem poznatih rezultata i rubnim slučajevima
- Sposobnost stjecanja navike izrade ponovljivih, sljedivih i verzijama kontroliranih dokumenata računa
U strojarstvu se uvijek iznova radi isti izračun: naprezanja obitelji dijelova, snaga pumpe za niz radnih točaka, tablice svojstava na različitim temperaturama. Ručno izvođenje je sporo i podložno pogreškama. Python (programski jezik koji se lako uči s bogatim bibliotekama za inženjering) automatizira ove iteracije; Čini račun ponovljivim, sljedivim i kontroliranim verzijama. Umjetna inteligencija (AI) Python je nevjerojatno brz u generiranju koda: pretvara formulu u funkciju, dodaje upravljanje jedinicama, čita podatke, iscrtava grafikone. Ali ovdje postoji opasna zabluda: samo zato što kôd radi bez pogrešaka ne znači da ispravno izračunava. AI kod može tiho vratiti netočne rezultate zbog netočne pretvorbe jedinica, netočne formule ili u rubnim slučajevima, a program će nastaviti raditi bez ikakvih pogrešaka. Zato je svaki inženjerski kod proizveden AI; Testni unosi s poznatim rezultatima nepouzdani su bez verifikacije provjerom jedinice (veličine) i ispitivanja rubnih slučajeva. U ovoj ćete jedinici naučiti kako sigurno postaviti automatizaciju Python računa pomoću umjetne inteligencije.
Zašto Code Account? Sljedivost i ponovljivost
Ručni izračun je jednokratan; Kada se unos promijeni, to se radi ispočetka, a međukoraci se gube. Izračun u kodu je poput dokumenta: ulazi, formule i izlazi jasno su napisani; promijenite unos i dobijete novi rezultat unutar nekoliko sekundi; S kontrolom verzija (kao što je git), može se pratiti "što sam izračunao s kojom vrijednošću na koji datum". Ovo je neprocjenjivo u smislu kontrole i odgovornosti. Ali ta moć ovisi o ispravnosti koda; Pogrešan kod proizvodi pogrešan rezultat, također ponovljivo i brzo.
Savjet: Napišite test za svaku računsku funkciju s poznatim pravim rezultatom pokraj nje (potvrdite u Pythonu). Na primjer, vaša funkcija naprezanja trebala bi dati 28,1 MPa u poznatom uzorku. Ovaj test vas odmah upozorava ako nešto pokvarite kada promijenite kod u budućnosti. Inženjerski kod koji nije testiran je neprovjereni račun.
Upravljanje volumenom: najčešći izvor pogreške
U inženjerskom kodu većina pogrešaka dolazi od jedinica: N s kN, m s mm, Pa s MPa, koje se mogu zbuniti faktorom 1000 ili 1.000.000. Dvije su obrane. Prvi je disciplina: odabir sustava jedne jedinice od početka (npr. N, mm, MPa) i pretvaranje svih ulaza u njega i dodavanje jedinica nazivima varijabli (duljina_mm, sila_N). Drugi je alat: biblioteka poput pinta nosi jedinice unutar koda i hvata nedosljednu operaciju kao pogrešku.
pristup
Kako radi
Prednost
Disciplina imenovanja
poput sila_N, duljina_mm
Jednostavno, bez ovisnosti
sustav jedne jedinice
Sve pretvoreno u N-mm-MPa
Jednostavnost, brzina
knjižnica pinta
Pomiče jedinicu po varijablu
Automatski hvata nedosljednosti
Test poznatih rezultata
referenca s tvrdnjom
Hvata pogrešku formule/jedinice
Oprez: pretvorba jedinica može nedostajati ili biti netočna u kodu generiranom umjetnom inteligencijom, a kod će i dalje "raditi". Na primjer, ako je promjer mm, a očekuje se površina m², rezultat će odstupati 1.000.000 puta, ali program neće dati pogrešku. Prije pokretanja koda komentirajte jedinice ulaza i izlaza; zatim dati rezultat s poznatim primjerom.
Korak po korak: AI provjerljivi kod računa
- Pojasnite problem i sustav jedinica. Ulazi, izlazi, jedinice.
- Generirajte funkciju. Jedinstveni odgovorni, interpretativni, jedinstveni.
- Dodajte test s poznatim rezultatima. Ustvrdite referentnim primjerom.
- Isprobajte rubne slučajeve. Nula, negativan, vrlo velik/mali unos.
- Izvršite provjeru jedinice. Odgovara li jedinica outputa onome što se očekuje?
- Dokument i verzija. Pretpostavke, izvor, datum; sljedivost s git-om.
Prompt koji generira funkcije i testove
Uloga: Iskusni Python programer koji piše inženjerske izračune. Zadatak: Napišite funkciju koja izračunava maksimalno naprezanje na savijanje u konzolnoj gredi pravokutnog presjeka. Unos: F (N), L (mm), b (mm), h (mm). Izlaz: sigma (MPa). Konvencija: Sustav jedinica N-mm-MPa; komentirajte jedinicu svakog unosa. Pravilo: koristite I = b*h^3/12 i sigma = M*c/I; komentirajte korake. Pravilo: Dodajte test s POZNATIM REZULTATOM: sigma ~28,1 MPa za F=500,L=300,b=20,h=40; Provjerite tvrdnjom (mala tolerancija).
Upit statusa ruba
Dodajte provjere rubnih slučajeva gornjoj funkciji: - Ako su b, h ili L nula ili negativni, dajte značajnu pogrešku (povećajte ValueError). - Komentirajte ako postoji problem prekoračenja/preciznosti s vrlo velikim/malim ulazima. Također dodajte još 3 različita testna unosa i napišite očekivani rezultat; objasniti rezultate na način da ih mogu ručno provjeriti.
Upit za sigurnost jedinice (pinta).
Unit-safe isti račun s knjižnicom 'pinta'. Neka ulazi budu definirani u jedinicama (npr. 500 * ureg.newton). Pretvorite izlaz u MPa i ispišite ga. Dodajte mali primjer koji pokazuje kako pinta ne uspijeva kada se unese pogrešna jedinica.
Upit za provjeru koda
Kritizirajte moj kod za inženjerski izračun u nastavku iz perspektive pregleda koda, nemojte se slagati sa mnom. Konkretno: je li pretvorba jedinica točna, je li formula točna, jesu li uzeti u obzir rubni slučajevi (nula, negativni), jesu li testovi doista potvrdni? Za svaki nalaz napišite kako ga popraviti.[code]
Slab upit / Jak upit
Slab upit:
Napišite Python kod za izračun naprezanja.
Nema izbora jedinica, formula, ulaznih definicija i testova; AI generira kod koji radi, ali je neprovjeren i čija je jedinica nepoznata.
Snažan upit:
Napišite funkciju naprezanja savijanja u konzolnoj gredi. Ulaz F(N), L(mm), b(mm),h(mm); izlazna sigma (MPa). Sustav N-mm-MPa, svaku jedinicu navedite u komentaru. Dodajte test s poznatim rezultatima (F=500, L=300, b=20, h=40 → ~28,1 MPa, potvrditi). Daj pogrešku na nuli/negativnom unosu. Tumačite rubne slučajeve.
Drugi prompt zahtijeva jedinični sustav, formulu, ulaze, test i rubne slučajeve; Čini kôd provjerljivim.
Tri mini kofera (po brojevima)
Slučaj 1 - Tiha pogreška glasnoće. Izračun površine koji proizvodi AI uzima promjer u mm i daje mm² s pi*d**2/4, ali sljedeći redak ga stavlja u formulu koja očekuje m²; Kod radi bez grešaka i daje 1.000.000 puta manji stres. Kada inženjer izvede test s poznatim rezultatom (assert abs(sigma-28.1)<0.5), test eksplodira i pogreška je uhvaćena. Da nije bilo testa, pogrešan rezultat bi nezapaženo ušao u izvješće. Lekcija: radni kod ≠ ispravan kod.
Slučaj 2 - pad u rubnom stanju. U kodu koji radi u petlji za familiju dijelova, debljina h=0 upisuje se u jednom retku; Kada je I = b*h**3/12 = 0, sigma = M*c/I daje grešku dijeljenja s nulom. Zahvaljujući kontroli if h<=0: raise ValueError koju je dodao AI, kod se zaustavlja sa smislenom porukom i ne proizvodi tiho inf. Lekcija: unaprijed obradite rubne slučajeve.
Slučaj 3 - Dobitak ponovljivosti. Inženjeru je trebalo pola dana da ručno izračuna snagu pumpe za 40 različitih radnih točaka. Napisana u umjetnoj inteligenciji, skripta čita CSV, izračunava snagu za svaku liniju i potvrđuje poznatu točku pomoću assert-a, smanjujući posao na ~2 minute i zapisujući rezultate u datoteku koja se može pratiti. Kada se unos promijeni, cijela se tablica ažurira svake sekunde. Lekcija: provjerena automatizacija je brza i pouzdana.
Uobičajene greške
- Zabluda "radio = ispravno": misliti da je kod koji radi bez pogrešaka točan.
- Ne pisanje testova: Oslanjanje na kod bez referentnog testa s poznatim rezultatom.
- Nejasnoća jedinice: Ostavljanje ulazno/izlaznih jedinica neinterpretiranih, preskakanje pretvorbe.
- Ignoriranje rubnih slučajeva: Tiha pogreška ili pad na nultom/negativnom unosu.
- Nedokumentiranje izvora/pretpostavke: Nezapisivanje izvora i pretpostavke korištene formule.
- Bez verzije: Ostavljanje računa kao jednokratne datoteke bez mogućnosti praćenja (git).
Ukratko
- Python čini inženjersko računanje ponovljivim, sljedivim i kontroliranim verzijama.
- AI je vrlo brz u generiranju koda; Ali činjenica da kod radi bez grešaka ne znači da ispravno izračunava.
- Svaki kôd treba potvrditi testiranjem poznatih rezultata, provjerom jedinice i rubnim slučajevima.
- Pogreške jedinica najčešći su i najpodmukliji izvor pogreške; Obranite se sustavom jedne jedinice, nomenklaturom ili pintom.
- Validirana automatizacija štedi vrijeme i daje povjerenje; Neprovjereni kod je opasan.
Zadatak aplikacije
Odaberite ponavljajući inženjerski izračun (kao što je naprezanje, snaga pumpe, toplinsko opterećenje). Napišite Python funkciju u AI koji radi ovaj izračun; Zakomentirajte jedinicu svakog ulaza i izlaza i dodajte test tvrdnje s poznatim rezultatom. Pokrenite test i provjerite prolazi li. Zatim napravite još dvije provjere: pokušajte s rubnim slučajem (nulti ili negativni unos) da provjerite vraća li kod značajnu pogrešku i ručno navedite jedinicu izlaza u primjeru. Ako je moguće, proizvedite i jedinično sigurnu verziju u litri. Na kraju dodajte pretpostavke izračuna, izvor formule i datum kodu kao kratkom naslovu i napišite zašto ovaj kod i dalje zahtijeva odobrenje inženjera.
popis za provjeru
- [ ] Ulazne i izlazne jedinice jasno su dokumentirane u kodu; odabran je sustav jedne jedinice.
- [ ] Test (assert) s poznatim rezultatom je dodan i prošao.
- [ ] Pokušan je barem jedan rubni slučaj (nula/negativan); Kod je dao značajnu pogrešku.
- [ ] Jedinica izlaza je data ručnim primjerom (bez pretpostavke "radio = ispravno").
- [ ] Izvor formule, pretpostavke i datum navedeni u kodu.
- [ ] Račun se može pratiti/pratiti; konačno odobrenje prepušteno je inženjeru.