|
Buzdugan I.D., Mogan
Gh.L. Proiectarea roboților ficși. Universitatea Transilvania din Braşov |
|
Ghid.Sim Elaborarea modelului SimMechanics (acest ghid a fost eleborat
de studenții: Ilie Indreica, Alican Andrei-Octavian, Condrea Laurentiu-Daniel, Răzvan
Ionuț Gavrilă – RO, promoția 2025) |
|
Schema
bloc Simulink Exemple RT:
TR:
Animație T-R (fără elemente de legatură):
Obs. Pentru analiza dinamică se
impune ca modelul să conțină și obiectul (corpul) de manipulat
și prehensorul (griperul) Analiza dinamică cu Matlab Instalare MATLAB [pachetul Matlab se poate descarca de pe site-ul MATLAB], ® ¿ Instalare Simulink (cu toate sub-categoriile:
Simulink Real-Time, Simulink Desktop Real-Time, Simulink Report Generator,
Simulink Coder, Simulink PLC Coder, Simulink Code Inspector, Simulink
Compiler, Simulink Check, Simulink Coverage, Simulink Design Verifier,
Simulink Fault Analyzer, Simulink Test)
La întâlnirea acestei fereastre: ¿ Lsansarea
aplicației MATLAB [după ce se
lansează Matlab în fereastra SIMULINK, ¿ [se salvează aplicația ¿ Exemplu:
Generare schema bloc Simulink Descriere Block-uri
de bază Pentru
un braț robotic sunt necesare 3 block-uri de bază: -World Frame-,
-Mechanism Configuration-, -Solver-.
Block-ul World Frame
reprezintă sistemul (cadrul) de referință inerțial global (axele
sunt ortogonale și respectă regula mâinii drepte) care este în repaus
absolut. Toate celelalte cadre dintr-o rețea sunt definite direct sau
indirect în raport cu acest cadru. Block-ul Mechanism
Configuration definește gravitația și parametrii de
simulare ai mecanismului conectat. Parametrii de simulare includ valoarea de
perturbație pentru calcularea derivatelor parțiale numerice în
timpul liniarizării și numărul de iterații pentru tranzițiile
modurilor articulațiilor. Dacă un model nu conține acest bloc,
gravitația uniformă aplicată mecanismului este zero. Block-ul Solver
Configuration definește parametrii solverului necesari modelului
pentru a începe simularea. (Fig. 3.1.3) Block-ul Simscape dintr-o
rețea fizică este reprezentat de o diagramă în care se introduc
informații despre setările solverului pentru simulare. Generarea block-urilor de bază [în
fereastra SIMULATION (v. mai jos) se operează următoarele acțiuni:]
Se procedează la fel
și pentru celelalte 2 block-uri. Conectarea blocurilor [se activează cu ¿ portul
de iesire
Generare bloc File Solid [se selectează cu ¿ un
punct oriunde pe
spațiul de lucru și se tastează ”FileSolid”,
apoi se selectează opțiunea disponibilă, implicit block-ul File Solid] ® [după inserarea pictogramei acestuia
în fereastra
SIMULATION, se poziționează cursorul peste block, ¿
[se activează ¿¿ (dublu click) pictograma
Pentru fiecare
CATPart se generază un bloc File Solid (se repetă operațiile de
mai sus pentru fiecare Part). Obs. -
Conectarea port-urilor se face astfel încât
portul corespunzător Frame-ului ales să se conecteze cu portul de la
următorul File Solid ce coincide Frame-ului unde se
dorește conectată piesa. -
În cazul în care masa corpului nu corespunde cu cea
din CATIA, în meniul File Solid : ¿
Manipularea corpurilor După poziționare
block-urilor de bază și a primelor block-uri File Solid, se observă
că modelele CATIA nu se poziționează conform asamblării din CATIA
și pentru corectare se pot parcurge următorii doi pași: -
potrivirea Frame-urilor (planele selectate se
așeză în modul dorit) ; -
utilizarea block-ului Rigid Transform. Potrivirea frame-urilor [se activează
cu ¿
blocul File Solid] ® [se
selectează cu ¿ grupa
[după selectarea cu ¿ a pozitiei, în partea stânga sus, în
cadrul meniului -
Aceasta fiind prima piesa a modelului, se va lăsa
bifată opțiunea -
Pentru verificarea frameurilor se acteivează butonul ¿
Exemplu (v. operațiile mai jos):
Pentru Part-ul
conjugat, aflat într-un File Solid diferit, se repetă toți
pașii, cu mențiunea că primul frame este suprafața care
face contact cu piesa anterioară. Exemplu: Dacă în cazul primei piese s-a selectat suprafața exterioară a tijei,
pentru a 2-a piesă (conjugată) se va selecta partea superioară din interiorul cubului.
După
selectarea și verificarea primului frame pentru a 2-a piesă, se
dezactivează cu ¿ opțiunea ¿ Apoi, similar, dacă este cazul, se creează un nou frame și se selectează suprafața pe care se dorește contactul cu a 3-a piesă.
În final, după ce se
salvează, ¿ Conectarea
porturilor Part-urilor Exemplu (v.
operațiile mai jos):
După conectare, în
partea superioară a ferestrei, se activează butonul ¿ Obs. Simularea se va efectua în MATLAB,
nu în Simulink.
Generare Joints (Cuple) În
Simulink se vor genera 2 cuple: una de roație (Revolute Joint) și
cealaltă de translație (Prismatic Joint).
Acestea se introduc între două block-uri File Solid, între care se
dorește stabilirea mișcării de rotație sau, respectiv, de
translație. După activarea blocului asociat unei cuple cu ¿¿ (dublu-click),
se fac setările în meniurile (v. fig. de mai jos): -
Actuation se
setează Force și apoi Automatically Computed; -
Motion, Provided by Input; -
Composite Force/Torque Sensing se selectează
Total Force și Total Torque, pentru a putea extrage
forțele și momentele din cuplă.
Introducerea parametrilor cinematici de intrare Profil trapezpoidal (triunghiular) de viteză –
implementare MATLAB Datele cunoscute: Valorile
maxime ale spațiului,
vitezei și accelerației s [mm], v [mm/s], a [mm/s2] pentru cupla T și φ [rad], ω [rad/s], ε [rad/s2]
pentru cupla de R; aceste
valori sunt indicate în tema de proiectare. Pentru mișcarea
cuplelor se folosește pentru viteză un profil trapezoidal/triunghiular
cu viteză inițială și finală nule. În funcție de
deplasarea totală În continuare, se prezintă scriptul
care generează cele trei șiruri de valori pentru num_points eșantioane (poziția q,
viteza
Obs. În cadrul acestui script s-au făcut transformări din
mm în m, prin împărțitrea la 1000. Rezultate grafice (exemple) Profil trapezoidal pentru cupla T
Profil triunghiular pentru cupla T
Profil trapezoidal pentru cupla R
Conectarea
la cuple Conectarea block-uri între ele se poate face cu
modulele: Simulink-PS Converter (Input) sau PS-Simulink Converter (Output).
Pentru a
putea asocia block-urile Matlab function cuplelor este nevoie de modulul
Simulink-PS Converter. După ce se deschide cu ¿¿ meniul
de parametri ai block-ului, la opțiunea Provided signals, se activează
Input and first two derivatives (v. fig. de mai jos, stânga); rezultatul
acestei operații este prezentat în fig. de mai jos, centru. Se conectează apoi
ieșirile block-urilor MATLAB function la cele trei intrări
obținute ale block-ului Simulink-PS Converter, în ordine: poziție,
viteză, accelerație (v. fig. de mai jos, dreapta).
Utilizarea block-ului Rigid
Transform Block-ul Rigid Transform definește
și menține o relație spațială (translație sau
rotație) fixă între două cadre pe durata simulării. Acest block-ul oferă
diverse metode pentru a specifica poziția și orientarea cadrului
urmăritor în raport cu cadrul de bază.
Obs. Când se modifică un unghi
sau un offset, este important ca unitatea de măsură să fie adecvată:
Block-urile Rigid
Transform se utilizează în cazul în care orientarea sau poziționarea
față de restul elementelor nu este cea dorită, sau în cazul în care
cuplele nu sunt orientate corect. Exemplu de orientare incorectă:
Incorect
Corect Pentru a corecta relația dintre elementele din exemplul de mai sus, s-a introdus între ele un Rigid Transform.
În cazul în care se
dorește rotirea corpului ce succede block-ul Rigid Transform, în
interiorul meniului de setări al block-ului (actvat cu ¿¿), se
ajustează câmpurile Axis și Angle indicând axa în jurul
căreia trebuie efectuată rotația pentru a duce obiectul în poziția
dorită și, respectiv, valoarea unghiului rotației:
Direcția de
rotație se alege prin introducerea semnul ‘-’ (minus), fie în
dreptul axei, fie în dreptul valorii unghiului. Pentru alegerea axei de rotație, se recomandă
ghidarea după sistemul de referință din colțul stânga-jos al
simulării:
Obs. - Rigid transform afectează pozițiile tuturor obiectelor următoare. Dacă nu se dorește acest lucru, se va mai adăuga un Rigid Transform care să anuleze efectele primului, alegând axa sau unghiul cu smnul opus: -
Cuplele în Simulink sunt default pe axa Z; dacă se dorește acționarea după o
altă axă, se impune, pentru a orienta cupla corect, folosirea de block-uri Rigid
Transform, similar modului prezentat mai sus.
Extragerea valorilor parametrilor din cuple Block-ul To Workspace este folosit pentru
extragerea valorilor parametrilor cuplelor și introducerea acestora în Workspace,
de unde pot fi ulterior utilizate în Matlab. Acestea se conectează la porturile Total Force
și Total Torque (desemnate cu ft și tt în
cadrul cuplei, v. fig. de mai jos); în plus sunt necesare și block-uri PS-Simulink
Converter pentru a se putea realiza conexiunile.
Ca urmare a activării cu ¿¿ pe
block-ul To Workspace se deschide caseta de setări, unde se poate
introduce numele acestuia (v fig. de mai jos), cu ajutorul căruia vor fi
referențiate în Matlab valorile extrase.
Vizualizarea grafică Pentru vizualizarea grafică a valorilor extrase din cuple, se poate
folosi block-ul Scope (v. fig. de mai jos, stânga) care se conectează la linia a căror valori se
doresc a fi vizualizate (v. fig. de mai jos, dreapta).
Exemplu:
Pentru a se vizualiza legenda parametrilor
vizualizațide block-ul Scope:
¿ Obs. -
Denumirile afișate în legendă sunt preluate de
la intrările în block-ul Scope. Exemplu:
-
În cazul în care un block
returnează o matrice de valori (de ex. Total Force și Total
Torque), deoarece block-ul are un singur nume, toate valorile furnizate
de acesta vor avea aceeași denumire, diferențiate însă prin
indexare (v. fig. de mai jos). În cazul Total Force și Total
Torque, ordinea corespunde axelor 1, 2, 3 indică x, y, z.
Extragerea Maximelor valorilor parametrilor Extragerea forțelor sau momentelor maxime se
realizează în Matlab. Toate valorile extrase prin intermediul
block-ului To Workspace se află în obiectul
Înainte de a putea determina maximele din valorile extrase, trebuie realizat un reshape, conform comenzilor de mai jos, pentru a asigura că datele au o dimensionalitate compatibilă pentru buna operare a funcțiilor utilizate (acest pas este necesar cel puțin în cadrul versiunii 2022b de Matlab).
Valorile
conținute în data_forte și data_momente din fig. de
mai jos sunt matrici cu 3 linii și n coloane, în care pe
fiecare linie sunt valorile în timp pe axele x, y, z, în această
ordine. Pentru a accesa toate valorile de pe o linie, se folosește
expresia de indexare În
continuare, pentru a indica valorile absolute (modulul), se renunță la
semnul ‘-’ (care în acest caz, indică direcția de mișcare a cuplei)
folosind funcția abs(), Pentru
indicarea valorilor maxime se utilizează funcția max():
Pentru
a executa codul: ¿ ... |