• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Leggi altro.

Simulink...Simulazione di un sistema

aRaKaNoiD

Utente poco attivo
Professione: bho
Software: Matlab
Regione: Sicilia
#1
Salve a tutti,
devo realizzare una simulazione del seguente sistema. Praticamente potete immaginare di avere un attuatore lineare e un sensore lineare ( LVDT per esempio). Il sensore comunica la posizione dello stelo dell attuatore ad un microcontrollore che fa in modo tale che a seconda della posizione dello stelo dell attuatore generi una forza differente...
Cioè se l attuatore si trova in posizione1 spinge con una forza F1
se l attuatore si trova in posizione2 spinge con una forza F2
ecc ecc...

vista la reperibilità e i costi maggiori dell attuatore lineare devo usare un attuatore rotativo ( in particolare mi è stato assegnato il motore in corrente continua ) e poi ci sarà un sistema dotato di riduttore, di una catena e di una barra dentata che converterà il moto rotativo in un moto lineare. Ok fatta questa breve introduzione adesso andiamo al problema che ho riscontrato nella realizzazione della simulazione.
Il motore in questione da come output:
Speed wm
Armature current ia
Field current if
Electrical torque Te
Come faccio a sapere la posizione angolare?
Avevo pensato a un sensore capacitivo da mettere sull albero motore? xò non sono riuscito a trovare il sensore capacitivo nella libreria.
Ho trovato l'encoder incrementale ( " Incremental Shaft Encoder " ) ma non sono riuscito a utilizzarlo perchè non ho capito bene cosa ci va in input ( ha 2 input )
Mechanical rotational conserving port associated with the sensor positive probe.
Mechanical rotational conserving port associated with the sensor negative (reference) probe.

C'è qualcuno che riesce a darmi una mano?
 
Professione: Ingegnere
Software: Alcuni, ma non tutti
Regione: Campania
#2
Ho trovato l'encoder incrementale ( " Incremental Shaft Encoder " ) ma non sono riuscito a utilizzarlo perchè non ho capito bene cosa ci va in input ( ha 2 input )
Mechanical rotational conserving port associated with the sensor positive probe.
Mechanical rotational conserving port associated with the sensor negative (reference) probe.
Ma visto che si parla solo di simulazione, e visto che hai la velocità, non ti conviene integrarla, così ottieni direttamente la posizione?
 

aRaKaNoiD

Utente poco attivo
Professione: bho
Software: Matlab
Regione: Sicilia
#3
Perfetto ho fatto come mi hai suggerito! :)
Ora c'è un altro problema...Data la posizione angolare come faccio a trovare quella lineare?
io avevo pensato cosi:
v=r*w ( con v velocita lineare, r raggio riduttore, w velocita angolare )
a questo punto integro v e ottengo la posizione lineare?
 
Professione: Ingegnere
Software: Alcuni, ma non tutti
Regione: Campania
#4
v=r*w ( con v velocita lineare, r raggio riduttore, w velocita angolare )
a questo punto integro v e ottengo la posizione lineare?
cos'è il raggio riduttore?
r è la distanza tra la primitiva della ruota ed il suo centro.

Per il resto, ok, a meno di inserire la costante di integrazione corretta, ovvero la posizione lineare ad angolo zero.
 

aRaKaNoiD

Utente poco attivo
Professione: bho
Software: Matlab
Regione: Sicilia
#5
intendevo il raggio della ruota...
ho realizzato anche quest'ultima parte...ora però non ho idea di come limitare il movimento della barra dentata.
Cioè dal punto di vista pratico si potrebbe mettere un sensore di prossimità quando si attiva questo mi da un segnale in uscita che posso utilizzare per staccare l alimentazione del motore...xò in simulink una soluzione più veloce?
 
Professione: Ingegnere
Software: Alcuni, ma non tutti
Regione: Campania
#6
intendevo il raggio della ruota...
ho realizzato anche quest'ultima parte...ora però non ho idea di come limitare il movimento della barra dentata.
Cioè dal punto di vista pratico si potrebbe mettere un sensore di prossimità quando si attiva questo mi da un segnale in uscita che posso utilizzare per staccare l alimentazione del motore...xò in simulink una soluzione più veloce?
Eh...dipende come hai organizzato lo schema.
Io farei passare l'alimentazione del motore dentro un interruttore. L'interruttore viene "staccato" da un blocco comparatore che confronta la posizione con il valore del finecorsa.

Attenzione però, così non realizzi la rampa di decelerazione...
 

aRaKaNoiD

Utente poco attivo
Professione: bho
Software: Matlab
Regione: Sicilia
#7
Perfetto...Provo a fare come dici tu...
La rampa di decelerazione non è importante perchè la velocità è molto bassa quindi non dovrebbe notarsi!!!

Grazie per tutto provo e ti faccio sapere
 

aRaKaNoiD

Utente poco attivo
Professione: bho
Software: Matlab
Regione: Sicilia
#8
ho trovato un problema usando " Ideal Switch "
Praticamente se passo da 0 a 1 ovvero da stato OFF a ON funziona... però nella transizione da 1 a 0 non funziona come mi aspetto...
Ho anche provato facendo una simulazione più semplice
ovvero Generatore di tensione in serie allo switch e il carico in parallelo alla serie formata da Generatore e switch
e il risultato è sempre quello

Se mando separatamente prima uno 0 per tutta la simulazione all ingresso che attiva o meno lo switch funziona
se mando un 1 per tutta la simulazione all ingresso che attiva o meno lo switch funziona
se mando una transizione da 0 a 1 con uno step continua a funzionare correttamente
se mando una transizione da 1 a 0 non funziona per come mi aspetto...

Se hai bisogno ti posto qualche plot...

Cmq forse sto sbagliando a usare questo blocco...forse non è questo quello che ci va...
A me servirebbe un interrutore che se gli arriva un uno faccia da cortocircuito se mi arriva uno 0 faccia da circuito aperto...
 
Professione: Ingegnere
Software: Alcuni, ma non tutti
Regione: Campania
#9
Mai incontrato un problema simile...
E se lo switch lo metti dopo il motore in modo da "sganciarlo"?

Potresti aggirare il problema con un blocco funzione in cui scrivi del codice che faccia quello che ti aspetti dallo switch.
 

aRaKaNoiD

Utente poco attivo
Professione: bho
Software: Matlab
Regione: Sicilia
#10
Non ho capito dove vuoi che provo a mettere lo switch...cioè dopo il motore...però non capisco...
cmq credo che il problema sia in snubber resistance e snubber capacitance

che valori dovrei mettere? Io ho lasciato quelli di default...forse è li l'errore?

( il codice matlab non so usarlo :( )
 

aRaKaNoiD

Utente poco attivo
Professione: bho
Software: Matlab
Regione: Sicilia
#12
lo step quando arriva a 2 secondi passa dal valore 1 a 0


quindi io mi aspettavo un comportamento come quello in scope xò dopo 2 secondi doveva andare a 0...

Ho provato con un breaker...cn lo switch dava un andamento peggiore :O
 

Allegati

Ultima modifica da un moderatore: