Eining 10 / 11

Verkfræðiútreikningar sjálfvirkni með Python

Hagnaður:

  • Geta til að gera sjálfvirkan verkfræðilegan útreikning, einingastjórnun og gagnavinnslu með gervigreindarknúnum Python kóða
  • Geta til að sannreyna gervigreindarkóða með einingaeftirliti, þekktum niðurstöðuprófum og brúntilfellum
  • Geta til að venjast því að framleiða endurtekanleg, rekjanleg og útgáfustýrð reikningsskjöl

Í vélaverkfræði er sami útreikningurinn gerður aftur og aftur: álag á hlutafjölskyldu, dæluafl fyrir ýmsa rekstrarpunkta, eiginleikatöflur við mismunandi hitastig. Að gera þetta handvirkt er bæði hægt og villuhættulegt. Python (auðvelt að læra forritunarmál með ríkulegum bókasöfnum fyrir verkfræði) gerir þessar endurtekningar sjálfvirkar; Það gerir reikninginn endurtekinn, rekjanlegan og útgáfustýrðan. Gervigreind (AI) Python er ótrúlega fljótur að búa til kóða: umbreyta formúlu í fall, bæta við einingastjórnun, lesa gögn, teikna línurit. En það er hættulegur misskilningur hér: þó að kóðinn virki án villna þýðir það ekki að hann reikni rétt. Gervigreindarkóði gæti skilað röngum niðurstöðum hljóðlaust vegna rangrar einingabreytingar, rangrar formúlu eða í jaðartilfellum og forritið mun halda áfram að keyra án nokkurra villna. Þess vegna er sérhver verkfræðikóði framleiddur með gervigreind; Prófunarinntak með þekktum niðurstöðum eru óáreiðanlegar án sannprófunar með eininga- (stærðar)athugun og brúntilviksprófunum. Í þessari einingu muntu læra hvernig á að setja upp Python reikning sjálfvirkni á öruggan hátt með gervigreind.

Af hverju kóðareikningur? Rekjanleiki og endurgerðanleiki

Handvirkur útreikningur er einstakur; Þegar inntak breytist er það gert frá grunni og millistig tapast. Útreikningur gerður í kóða er eins og skjal: inntak, formúlur og úttak eru skýrt skrifaðar; þú breytir inntak og færð nýja niðurstöðu innan nokkurra sekúndna; Með útgáfustýringu (eins og git) er hægt að rekja „hvað ég reiknaði með hvaða gildi á hvaða dagsetningu“. Þetta er ómetanlegt hvað varðar eftirlit og ábyrgð. En þetta vald fer eftir réttmæti kóðans; Rangur kóði framleiðir ranga niðurstöðu, einnig hægt að endurskapa og fljótt.

Ábending: Skrifaðu próf fyrir hverja reikniaðgerð með þekktri sannri niðurstöðu við hliðina (staðfestu í Python). Til dæmis ætti streitufall þitt að gefa 28,1 MPa í þekktu sýni. Þetta próf varar þig strax við ef þú brýtur eitthvað þegar þú breytir kóðanum í framtíðinni. Verkfræðikóði sem ekki er prófaður er óstaðfestur reikningur.

Rúmmálsstjórnun: Algengasta uppspretta villu

Í verkfræðikóðanum koma flestar villurnar frá einingum: N með kN, m með mm, Pa með MPa, sem hægt er að rugla saman með stuðlinum 1000 eða 1.000.000. Það eru tvær varnir. Í fyrsta lagi er agi: að velja eitt einingakerfi frá upphafi (t.d. N, mm, MPa) og umbreyta öllum inntakum í það og bæta einingum við breytuheitin (lengd_mm, kraftur_N). Annað er tólið: bókasafn eins og pint ber einingarnar innan kóðans og grípur ósamræmi aðgerðina sem villu.

Nálgun

Hvernig virkar það

Kostur

Nafnafræði

eins og kraftur_N, lengd_mm

Einfalt, engin ósjálfstæði

eineiningarkerfi

Öllu breytt í N-mm-MPa

Einfaldleiki, hraði

pint bókasafn

Færir einingu eftir breytu

Greiðir sjálfkrafa ósamræmi

Þekkt niðurstöðupróf

tilvísun með fullyrða

Tekur upp formúlu/einingavillu

Varúð: Einingabreyting gæti vantað eða rangt í AI-myndaða kóðanum og kóðinn mun enn „virka“. Til dæmis, ef þvermálið er mm og búist er við að flatarmálið sé m², mun niðurstaðan víkja um 1.000.000 sinnum, en forritið gefur enga villu. Áður en þú keyrir kóðann skaltu gera athugasemd við einingar inntaks og úttaks; gefðu síðan niðurstöðuna með þekktu dæmi.

Skref fyrir skref: AI sannprófanleg reikningskóði

  1. Skýrðu vandamálið og einingakerfið. Inntak, úttak, einingar.
  2. Búðu til aðgerðina. Einn ábyrgur, túlkandi, sameinuð.
  3. Bættu við þekktum niðurstöðuprófi. Fullyrði með tilvísunardæmi.
  4. Prófaðu brúnhulstur. Núll, neikvætt, mjög stórt/lítið inntak.
  5. Gerðu einingaskoðun. Passar framleiðslueiningin við það sem búist er við?
  6. Skjal og útgáfa. Forsendur, heimild, dagsetning; rekjanleika með git.

Hvetja sem býr til aðgerðir og próf

Hlutverk: Reyndur Python verktaki sem skrifar verkfræðilega útreikninga. Verkefni: Skrifaðu fall sem reiknar út hámarks beygjuspennu í rétthyrndum þversniði burðarbita. Inntak: F (N), L (mm), b (mm), h (mm). Framleiðsla: sigma (MPa). Samþykkt: Einingakerfi N-mm-MPa; athugasemd við einingu hverrar færslu. Regla: notaðu I = b*h^3/12 og sigma = M*c/I; athugasemd við skrefin.Regla: Bættu við prófi með ÞEKKTA NIÐURSTAÐA: sigma ~28,1 MPa fyrir F=500,L=300,b=20,h=40; Athugaðu með fullyrðingu (lítið umburðarlyndi).

Edge stöðu hvetja

Bættu brúnfallathugunum við ofangreinda aðgerð:- Ef b, h eða L eru núll eða neikvæð, gefðu marktæka villu (hækka ValueError).- Athugaðu ef það er yfirflæði/nákvæmni vandamál með mjög stór/lítil inntak. Bættu líka við 3 mismunandi prófunarinntakum í viðbót og skrifaðu væntanlega niðurstöðu; útskýra niðurstöðurnar á þann hátt að ég geti sannreynt þær handvirkt.

Eining öryggis (pint) hvetja

Unit-safe sama reikninginn með 'pint' bókasafninu. Látum inntak vera skilgreinda í einingum (t.d. 500 * ureg.newton). Umbreyttu úttakinu í MPa og prentaðu það út. Bættu við litlu dæmi sem sýnir hvernig pint mistekst þegar gefið er inntak með rangri einingu.

Kóða athuga hvetja

Gagnrýndu verkfræðiútreikningskóðann minn hér að neðan frá sjónarhóli kóðaskoðunar, ekki sammála mér. Sérstaklega: er einingaumreikningurinn rétt, er formúlan rétt, hefur brúntilvik (núll, neikvætt) verið tekin til greina, eru prófin raunverulega staðfest? Skrifaðu hvernig á að laga hana fyrir hverja uppgötvun.[kóði]

Veik kvaðning / sterk kvaðning

Veik kvaðning:

Skrifaðu Python kóða fyrir streituútreikning.

Ekkert val um einingar, formúlur, inntaksskilgreiningar og próf; AI býr til kóða sem virkar en er óstaðfestur og eining hans er óþekkt.

Öflug tilvitnun:

Skrifaðu beygjuspennufallið í burðargeislann. Inntak F(N), L(mm), b(mm),h(mm); framleiðsla sigma(MPa). N-mm-MPa kerfi, tilgreinið hverja einingu í athugasemd. Bættu við prófi með þekktum niðurstöðum (F=500, L=300, b=20, h=40 → ~28,1 MPa, fullyrði). Gefðu villu á núll/neikvætt inntak. Túlka kantmál.

Önnur hvetja krefst einingakerfisins, formúlunnar, inntaks, prófunar og brúntilvika; Það gerir kóðann sannreynanlegan.

Þrjú smáhylki (eftir tölum)

Tilfelli 1 - Þögul hljóðstyrksvilla. Flatarmálsútreikningurinn framleiddur af AI tekur þvermálið í mm og gefur mm² með pi*d**2/4, en næsta lína setur það í formúlu sem gerir ráð fyrir m²; Kóðinn virkar án villna og gefur streitu 1.000.000 sinnum lægri. Þegar verkfræðingur keyrir prófið með þekktri niðurstöðu (fullyrðir abs(sigma-28.1)<0.5), springur prófið og villan er gripin. Ef það var ekkert próf hefði röng niðurstaða farið óséður inn í skýrsluna. Lexía: vinnukóði ≠ réttur kóði.

Mál 2 - Edge state hrun. Í kóðanum sem fer í lykkju fyrir hlutafjölskyldu er þykktin h=0 færð inn í eina línu; Þegar I = b*h**3/12 = 0, gefur sigma = M*c/I deilingu með núllvillu. Þökk sé ef h<=0: hækka ValueError-stýringunni sem gervigreind hefur bætt við, hættir kóðinn með þýðingarmiklum skilaboðum og framleiðir ekki hljóðlaust inf. Lærdómur: meðhöndla kantmál fyrirfram.

Tilfelli 3 - Endurtekningaraukning. Það tók verkfræðing hálfan dag að reikna handvirkt dæluafl fyrir 40 mismunandi vinnslupunkta. Skrifað í gervigreind, les handritið CSV, reiknar kraftinn fyrir hverja línu og sannreynir þekktan punkt með fullyrðingu, minnkar vinnuna í ~2 mínútur og skrifar niðurstöðurnar í rekjanlega skrá. Þegar færsla breytist er öll taflan uppfærð á hverri sekúndu. Lærdómur: Staðfest sjálfvirkni er bæði hröð og áreiðanleg.

Algeng mistök

  • "Worked = rétt" rökvilla: Að halda að kóði sem virkar án villna sé réttur.
  • Að skrifa ekki próf: Að treysta á kóða án viðmiðunarprófs með þekktri niðurstöðu.
  • Eininga tvíræðni: Skiljar inntaks-/úttakseiningum eftir ótúlkaðar, sleppir umreikningi.
  • Hunsa brúntilvik: Hljóðlaus villa eða hrun við núll/neikvætt inntak.
  • Ekki skrásetja heimildina/forsendu: Ekki skrifa niður heimildina og forsendu formúlunnar sem notuð er.
  • Ekki útgáfu: Skilur eftir reikninginn sem einskiptisskrá án þess að gera hana rekjanlega (git).

Í stuttu máli

  • Python gerir verkfræðiútreikninga endurtekanlega, rekjanlega og útgáfustýrða.
  • AI er mjög fljótur að búa til kóða; En það að kóðinn virki án villna þýðir ekki að hann reikni rétt.
  • Sérhver kóða ætti að vera staðfestur með þekktum niðurstöðuprófum, einingaeftirliti og brúntilvikum.
  • Einingavillur eru algengasta og skaðlegasta uppspretta villunnar; Verjast með einni einingu kerfi, nafnakerfi eða pint.
  • Staðfest sjálfvirkni sparar tíma og veitir sjálfstraust; Óstaðfestur kóði er hættulegur.

Umsóknarverkefni

Veldu endurtekinn verkfræðilegan útreikning (svo sem streitu, dæluafl, hitaálag). Skrifaðu Python fall í gervigreindina sem gerir þennan útreikning; Athugaðu út einingu hvers inntaks og úttaks og bættu við fullyrðingarprófi með þekktri niðurstöðu. Keyrðu prófið og athugaðu hvort það standist. Gerðu síðan tvær sannprófanir í viðbót: reyndu kantfall (núll eða neikvætt inntak) til að athuga hvort kóðinn skili marktækri villu og gefðu upp einingu úttaksins handvirkt í dæmi. Ef mögulegt er, láttu einnig einingaörugga útgáfu framleidda í pint. Að lokum skaltu bæta forsendum útreikningsins, uppruna formúlu og dagsetningu við kóðann sem stuttan titil og skrifa hvers vegna þessi kóði þarfnast samþykkis verkfræðings.

gátlisti

  • [ ] Inntaks- og úttakseiningar eru skýrt skráðar í kóðanum; Einingakerfi var valið.
  • [ ] Prófi (fullyrðingu) með þekktri niðurstöðu var bætt við og staðist.
  • [ ] Að minnsta kosti eitt kantfall (núll/neikvætt) var reynt; Kóðinn gaf verulega villu.
  • [ ] Framleiðslueiningin var gefin upp með handvirku dæmi (ekki gert ráð fyrir "virkað = rétt").
  • [ ] Uppruni formúlu, forsendur og dagsetning skráð í kóðanum.
  • [ ] Reikningur haldið rekjanlegum/raktum; endanlegt samþykki var í höndum verkfræðings.