Tesi_Laurea_Triennale_Tomasello_Daniele, Tesi di laurea di Elettronica Applicata. Alta Scuola Politecnica (ASP)
deni_09
deni_0925 marzo 2013

Tesi_Laurea_Triennale_Tomasello_Daniele, Tesi di laurea di Elettronica Applicata. Alta Scuola Politecnica (ASP)

PDF (3 MB)
73 pagine
1000+Numero di visite
Descrizione
sui sistemi robotici
20punti
Punti download necessari per scaricare
questo documento
Scarica il documento
Anteprima3 pagine / 73
Questa è solo un'anteprima
3 pagine mostrate su 73 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 73 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 73 totali
Scarica il documento
Questa è solo un'anteprima
3 pagine mostrate su 73 totali
Scarica il documento

UNIVERSITÀ DEGLI STUDI DI PADOVA

FACOLTÀ DI INGEGNERIA

Dipartimento di Innovazione Meccanica e Gestionale

LAUREA TRIENNALE IN INGEGNERIA DELL’ AUTOMAZIONE

PROGETTO DI MANIPOLATORE

PLANARE A TRE GRADI DI

LIBERTÁ

Relatore: Ch.mo Prof. Ing. GIULIO ROSATI

Laureando: DANIELE TOMASELLO

ANNO ACCADEMICO 2009-2010

ai miei cari...

“ ... fatti non foste a viver come bruti, ma per seguire virtute e canoscenza ... ”

Dante Alighieri, Divina Commedia, Inferno canto XXVI, 119-120

Indice

Sommario IX

Introduzione XI

1 Determinazione dei carichi 1

1.1 Tipologia manipolatore . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2 Scelte di massima . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3 Simulazioni Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.3.1 Masse, baricentri e inerzie . . . . . . . . . . . . . . . . . . 8

1.3.2 Motore Step . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.3.3 Motori DC: programma Matlab . . . . . . . . . . . . . . . 11

1.3.4 Motori DC: descrizione programma . . . . . . . . . . . . . 16

1.3.5 Motori DC: grafici ottenuti . . . . . . . . . . . . . . . . . . 18

1.4 Dati ottenuti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2 Scelta componenti e dimensionamento 23

2.1 Scelta motori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.1.1 Motore Step . . . . . . . . . . . . . . . . . . . . . . . . . . 24

2.1.2 Motori DC . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

2.2 Configurazione costruttiva . . . . . . . . . . . . . . . . . . . . . . 29

2.3 Scelta ulteriore materiale . . . . . . . . . . . . . . . . . . . . . . . 30

2.4 Disegni 3D in SolidWorks . . . . . . . . . . . . . . . . . . . . . . 34

2.4.1 Movimentazione Lineare . . . . . . . . . . . . . . . . . . . 35

2.4.2 Manipolatore planare 2 GDL . . . . . . . . . . . . . . . . 36

2.4.3 Progetto globale . . . . . . . . . . . . . . . . . . . . . . . . 40

2.5 Lista componenti da realizzare . . . . . . . . . . . . . . . . . . . . 41

3 Messa in tavola e assemblaggio 43

3.1 Definizione accoppiamenti . . . . . . . . . . . . . . . . . . . . . . 43

3.2 Messa in tavola . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

3.3 Esportazione dxf e Lavorazioni . . . . . . . . . . . . . . . . . . . . 48

3.4 Assemblaggio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.4.1 Movimentazione Lineare . . . . . . . . . . . . . . . . . . . 49

3.4.2 Manipolatore planare 2 GDL . . . . . . . . . . . . . . . . 52

3.4.3 Progetto globale . . . . . . . . . . . . . . . . . . . . . . . . 55

Conclusioni 57

Bibliografia 59

VIII

Sommario

Il manipolatore sviluppato è parte di un più ampio progetto, complessivo di 5

elaborati, dove sono stati implementati:

• la progettazione della configurazione e della componentistica meccanica;

• la progettazione delle schede elettroniche, il cablaggio e la realizzazione del

quadro elettrico articolato in 2 elaborati;

• l’ interfaccia utente e la pianificazione delle traiettorie in Matlab;

• il controllo in Simulink e la conversione traiettoria pianificata - comando

alle schede;

Ciò ha promosso, all’ interno di un contesto didattico, la collaborazione nello

sviluppo di progetti diversi, ma strettamente correlati e connessi nel fine.

Il manipolatore in discussione ha due principali caratteristiche:

• quella di essere planare, cioè di muoversi nel piano che nel nostro caso è

quello orizzontale;

• e quella di avere tre gradi di libertà che, essendo il movimento planare, offre

un termine di ridondanza il quale ci ha permesso di operare uno studio sull’

ottimizzazione del movimento. Questi tre gradi di libertà sono stati ottenuti

aggiungendo a un classico manipolatore a due gradi di libertà (MP2), la

movimentazione lineare della base su cui questo è stato montato.

Introduzione

Figura 1: Progetto

La tesi che viene ora descritta tratta la realizzazione, dal punto di vista mec-

canico, di un prototipo di MANIPOLATORE PLANARE A TRE GRADI DI

LIBERTÁ (da ora in poi siglato MP3).

Il capitolo 1 è composto di due parti: la prima, introduttiva al lavoro svolto, trat-

ta la definizione della configurazione meccanica desiderata (manipolatore planare

a due gradi di libertà con movimento lineare della base) e le dimensioni di mas-

sima del manipolatore e dell’ area di lavoro. La seconda, più specifica, tratta le

simulazioni Matlab effettuate, le quali ci hanno permesso di ottenere una serie di

dati di partenza, utili per i conseguenti dimensionamenti.

La scelta dei motori è descritta nel capitolo 2. A questa seguono, oltre la scelta

della configurazione costruttiva dei due giunti rotoidali e del giunto prismatico,

quella del materiale accessorio come cuscinetti, manicotti, ghiere,giunti elastici...

Per finire, il tutto ha preso forma in un disegno 3D con SolidWorks (nome del

programma) che ne ha facilitato la progettazione e la verifica funzionale: all’ as-

sieme definitivo sono stati poi inseriti i sensori induttivi e i finecorsa meccanici

per determinarne rispettivamente la calibrazione e la messa in sicurezza.

Nel capitolo 3, invece, troviamo la definizione di tutti gli accoppiamenti presenti

(cuscinetto-membro, motore-membro...), la descrizione della messa in tavola dei

componenti da realizzare e gli schemi di montaggio tali da permettere il corretto

assemblaggio e funzionamento del prototipo.

XII

Capitolo 1

Determinazione dei carichi

In questo capitolo verranno descritti gli aspetti tecnici e le motivazioni delle

scelte che ci hanno inizialmente orientato verso la configurazione del manipolatore

in esame [1]. A questo verranno poi aggiunti i primi calcoli e le prime stime

che, assieme a un dimensionamento di massima della lunghezza dei link e del

movimento della base, ci ha permesso di capire il range a cui attenersi per la

scelta dei motori e del materiale. A seguire questi primi dati ricavati sono stati

inseriti in un programma Matlab per ottenere delle simulazioni iniziali con la

componentistica scelta.

1.1 Tipologia manipolatore

La scelta di realizzare un manipolatore planare è dovuta alla maggiore semplicità

di progettazione e verifica del prototipo. Il motivo di farlo a tre gradi di libertà

(3 GDL) è stato invece quello di poter avere un termine di ridondanza, essendo

il movimento nel piano e considerando per l’ end-effector solo la posizione e non

l’ angolo di orientamento; ciò ha permesso alla tesista addetta alla pianificazione

delle traiettorie di poter fare uno studio sull’ ottimizzazione dei percorsi e del

movimento dei giunti.

Le possibilità di ottenere questo tipo di robot sono molteplici; noi fin dall’ inizio

ci siamo orientati su una soluzione composta da un movimento lineare della base

e da un manipolatore a due gradi di libertà (MP2) montato su di questa:

2 1. DETERMINAZIONE DEI CARICHI

(a) (b)

Figura 1.1: Schema del meccanismo articolato

ottenendo cos̀ı un meccanismo articolato composto da un giunto prismatico

(movimento lineare) e da due giunti rotoidali (movimento rotatorio). Vediamo

ora brevemente le due parti.

Il manipolatore a due gradi di libertà è una catena cinematica aperta comprensiva

di due membri dove ognuno dei due motori trasmette una coppia al corrispetti-

vo link. Per il design meccanico si è scelto di alloggiare entrambi i motori al di

sopra del corrispettivo link per avere una simile e più semplice configurazione co-

struttiva. Questo ha evitato (rispetto all’ alloggiare i motori entrambi nella base)

di dover trasmettere il moto con cinghia, catena o ingranaggi che introducono

complessità costruttive e non linearità (come il backlash...), ma ci ha portato allo

stesso tempo ad avere il peso del secondo motore all’ interno della catena cinema-

tica con lo svantaggio di creare un maggiore momento ribaltante nella struttura

e di richiedere una maggiore coppia necessaria al primo motore per effettuare

la stessa rotazione nello stesso tempo. Visti vantaggi e svantaggi, e valutate le

ridotte dimensioni del prototipo in oggetto è stata fatta la scelta sopra citata.

Per il movimento della base del MP2 (che da ora in poi chiameremo Carrello o

Guida Lineare) abbiamo fin da subito pensato all’ utilizzo in catena aperta, cioè

senza feedback di posizione, di un motore passo-passo (Step) connesso ad una vite

con chiocciola. Il funzionamento si basa sul principio che ogni passo di rotazione

del motore imprime uno spostamento lineare, essendo la chiocciola vincolata dal

Carrello a non ruotare.

1.2. SCELTE DI MASSIMA 3

Figura 1.2: Motore Step con vite e chiocciola

1.2 Scelte di massima

Decisa la tipologia del manipolatore da prototipare, siamo dovuti entrare più nel

dettaglio e definire le dimensioni di massima dei link, l’ area di lavoro e il tipo di

componenti su cui orientarsi.

Come area di lavoro abbiamo scelto un foglio A4 le cui misure sono 297x210 mm,

a cui abbiamo escluso uno spazio dedicato al fissaggio dello stesso di 25 mm per

lato, ottenendo un’ area di lavoro utile di 247x160 mm su cui poter operare.

Per quanto riguarda la lunghezza dei membri, dopo alcune variazioni siamo ar-

rivati a fissare una distanza asse-asse di 110 mm per il primo e 100 mm per il

secondo. Questo ci ha portato a ipotizzare la dimensioni del primo link 160x30x10

[mm], mentre quelle del secondo 130x20x8 [mm]. Considerando di utilizzare come

materiale l’ alluminio, il cui peso specifico è 2, 73 ∗ 10−3 [g/mm3], le masse dei

link in questione sono risultate rispettivamente 131g e 57g.

I motori D.C. (a tensione continua) valutati inizialmente sono stati quelli della

PortEscap. Al primo motore è richiesto di erogare la maggior coppia possibile, è

quindi stato scelto il modello 35NT2R82. Per il secondo motore invece, massa e

coppia sono entrambi parametri di primaria importanza: la coppia ovviamente de-

termina l’ accelerazione che il motore può imprimere al link, mentre la sua massa

va ad aumentare l’inerzia del membro che fa capo al primo motore (causando-

ne un dimensionamento maggiore); generalmente maggiore è la coppia erogabile

dal motore, maggiore è la sua massa: per il secondo motore siamo quindi dovuti

partire da un compromesso che è stato il modello 28DT12.

4 1. DETERMINAZIONE DEI CARICHI

Figura 1.3: Data sheet PortEscap 35NT2R82 (utilizzato solo per il dimensiona-

mento come motore 1)

1.2. SCELTE DI MASSIMA 5

Figura 1.4: Data sheet PortEscap 28DT12 (utilizzato solo per il dimensionamento

come motore 1)

6 1. DETERMINAZIONE DEI CARICHI

I due motori hanno rispettivamente masse di 310g e 200g e possono erogare

una coppia massima continua di 115mNm e 41mNm. Nei Data-sheet presentati

si possono trovare tutte le informazioni che sono state in nostro possesso.

A questo sono state poi aggiunte ulteriori scelte di massima, si è infatti deciso di

utilizzare:

• un encoder montato su entrambi i motori tale da avere un feedback sulla

posizione e una possibile stima della velocità

• un cuscinetto SKF radiale in ogni giunto rotoidale

• più sensori anche se di tipo e posizione non definiti (induttivi, finecorsa mec-

canici o entrambi assieme) per poter eseguire l’ operazione di calibrazione

o l’ arresto di emergenza

Fissando posizione e massa del materiale indicato e aggiungendo l’ ipotetica

massa della viteria di fissaggio siamo arrivati ad avere dei primi dati su dimensioni,

masse e inerzie del MP2.

Abbiamo poi analizzato la movimentazione della base. Per far questo abbiamo

utilizzato un disegno Autocad:

Figura 1.5: Pianificazione movimento

1.2. SCELTE DI MASSIMA 7

dove vengono indicate due posizioni del carrello con le possibili configurazioni

dei giunti rotoidali; gli archi presenti in posizione sinistra sono quelli dati dalla

rotazione del giunto 1 e del giunto 2 (con link allineati e con link 1 fermo).

Questo ci ha condotto a scegliere una corsa di 250mm, cioè di tutta lunghezza

utile del foglio, per poter avere un più ampio termine di ridondanza e per poter

implementare più configurazioni di movimento, compresa quella di seguire con il

carrello il valore dell’ ascissa del punto desiderato nel foglio.

Essendo la corsa della vite abbastanza lunga e non necessitando di un posizio-

namento troppo preciso siamo partiti a valutarne un passo medio-alto e cioè di

16mm.

Per il motore Step invece abbiamo considerato quelli generalmente in commercio

e siamo partiti da un valore di 100 step/giro.

Lo schema di massima che abbiamo considerato è stato quindi il seguente:

Figura 1.6: Schema di massima del prototipo

dove abbiamo considerato il sottosistema MP2 montato sul carrello di una

guida lineare, a sua volta è fissato (al fianco) alla chiocciola montata sulla vite

del motore Step.

8 1. DETERMINAZIONE DEI CARICHI

1.3 Simulazioni Matlab

1.3.1 Masse, baricentri e inerzie

Per iniziare è stato creato un file con all’ interno i valori delle masse e delle

posizioni di tutti gli elementi precedentemente citati. Questo ci ha permesso di

ottenere il valore delle masse totali di entrambi i link, la posizione dei baricentri

e il valore delle inerzie sull’ asse di rotazione. Il sostanziale vantaggio nell’ uso di

Matlab è stato quello di poter operare tutti i cambiamenti desiderati ottenendo

sempre aggiornate le grandezze di nostro interesse (masse, baricentri e inerzie).

Il file Matlab con i dati delle scelte di massima inseriti è stato dunque il seguente:

clear all

clc

%% -------------------------------------------------------------------------

% MANIPOLATORE PLANARE

%-------------------------------------------------------------------------

%% MASSE (codice M_)

%Attenzione: masse cuscinetti e fissaggio Motore tutto incorporato in MOT

M_EndEfector = 0.090; %massa penna + movimentazione [Kg]

M_mem2 = 0.070; %massa membro 2 [Kg]

M_MOT2 = 0.200 ... %massa Motore 2 [Kg]

+ 0.010 ... %massa encoder

+ 0.050; %massa viti,cuscinetto,giunto elastico,cilindro fissaggio,ghiera

M_mem1 = 0.150; %massa membro 1 [Kg]

M_sens_cal = 0.020; %massa sensori di calibrazione [Kg]

M_MOT1 = 0.310 ... %massa Motore 1 [Kg]

+ 0.010 ... %massa encoder

+ 0.070; %massa viti,cuscinetto,giunto elastico,cilindro fissaggio,ghiera

M_Base = 0.238 + 0.068 + 0.015; %massa Base [Kg]

%Massa totale Membro2, Membro1 e Manipolatore [Kg]

M_M2 = M_EndEfector + M_mem2

M_M1 = M_MOT2 + M_mem1 + M_sens_cal

M_MP2 = M_M2 + M_M1 + M_MOT1 + M_Base;

%% DISTANZE (codice D_)

%DISTANZE DAL PUNTO ’A’

D_A_EndEfector = 0.100; %distanza penna + movimentazione [m]

D_A_mem2 = 0.053; %distanza membro 2 [m]

%DISTANZE DAL PUNTO ’O’

D_O_MOT2 = 0.110; %distanza Motore 1 [m]

D_O_mem1 = 0.055; %distanza membro 1 [m]

1.3. SIMULAZIONI MATLAB 9

%% INERZIE

%INERZIA RISPETTO ’A’

Inerz_A = M_EndEfector*(D_A_EndEfector)^2 + M_mem2*(D_A_mem2)^2

%INERZIA RISPETTO ’O’ (solo MASSE SU LINK 1)

Inerz_O = M_MOT2*(D_O_MOT2)^2 + (M_mem1+M_sens_cal)*(D_O_mem1)^2

% ATTENZIONE: sens_cal allineato con centro_massa link 1 (cambiare appena fissata posizione)

%% DISTANZA CENTRO DI MASSA

%DISTANZA DA ’A’ CENTRO DI MASSA MEMBRO 2 (COMPLETO DI TUTTI I PESI AGGIUNTIVI)

G2_A = (M_EndEfector*D_A_EndEfector + M_mem2*D_A_mem2) / (M_EndEfector + M_mem2)

%DISTANZA DA ’O’ CENTRO DI MASSA MEMBRO 1 (COMPLETO DI TUTTI I PESI AGGIUNTIVI)

G1_O = (M_MOT2*D_O_MOT2 + (M_mem1+M_sens_cal)*D_O_mem1) / (M_MOT2 + M_mem1 + M_sens_cal)

% ATTENZIONE: sens_cal allineato con centro_massa link 1 (cambiare appena fissata posizione)

%% FORZA ASSIALE SU CUSCINETTO

F_M2 = (M_M2+0.020)*9.81

F_M1 = (M_M1+M_M2+0.025)*9.81

%% -------------------------------------------------------------------------

% TOTALE

%-------------------------------------------------------------------------

%% MASSE ULTERIORI

M_Carrello = 0.640 + 0.056 + 0.036; %massa carrello, manicotti e viti [Kg]

M_Chiocciola = 0.070 + 0.015; %massa chiocciola e viti [Kg]

M_Totale = M_Carrello + M_Chiocciola + M_MP2 %massa Totale [Kg]

1.3.2 Motore Step

Siamo poi passati a creare un file per il dimensionamento del motore Step e della

vite comprensiva di chiocciola. Abbiamo perciò realizzato una funzione che riceve

come dati di ingresso il passo della vite e il numero di step per giro del motore.

Assieme a questi abbiamo utilizzato all’ interno del programma il valore della

massa da traslare con la chiocciola (M Totale) calcolata nel precedente file, e la

lunghezza della guida di 250 mm; abbiamo inoltre ipotizzato di percorrerla in un

secondo con una legge trapezioidale di 1 3

1

3

1

3 (tratte di accelerazione, velocità co-

stante e decelerazione) e ci siamo basati al seguente grafico per trovare la velocità

lineare massima della chiocciola:

10 1. DETERMINAZIONE DEI CARICHI

Figura 1.7: Legge trapezioidale di riferimento

Sapendo che l’ area sotto il trapezio corrisponde allo spostamento ∆x (consi-

derato 250 mm) e che quindi ∆x = 2 3 ∗ ẋmax abbiamo potuto fare tutti i calcoli

di nostro interesse ottenendo nel vettore di uscita i seguenti dati:

n [m/rad] rapporto di trasmissione dx/dtheta

deltaPosiz [m/step] spostamento chiocciola tra 2 step

x0p [m/s] velocità max

x0pp [m/s2] accelerazione

stepAlSec [step/s] step compiuti al secondo alla massima velocità

cm Step [N*m] coppia massima necessaria

Il file realizzato è stato perciò il seguente:

function [n,deltaPosiz,x0p,x0pp,stepAlSec,cm_Step]=dimens_motore_Step(passo,Nstep)

% PER PROVARE

%[n,deltaPosiz,x0p,x0pp,stepAlSec,cm_Step]=dimens_motore_Step(0.016,100)

t = 1/3; %tempo trapezioidale 1/3 1/3 1/3

n = passo/(2*pi); % [m/rad] rapporto di trasmissione dx/dtheta

deltaPosiz = passo/Nstep; % [m/step] differ di posiz chiocciola tra 2 step

errPosiz = deltaPosiz/2; % [m] max errore su step

x0p = 0.250 *(3/2); % [m/s] velocità max; x=250mm x=(2/3)*xp

x0pp = x0p/t; % [m/s^2] accelerazione

x0acc = (x0pp*t^2)/2; % [m]lunghezza tratto accelerazione

thetap = x0p/n; % [rad/s] velocità angolare max

stepAlSec = x0p/deltaPosiz; % [step/s] alla massima velocità

1.3. SIMULAZIONI MATLAB 11

% DA INSERIRE COME VARIABILI

Irot = 0;

Ivite = 1.9e-005;

Mtot = 1.1;

etha = 0.5;

cm_Step = ( (Irot+Ivite)/n + (Mtot*n)/etha )*x0pp; % [N*m] coppia necessaria

dove abbiamo inserito come dati d’ ingresso il passo della chiocciola (0.016 m)

e il N◦ di step su giro (100 step/giro) ipotizzati in Scelte di massima:

[n,deltaPosiz,x0p,x0pp,stepAlSec,cm Step]=dimens motore Step(0.016,100)

ottenendo il vettore di risultati in uscita precedentemente illustrato, i cui dati

numerici sono stati:

n = 0.0025 [m/rad] (2.5 [mm/rad])

deltaPosiz = 1.6 * 10−4 [m/step] (0.16 [mm/step])

x0p = 0.375 [m/s]

x0pp = 1.125 [m/s2]

stepAlSec ≈ 2344 [step/s]

cm Step = 0.0147 [N*m] (14.7 [mN*m])

Qui vediamo come il deltaPosiz, lo spostamento della chiocciola tra uno step

e il successivo, sia abbastanza ridotto; essendo l’ errore massimo commesso la

metà di questo valore otteniamo una precisione nel posizionamento superiore

ad un decimo di millimetro (infatti pari a ± 0.08 [mm]). Notiamo inoltre che

stepAlSec e cm Step hanno valori accettabili, sebbene siano solo dati di partenza,

considerando la maggior parte dei motori Step da noi presi in considerazione (si

veda in seguito Dati ottenuti e Scelta motori).

1.3.3 Motori DC: programma Matlab

La simulazione riguardante il dimensionamento dei Motori DC è stata eseguita

indipendentemente dal movimento della base (il cui valore di accelerazione ha

12 1. DETERMINAZIONE DEI CARICHI

completato in seguito la simulazione) ed è stata quella più laboriosa ed inte-

ressante. Infatti questa non può essere scomposta in due parti indipendenti per

ognuno dei motori: il dimensionamento viene eseguito per entrambi sulla base di

calcoli di dinamica inversa (che da velocità e accelerazioni dei due giunti rotoi-

dali, ed eventualmente della base, ritornano il valore della coppia da erogare per

ogni motore).

Il file è stato perciò cos̀ı composto:

%% MANIPOLATORE PIANO A DUE GRADI DI LIBERTA’ + MOVIMENTAZIONE LINEARE LUNGO L’ ASSE X

clear

close all

clc

dimens_membri %richiama i dati con masse,baricentri e inerzie

global a

%% DATI

a = [D_O_MOT2 D_A_EndEfector] % lunghezza link 1 (OA) e link 2 AP

L = [G1_O G2_A] % distanza baricentro link (da asse di rotaz antecedente)

m = [M_M1 M_M2] % masse dei link

IO = [Inerz_O Inerz_A] % inerzie dei link rispetto asse di rotazione antecedente

%% DATI TRAIETTORIA

T = 1; %[s] durata del movimento (per pianificazione)

int_type = 3; % tipo di interpolazione

param = [ T/3 T/3 ]; % parametri della legge di moto

conf_in = 0; % braccio sinistro (0) o destro(1)

conf_fin = 1; % braccio sinistro (0) o destro(1)

%% %%%%% CASISTICHE DI MOVIMENTO %%%%% %%

movimento = 1; %scelta del movimento

switch movimento

case 1

x_in = [.210 .000]; %(1) %[m] posizione iniziale (per pianificazione)

x_fin = [-.210 .000]; %[m] posizione finale (per pianificazione)

case 2

x_in = [.000 .010]; %(2)

x_fin = [.000 .010];

case 3

x_in = [.010 .000]; %(3)

x_fin = [-.010 .000];

case 4

x_in = [-.010 .000]; %(4)

x_fin = [.010 .000];

case 5

x_in = [-.110 .100]; %(5)

1.3. SIMULAZIONI MATLAB 13

x_fin = [.110 .100];

end

%% PIANIFICAZIONE

str_plan = ’Pianificazione ai giunti’

th_in = cininv_MP2( x_in , conf_in ); % angoli iniziali

th_fin = cininv_MP2( x_fin , conf_fin ); % angoli fianli

for i = 1:2

[t,thr(:,i),thrp(:,i),thrpp(:,i),cc,str_traj ] = traj_pp(th_in(i),th_fin(i),T,int_type,param );

end

%% dati motore

dati_motore

%% FORZE

x0pp = 1.1250; % ACCELERAZIONE BASE vedi dimens_motore_Step

% assunta costante su tutto il tratto per valutare il caso peggiore

P_Totale = 1.0778; %massa totale manipolatore e sostegno per movim. orizzontale

Tacc = t<=param(1);

Tdec = (t>param(1)&t>(T-param(2)));

x0ppreal = x0pp*Tacc - x0pp*Tdec; %accelerazione e decelerazione come da trapezioidale

%---------------------------------------------------------------------

% aG2 = accelerazione baricentro link 2

aG2= -a(1).*[(thrp(:,1).^2).*cos(thr(:,1)) (thrp(:,1).^2).*sin(thr(:,1))];

+a(1).*[-thrpp(:,1).*sin(thr(:,1)) thrpp(:,1).*cos(thr(:,1))];

-L(2).*[((thrp(:,1)+thrp(:,2)).^2).*cos(thr(:,1)+thr(:,2)) %riga success.

((thrp(:,1)+thrp(:,2)).^2).*sin(thr(:,1)+thr(:,2))];

+ L(2).*[-(thrpp(:,1)+thrpp(:,2)).*sin(thr(:,1)+thr(:,2)) %riga success.

(thrpp(:,1)+thrpp(:,2)).*cos(thr(:,1)+thr(:,2))];

% in 22 aggiunta accelerazione della base

aG22 = aG2 + [x0ppreal 0*x0ppreal]

R22 = m(2)*aG22

R2 = m(2)*aG2; % forza agente sul giunto rotoidale 2

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% aG1 = accelerazione baricentro link 1

ag1 = -L(1).*[(thrp(:,1).^2).*cos(thr(:,1)) (thrp(:,1).^2).*sin(thr(:,1))]

aG1 = ag1 +L(1).*[-thrpp(:,1).*sin(thr(:,1)) thrpp(:,1).*cos(thr(:,1))];

% in 11 aggiunta accelerazione della base

aG11 = aG1 + [x0ppreal 0*x0ppreal]

R11 = R22 + m(1)*aG11;

R1 = R2 + m(1)*aG1; % forza agente sul giunto rotoidale 1

%% DINAMICA INVERSA

C1_pp1r = ( IO(1) + m(2)*(a(1)^2) + IO(2) + 2*m(2)*a(1)*L(2)*cos(thr(:,2)) ).*thrpp(:,1);

C1_pp2r = ( IO(2) + m(2)*a(1)*L(2)*cos(thr(:,2)) ).*thrpp(:,2);

C1_p2r = -m(2)*a(1)*L(2)*sin(thr(:,2)).*(thrp(:,2).^2);

C1_p12r = -2*m(2)*a(1)*L(2)*sin(thr(:,2)).*thrp(:,1).*thrp(:,2);

commenti (0)
non sono stati rilasciati commenti
scrivi tu il primo!
Questa è solo un'anteprima
3 pagine mostrate su 73 totali
Scarica il documento