annuncio

Comprimi
Ancora nessun annuncio.

controllo pid e quadricottero

Comprimi
X
  • Filtro
  • Ora
  • Visualizza
Elimina tutto
nuovi messaggi

  • #61
    Originariamente inviato da mfciril Visualizza il messaggio
    beh il problema non erano i segnali pwm, ma il giroscopio penso che si stia guastando. Improvvisamente l'arm si blocca mentre va a leggere i dati. Mi sa che dovrò sostituirlo. Nonostante ciò, dato che l'accelerometro mi restituisce valori molto affidabili, mi sono azzardato comunque a provare il primo volo ed indovinate un pò?
    il risultato è un elica rotta e un braccio del quadricottero spezzato
    Pensavo che la parte difficile fosse passata, invece, a questo punto penso che tarare i pid sia davvero una bella rogna. A questo punto penso che sistemerò al meglio il quadri per riprovare il tutto, prima di rimetterlo a nuovo.
    Qualche idea su come tarare i pid senza rompere qualcos'altro?
    Non puoi volare solo con l'accelerometro e te ne sei accorto...
    L'acc e' troppo sensibile alle vibrazioni e non c'e' pid che tenga.
    Quadricottero News
    http://www.facebook.com/Quadricottero

    Commenta


    • #62
      Ciao, sono anche io con l'aiuto di un mio compagno alle prese con la costruzione di un quadricottero partendo da 0.
      A differenza tua utilizzo un micro PIC18f452, sono uno studente di 5 superiore itis elettronica e porto questo progetto come tesina d'esame. Dopo questa minipresentazione completamente inutile passiamo ai fatti
      Partendo dal presupposto che adesso ho quasi finito ma ho problemi ad ottenere una stabilizzazione davvero stabile posso spiegtare come ho raggiunto questo traguardo.
      Per provare l'algoritmo pid senza distruggere tutto ho costruito un supporto con 2 perni opposti che si infilano direttamente delle braccia del quadricottero, in questo modo riesco a vincolare un asse e a utilizzare solo l'altro. Poi tramite interfaccia seriale RS232 comunico dal computer i parametri e aquisisco il grafico delle correzioni dal PIC, per comodità ho suddiviso il PIC in 3 valori differenti P I D e poi sommati tutti insieme solo in un secondo momento. cosi facendo dopo un po di prove sono riuscito ad ottenere una stabilizzazione alquanto decente.


      Adesso ho un problema diverso, a caso mentre volo il quadricottero sbanda all'improvviso, ma sempre soltanto dopo che vola da un po... non credo sia un problema software... piuttosto è possibile sia causato da cali di alimentazione? uso 4 ESC 20 amp con una batteria da 3 celle 2200ma con scarica 25C... che ci sia qualche problema sul collegamento batteria esc? ho utilizzato dei comunissimi mammoth da impianti elettrici...

      la struttura
      Ultima modifica di santelelle; 08 giugno 12, 21:52.

      Commenta


      • #63
        Originariamente inviato da danveal Visualizza il messaggio
        Non puoi volare solo con l'accelerometro e te ne sei accorto...
        L'acc e' troppo sensibile alle vibrazioni e non c'e' pid che tenga.
        Penso che il problema non sia le vibrazioni poichè prima di farlo volare ho visto l'andamento degli angoli anche a motori accesi e le vibrazioni non influenzano troppo le misure (variano solo la 2 e a volte la prima cifra decimale). Ho usato un filtro passa basso a ca 50Hz direttamente impostato nell'accelerometro e un filtro digitale implementato in software. Penso che il problema principale sia il PID dato che il quad si è ribaltato a causa della saturazione di un motore ad alta velocità.
        http://www.aepwebmasters.it

        Commenta


        • #64
          soprattutto ho un problema di fluttuazione attorno al valore di setpoint senza nessuna perturbazione, anche io utilizzo un filtro complementare con gyro e acc a 100 hz... quale dei parametri dovrei cambiare?

          Commenta


          • #65
            Originariamente inviato da mfciril Visualizza il messaggio
            Penso che il problema non sia le vibrazioni poichè prima di farlo volare ho visto l'andamento degli angoli anche a motori accesi e le vibrazioni non influenzano troppo le misure (variano solo la 2 e a volte la prima cifra decimale). Ho usato un filtro passa basso a ca 50Hz direttamente impostato nell'accelerometro e un filtro digitale implementato in software. Penso che il problema principale sia il PID dato che il quad si è ribaltato a causa della saturazione di un motore ad alta velocità.
            A vista e sullo schermo non puoi valutare quello che viene interpretato dal micro perche sullo schermo e' tutto piu lento.
            Se riesci a volare solo con l'accelerometro sarai il primo al mondo che ci e' riuscito, e io mi daro' all' Ippica R/C
            Quadricottero News
            http://www.facebook.com/Quadricottero

            Commenta


            • #66
              Originariamente inviato da santelelle Visualizza il messaggio
              soprattutto ho un problema di fluttuazione attorno al valore di setpoint senza nessuna perturbazione, anche io utilizzo un filtro complementare con gyro e acc a 100 hz... quale dei parametri dovrei cambiare?
              Bel lavoro complimenti, usi un PID completo quindi anche con l' Intengrale?
              Presumo di si. Lo sbandamento dopo un po di tempo potrebbe essere dovuto alla mancanza di windup sull'integrale o se e' presente al fatto che e' troppo alto.
              windup = integral limit = errore massimo ammesso oltre al quale non fare andare I.

              Se hai una pertubazione attorno al setpoint non stai usando valori di K troppo alti?
              Se pero' all'inizio e per un periodo vola senza oscillazioni i valori di K sono corretti, altrimenti oscillerebbe subito

              Ciao
              Quadricottero News
              http://www.facebook.com/Quadricottero

              Commenta


              • #67
                Originariamente inviato da danveal Visualizza il messaggio
                A vista e sullo schermo non puoi valutare quello che viene interpretato dal micro perche sullo schermo e' tutto piu lento.
                Se riesci a volare solo con l'accelerometro sarai il primo al mondo che ci e' riuscito, e io mi daro' all' Ippica R/C
                dato che a questo punto penso di dover comprare un gyro nuovo, cosa mi consigli? come accelerometro uso il bma180 e mi trovo abbastanza bene, mentre il mio vecchio gyro è un itg3200. sono in dubbio se comprare una nuova imu con anche un magnetometro...

                @santelelle: grazie per la dritta. penso che farò anche io una struttura simile. che sensori usi?
                http://www.aepwebmasters.it

                Commenta


                • #68
                  Originariamente inviato da danveal Visualizza il messaggio
                  Bel lavoro complimenti, usi un PID completo quindi anche con l' Intengrale?
                  Presumo di si. Lo sbandamento dopo un po di tempo potrebbe essere dovuto alla mancanza di windup sull'integrale o se e' presente al fatto che e' troppo alto.
                  windup = integral limit = errore massimo ammesso oltre al quale non fare andare I.

                  Se hai una pertubazione attorno al setpoint non stai usando valori di K troppo alti?
                  Se pero' all'inizio e per un periodo vola senza oscillazioni i valori di K sono corretti, altrimenti oscillerebbe subito

                  Ciao
                  Cavolo questo non l'avevo pensato, provvedo ad aggiungerlo! Avevo solo predisposto un cap massimo per l'integrale. Grazie
                  Comunque quando lo faccio volare (a parte gli sbandi improvvisi causati da fonti ignote) all'inizio sta abbastanza stabile però va in giro parecchio... questo perchè non è cosi stabile attorno allo 0... Ho anche provato a bilanciarlo bene ma niente, forse dovrei aumentare l'integrale? Abbassare il baricentro?

                  Commenta


                  • #69
                    Originariamente inviato da mfciril Visualizza il messaggio
                    dato che a questo punto penso di dover comprare un gyro nuovo, cosa mi consigli? come accelerometro uso il bma180 e mi trovo abbastanza bene, mentre il mio vecchio gyro è un itg3200. sono in dubbio se comprare una nuova imu con anche un magnetometro...

                    @santelelle: grazie per la dritta. penso che farò anche io una struttura simile. che sensori usi?
                    un giroscopio L3G4200D e un accelerometro ADXL345

                    Commenta


                    • #70
                      Originariamente inviato da mfciril Visualizza il messaggio
                      dato che a questo punto penso di dover comprare un gyro nuovo, cosa mi consigli? come accelerometro uso il bma180 e mi trovo abbastanza bene, mentre il mio vecchio gyro è un itg3200. sono in dubbio se comprare una nuova imu con anche un magnetometro...

                      @santelelle: grazie per la dritta. penso che farò anche io una struttura simile. che sensori usi?
                      Ma secondo te come mai si e' rotto? io ho 2 3200 + 3 itg3205 che e' la versione custom e mai avuto problemi.
                      Se non vuoi andare sugli analogici non c'e' molta scelta se non vuoi avventurarti a sperimentare giro nuovi che poi magari hanno frequenza di taglio coincidente con le vibrazioni e quindi non vanno bene, come riferimento fatti un giro su drotek.fr, tutti i sensori e imu che hanno vanno bene per i nostri scopi.
                      Quadricottero News
                      http://www.facebook.com/Quadricottero

                      Commenta


                      • #71
                        Originariamente inviato da santelelle Visualizza il messaggio
                        Cavolo questo non l'avevo pensato, provvedo ad aggiungerlo! Avevo solo predisposto un cap massimo per l'integrale. Grazie
                        Comunque quando lo faccio volare (a parte gli sbandi improvvisi causati da fonti ignote) all'inizio sta abbastanza stabile però va in giro parecchio... questo perchè non è cosi stabile attorno allo 0... Ho anche provato a bilanciarlo bene ma niente, forse dovrei aumentare l'integrale? Abbassare il baricentro?
                        Forse e' mancanza di P dovresti provare ad alzarlo eventualmente abbassando I.
                        Tra l'altro se tieni I molto basso puoi verificare se ancora dopo un po di tempo ti fa le variazioni che dici, se non le fa significa che la causa probabilmente e' la mancanza di windup.

                        Per trovare i valori giusti fai cosi, mantieni I e D a zero ( D a zero se riesci altrimenti tienilo a un valore medio basso ) e vola solo con P(ed eventualmente D ) fino a quando non inizia ad oscillare. Appena oscilla abbassa il P di qualche punto e aumenta I, tenendo presente che P e I sono legati non puoi averli tutti e due troppo alti se aumenti uno devi tenere basso / medio l'altro.
                        Ultima modifica di danveal; 08 giugno 12, 22:45.
                        Quadricottero News
                        http://www.facebook.com/Quadricottero

                        Commenta


                        • #72
                          Originariamente inviato da mfciril Visualizza il messaggio
                          dato che a questo punto penso di dover comprare un gyro nuovo, cosa mi consigli? come accelerometro uso il bma180 e mi trovo abbastanza bene, mentre il mio vecchio gyro è un itg3200. sono in dubbio se comprare una nuova imu con anche un magnetometro...

                          @santelelle: grazie per la dritta. penso che farò anche io una struttura simile. che sensori usi?
                          Ciao

                          se vuoi spendere poco e puoi aspettare 15-20 giorni che ti arrivino:

                          eBay Italia - Aste online e shopping a prezzo fisso

                          10 DOF IMU 9 axis sensor module L3G4200D ADXL345 HMC5883L BMP085 x 1 | eBay

                          Ciao

                          Diego

                          Commenta


                          • #73
                            Originariamente inviato da danveal Visualizza il messaggio
                            Ma secondo te come mai si e' rotto? io ho 2 3200 + 3 itg3205 che e' la versione custom e mai avuto problemi.
                            Se non vuoi andare sugli analogici non c'e' molta scelta se non vuoi avventurarti a sperimentare giro nuovi che poi magari hanno frequenza di taglio coincidente con le vibrazioni e quindi non vanno bene, come riferimento fatti un giro su drotek.fr, tutti i sensori e imu che hanno vanno bene per i nostri scopi.
                            Io ho una imu con accelerometro e gyro comprata da drotek e devo dirti che non mi sono trovato tanto bene: la prima non funzionava proprio e dopo la sostituzione pensavo che i problemi fossero risolti fino ad oggi però. Nei giorni scorsi mi sono accorto che il gyro è più sensibile sulle rotazioni antiorarie attorno all'asse x rispetto a quelle orarie e non mi spiego il motivo. Oggi poi dopo aver montato tutto il quadri per la prima prova di volo si è iniziato a bloccare poco dopo che iniziavo la lettura dei dati. Suppongo che sia il gyro poichè l'accelerometro lo interrogo sulla stessa porta I2C senza problemi. Penso che l'ARM si blocchi sulla routine di lettura e non penso che quest'ultima sia errata poichè funzionava fino a pochi giorni fa e tutt'ora, anche se per poco tempo, funziona prima che l'ARM si blocchi.
                            http://www.aepwebmasters.it

                            Commenta


                            • #74
                              oggi sto facendo un pò di debug per capire dove l'mcu si ferma nella lettura del gyro. Beh sono riuscito a capire che il punto è sempre lo stesso: quando invio l'indirizzo del registro da cui andare a leggere è come se il gyro non mi mandasse l'ack e quindi l'arm si ferma nel ciclo seguente che controlla se l'indirizzo è stato inviato. Per intenderci, nella routine seguente l'mcu si ferma nel while prima del printf("7"). Cosa può essere? Devo davvero acquistare un sensore nuovo? Ci tengo ad aggiungere che la maggior parte delle volte che accade, per far riprendere il funzionamento dopo aver riavviato l'ARM devo scollegare il sensore dall'alimentazione e ricollegarlo.

                              while(I2C_GetFlagStatus (I2C1, I2C_FLAG_BUSY));
                              printf("4");
                              /* Send START condition */
                              I2C_GenerateSTART (I2C1, ENABLE);

                              /* Test on EV5 and clear it */
                              while (!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));
                              printf("5");
                              /* In the case of a single data transfer disable ACK before reading the data */

                              /* Send I2C address for write */
                              I2C_Send7bitAddress(I2C1, ITG3200_SLAVE_ADDR, I2C_Direction_Transmitter);

                              /* Test on EV6 and clear it */
                              while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));
                              printf("6");
                              /* Send the EEPROM's internal address to write to */
                              I2C_SendData(I2C1, addr);
                              /* Test on EV8 and clear it */
                              while (!I2C_CheckEvent (I2C1, I2C_EVENT_MASTER_BYTE_TRANSMITTED));
                              printf("7");
                              /* Send STRAT condition a second time */
                              I2C_GenerateSTART (I2C1, ENABLE);
                              /* Test on EV5 and clear it */
                              while (!I2C_CheckEvent (I2C1, I2C_EVENT_MASTER_MODE_SELECT));
                              printf("8");
                              /* Send EEPROM address for read */
                              I2C_Send7bitAddress (I2C1, ITG3200_SLAVE_ADDR, I2C_Direction_Receiver);
                              /* Test on EV6 and clear it */
                              while (!I2C_CheckEvent (I2C1, I2C_EVENT_MASTER_RECEIVER_MODE_SELECTED));
                              printf("9");
                              http://www.aepwebmasters.it

                              Commenta


                              • #75
                                @mfciril
                                Hai percaso messo qualche condensatore tra alimentazione e massa del giroscopio? Perchè anche io avevo problemi simili e ho bestemmiato settimane prima di risolvere saldando sotto alla basetta un condensatore da 100u direttamente sui piedini VCC e GND del gyro, perchè credo la tensione fornita dagli esc sia tutto fuorchè stabile e gli integrati vanno in autooscillazione, se riesci mettine anche uno da 1u all'ingresso dell'alimentazione... Spero ti possa essere utile.

                                Commenta

                                Sto operando...
                                X