Enota 7 / 9

Oblikovanje in simulacija na podlagi modela

Dobički:

  • Sposobnost izdelave modela diferencialne enačbe sistema z AI in njegove simulacije v Pythonu
  • Sposobnost interpretacije rezultatov simulacije (odziv na korake, stabilnost) s pomočjo AI
  • Sposobnost uporabe discipline preverjanja meja predpostavk modela in njihove združljivosti z realnim sistemom

Preden fizično zgradite mehatronski sistem, ga lahko razumete, načrtujete in preizkusite na modelu. Oblikovanje na podlagi modela; To je pristop za predstavitev obnašanja sistema z diferencialnimi enačbami ali blokovnimi diagrami, njegovo izvajanje v simulaciji, načrtovanje in preverjanje krmilnika. To ima veliko vrednost: preizkusite lahko na stotine scenarijev, predvidite stabilnost, varno prilagodite ojačanja krmilnika, ne da bi tvegali strojno opremo. Umetna inteligenca je v tem procesu močan pomočnik: sestavi enačbo sistema, napiše njegovo simulacijo v Pythonu, interpretira rezultate. Toda model je zemljevid, ne teren; Odgovornost inženirja je, da ugotovi, kako dobro model predstavlja realnost (validacija). V tej enoti pokrivamo izdelavo modela, njegovo simulacijo in preverjanje meja modela z AI.

Kaj je model in kaj zanemarja?

Model je namensko zgrajena poenostavljena predstavitev realnosti. Na primer, preprost model enosmernega motorja je vzpostavljen z električnimi in mehanskimi enačbami, vendar lahko zanemari nelinearni del trenja, zračnosti zobnikov in temperaturnega učinka. Zaradi teh opustitev je model uporaben, vendar tudi določajo mejo njegove veljavnosti.

V modelu je

pogosto zanemarjeni

Masa, vztrajnost, upor, induktivnost

Nelinearno trenje, zračnost

Osnovne dinamične enačbe

Nasičenost, mrtva cona

Idealen senzor/aktuator

Merilni šum, zakasnitev

Fiksni parametri

Parametri, ki se spreminjajo s temperaturo

Ključno načelo: "Vsi modeli so napačni, nekateri so uporabni." Delovanje modela je odvisno od tega, ali so stvari, ki jih izpusti, pomembne v vašem delovnem območju.

Gradnja in simulacija modela enosmernega motorja

Enostaven model prostora stanj enosmernega motorja je zapisan s stanjema kotne hitrosti ω in toka i. AI lahko nastavi te enačbe in jih simulira v Pythonu s scipy:

import numpy kot npfrom scipy.integrate import solve_ivpimport matplotlib.pyplot as plt# Parametri enosmernega motorja (vrednosti vzorcev -- je treba vzeti iz dejanskega podatkovnega lista)J = 0,01 # vztrajnost (kg*m^2)b = 0,1 # viskozno trenje (N*m*s)K = 0,01 # konstanta motorja (Nm/A in V*s/rad)R = 1,0 # upor (ohm)L = 0,5 # induktivnost (H)def motor_dynamigi(t, x, V): """x = [omega, i]. V = uporabljena napetost.""" omega, i = x domega = (K * i - b * omega) / J # mehanska enačba di = (V - R * i - K * omega) / L # vrnitev električne enačbe [domega, di]# 12 Simulacija z V korakom vnosa (verifikacija):omega_ss_theoretical = K * V / (R * b + K**2)print(f"Končna hitrost simulacije: {omega[-1]:.2f} rad/s")print(f"Teoretično stanje dinamičnega ravnovesja: {omega_ss_theoretical:.2f} rad/s")

Linija validacije je tu ključnega pomena: primerjamo hitrost v ustaljenem stanju, doseženo s simulacijo, z ročno izpeljano teoretično formulo (K·V/(R·b+K²)). Če se ujemata, se poveča naše zaupanje v simulacijo; Če se ne ujemata, je napaka v enačbi ali kodi. Poiščite takšno neodvisno zgoščevalno točko za vsako simulacijo, ki jo ustvari AI.

Nasvet: Ko imate AI simulacijo sistema, vedno recite "daj mi tudi teoretično/analitično kontrolno točko, kjer lahko preverim rezultat." Neodvisno preverjanje, kot je vrednost v stanju dinamičnega ravnovesja, ohranitveni zakon, energijska bilanca itd., je najhitrejši način za odkrivanje napak kode.

Odziv na korake in stabilnost

Osnovna vedenja, ki jih boste prebrali iz simulacije:

  • Čas vzpona: čas, ki je potreben, da izhod doseže določen del cilja.
  • Prekoračitev: Koliko presega cilj.
  • Čas umirjanja: čas, ki je potreben, da postane trajen v ciljnem pasu.
  • Stabilnost: Ali odziv ostaja omejen ali raste v neskončnost?

Stabilnost je najbolj kritičen rezultat oblikovanja na podlagi modela. Če so poli sistema (korenine imenovalca prenosne funkcije) v levi polovici ravnine, je sistem stabilen; Pol, ki se premakne v desno polovično ravnino, pomeni nestabilnost. AI lahko izračuna polarnost sistema in interpretira njegovo stabilnost:

import numpy kot np# Primer: karakteristični polinomski koeficienti [1, a2, a1, a0]koeficienti = [1, 3, 3, 1]roots = np.roots(coefficients)print("Poles:", roots)stable = np.all(np.real(roots) < 0)print("Ali je sistem stabilen?", stabilen) # all Are pravi deli negativni?

Preverjanje modela (validacija)

Ni dovolj zgraditi modela in ga simulirati; Morate dokazati, da model predstavlja realnost. Koraki preverjanja:

  1. Zagotovite analitiko: primerjajte z neodvisnimi kontrolami, kot so zakoni ohranjanja v stanju dinamičnega ravnovesja.
  2. Vir parametrov: Ali so parametri modela (J, K, R ...) dejansko izmerjeni/podatkovni list ali ocena?
  3. Eksperimentalna primerjava: Če je mogoče, izmerite odziv na korake realnega sistema in ga prekrijte z odzivom modela.
  4. Občutljivost: Koliko se spremeni rezultat pri spreminjanju parametrov za ±20% (kako občutljiv je model)?
  5. Območje veljavnosti: V katerem območju hitrosti/obremenitve/temperature je model veljaven, kje se pokvari?
Pozor: parametri modela (vztrajnost, trenje, konstanta motorja), ki jih poda AI, so skoraj vedno vrednosti vzorca/nadomestnega mesta. Ne uresničite rezultatov simulacije, ne da bi jih zamenjali s podatkovnim listom ali meritvami vašega resničnega sistema. Most med »delom v simulaciji« in »delom na terenu« sta natančnost in validacija parametrov.

Šibek poziv / močan poziv

WEAK:»Napišite simulacijo motorja.«(Kateri model? parametri? preverjanje? Pojavi se nesmiselna grafika.)MOČNO:»Zgradite model prostora stanj (stanja: kotna hitrost in tok) enosmernega motorja. Simulirajte 12 V stopenjski odziv z vescipy solve_ivp. Definirajte parametre kot spremenljivke na začetku (J, b, K, R, L), da lahko vnesem svoje dejanske vrednosti. napiši teoretično formulo za hitrost v stabilnem stanju, da lahko preverim simulacijo. Izračunajte čas vzpona, prekoračitev in čas umirjanja iz odziva koraka."

Mini etui

Inženir za raziskave in razvoj Nil modelira sistem, preden oblikuje krmilnik za novo pozicionirno os. Umetna inteligenca ima izdelan model enosmernega motorja in doda PID krmilnik; Simulacija daje lep odziv brez prekoračitve. Ko pa Nil primerja hitrost v stabilnem stanju s teoretično formulo, ugotovi 15-odstotno razliko: konstanta K vzorčnega motorja, ki jo uporablja umetna inteligenca, je drugačna od konstante pravega motorja. Ko vnesete vrednosti podatkovnega lista, se simulacija ujema s teorijo. Nato izmeri korakni odziv pravega motorja in ga prekrije z izhodom modela; Model se dobro prilega hitremu območju, vendar odstopa pri nizki hitrosti, ker model zanemarja statično trenje. Nil upošteva to omejitev: model je zanesljiv pri visoki hitrosti, ne pri zelo nizki hitrosti. Temu primerno oblikuje krmilnik. Hitro vzpostavljen model in simulacija AI; toda validacija parametrov in eksperimentalna primerjava sta inženirju razkrili pravo mejo veljavnosti modela.

Pogoste napake

  • Simulacija s parametri vzorca/ograde umetne inteligence in uresničitev rezultata.
  • Ni validacije simulacije z neodvisno analitično kontrolno točko.
  • Pozabite na učinke, ki jih model zanemarja (trenje, zračnost, zamuda) in mu zaupajte v vseh pogojih.
  • Ob upoštevanju modela "potrjenega", ne da bi ga kdaj primerjali z dejansko meritvijo.
  • Preskoči analizo stabilnosti (poli) in samo reče "graf izgleda lepo".
  • Uporaba modela na celotnem študijskem območju brez določitve območja veljavnosti.

Če povzamem

  • Model je namensko poenostavljanje realnosti in vedno nekaj izpusti.
  • Simulacija omogoča načrtovanje in prilagajanje krmilnika brez tveganja strojne opreme.
  • Vsako simulacijo je treba preveriti glede na neodvisno analitično zgoščeno točko.
  • Parametri modela bi morali izhajati iz dejanske meritve/podatkovnega lista, ne pa ostati pri vrednosti vzorca AI.
  • Stabilnost se oceni s pogledom na lokacije polov (leva polovična ravnina).
  • Validacija inženirju pokaže obseg veljavnosti in meje modela.

Aplikacijska naloga

Izberite preprost dinamični sistem (DC motor, masa-vzmet-blažilnik, RC vezje). Umetna inteligenca naj zgradi prostor stanja ali model diferencialne enačbe in simulira odziv korakov v Pythonu, pri čemer ne pozabite zaprositi za teoretično stacionarno/analitično zgoščeno točko. Nato: (1) primerjajte rezultat simulacije s teoretično vrednostjo, da vidite, ali se ujema, (2) spremenite parameter za ±20 % in poglejte, koliko se spremeni rezultat (občutljivost), (3) zapišite vsaj dva fizikalna učinka, ki ju model zanemarja, in v katerem območju delovanja bi bila pomembna. V enem stavku opišite obseg veljavnosti vašega modela.