Üksus 7 / 9

Mudelipõhine disain ja simulatsioon

Kasu:

  • Võimalus luua tehisintellektiga süsteemi diferentsiaalvõrrandi mudel ja simuleerida seda Pythonis
  • Võimalus tõlgendada simulatsiooni tulemusi (sammureaktsioon, stabiilsus) AI abil
  • Oskus rakendada mudelieelduste piiride ja nende reaalse süsteemiga ühilduvuse kontrollimise distsipliini

Enne mehhatroonilise süsteemi füüsilist ehitamist saate seda mõista, kujundada ja mudelil katsetada. Mudelipõhine disain; See on lähenemisviis süsteemi käitumise esitamiseks diferentsiaalvõrrandite või plokkskeemidega, simulatsiooni käivitamiseks, kontrolleri kavandamiseks ja kontrollimiseks. Sellel on suur väärtus: saate proovida sadu stsenaariume, ennustada stabiilsust, reguleerida ohutult kontrolleri võimendusi ilma riistvaraga riskimata. Tehisintellekt on selles protsessis võimas abiline: konstrueerib süsteemi võrrandi, kirjutab Pythonis selle simulatsiooni, tõlgendab tulemusi. Kuid mudel on kaart, mitte maastik; Insener vastutab selle eest, kui hästi mudel tegelikkust kajastab (valideerimine). Selles üksuses käsitleme mudeli ehitamist, selle simuleerimist ja mudeli piiride kontrollimist tehisintellektiga.

Mis on mudel ja mida see tähelepanuta jätab?

Mudel on eesmärgipäraselt loodud tegelikkuse lihtsustatud esitus. Näiteks luuakse alalisvoolumootori lihtne mudel elektriliste ja mehaaniliste võrranditega, kuid see võib jätta tähelepanuta hõõrdumise, käiguvahetuse ja temperatuuri mõju mittelineaarse osa. Need väljajätmised muudavad mudeli kasulikuks, kuid seavad ka selle kehtivuse piiri.

See on mudelis

sageli tähelepanuta jäetud

Mass, inerts, takistus, induktiivsus

Mittelineaarne hõõrdumine, tagasilöök

Põhilised dünaamilised võrrandid

Küllastus, surnud tsoon

Ideaalne andur/ajam

Mõõtmismüra, viivitus

Fikseeritud parameetrid

Parameetrid, mis muutuvad temperatuuriga

Põhiprintsiip: "Kõik mudelid on valed, mõned on kasulikud." Mudeli toimimine sõltub sellest, kas sellelt väljajäetud asjad on teie tööpiirkonnas olulised.

Alalisvoolumootori mudeli ehitamine ja simuleerimine

Alalisvoolumootori lihtne olek-ruumi mudel on kirjutatud olekutega nurkkiirus ω ja vool i. AI saab need võrrandid seadistada ja Pythonis scipy abil simuleerida:

import numpy as np from scipy.integrate import solve_ivpimport matplotlib.pyplot as plt# alalisvoolu mootori parameetrid (näidisväärtused -- tuleks võtta tegelikust andmelehest)J = 0,01 # inerts (kg*m^2)b = 0,1 # viskoosne hõõrdumine ja mootor # konstantne (N*0.0 m) 1 K = V*s/rad)R = 1,0 # takistus (oomi) L = 0,5 # induktiivsus (H)def motor_dynamigi(t, x, V): """x = [omega, i]. V = rakendatud pinge.""" omega, i = x domega = (K * i - b * omega) / R * ome = mehaaniline e / J # ga - quation elektrilise võrrandi tagastamine [domega, di]# 12 Simulatsioon V-astmelise sisendiga (kinnitus):omega_ss_theoretical = K * V / (R * b + K**2)print(f"Simulatsiooni lõppkiirus: {omega[-1]:.2f} rad/s")print(f"Teoreetiline püsiseisund: {omega_ss/"2 rad/s.

Valideerimisjoon on siin kriitiline: me võrdleme simulatsiooniga saavutatud püsiseisundi kiirust käsitsi tuletatud teoreetilise valemiga (K·V/(R·b+K²)). Kui need kaks ühtivad, suureneb meie usaldus simulatsiooni vastu; Kui need ei ühti, on viga kas võrrandis või koodis. Leidke selline sõltumatu räsipunkt iga tehisintellekti toodetud simulatsiooni jaoks.

Näpunäide: kui teil on tehisintellektil süsteemi simuleeritud, öelge alati "andke mulle ka teoreetiline/analüütiline kontrollpunkt, kus saan tulemust kontrollida." Sõltumatu kontroll, nagu püsiseisundi väärtus, jäävusseadus, energiabilanss jne, on kiireim viis koodivigade tuvastamiseks.

Sammuline reaktsioon ja stabiilsus

Põhilised käitumisviisid, mida simulatsioonist loete:

  • Tõusuaeg: aeg, mis kulub väljundil teatud sihtmärgi osani jõudmiseks.
  • Ületamine: kui palju see ületab eesmärgi.
  • Seadistusaeg: aeg, mis kulub sihtribas püsivaks muutumiseks.
  • Stabiilsus: kas reaktsioon jääb piiratuks või kasvab see lõpmatuseni?

Stabiilsus on mudelipõhise disaini kõige kriitilisem tulemus. Kui süsteemi poolused (ülekandefunktsiooni nimetaja juured) on vasakpoolses pooltasandis, on süsteem stabiilne; Paremale pooltasandile liikuv poolus tähendab ebastabiilsust. AI saab arvutada süsteemi polaarsuse ja tõlgendada selle stabiilsust:

import numpy as np# Näide: iseloomulikud polünoomikoefitsiendid [1, a2, a1, a0]koefitsiendid = [1, 3, 3, 1]roots = np.roots(coefficients)print("Poles:", roots)stable = np.all(np.real(roots) < Kas kõik on reaalsed, #)trükitabelid(") negatiivne?

Mudeli kinnitamine (kinnitamine)

Mudeli ehitamisest ja simuleerimisest ei piisa; Peate tõestama, et mudel esindab tegelikkust. Kinnitamise etapid:

  1. Analüütika pakkumine: võrrelge sõltumatute kontrollidega, nagu püsiseisundi looduskaitseseadused.
  2. Parameetrite allikas: kas mudeli parameetrid (J, K, R...) on tegelikult mõõdetud/andmeleht või hinnang?
  3. Eksperimentaalne võrdlus: võimalusel mõõtke reaalse süsteemi sammureaktsiooni ja katke see mudeli omaga.
  4. Tundlikkus: Kui palju muutub tulemus parameetrite muutmisel ±20% (kui tundlik on mudel)?
  5. Kehtivusvahemik: Millises kiiruse/koormuse/temperatuuri vahemikus mudel kehtib, kus see katki läheb?
Ettevaatust: AI-ga antud mudeli parameetrid (inerts, hõõrdumine, mootori konstant) on peaaegu alati näidis/kohahoidja väärtused. Ärge viige simulatsiooni tulemusi "reaalsusesse", asendamata neid oma tegeliku süsteemi andmelehe või mõõtmistega. Sillaks “simulatsioonis töötavate” ja “põllutööde” vahel on parameetrite täpsus ja valideerimine.

Nõrk viip / Tugev viip

NÕRK:"Kirjutage mootorisimulatsioon." (Milline mudel? parameetrid? kontrollimine? Ilmub mõttetu graafika.)STRONG:"Ehitage alalisvoolumootori olek-ruumi mudel (olekud: nurkkiirus ja vool). Simuleerige 12 V sammreaktsiooni funktsiooniga vescipy solve_ivp. Määrake parameetrid muutujatena, nii et saab kirjutada ka väärtused K, (J, my) algusesse. püsikiiruse teoreetiline valem, et saaksin simulatsiooni kontrollida. Arvutage tõusu-, ületamis- ja settimisaeg sammuvastuse põhjal."

Mini korpus

Teadus- ja arendusinsener Nil modelleerib süsteemi enne uue positsioneerimistelje jaoks kontrolleri kavandamist. Ta laseb AI-l luua alalisvoolumootori mudeli ja lisada PID-kontrolleri; Simulatsioon annab kena, mitteületava vastuse. Kuid kui Nil võrdleb püsikiirust teoreetilise valemiga, leiab ta 15% erinevuse: AI-s kasutatav näidismootori konstant K erineb tegeliku mootori omast. Kui sisestate andmelehe väärtused, sobib simulatsioon teooriaga. Seejärel mõõdab see tegeliku mootori sammureaktsiooni ja katab selle mudeli väljundiga; Mudel sobib hästi kiiresse piirkonda, kuid kaldub madalal kiirusel kõrvale, kuna mudel eirab staatilist hõõrdumist. Nil märgib seda piiri: mudel on usaldusväärne suurel kiirusel, mitte väga madalal kiirusel. See kujundab kontrolleri vastavalt. AI mudel ja simulatsioon kiiresti loodud; kuid parameetrite valideerimine ja eksperimentaalne võrdlemine näitasid insenerile mudeli tõelise kehtivuspiiri.

Levinud vead

  • AI näidis/kohahoidja parameetritega simuleerimine ja tulemuse reaalsusesse viimine.
  • Simulatsiooni ei kinnitata sõltumatu analüütilise kontrollpunktiga.
  • Unustades mõjud, mida mudel eirab (hõõrdumine, tagasilöök, viivitus) ja usaldades seda kõigis tingimustes.
  • Mudeli "valideerituks" lugemine, ilma seda kunagi tegeliku mõõtmisega võrdlemata.
  • Stabiilsusanalüüsi (poolused) vahelejätmine ja lihtsalt "graafik näeb kena välja" ütlemine.
  • Mudeli kasutamine kogu uuringualal ilma kehtivusvahemikku määramata.

Kokkuvõttes

  • Mudel on sihikindel tegelikkuse lihtsustamine ja jätab alati midagi välja.
  • Simulatsioon võimaldab disaini ja kontrollerit häälestada ilma riistvaraga riskimata.
  • Iga simulatsiooni tuleb kontrollida sõltumatu analüütilise räsipunkti suhtes.
  • Mudeli parameetrid peaksid pärinema tegelikust mõõtmisest/andmelehest, mitte jääma tehisintellekti näidisväärtusega.
  • Stabiilsust hinnatakse pooluste asukohtade järgi (vasak pooltasapind).
  • Valideerimine näitab insenerile mudeli kehtivusvahemikku ja piire.

Rakenduse ülesanne

Valige lihtne dünaamiline süsteem (alalisvoolumootor, mass-vedrusiiber, RC-ahel). Laske tehisintellektil koostada olekuruumi või diferentsiaalvõrrandi mudel ja simuleerida Pythonis astmelist vastust ning kindlasti küsida teoreetilist püsiseisundi/analüütilist räsipunkti. Seejärel: (1) võrdle simulatsiooni tulemust teoreetilise väärtusega, et näha, kas see sobib, (2) muuda parameetrit ±20% ja vaata, kui palju tulemus muutub (tundlikkus), (3) pane kirja vähemalt kaks füüsikalist efekti, mida mudel eirab ja millises tööpiirkonnas need olulised oleksid. Kirjeldage ühe lausega oma mudeli kehtivusvahemikku.