Jednostka 10 / 11

Automatyzacja obliczeń inżynieryjnych za pomocą języka Python

Zyski:

  • Możliwość automatyzacji obliczeń inżynierskich, zarządzania jednostkami i przetwarzania danych za pomocą kodu Pythona opartego na sztucznej inteligencji
  • Możliwość walidacji kodu AI za pomocą sprawdzania jednostek, testowania znanych wyników i przypadków brzegowych
  • Możliwość wyrobienia nawyku tworzenia powtarzalnych, identyfikowalnych i kontrolowanych wersji dokumentów księgowych

W inżynierii mechanicznej wykonuje się w kółko te same obliczenia: naprężenia rodziny części, moc pompy dla zakresu punktów pracy, tabele właściwości w różnych temperaturach. Ręczne wykonywanie tych czynności jest powolne i podatne na błędy. Python (łatwy do nauczenia się język programowania z bogatymi bibliotekami do inżynierii) automatyzuje te iteracje; Dzięki temu konto jest powtarzalne, identyfikowalne i kontrolowane pod względem wersji. Sztuczna inteligencja (AI) Python niesamowicie szybko generuje kod: przekształca formułę w funkcję, dodaje zarządzanie jednostkami, odczytuje dane, rysuje wykresy. Istnieje jednak niebezpieczne błędne przekonanie: to, że kod działa bez błędów, nie oznacza, że ​​wykonuje obliczenia poprawnie. Kod AI może po cichu zwracać nieprawidłowe wyniki z powodu nieprawidłowej konwersji jednostek, nieprawidłowej formuły lub w przypadkach Edge, a program będzie nadal działał bez żadnych błędów. Dlatego każdy kod inżynieryjny stworzony przy użyciu sztucznej inteligencji; Dane wejściowe testów ze znanymi wynikami są niewiarygodne bez weryfikacji poprzez sprawdzenie jednostki (rozmiaru) i próby przypadków brzegowych. W tej części dowiesz się, jak bezpiecznie skonfigurować automatyzację kont w Pythonie za pomocą sztucznej inteligencji.

Dlaczego konto kodowe? Identyfikowalność i odtwarzalność

Ręczne obliczenia są jednorazowe; Kiedy dane wejściowe się zmieniają, są one wykonywane od zera, a kroki pośrednie są tracone. Obliczenia wykonane w kodzie przypominają dokument: dane wejściowe, formuły i wyniki są wyraźnie zapisane; zmieniasz dane wejściowe i otrzymujesz nowy wynik w ciągu kilku sekund; Dzięki kontroli wersji (takiej jak git) można śledzić „co obliczyłem, z jaką wartością i w jakim dniu”. This is invaluable in terms of control and accountability. Ale ta moc zależy od poprawności kodu; Zły kod daje zły wynik, także w sposób powtarzalny i szybki.

Wskazówka: Napisz test dla każdej funkcji obliczeniowej, umieszczając obok niej znany prawdziwy wynik (twierdzenie w Pythonie). Na przykład funkcja naprężenia powinna dać 28,1 MPa w znanej próbce. Ten test natychmiast ostrzega, jeśli coś zepsujesz podczas zmiany kodu w przyszłości. Kod inżynieryjny, który nie został przetestowany, jest kontem niezweryfikowanym.

Zarządzanie woluminami: najczęstsze źródło błędów

W kodzie inżynierskim większość błędów pochodzi z jednostek: N z kN, m z mm, Pa z MPa, które można pomylić przez współczynnik 1000 lub 1 000 000. Są dwie możliwości obrony. Pierwsza to dyscyplina: wybranie od początku pojedynczego układu jednostek (np. N, mm, MPa) i przeliczenie na niego wszystkich wejść i dodanie jednostek do nazw zmiennych (długość_mm, siła_N). Drugie to narzędzie: biblioteka taka jak pint przenosi jednostki w kodzie i wychwytuje niespójną operację jako błąd.

Podejście

Jak to działa?

Zaleta

Nazywanie dyscypliny

jak siła_N, długość_mm

Proste, bez zależności

układ jednostkowy

Wszystko przeliczone na N-mm-MPa

Prostota, szybkość

biblioteka pintowa

Przesuwa jednostkę według zmiennej

Automatycznie wychwytuje niespójności

Znany wynik testu

odwołanie ztwierdzeniem

Wychwytuje błąd formuły/jednostki

Uwaga: w kodzie wygenerowanym przez sztuczną inteligencję może brakować konwersji jednostek lub być ona niepoprawna, a kod nadal będzie „działał”. Na przykład, jeśli średnica wynosi mm, a powierzchnia ma wynosić m², wynik będzie się różnić 1 000 000 razy, ale program nie wyświetli błędu. Przed uruchomieniem kodu skomentuj jednostki wejść i wyjść; następnie podaj wynik na znanym przykładzie.

Krok po kroku: kod konta weryfikowalny przez AI

  1. Wyjaśnij problem i układ jednostek. Wejścia, wyjścia, jednostki.
  2. Wygeneruj funkcję. Pojedynczy odpowiedzialny, interpretujący, zjednoczeni.
  3. Dodaj znane wyniki testu. Potwierdź na przykładzie referencyjnym.
  4. Wypróbuj przypadki Edge. Zero, wartość ujemna, bardzo duże/małe wejście.
  5. Wykonaj kontrolę jednostki. Czy jednostka wyniku jest zgodna z oczekiwaniami?
  6. Dokument i wersja. Założenia, źródło, data; identyfikowalność za pomocą gita.

Prompt generujący funkcje i testy

Rola: Doświadczony programista Pythona piszący obliczenia inżynierskie. Zadanie: Napisz funkcję obliczającą maksymalne naprężenie zginające belki wspornikowej o przekroju prostokątnym. Wejście: F (N), L (mm), b (mm), h (mm). Wyjście: sigma (MPa).Konwencja: Układ jednostek N-mm-MPa; skomentuj jednostkę każdego wpisu. Reguła: użyj I = b*h^3/12 i sigma = M*c/I; skomentuj kroki. Zasada: Dodaj test ze ZNANYM WYNIKIEM: sigma ~28,1 MPa dla F=500,L=300,b=20,h=40; Sprawdź za pomocą potwierdzenia (mała tolerancja).

Monit o stan krawędzi

Dodaj kontrolę wielkości brzegowej do powyższej funkcji: - Jeśli b, h lub L mają wartość zero lub ujemną, zgłoś znaczący błąd (zwiększ wartość ValueError). - Skomentuj, jeśli występuje problem z przepełnieniem/precyzją przy bardzo dużych/małych danych wejściowych. Dodaj jeszcze 3 różne wejścia testowe i zapisz oczekiwany wynik; wyjaśnić wyniki w taki sposób, abym mógł je zweryfikować ręcznie.

Monit dotyczący bezpieczeństwa jednostki (kufel piwa).

Jednostkowe bezpieczne to samo konto z biblioteką „pint”. Niech dane wejściowe będą określone w jednostkach (np. 500 * ureg.newton). Przelicz wynik na MPa i wydrukuj. Dodaj mały przykład pokazujący, jak kufel kończy się niepowodzeniem, gdy podano dane wejściowe z niewłaściwą jednostką.

Monit o sprawdzenie kodu

Krytykuj poniższy kod obliczeń inżynierskich z perspektywy przeglądu kodu, nie zgadzaj się ze mną. W szczególności: czy przeliczenie jednostek jest prawidłowe, czy wzór jest poprawny, czy wzięto pod uwagę przypadki skrajne (zero, ujemne), czy testy rzeczywiście potwierdzają? Przy każdym znalezisku napisz, jak to naprawić.[kod]

Słaba podpowiedź/silna podpowiedź

Słaba zachęta:

Napisz kod w języku Python do obliczania naprężeń.

Brak wyboru jednostek, wzorów, definicji wejściowych i testów; AI generuje kod, który działa, ale jest niezweryfikowany i którego jednostka jest nieznana.

Potężny monit:

Zapisz funkcję naprężenia zginającego belki wspornikowej. Wejście F(N), L(mm), b(mm),h(mm); wyjście sigma (MPa). Układ N-mm-MPa, w komentarzu należy podać każdą jednostkę. Dodaj test ze znanymi wynikami (F=500, L=300, b=20, h=40 → ~28,1 MPa, twierdzenie). Podaj błąd na wejściu zerowym/ujemnym. Interpretuj przypadki brzegowe.

Drugi monit wymaga systemu jednostek, formuły, danych wejściowych, testów i przypadków brzegowych; Dzięki temu kod jest weryfikowalny.

Trzy mini etui (według liczb)

Przypadek 1 — błąd cichej głośności. Obliczenie powierzchni wykonane przez sztuczną inteligencję przyjmuje średnicę w mm i daje mm² z pi*d**2/4, ale następna linia umieszcza ją we wzorze, który oczekuje m²; Kod działa bez błędów i daje obciążenie 1 000 000 razy mniejsze. Kiedy inżynier przeprowadza test ze znanym wynikiem (stwierdzenie abs(sigma-28.1)<0,5), test eksploduje i wychwytywany jest błąd. Gdyby nie było testu, nieprawidłowy wynik zostałby wpisany do raportu niezauważony. Lekcja: działający kod ≠ poprawny kod.

Przypadek 2 – Awaria stanu brzegowego. W kodzie, który wykonuje pętlę dla rodziny części, grubość h=0 jest wpisana w jednym wierszu; Gdy I = b*h**3/12 = 0, sigma = M*c/I daje błąd dzielenia przez zero. Dzięki kontrolce if h<=0: raise ValueError dodanej przez sztuczną inteligencję kod zatrzymuje się ze znaczącym komunikatem i nie generuje po cichu informacji inf. Lekcja: zajmij się wcześniej przypadkami Edge.

Przypadek 3 – Zysk powtarzalności. Ręczne obliczenie mocy pompy dla 40 różnych punktów pracy zajęło inżynierowi pół dnia. Napisany w AI skrypt odczytuje plik CSV, oblicza moc dla każdej linii i weryfikuje znany punkt za pomocą potwierdzenia, redukując pracę do ~2 minut i zapisując wyniki w możliwym do prześledzenia pliku. Kiedy wpis się zmienia, cała tabela jest aktualizowana co sekundę. Lekcja: sprawdzona automatyzacja jest szybka i niezawodna.

Typowe błędy

  • Błąd „Wypracowany = poprawny”: myślenie, że kod, który działa bez błędów, jest poprawny.
  • Nie pisanie testów: poleganie na kodzie bez testu referencyjnego ze znanym wynikiem.
  • Niejednoznaczność jednostek: pozostawienie jednostek wejścia/wyjścia bez interpretacji, pominięcie konwersji.
  • Ignorowanie przypadków brzegowych: cichy błąd lub awaria na wejściu zerowym/ujemnym.
  • Brak udokumentowania źródła/założenia: Niezapisanie źródła i założeń zastosowanego wzoru.
  • Brak wersji: Pozostawienie konta jako pliku jednorazowego bez umożliwienia jego śledzenia (git).

Podsumowując

  • Python sprawia, że obliczenia inżynieryjne są powtarzalne, identyfikowalne i kontrolowane pod względem wersji.
  • Sztuczna inteligencja bardzo szybko generuje kod; Ale to, że kod działa bez błędów, nie oznacza, że ​​wykonuje obliczenia poprawnie.
  • Każdy kod powinien zostać zweryfikowany poprzez testowanie znanych wyników, sprawdzanie jednostek i przypadki brzegowe.
  • Błędy jednostkowe są najczęstszym i najbardziej podstępnym źródłem błędów; Broń się za pomocą systemu pojedynczych jednostek, nomenklatury lub kufla.
  • Sprawdzona automatyzacja oszczędza czas i daje pewność; Niezweryfikowany kod jest niebezpieczny.

Zadanie aplikacji

Wybierz powtarzające się obliczenia inżynieryjne (takie jak naprężenie, moc pompy, obciążenie cieplne). Napisz funkcję Pythona do AI, która wykonuje te obliczenia; Skomentuj jednostkę każdego wejścia i wyjścia i dodaj test potwierdzający ze znanym wynikiem. Uruchom test i sprawdź, czy przeszedł pomyślnie. Następnie wykonaj jeszcze dwie weryfikacje: wypróbuj przypadek brzegowy (wejście zerowe lub ujemne), aby sprawdzić, czy kod zwraca znaczący błąd, i ręcznie podaj jednostkę wyjściową w przykładzie. Jeśli to możliwe, przygotuj także wersję bezpieczną dla jednostek, wyprodukowaną w kuflu. Na koniec dodaj założenia obliczeń, źródło wzoru i datę do kodu jako krótki tytuł i napisz, dlaczego ten kod nadal wymaga zatwierdzenia przez inżyniera.

lista kontrolna

  • [ ] Jednostki wejściowe i wyjściowe są wyraźnie udokumentowane w kodzie; wybrano system jednostkowy.
  • [ ] Dodano test (twierdzenie) ze znanym wynikiem i został on zaliczony.
  • [ ] Podjęto próbę co najmniej jednego przypadku skrajnego (zero/ujemny); Kod zawierał istotny błąd.
  • [ ] Jednostka wyjściowa została podana w przykładzie ręcznym (bez założenia „przepracowane = poprawne”).
  • [ ] Źródło wzoru, założenia i data zapisana w kodzie.
  • [ ] Możliwość śledzenia/śledzenia konta; ostateczną akceptację pozostawiono inżynierowi.