Печалби:
- Възможност за автоматизиране на инженерни изчисления, управление на единици и обработка на данни с Python код, захранван от AI
- Възможност за валидиране на AI код с проверка на единици, тестване на известни резултати и крайни случаи
- Възможност за придобиване на навика за създаване на повтарящи се, проследими и контролирани от версията документи за сметка
В машиностроенето едно и също изчисление се прави отново и отново: напрежения на група части, мощност на помпата за диапазон от работни точки, таблици на свойствата при различни температури. Правенето им ръчно е както бавно, така и податливо на грешки. Python (лесен за научаване език за програмиране с богати библиотеки за инженерство) автоматизира тези итерации; Това прави сметката повторяема, проследима и контролирана версия. Изкуственият интелект (AI) Python е невероятно бърз в генерирането на код: преобразуване на формула във функция, добавяне на управление на единици, четене на данни, чертане на графики. Но тук има опасно погрешно схващане: това, че кодът работи без грешки, не означава, че изчислява правилно. AI кодът може тихо да върне неправилни резултати поради неправилно преобразуване на единици, неправилна формула или в крайни случаи и програмата ще продължи да работи без никакви грешки. Ето защо всеки инженерен код, произведен с AI; Тестовите входни данни с известни резултати са ненадеждни без проверка чрез проверка на единица (размер) и изпитания на крайни случаи. В този модул ще научите как безопасно да настроите автоматизацията на Python акаунт с AI.
Защо Code Account? Проследяемост и възпроизводимост
Ръчното изчисление е еднократно; Когато даден вход се промени, това се прави от нулата и междинните стъпки се губят. Изчислението, извършено в код, е като документ: входовете, формулите и изходите са ясно написани; променяте вход и получавате нов резултат в рамките на секунди; С контрол на версиите (като 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
Просто, без зависимости
единична система
Всички преобразувани в N-mm-MPa
Простота, бързина
пинта библиотека
Премества единица по променлива
Автоматично улавя несъответствието
Тест с известен резултат
справка с твърдение
Улавя грешка във формула/единица
Внимание: Преобразуването на единица може да липсва или да е неправилно в кода, генериран от 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 и сигма = M*c/I; коментирайте стъпките.Правило: Добавете тест с ИЗВЕСТЕН РЕЗУЛТАТ: сигма ~28,1 MPa за F=500,L=300,b=20,h=40; Проверете с assert (малък толеранс).
Подкана за състояние на Edge
Добавете проверки на крайните случаи към горната функция: - Ако b, h или L са нула или отрицателни, дайте значителна грешка (увеличете ValueError). - Коментирайте, ако има проблем с препълване/прецизност при много големи/малки входове. Също така добавете още 3 различни тестови входа и напишете очаквания резултат; обяснете резултатите по начин, по който мога да ги проверя ръчно.
Подкана за сигурност на устройството (пинта).
Unit-safe същия акаунт с библиотеката 'pint'. Нека входовете са определени в единици (напр. 500 * ureg.newton). Преобразувайте изхода в MPa и го отпечатайте. Добавете малък пример, показващ как пинтата се проваля, когато се въведе грешна единица.
Подкана за проверка на кода
Критикирайте моя код за инженерни изчисления по-долу от гледна точка на преглед на кода, не се съгласявайте с мен. По-конкретно: правилно ли е преобразуването на единица, правилна ли е формулата, взети ли са предвид крайните случаи (нула, отрицателен), тестовете наистина ли са потвърждаващи? За всяка констатация напишете как да я поправите.[code]
Слаба подкана / Силна подкана
Слаба подкана:
Напишете код на 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, сигма = M*c/I дава грешка при деление на нула. Благодарение на контрола if h<=0: raise ValueError, добавен от AI, кодът спира със смислено съобщение и не произвежда безшумно инф. Урок: боравете с крайни случаи предварително.
Случай 3 - Увеличаване на повторяемостта. На инженер отне половин ден, за да изчисли ръчно мощността на помпата за 40 различни работни точки. Написан с AI, скриптът чете CSV, изчислява мощността за всеки ред и проверява известна точка с assert, намалявайки работата до ~2 минути и записвайки резултатите в проследим файл. Когато даден запис се промени, цялата таблица се актуализира всяка секунда. Урок: проверената автоматизация е едновременно бърза и надеждна.
Често срещани грешки
- Заблуда „Работил = правилно“: Мисленето, че кодът, който работи без грешки, е правилен.
- Без писане на тестове: Разчитане на код без референтен тест с известен резултат.
- Неяснота на единицата: Оставяне на входно/изходните единици неинтерпретирани, пропускане на преобразуването.
- Пренебрегване на крайни случаи: Тиха грешка или срив при нулев/отрицателен вход.
- Недокументиране на източника/предположението: Незаписване на източника и предположението на използваната формула.
- Без версии: Оставяне на акаунта като еднократен файл, без да го прави проследим (git).
В обобщение
- Python прави инженерните изчисления повторими, проследими и контролирани версии.
- AI е много бърз в генерирането на код; Но фактът, че кодът работи без грешки, не означава, че изчислява правилно.
- Всеки код трябва да бъде валидиран чрез тестване с известни резултати, проверка на модули и крайни случаи.
- Единичните грешки са най-честият и най-коварният източник на грешки; Защитавайте чрез единична система, номенклатура или пинта.
- Валидирана автоматизация спестява време и дава увереност; Непровереният код е опасен.
Задача за приложение
Изберете повтарящо се инженерно изчисление (като напрежение, мощност на помпата, топлинно натоварване). Напишете функция на Python към AI, който прави това изчисление; Коментирайте единицата на всеки вход и изход и добавете тест за утвърждаване с известен резултат. Пуснете теста и вижте дали ще премине. След това направете още две проверки: опитайте крайния случай (нула или отрицателен вход), за да проверите дали кодът връща значителна грешка и ръчно предоставете единицата на изхода в пример. Ако е възможно, имайте и безопасна версия, произведена в пинта. Накрая добавете предположенията за изчислението, източника на формулата и датата към кода като кратко заглавие и напишете защо този код все още изисква одобрение от инженер.
контролен списък
- [ ] Входните и изходните единици са ясно документирани в кода; беше избрана единична система.
- [ ] Беше добавен и преминат тест (assert) с известен резултат.
- [ ] Беше направен опит за поне един краен случай (нула/отрицателен); Кодът даде значителна грешка.
- [ ] Изходната единица беше предоставена чрез ръчен пример (без да се приема, че „работи = правилно“).
- [ ] Източник на формула, предположения и дата, отбелязани в кода.
- [ ] Акаунтът може да бъде проследен/проследен; окончателното одобрение беше оставено на инженера.