Jedinica 10 / 11

Kemijsko inženjerstvo s Pythonom: analiza podataka i automatizacija modeliranja

Dobici:

  • Sposobnost ispisa Python koda te razumijevanja i prihvaćanja koda red po red za čišćenje podataka, automatizaciju računa i modeliranje s umjetnom inteligencijom
  • Sposobnost razumijevanja da je neprovjereni kod hipoteza, verifikacije svakog koda s poznatim rezultatom i testiranja jediničnih i rubnih slučajeva
  • Sposobnost razumijevanja da šifre računa kritične za sigurnost zahtijevaju i testiranje i provjeru ovlaštenog inženjera.

Tihi motor modernog kemijskog inženjerstva sada je Python (široko korišten programski jezik koji se lako uči). Čišćenje podataka senzora, automatiziranje ravnoteže mase, prilagođavanje kinetičkog modela podacima, usporedba stotina rezultata simulacije, izrada grafikona—sve to zahtijeva sate ručno, ali sekunde s nekoliko redaka Pythona. U ovoj ćete jedinici naučiti kako koristiti AI kao pomoć u pisanju, objašnjavanju i otklanjanju pogrešaka u Python kodu; Ali naučit ćemo zašto se svaki proizvedeni kod ne smije koristiti bez testiranja i provjere.

Kemijski inženjer općenito nije profesionalni programer softvera; Ovo je mjesto gdje AI dodaje veliku snagu. Inženjer kaže "Želim skriptu koja ovo radi" i piše AI nacrt. Ali ovo načelo ostaje konstantno: kod koji AI piše nije ispravan jer izgleda ispravno; To je hipoteza dok se ne testira s poznatim rezultatom. Tiha pogreška - pogrešna jedinica, pogrešan indeks, pomaknuta formula - može proizvesti opasne rezultate u inženjerskom izračunu.

Python s umjetnom inteligencijom u kemijskom inženjerstvu: korak po korak

1. Jasno definirajte posao. Što je ulaz (CSV, polje, jednadžba), što bi trebao biti izlaz, u kojim jedinicama? Dvosmislen upit znači loš kod.

2. Zatražite nacrt koda. AI proizvodi skicu s odgovarajućim bibliotekama (pandas za podatke, numpy za numeričku obradu, matplotlib za grafikone, scipy za optimizaciju/rješenje).

3. Razumjeti knjižnicu i pretpostavke. Neka AI objasni svaki redak i pretpostavku (jedinica, format podataka, prihvaćanje). Nemojte pokretati kod koji ne razumijete.

4. Test s poznatim rezultatom. Pokrenite kod na jednostavnom primjeru za koji već znate odgovor. Kod stanja mora dati točan rezultat u primjeru koji se može dešifrirati rukom.

5. Kontrola statusa jedinice i ruba. Što kod radi u rubnim slučajevima kao što su nula, negativne, vrlo velike vrijednosti, podaci koji nedostaju? U kemijskom inženjerstvu kvar jedinice je klasična katastrofa.

6. Testirajte rezultat s fizikom. Kod je proizveo broj — je li masa očuvana, je li vrijednost realna? Samo zato što kôd radi ne dokazuje da je rezultat točan.

Savjet: kada tražite kod od umjetne inteligencije, recite "napišite jedinicu svake varijable u red komentara i eksplicitno odredite ulazne jedinice." Značajan dio pogrešaka u kemijskom inženjerstvu proizlazi iz zabune jedinica (bar/Pa, kg/g, °C/K); Ugrađivanje jedinica u kod čini te pogreške vidljivima.

Neprovjereni kod je hipoteza

AI proizvodi glatki kod koji izgleda ispravno; Ali "radi" i "ispravi" dvije su različite stvari. Kôd može raditi bez pogrešaka i proizvoditi netočan broj: pogrešku predznaka u formuli, pomak (odmah za jedan) u nizu, netočnu pretvorbu jedinice. Dakle, zlatno pravilo: svaki se kod testira u testnom slučaju gdje je točan odgovor poznat neovisno. Jednostavan analitički primjer, ručni izračun ili referentni podaci dokazuju pouzdanost koda. Nijedna inženjerska odluka ne bi se trebala temeljiti na kodu bez prolaska testiranja.

Oprez: Kod koji izvodi izračun sigurnosti, dimenzioniranja ili sigurnosti ne može se smatrati pouzdanim samo zato što "radi". Sigurnosno kritične kodove računa treba testirati s poznatim rezultatom, a rezultate treba neovisno provjeriti ovlašteni inženjer.

tri mini kućišta

Slučaj 1 — Automatizacija čišćenja podataka. Inženjer je svaki mjesec ručno čistio 3 mjeseca podataka (otprilike 1,1 milijun redaka) s 8 senzora. Pandas skripta napisana AI svela je to na minute. Inženjer je prvo testirao kod na maloj, poznatoj oglednoj datoteci; primijetio da je jedan stupac neispravno raščlanjen, popravio to, a zatim primijenio na cijele podatke.

Slučaj 2 — Tiha pogreška glasnoće. YZ je napisao kod za izračun pada tlaka, ali je zbunio unos pretpostavivši bar i formulu Pa. Kod je radio bez pogrešaka, ali je rezultat bio pogrešan za faktor 100 000. Inženjer je izračunom ručne kontrole uhvatio razliku u narudžbi. Nakon dodavanja komentara jedinice pogreška je razjašnjena i ispravljena.

Slučaj 3 — Testiranje spremljeno. Jedan je tim od umjetne inteligencije dobio kod za rješavanje bilance mase. Prvo su ga testirali u dvokomponentnom uzorku koji se otapa rukom; kod je neispravno zatvarao povratnu petlju i nije se zbrajao. Pogreška je uhvaćena prije nego što je primijenjena na pravi, složeni model. Bez testiranja, pogreška bi se proširila na sve rezultate.

Četiri predloška za kopiranje

1) Nacrt koda za analizu podataka:

Vaša uloga: Python pomoćnik za kemijsko inženjerstvo. Zadatak: [opis]. Unos: [CSV/niz, stupci, JEDINICE]. Izlaz: [što, u kojoj jedinici].use pandas/numpy. U kodu: (1) interpretirajte jedinicu svake varijable, (2) navedite ulazne pretpostavke na početku, (3) obradite rubne slučajeve (nedostajući podaci, nula). Testirat ću kod s poznatim primjerom; nemojte koristiti magične brojeve, eksplicitno definirajte konstante.

2) Objašnjenje koda i provjera:

Objasnite sljedeći Python kod redak po redak: što radi, koje pretpostavke donosi, koje jedinice očekuje. Označite moguće točke pogreške (zbrka jedinica, pomak indeksa, dijeljenje s nulom, preljev). Predložite koji jednostavan, poznati test slučaj mogu koristiti za provjeru ovog koda. Šifra: [zalijepi]

3) Postavljanje testa s poznatim rezultatom:

Napišite skup testova za provjeru ove funkcije: najmanje 3 jednostavna slučaja za koje je odgovor poznat analitički ili ručno. Za svaki test opišite očekivani rezultat i zašto očekujemo taj rezultat. Neću primijeniti kod na stvarne podatke bez testiranja. Funkcija: [lijepi]

4) Otklanjanje pogrešaka:

Ovaj kod daje sljedeću pogrešku/krivi rezultat: [poruka o pogrešci ili očekivani vstvarni izlaz]. Navedite moguće uzroke prema vjerojatnosti i recite mi kako testirati svaki od njih. Nemojte izravno reći "popravio sam"; Prvo zajedno provjerimo glavni uzrok. Također predložite provjeru jedinice i narudžbe. Šifra i podaci: [zalijepi]

Slab upit / Jak upit

Slab upit:

Napiši mi kod za izračun pada tlaka.

Format unosa, jedinica, jednadžba, uvjet nisu jasni. AI skriva svoje pretpostavke, može zbuniti jedinice.

Snažan upit:

Vaša uloga: kemijsko inženjerstvo Python pomagač. Zadatak: trenjem izazvan pad tlaka u kružnoj cijevi. Unos: protok [m3/s], promjer [m], duljina [m], gustoća [kg/m3], viskoznost [Pa·s]. Izlaz: pad tlaka [Pa]. Koristite Darcy-Weisbach; Provjerite režim protoka (Re) za faktor trenja. Komentirajte svaku jedinicu, navedite pretpostavke (puno opterećenje, stabilan protok). Testirat ću kod protiv ručnog izračuna na laminarnom primjeru.

Razlika je jasna: ulazne jedinice, metoda, izlazna jedinica i namjera testiranja čine kod pouzdanim.

Raspodjela uloga u korištenju Pythona

poslovanje

Uloga umjetne inteligencije

čovjekova odluka

pisanje koda

Napravite nacrt

Opis poslova, jedinice

Izbor knjižnice

sugestija

Potvrda sukladnosti

Opis

redak po redak

Prihvatite s razumijevanjem

test

Preporuka za set testova

Validacija s poznatim rezultatom

Debug

hipoteza, pravac

Potvrda temeljnog uzroka

Zaključak

Generiranje brojeva

Testiranje s fizikom

Uobičajene greške

  • Korištenje koda bez testiranja. Radni kod nije točan kod; Ne može mu se vjerovati osim ako se ne testira s poznatim rezultatom.
  • Ostavljanje jedinica neodređenim. Zabuna jedinica najčešća je i najopasnija pogreška u kemijskom inženjerstvu.
  • Djelovanje bez razumijevanja. Ne vjerujte rezultatima bez razumijevanja koda koji je AI napisao red po red.
  • Zaobilaženje rubnih stanja. Nula, negativni podaci koji nedostaju mogu tiho dovesti kod do pogrešnog zaključka.
  • Temeljenje sigurnosnog izračuna samo na kodu. Sigurnosno kritični kodovi zahtijevaju testiranje + neovisnu mjerodavnu provjeru.

Ukratko

AI u kemijskom inženjerstvu s Pythonom; To je moćan pomoćnik koji izrađuje, objašnjava i pruža smjernice za uklanjanje pogrešaka za čišćenje podataka, automatizaciju računovodstva, modeliranje i grafiku. Ali kod umjetne inteligencije pouzdan je ne zato što izgleda dobro, već zato što je testiran s poznatim rezultatom. Bitno je eksplicitno odrediti jedinice, razumjeti kod, testirati rubne slučajeve i potvrditi rezultat pomoću fizike; Izračuni kritični za sigurnost također zahtijevaju provjeru ovlaštenog inženjera.

Zadatak aplikacije

Odaberite izračun (npr. pad tlaka u cijevi ili dvokomponentnu ravnotežu mase). Dobijte kod od AI-ja s predloškom "analiza podataka/nacrt koda računa", jasno navedite jedinice. Zatim provjerite kod u primjeru koji se može ručno dekodirati s uzorkom "postavi test s poznatim rezultatom"; Ako se rezultat ne podudara, pronađite glavni uzrok pomoću uzorka "debug".

popis za provjeru

  • [ ] Jasno sam naveo ulazno/izlazne jedinice i metodu.
  • [ ] Razumio sam kod redak po redak i vidio njegove pretpostavke.
  • [ ] Testirao sam kod na poznatom/ručno dešifriranom primjeru.
  • [ ] Testirao sam rubne slučajeve (nula, negativan, nedostajući podaci).
  • [ ] Rezultat sam potvrdio fizikom (očuvanje mase, red); Službenik mi je također potvrdio sigurnosni račun.