Κέρδη:
- Δυνατότητα αυτοματοποίησης υπολογισμού μηχανικής, διαχείρισης μονάδων και επεξεργασίας δεδομένων με κώδικα Python που λειτουργεί με AI
- Δυνατότητα επικύρωσης κώδικα τεχνητής νοημοσύνης με έλεγχο μονάδας, γνωστές δοκιμές αποτελεσμάτων και περιπτώσεις ακμών
- Δυνατότητα απόκτησης της συνήθειας παραγωγής επαναλαμβανόμενων, ανιχνεύσιμων και ελεγχόμενων από έκδοση εγγράφων λογαριασμού
Στη μηχανολογία, ο ίδιος υπολογισμός γίνεται ξανά και ξανά: τάσεις μιας οικογένειας εξαρτημάτων, ισχύς αντλίας για μια σειρά σημείων λειτουργίας, πίνακες ιδιοτήτων σε διαφορετικές θερμοκρασίες. Το να το κάνετε με το χέρι είναι τόσο αργό όσο και επιρρεπές σε σφάλματα. Η Python (μια εύκολη στην εκμάθηση γλώσσα προγραμματισμού με πλούσιες βιβλιοθήκες για μηχανική) αυτοματοποιεί αυτές τις επαναλήψεις. Κάνει τον λογαριασμό επαναλήψιμο, ανιχνεύσιμο και ελεγχόμενη έκδοση. Τεχνητή νοημοσύνη (AI) Η Python είναι απίστευτα γρήγορη στη δημιουργία κώδικα: μετατρέπει έναν τύπο σε συνάρτηση, προσθέτει διαχείριση μονάδων, διαβάζει δεδομένα, σχεδιάζει γραφήματα. Αλλά εδώ υπάρχει μια επικίνδυνη παρανόηση: το ότι ο κώδικας λειτουργεί χωρίς σφάλματα δεν σημαίνει ότι υπολογίζει σωστά. Ο κωδικός AI μπορεί να επιστρέψει αθόρυβα εσφαλμένα αποτελέσματα λόγω εσφαλμένης μετατροπής μονάδας, λανθασμένου τύπου ή σε περιπτώσεις ακμών και το πρόγραμμα θα συνεχίσει να εκτελείται χωρίς σφάλματα. Γι' αυτό κάθε κώδικας μηχανικής που παράγεται με AI. Οι εισροές δοκιμής με γνωστά αποτελέσματα είναι αναξιόπιστες χωρίς επαλήθευση με έλεγχο μονάδας (μέγεθος) και δοκιμές ακραίων περιπτώσεων. Σε αυτήν την ενότητα, θα μάθετε πώς να ρυθμίζετε με ασφάλεια την αυτοματοποίηση λογαριασμού Python με AI.
Γιατί Λογαριασμός Κωδικού; Ιχνηλασιμότητα και Αναπαραγωγιμότητα
Ένας χειροκίνητος υπολογισμός είναι εφάπαξ. Όταν αλλάζει μια είσοδος, γίνεται από την αρχή και τα ενδιάμεσα βήματα χάνονται. Ο υπολογισμός που γίνεται σε κώδικα είναι σαν ένα έγγραφο: οι είσοδοι, οι τύποι και οι έξοδοι είναι καθαρά γραμμένες. Αλλάζετε μια είσοδο και λαμβάνετε ένα νέο αποτέλεσμα μέσα σε δευτερόλεπτα. Με τον έλεγχο έκδοσης (όπως το git), μπορεί να παρακολουθηθεί "τι υπολόγισα με ποια τιμή σε ποια ημερομηνία". Αυτό είναι ανεκτίμητο όσον αφορά τον έλεγχο και την υπευθυνότητα. Αλλά αυτή η ισχύς εξαρτάται από την ορθότητα του κώδικα. Ένας λάθος κωδικός παράγει το λάθος αποτέλεσμα, επίσης αναπαραγώγιμα και γρήγορα.
Συμβουλή: Γράψτε μια δοκιμή για κάθε συνάρτηση υπολογισμού με ένα γνωστό αληθινό αποτέλεσμα δίπλα της (βεβαίωση σε Python). Για παράδειγμα, η συνάρτηση καταπόνησης θα πρέπει να δίνει 28,1 MPa σε ένα γνωστό δείγμα. Αυτή η δοκιμή σας προειδοποιεί αμέσως εάν σπάσετε κάτι όταν αλλάξετε τον κωδικό στο μέλλον. Ο κωδικός μηχανικής που δεν έχει δοκιμαστεί είναι ένας μη επαληθευμένος λογαριασμός.
Διαχείριση τόμου: Η πιο κοινή πηγή σφαλμάτων
Στον κώδικα μηχανικής, τα περισσότερα σφάλματα προέρχονται από μονάδες: N με kN, m με mm, Pa με MPa, που μπορεί να συγχέονται με συντελεστή 1000 ή 1.000.000. Υπάρχουν δύο άμυνες. Το πρώτο είναι η πειθαρχία: επιλογή ενός συστήματος μεμονωμένης μονάδας από την αρχή (π.χ. N, mm, MPa) και μετατροπή όλων των εισόδων σε αυτό και προσθήκη μονάδων στα ονόματα των μεταβλητών (length_mm, force_N). Το δεύτερο είναι το εργαλείο: μια βιβλιοθήκη όπως το pint μεταφέρει τις μονάδες εντός του κώδικα και συλλαμβάνει την ασυνεπή λειτουργία ως σφάλμα.
Προσέγγιση
Πώς λειτουργεί
Πλεονέκτημα
Ονομασία πειθαρχίας
όπως δύναμη_Ν, μήκος_χιλ
Απλό, χωρίς εξαρτήσεις
σύστημα ενιαίας μονάδας
Όλα μετατρέπονται σε N-mm-MPa
Απλότητα, ταχύτητα
βιβλιοθήκη pint
Μετακινεί μονάδα ανά μεταβλητή
Εντοπίζει αυτόματα την ασυνέπεια
Γνωστό τεστ αποτελεσμάτων
αναφορά με ισχυρισμό
Εντοπίζει σφάλμα τύπου/μονάδας
Προσοχή: Μια μετατροπή μονάδας μπορεί να λείπει ή να είναι εσφαλμένη στον κώδικα που δημιουργείται από AI και ο κωδικός θα εξακολουθεί να "λειτουργεί". Για παράδειγμα, εάν η διάμετρος είναι mm και η περιοχή αναμένεται να είναι m², το αποτέλεσμα θα αποκλίνει κατά 1.000.000 φορές, αλλά το πρόγραμμα δεν θα δώσει σφάλμα. Πριν εκτελέσετε τον κώδικα, σχολιάστε τις μονάδες εισόδου και εξόδου. στη συνέχεια δώστε το αποτέλεσμα με ένα γνωστό παράδειγμα.
Βήμα προς βήμα: Κωδικός λογαριασμού με δυνατότητα επαλήθευσης AI
- Διευκρινίστε το πρόβλημα και το σύστημα μονάδας. Είσοδοι, έξοδοι, μονάδες.
- Δημιουργήστε τη συνάρτηση. Ενιαία υπεύθυνη, ερμηνευτική, ενωμένη.
- Προσθήκη γνωστών αποτελεσμάτων δοκιμής. Ισχυρισμός με παράδειγμα αναφοράς.
- Δοκιμάστε τις ακραίες θήκες. Μηδενική, αρνητική, πολύ μεγάλη/μικρή είσοδος.
- Κάντε έναν έλεγχο μονάδας. Η μονάδα εξόδου ταιριάζει με αυτό που αναμένεται;
- Έγγραφο και έκδοση. Υποθέσεις, πηγή, ημερομηνία. ιχνηλασιμότητα με git.
Προτροπή που δημιουργεί συναρτήσεις και δοκιμές
Ρόλος: Έμπειρος προγραμματιστής Python που γράφει υπολογισμούς μηχανικής. Εργασία: Γράψτε μια συνάρτηση που υπολογίζει τη μέγιστη τάση κάμψης σε μια ορθογώνια διατομή προβόλου δοκού. Είσοδος: F (N), L (mm), b (mm), h (mm). Έξοδος: σίγμα (MPa). Σύμβαση: Σύστημα μονάδας N-mm-MPa; Σχολιάστε τη μονάδα κάθε καταχώρισης. Κανόνας: χρησιμοποιήστε I = b*h^3/12 και sigma = M*c/I. σχολιάστε τα βήματα.Κανόνας: Προσθέστε μια δοκιμή με ΓΝΩΣΤΟ ΑΠΟΤΕΛΕΣΜΑ: sigma ~28,1 MPa για F=500,L=300,b=20,h=40; Έλεγχος με επιβεβαίωση (μικρή ανοχή).
Ερώτηση κατάστασης άκρης
Προσθέστε ελέγχους κεφαλαίων ακμών στην παραπάνω συνάρτηση: - Εάν τα b, h ή L είναι μηδέν ή αρνητικά, δώστε ένα σημαντικό σφάλμα (αύξηση τιμήςError).- Σχολιάστε εάν υπάρχει πρόβλημα υπερχείλισης/ακρίβειας με πολύ μεγάλες/μικρές εισόδους. Προσθέστε επίσης 3 διαφορετικές εισόδους δοκιμής και γράψτε το αναμενόμενο αποτέλεσμα. εξηγώ τα αποτελέσματα με τρόπο ώστε να μπορώ να τα επαληθεύσω χειροκίνητα.
Προτροπή ασφαλείας μονάδας (pint).
Ασφαλίστε τον ίδιο λογαριασμό με τη βιβλιοθήκη 'pint'. Αφήστε τις εισόδους να ορίζονται σε μονάδες (π.χ. 500 * ureg.newton). Μετατρέψτε την έξοδο σε MPa και εκτυπώστε την. Προσθέστε ένα μικρό παράδειγμα που δείχνει πώς το pint αποτυγχάνει όταν δίνεται μια είσοδος με λάθος μονάδα.
Προτροπή ελέγχου κώδικα
Κριτική τον κώδικα υπολογισμού μηχανικής μου παρακάτω από την οπτική γωνία της αναθεώρησης κώδικα, μην συμφωνείτε μαζί μου. Συγκεκριμένα: είναι σωστή η μετατροπή μονάδας, είναι σωστός ο τύπος, έχουν ληφθεί υπόψη οι ακραίες περιπτώσεις (μηδέν, αρνητικό), είναι οι δοκιμές πραγματικά επιβεβαιωτικές; Για κάθε εύρημα, γράψτε πώς να το διορθώσετε.[κωδικός]
Αδύναμη προτροπή / Ισχυρή προτροπή
Αδύναμη προτροπή:
Γράψτε κώδικα Python για τον υπολογισμό του στρες.
Καμία επιλογή μονάδων, τύπων, ορισμών εισόδου και δοκιμών. Το AI δημιουργεί κώδικα που λειτουργεί αλλά δεν είναι επαληθευμένος και του οποίου η μονάδα είναι άγνωστη.
Ισχυρή προτροπή:
Γράψτε τη συνάρτηση τάσης κάμψης στη δοκό προβόλου. Είσοδος F(N), L(mm), b(mm), h(mm); σίγμα εξόδου (MPa). Σύστημα N-mm-MPa, προσδιορίστε κάθε μονάδα στο σχόλιο. Προσθέστε μια δοκιμή με γνωστά αποτελέσματα (F=500, L=300, b=20, h=40 → ~28,1 MPa, ισχυρισμός). Δώστε ένα σφάλμα στην είσοδο μηδέν/αρνητική. Ερμηνεύστε ακραίες περιπτώσεις.
Η δεύτερη προτροπή απαιτεί το σύστημα μονάδας, τον τύπο, τις εισόδους, τη δοκιμή και τις ακμές περιπτώσεις. Κάνει τον κωδικό επαληθεύσιμο.
Τρεις μίνι θήκες (κατά αριθμούς)
Περίπτωση 1 - Σφάλμα αθόρυβης έντασης. Ο υπολογισμός του εμβαδού που παράγεται από το AI παίρνει τη διάμετρο σε mm και δίνει mm² με pi*d**2/4, αλλά η επόμενη γραμμή το τοποθετεί σε έναν τύπο που αναμένει m². Ο κώδικας λειτουργεί χωρίς σφάλματα και δίνει την πίεση 1.000.000 φορές μικρότερη. Όταν ο μηχανικός εκτελεί τη δοκιμή με γνωστό αποτέλεσμα (assert abs(sigma-28.1)<0.5), η δοκιμή εκρήγνυται και το σφάλμα καταγράφεται. Εάν δεν υπήρχε δοκιμή, το λάθος αποτέλεσμα θα είχε εισέλθει στην αναφορά απαρατήρητο. Μάθημα: κωδικός εργασίας ≠ σωστός κωδικός.
Περίπτωση 2 - Συντριβή κατάστασης άκρης. Στον κωδικό που εμφανίζεται για μια οικογένεια εξαρτημάτων, το πάχος h=0 εισάγεται σε μία γραμμή. Όταν I = b*h**3/12 = 0, το sigma = M*c/I δίνει σφάλμα διαίρεσης με μηδέν. Χάρη στο στοιχείο ελέγχου if h<=0: raise ValueError που προστέθηκε από την τεχνητή νοημοσύνη, ο κώδικας σταματά με ένα ουσιαστικό μήνυμα και δεν παράγει σιωπηλά inf. Μάθημα: χειριστείτε τις ακμές εκ των προτέρων.
Περίπτωση 3 - Κέρδος επαναληψιμότητας. Ένας μηχανικός χρειάστηκε μισή μέρα για να υπολογίσει χειροκίνητα την ισχύ της αντλίας για 40 διαφορετικά σημεία λειτουργίας. Γραπτό σε AI, το σενάριο διαβάζει το CSV, υπολογίζει την ισχύ για κάθε γραμμή και επαληθεύει ένα γνωστό σημείο με επιβεβαίωση, μειώνοντας την εργασία σε ~ 2 λεπτά και γράφοντας τα αποτελέσματα σε ένα ανιχνεύσιμο αρχείο. Όταν αλλάζει μια καταχώριση, ολόκληρος ο πίνακας ενημερώνεται κάθε δευτερόλεπτο. Μάθημα: ο επαληθευμένος αυτοματισμός είναι γρήγορος και αξιόπιστος.
Συνήθη λάθη
- Πλάνη "Worked = σωστή": Είναι σωστό να πιστεύουμε ότι ο κώδικας που λειτουργεί χωρίς σφάλματα.
- Μη σύνταξη δοκιμών: Βασίζεται σε κώδικα χωρίς δοκιμή αναφοράς με γνωστό αποτέλεσμα.
- Αμφισημία μονάδας: Αφήνοντας τις μονάδες εισόδου/εξόδου χωρίς ερμηνεία, παράλειψη μετατροπής.
- Παράβλεψη περιπτώσεων αιχμής: Αθόρυβο σφάλμα ή συντριβή σε μηδενική/αρνητική είσοδο.
- Μη τεκμηρίωση της πηγής/υπόθεσης: Δεν καταγράφεται η πηγή και η υπόθεση του χρησιμοποιούμενου τύπου.
- Χωρίς έκδοση: Αποχώρηση του λογαριασμού ως αρχείου μίας χρήσης χωρίς δυνατότητα ανίχνευσης (git).
Συνοπτικά
- Η Python κάνει τους υπολογισμούς μηχανικής επαναλήψιμους, ανιχνεύσιμους και ελεγχόμενες εκδόσεις.
- Το AI είναι πολύ γρήγορο στη δημιουργία κώδικα. Το γεγονός όμως ότι ο κώδικας λειτουργεί χωρίς σφάλματα δεν σημαίνει ότι υπολογίζει σωστά.
- Κάθε κωδικός πρέπει να επικυρώνεται μέσω δοκιμής γνωστών αποτελεσμάτων, ελέγχου μονάδας και περιπτώσεων ακμών.
- Τα σφάλματα μονάδας είναι η πιο συχνή και πιο ύπουλη πηγή σφαλμάτων. Υπερασπιστείτε με σύστημα ενιαίας μονάδας, ονοματολογία ή πίντα.
- Ο επικυρωμένος αυτοματισμός εξοικονομεί χρόνο και δίνει εμπιστοσύνη. Ο μη επαληθευμένος κωδικός είναι επικίνδυνος.
Εργασία εφαρμογής
Επιλέξτε έναν επαναλαμβανόμενο μηχανικό υπολογισμό (όπως τάση, ισχύς αντλίας, θερμικό φορτίο). Γράψτε μια συνάρτηση Python στο AI που κάνει αυτόν τον υπολογισμό. Σχολιάστε τη μονάδα κάθε εισόδου και εξόδου και προσθέστε μια δοκιμή επιβεβαίωσης με γνωστό αποτέλεσμα. Κάνε το τεστ και δες αν περνάει. Στη συνέχεια, κάντε δύο ακόμη επαληθεύσεις: δοκιμάστε μια πεζοπορία (μηδενική ή αρνητική είσοδο) για να ελέγξετε ότι ο κωδικός εμφανίζει σημαντικό σφάλμα και δώστε με μη αυτόματο τρόπο τη μονάδα της εξόδου σε ένα παράδειγμα. Εάν είναι δυνατόν, έχετε επίσης μια έκδοση που να είναι ασφαλής για μονάδες που να παράγεται σε pint. Τέλος, προσθέστε τις υποθέσεις του υπολογισμού, την πηγή του τύπου και την ημερομηνία στον κώδικα ως σύντομο τίτλο και γράψτε γιατί αυτός ο κωδικός εξακολουθεί να απαιτεί έγκριση μηχανικού.
λίστα ελέγχου
- [ ] Οι μονάδες εισόδου και εξόδου τεκμηριώνονται σαφώς στον κώδικα. επιλέχθηκε σύστημα ενιαίας μονάδας.
- [ ] Προστέθηκε μια δοκιμή (βεβαίωση) με γνωστό αποτέλεσμα και πέρασε.
- [ ] Επιχειρήθηκε τουλάχιστον μία περίπτωση ακμών (μηδέν/αρνητικό). Ο κώδικας έδωσε σημαντικό σφάλμα.
- [ ] Η μονάδα εξόδου παρέχεται από ένα χειροκίνητο παράδειγμα (χωρίς να υποθέσουμε ότι "εργάστηκε = σωστά").
- [ ] Πηγή τύπου, υποθέσεις και ημερομηνία σημειώνονται στον κώδικα.
- [ ] Ο λογαριασμός διατηρείται με δυνατότητα παρακολούθησης/παρακολούθησης. η τελική έγκριση αφέθηκε στον μηχανικό.