Simulazione dinamica meccanismo
Buongiorno a tutti, sono alle prese con un problema di simulazione dinamica di un meccanismo, un quadrilatero articolato (ho messo l'immagine come testo nascosto perchè è grandina), e volevo chiedervi un consiglio per come superare un problema che ho riscontrato.
Nel mio primo tentativo di risoluzione ho espresso la cinematica del meccanismo in funzione dell'angolo tra l'asta 1 e l'orizzontale (lo chiamerò $\varphi_1$), poi ho ricavato le equazioni di Lagrange, e mettendo tutto in matlab (o scilab) dando le condizioni iniziali ($\varphi_1|_{t=0}$, $\dot \varphi_1|_{t=0}$) ho ricavato la legge oraria del moto $\varphi_1(t)$.
Il mio problema è che durante il moto il punto $B$ potrebbe essere in uno o nell'altro dei due semipiani definiti dalla retta $AO_2$ . Dunque la posizione di $B$ in funzione della coordinata libera è definita da due funzioni diverse $B_1(\varphi_1)$ e $B_2(\varphi_1)$, e di conseguenza tutta la dinamica e le equazioni di Lagrange vanno riformulate nell'uno e nell'altro caso.
Quando il punto nel moto $B$ passa da un semipiano all'altro bisognerebbe trovare un sistema di far funzionare comunque la simulazione, nonostante il fatto che l'equazione che descrive la dinamica non è più la stessa.
Nella simulazione dinamica non sono rari problemi di questo tipo, dunque non credo di essere il primo ad esserselo posto, e volevo chiedervi se esistono già degli approcci formalizzati che permettono di gestire questi casi con relativa semplicità.
PS: Sono settimane che cerco su internet senza successo, giuro che faccio una statua a chi riesce a darmi una dritta
Nel mio primo tentativo di risoluzione ho espresso la cinematica del meccanismo in funzione dell'angolo tra l'asta 1 e l'orizzontale (lo chiamerò $\varphi_1$), poi ho ricavato le equazioni di Lagrange, e mettendo tutto in matlab (o scilab) dando le condizioni iniziali ($\varphi_1|_{t=0}$, $\dot \varphi_1|_{t=0}$) ho ricavato la legge oraria del moto $\varphi_1(t)$.
Il mio problema è che durante il moto il punto $B$ potrebbe essere in uno o nell'altro dei due semipiani definiti dalla retta $AO_2$ . Dunque la posizione di $B$ in funzione della coordinata libera è definita da due funzioni diverse $B_1(\varphi_1)$ e $B_2(\varphi_1)$, e di conseguenza tutta la dinamica e le equazioni di Lagrange vanno riformulate nell'uno e nell'altro caso.
Quando il punto nel moto $B$ passa da un semipiano all'altro bisognerebbe trovare un sistema di far funzionare comunque la simulazione, nonostante il fatto che l'equazione che descrive la dinamica non è più la stessa.
Nella simulazione dinamica non sono rari problemi di questo tipo, dunque non credo di essere il primo ad esserselo posto, e volevo chiedervi se esistono già degli approcci formalizzati che permettono di gestire questi casi con relativa semplicità.
PS: Sono settimane che cerco su internet senza successo, giuro che faccio una statua a chi riesce a darmi una dritta


Risposte
Ciao, credo che Ingegneria sia la sezione più appropriata. In ogni caso ci sono altri forum più ingegneristici in cui sicuramente troverai aiuto!
Ok, sposto in Ingegneria.
Ah scusate, io consideravo il problema come Meccanica Razionale, per questo l'ho postato in quella sezione...Ho provato a chiedere qui perchè so che ci sono utenti molto disponibili ad aiutarti, in altri forum non è sempre così

Non sono proprio ferrato in materia. Tuttavia, dato che dovrebbe essere un meccanismo tra i più studiati, immagino non si riesca ad evitare questo inconveniente mediante un'opportuna scelta della coordinata Lagrangiana. Puoi confermarlo? Se così fosse, si potrebbe passare da un'equazione del moto all'altra quando, numericamente, ci si rende conto che ciò è necessario. Quindi imporre le nuove condizioni iniziali in base ai risultati dell'ultima iterazione.
Vedo che sei giunto alle mie stesse conclusioni
Per quanto riguarda la scelta della coordinata Lagrangiana ci ho pensato a lungo ed ho fatto diverse prove, ma non credo sia possibile trovarne una che risolva il problema.
Invece passare da un'equazione all'altra secondo me potrebbe essere una cosa fattibile, ma il problema principale è il seguente:
data una configurazione iniziale inserisco le condizioni iniziali e calcolo il movimento; quando però supero la posizione in cui andrebbe cambiata l'equazione i risultati che ottengo diventano complessi (perchè l'equazione non ha più senso nella nuova configurazione).
Per gestire il cambio di equazione dovrei calcolare le condizioni iniziali per la seconda equazione nella configurazione dove avviene il cambio, per poi risolverla, ma è praticamente impossibile che il metodo che risolve la prima equazione differenziale riesca proprio ad "azzecare" quel punto, in genere farà la stima sempre un po'prima o un po'dopo. Quindi non saprei cosa mettere come condizioni iniziali per la seconda equazione

Per quanto riguarda la scelta della coordinata Lagrangiana ci ho pensato a lungo ed ho fatto diverse prove, ma non credo sia possibile trovarne una che risolva il problema.
Invece passare da un'equazione all'altra secondo me potrebbe essere una cosa fattibile, ma il problema principale è il seguente:
data una configurazione iniziale inserisco le condizioni iniziali e calcolo il movimento; quando però supero la posizione in cui andrebbe cambiata l'equazione i risultati che ottengo diventano complessi (perchè l'equazione non ha più senso nella nuova configurazione).
Per gestire il cambio di equazione dovrei calcolare le condizioni iniziali per la seconda equazione nella configurazione dove avviene il cambio, per poi risolverla, ma è praticamente impossibile che il metodo che risolve la prima equazione differenziale riesca proprio ad "azzecare" quel punto, in genere farà la stima sempre un po'prima o un po'dopo. Quindi non saprei cosa mettere come condizioni iniziali per la seconda equazione

"anonymous_ed8f11":
Per quanto riguarda la scelta della coordinata Lagrangiana ci ho pensato a lungo ed ho fatto diverse prove, ma non credo sia possibile trovarne una che risolva il problema.
Ripeto, mi sembra strano che questa ricerca sia lasciata all'interessato. Se esiste una scelta per evitare il problema, dovresti trovarla su almeno un manuale.
"anonymous_ed8f11":
Per gestire il cambio di equazione dovrei calcolare le condizioni iniziali per la seconda equazione nella configurazione dove avviene il cambio, per poi risolverla, ma è praticamente impossibile che il metodo che risolve la prima equazione differenziale riesca proprio ad "azzecare" quel punto, in genere farà la stima sempre un po' prima o un po' dopo. Quindi non saprei cosa mettere come condizioni iniziali per la seconda equazione.
Il problema non è certamente semplice, si tratta di calcolo numerico. Tuttavia, esiste sicuramente un metodo che ti permetta di capire se devi passare all'altra equazione del moto, anche considerando le incertezze relative alla discretizzazione. Ovviamente, una volta appurata questa necessità, anche le nuove condizioni iniziali saranno soggette ad un'incertezza. Questo potrebbe essere un problema. Se il comportamento del sistema fosse caotico, cioè molto sensibile alle condizioni iniziali, le complicazioni aumenterebbero ulteriormente. Non credo sia il tuo caso, o almeno te lo auguro. In ogni modo, mi sembra strano che queste problematiche non siano affrontate, anche dal punto di vista del calcolo numerico, da qualche parte. Dovresti provare a consultare dei testi specifici, per esempio andando in biblioteca presso la tua Università.