Egység 10 / 11

Mérnöki számítási automatizálás Python segítségével

Nyereség:

  • Képes automatizálni a mérnöki számításokat, az egységkezelést és az adatfeldolgozást AI-alapú Python kóddal
  • Képes az AI-kód érvényesítésére egységellenőrzéssel, ismert eredmények tesztelésével és éles esetekkel
  • Megszokássá válhat ismételhető, nyomon követhető és verzió-vezérelt számladokumentumok készítésének

A gépészetben újra és újra ugyanazt a számítást végzik el: egy alkatrészcsalád feszültségei, szivattyúteljesítmény egy sor működési ponthoz, tulajdonságtáblázatok különböző hőmérsékleteken. Ezek manuális végrehajtása lassú és hibás. A Python (egy könnyen megtanulható programozási nyelv gazdag mérnöki könyvtárakkal) automatizálja ezeket az iterációkat; Megismételhetővé, nyomon követhetővé és verzióellenőrzhetővé teszi a fiókot. Mesterséges intelligencia (AI) A Python hihetetlenül gyorsan generál kódot: egy képletet függvényké alakít, egységkezelést ad hozzá, adatokat olvas, grafikonokat rajzol. De van itt egy veszélyes tévhit: attól, hogy a kód hibátlanul működik, nem jelenti azt, hogy helyesen számol. Az AI-kód csendben hibás eredményeket ad vissza helytelen mértékegységkonverzió, helytelen képlet vagy szélsőséges esetekben, és a program továbbra is hiba nélkül fut. Ez az oka annak, hogy minden mérnöki kód AI-val készült; Az ismert eredményekkel rendelkező tesztbemenetek megbízhatatlanok az egység (méret) ellenőrzése és az éles esetpróbák nélkül. Ebben az egységben megtudhatja, hogyan állíthatja be biztonságosan a Python-fiók automatizálását mesterséges intelligencia segítségével.

Miért Code Account? Nyomon követhetőség és reprodukálhatóság

A kézi számítás egyszeri; Amikor egy bemenet megváltozik, az a semmiből történik, és a közbenső lépések elvesznek. A kódban végzett számítás olyan, mint egy dokumentum: a bemenetek, a képletek és a kimenetek jól láthatóak; módosít egy bevitelt, és másodperceken belül új eredményt kap; Verzióvezérléssel (pl. git) nyomon követhető, hogy "milyen dátummal melyik értékkel mit számoltam". Ez felbecsülhetetlen az ellenőrzés és az elszámoltathatóság szempontjából. De ez az erő a kód helyességétől függ; A rossz kód rossz eredményt produkál, szintén reprodukálhatóan és gyorsan.

Tipp: Minden számítási függvényhez írjon egy tesztet, mellette ismert igaz eredménnyel (Pythonban érvényesítés). Például a stresszfüggvényének 28,1 MPa értéket kell adnia egy ismert mintában. Ez a teszt azonnal figyelmezteti Önt, ha valamit eltör, amikor módosítja a kódot a jövőben. A nem tesztelt mérnöki kód egy ellenőrizetlen fiók.

Kötetkezelés: A leggyakoribb hibaforrás

A mérnöki kódban a legtöbb hiba mértékegységekből származik: N kN, m mm, Pa MPa, amelyek 1000-es vagy 1 000 000-es faktorral összetéveszthetők. Két védekezés létezik. Az első a fegyelem: kezdettől fogva egyetlen mértékegységrendszert kell kiválasztani (pl. N, mm, MPa), és az összes bemenetet átalakítani, és a változónevekhez egységeket adni (hossz_mm, erő_N). A második az eszköz: egy olyan könyvtár, mint a pint, a kódon belüli egységeket hordozza, és hibaként fogja fel az inkonzisztens műveletet.

Megközelítés

Hogyan működik

Előny

Elnevezési fegyelem

mint erő_N, hossz_mm

Egyszerű, nincs függőség

egyegységes rendszer

Mindegyik N-mm-MPa-ra konvertálva

Egyszerűség, gyorsaság

pint könyvtár

Változónként mozgatja az egységet

Automatikusan észleli az inkonzisztenciát

Ismert eredmény teszt

hivatkozás állítással

Képlet/mértékegység hibát észlel

Figyelem: Előfordulhat, hogy a mesterséges intelligencia által generált kódban hiányzik vagy helytelen az egységkonverzió, és a kód továbbra is "működik". Például, ha az átmérő mm, és a terület várhatóan m², akkor az eredmény 1 000 000-szeres eltérést mutat, de a program nem ad hibát. A kód futtatása előtt írja le a bemenetek és a kimenetek egységeit; majd adja meg az eredményt egy ismert példával.

Lépésről lépésre: AI ellenőrizhető számlakód

  1. Tisztázza a problémát és az egységrendszert. Bemenetek, kimenetek, egységek.
  2. A függvény generálása. Egyedül felelős, értelmező, egységes.
  3. Adja hozzá a teszt ismert eredményeit. Állítsa meg referenciapéldával.
  4. Próbáld ki az éles tokot. Nulla, negatív, nagyon nagy/kis bemenet.
  5. Végezzen egységellenőrzést. Megfelel a kimeneti egység a vártnak?
  6. Dokumentum és verzió. Feltételezések, forrás, dátum; nyomon követhetőség git-tel.

Függvényeket és teszteket generáló prompt

Szerep: Tapasztalt Python fejlesztő mérnöki számításokat ír. Feladat: Írjon függvényt, amely egy téglalap keresztmetszetű konzolos gerenda maximális hajlítófeszültségét számítja ki! Bemenet: F (N), L (mm), b (mm), h (mm). Kimenet: szigma (MPa). Megállapodás: Mértékegységrendszer N-mm-MPa; kommentálja az egyes bejegyzések mértékegységét.Szabály: használjon I = b*h^3/12 és sigma = M*c/I; kommentálja a lépéseket.Szabály: Adjon hozzá tesztet ISMERT EREDMÉNYEL: sigma ~28,1 MPa F=500,L=300,b=20,h=40 esetén; Ellenőrizni állítással (kis tűrés).

Edge állapotjelző

Adjon hozzá éles kis- és nagybetű-ellenőrzéseket a fenti függvényhez:- Ha b, h vagy L nulla vagy negatív, adjon jelentős hibát (ValueError emelése).- Megjegyzés, ha túlcsordulási/pontossági probléma van nagyon nagy/kis bemenetekkel. Adjon hozzá még 3 különböző tesztbemenetet, és írja be a várt eredményt; magyarázza el az eredményeket úgy, hogy azokat manuálisan is ellenőrizhessem.

Egységbiztonsági (pint) felszólítás

Egységbiztos ugyanaz a fiók, mint a „pint” könyvtár. Legyen a bemenetek mértékegységben definiálva (pl. 500 * ureg.newton). Konvertálja a kimenetet MPa-ra, és nyomtassa ki. Adjon hozzá egy kis példát, amely bemutatja, hogyan hibásodik meg a pint, ha rossz mértékegységet ad meg.

Kódellenőrző felszólítás

Kritizálja az alábbi mérnöki számítási kódomat a kód áttekintése szempontjából, nem ért egyet velem. Pontosabban: helyes-e az egységátváltás, helyes-e a képlet, figyelembe vették-e az éles eseteket (nulla, negatív), valóban megerősítőek-e a tesztek? Minden egyes leletnél írja meg a javítás módját.[code]

Gyenge felszólítás / Erős felszólítás

Gyenge felszólítás:

Írjon Python kódot a stresszszámításhoz.

Nem választható mértékegységek, képletek, bemeneti definíciók és tesztek; Az AI olyan kódot generál, amely működik, de nincs ellenőrizve, és amelynek mértékegysége ismeretlen.

Erőteljes felszólítás:

Írja be a hajlítófeszültség függvényt a konzolos gerendába! Bemenet F(N), L(mm), b(mm),h(mm); kimeneti szigma (MPa). N-mm-MPa rendszer, a megjegyzésben adja meg az egyes mértékegységeket. Adjunk hozzá egy tesztet ismert eredményekkel (F=500, L=300, b=20, h=40 → ~28,1 MPa, állíts). Adjon hibát a nulla/negatív bemeneten. Éles esetek értelmezése.

A második prompt megköveteli az egységrendszert, a képletet, a bemeneteket, a tesztet és az éles eseteket; Ellenőrizhetővé teszi a kódot.

Három mini tok (szám szerint)

1. eset – Csendes hangerő-hiba. Az AI által készített területszámítás az átmérőt mm-ben veszi, és mm²-t ad pi*d**2/4-gyel, de a következő sor egy képletbe teszi, amely m²-t vár; A kód hiba nélkül működik, és 1 000 000-szer kisebb feszültséget ad. Amikor a mérnök ismert eredménnyel futtatja a tesztet (assert abs(sigma-28.1)<0.5), a teszt felrobban, és a hiba észlelésre kerül. Ha nem lett volna teszt, akkor a rossz eredmény észrevétlenül bekerült volna a jelentésbe. Tanulság: működő kód ≠ helyes kód.

2. eset – Edge állapot összeomlás. Az alkatrészcsaládra hurkolt kódban a h=0 vastagságot egy sorban kell megadni; Ha I = b*h**3/12 = 0, a szigma = M*c/I nullával való osztást ad. Az AI által hozzáadott if h<=0: raise ValueError vezérlőnek köszönhetően a kód egy értelmes üzenettel megáll, és nem állít elő csendben inf-ot. Tanulság: előzetesen kezelje az éles eseteket.

3. eset – Ismételhetőségi erősítés. Egy mérnöknek fél napba telt, amíg manuálisan kiszámította a szivattyú teljesítményét 40 különböző működési pontra. Az AI-ban írt szkript beolvassa a CSV-t, kiszámolja az egyes sorok teljesítményét, és az assert segítségével ellenőrzi az ismert pontot, a munkát ~2 percre csökkenti, és az eredményeket egy nyomon követhető fájlba írja. Ha egy bejegyzés megváltozik, a teljes táblázat másodpercenként frissül. Tanulság: Az ellenőrzött automatizálás gyors és megbízható.

Gyakori hibák

  • "Működött = helyes" tévedés: Az a gondolat, hogy a kód, amely hiba nélkül működik, helyes.
  • Nem ír teszteket: Referencia teszt nélküli kódra hagyatkozik ismert eredménnyel.
  • Egységek kétértelműsége: A bemeneti/kimeneti egységek értelmezetlenül hagyása, az átalakítás kihagyása.
  • Az éles esetek figyelmen kívül hagyása: Néma hiba vagy összeomlás nulla/negatív bemenet esetén.
  • A forrás/feltevés nem dokumentálása: Nem írja le a felhasznált képlet forrását és feltételezését.
  • Nem verziószámítás: A fiók egyszeri fájlként való elhagyása anélkül, hogy nyomon követhetővé tenné (git).

Összefoglalva

  • A Python megismételhetővé, nyomon követhetővé és verzió-vezérelhetővé teszi a mérnöki számításokat.
  • Az AI nagyon gyorsan generál kódot; De az a tény, hogy a kód hiba nélkül működik, nem jelenti azt, hogy helyesen számol.
  • Minden kódot érvényesíteni kell ismert eredmény teszteléssel, egységellenőrzéssel és éles esetekkel.
  • Az egységhibák a leggyakoribb és legalattomosabb hibaforrások; Védelem egyegységrendszerrel, nómenklatúrával vagy pinttel.
  • A hitelesített automatizálás időt takarít meg és magabiztosságot ad; Az ellenőrizetlen kód veszélyes.

Pályázati feladat

Válasszon egy ismétlődő műszaki számítást (például feszültség, szivattyú teljesítmény, hőterhelés). Írjon egy Python függvényt az AI-hoz, amely ezt a számítást végzi; Írja megjegyzésbe az egyes bemenetek és kimenetek mértékegységét, és adjon hozzá egy állítástesztet ismert eredménnyel. Futtassa le a tesztet, és nézze meg, hogy sikerült-e. Ezután végezzen még két ellenőrzést: próbáljon meg éles kis- és nagybetűt (nulla vagy negatív bemenet), hogy ellenőrizze, hogy a kód jelentős hibát ad-e vissza, és manuálisan adja meg a kimenet mértékegységét egy példában. Ha lehetséges, készítsünk egy egységbiztos változatot pintben is. Végül rövid címként adja hozzá a kódhoz a számítás feltételezéseit, a képlet forrását és a dátumot, és írja le, hogy miért van még szükség mérnöki jóváhagyásra.

ellenőrző lista

  • [ ] A bemeneti és kimeneti egységek egyértelműen dokumentálva vannak a kódban; egyegységes rendszert választottak.
  • [ ] Egy ismert eredményű tesztet (állítást) adtak hozzá és sikeresen teljesítették.
  • [ ] Legalább egy éleset (nulla/negatív) megkísérelt; A kód jelentős hibát adott.
  • [ ] A kimenet mértékegységét egy kézi példa adta meg (nem feltételezve, hogy "működött = helyes").
  • [ ] A képlet forrása, a feltételezések és a dátum szerepel a kódban.
  • [ ] A számla nyomon követhető/követhető; a végső jóváhagyást a mérnökre bízták.