comigr Posted March 30, 2017 Author Report Share Posted March 30, 2017 ok . ma devo fare tutto io? Link to comment Share on other sites More sharing options...
Livio Orsini Posted March 30, 2017 Report Share Posted March 30, 2017 E chi se no? Link to comment Share on other sites More sharing options...
comigr Posted April 12, 2017 Author Report Share Posted April 12, 2017 utilizzare un ritardo sw al posto del prescaler ha controindicazioni?inoltre visto che l interrupt interviene sui fronti ,se introduco un ritardo superiore all arrivo di un secondo fronte , cosa succede allo svolgimento del programma? interviene nuovemte l, interrupt.oppure.... finisce la routine e salta questo nuovo commando . scusa se sono forse noioso.ma ho sempre poco tempo per fermarmi a provare.quindi le simulazioni le faccio in auto.....mentalmente. .....mentre guido...Grazie Link to comment Share on other sites More sharing options...
Livio Orsini Posted April 12, 2017 Report Share Posted April 12, 2017 Quote utilizzare un ritardo sw al posto del prescaler Francamente questo non riesco a capirla Quote interviene nuovemte l, interrupt.oppure.... finisce la routine e salta Dipende da come è fatto lo Hw ed il Sw. Cerco di chiarire con un esempio. Se hai 2 interrupt concomitanti il dispositivo serve per primo l'interrupt di priorità più alta. La priorità è stabilita nel vettore di interrupt; può essere fissa, variabile o una combinazione delle due condizioni. Questo dipende dal dispositivo che si sta usando. Devi studiarti il manuale del PIC che stai usando. CI sarà un capitolo specifico che tratta gli interrupts e la loro organizzazione. Poi dipende anche da come è scritto il Sw. Se la prima istruzione della routine di servizio è DIsable Interrupts, qualsiasi interrupt si presenti dopo questa istruzione, se non è del tipo non mascherabile, sarà pendente in attesa dell'istruzione che riabilita gli interrupt. Se la routine di servizio risultasse di esecuzione troppo lunga si creerebbe una coda di interrupt, il rpcessore loopperebbe per eseguire solo le routines di servizio, sino a che andrebbe a lavorare in locazioni di memoria errate e/o ritornerebbe a passare per la locazione iniziale con reelativo reset del programma. Usare gli interrupts è sempre un'operazione delicata, perchè un errore di programamzione potrebbe portarti in loop perversi da cui è difficile euscirne, specie se si ha scarsa esperienza. Link to comment Share on other sites More sharing options...
comigr Posted April 12, 2017 Author Report Share Posted April 12, 2017 ok. approfondisco. per ora GRAZIE Link to comment Share on other sites More sharing options...
comigr Posted April 16, 2017 Author Report Share Posted April 16, 2017 ok ,per ora sembra funzionare.... ho lasciato il sw che gestiva gli interrupt un momentino da parte. ho utilizzato un ingresso come gestore di pass per lo zero e ho creato dei ritardi programmabili con input est. quindi ora gestisco parecchie velocità, con dei ponticelli. Problema: ora ho la necessità di associare l'impostazione velocità con la tensione di riferimento della tachimetrica. visto che ,ad un inserimento di un ponticello corrisponde un ritardo, due ponticelli due ritardi ,ecc, pensavo di utilizzare un gruppo di partitori .quindi inserendo un ponticello inserisco una resistenza ,2 ponticelli 2 res e cosi via, cercando (sperando) di trovare il valore corretto. Oppure? si accetta no consigli. Grazie ancora. e buona Pasqua. Link to comment Share on other sites More sharing options...
Livio Orsini Posted April 17, 2017 Report Share Posted April 17, 2017 Scusa ma hai gli ingressi analogici. COn uno misuri la tensione di un potenziometro, con un altro misuri la reazione. Il problema è poi fare il regolatore con feedbeck, quello non lo puoi fare con i ritardi. Link to comment Share on other sites More sharing options...
comigr Posted April 17, 2017 Author Report Share Posted April 17, 2017 quello che utilizzavo e avevo in casa non aveva ing analogici... va bene cambio... mentre per il feedback pensavo di ridurre i ritardi ,e ritornare al prefissato non appena ho raggiunto la velocità prefissata..... Link to comment Share on other sites More sharing options...
Livio Orsini Posted April 17, 2017 Report Share Posted April 17, 2017 Lento come un bradipo, con precisione +/- 4 spanne. Chi si contenta gode; coì, così. Link to comment Share on other sites More sharing options...
comigr Posted April 27, 2017 Author Report Share Posted April 27, 2017 ok per ora. ho messo in pratica i consigli che mi avete dato. il motore sotto carico funziona abbastanza bene . a vuoto non è il max perché accellera per poi aspettare di aver raggiunto la velocità di riferimento,impostato da tachimetrica. meno lento di un bradipo che va di fretta...... Ho utilizzato un preset per il motore ,ho controllato la tachimetriica raddrizzata,comparata con una tensione di rif e OPERAZIONALE ,( non avevo un pic con An),corregendo il ritardo per l'innesco del triac...ora viene il complicato.....per me. Velocizzare il controllo. ...........me . Link to comment Share on other sites More sharing options...
comigr Posted April 28, 2017 Author Report Share Posted April 28, 2017 Non è vero che ho messo in pratica tutto.Non ho messo in pratica l'algoritmo tipo PID. piccolo dettaglio...... si accettano suggerimenti per ...... Link to comment Share on other sites More sharing options...
Livio Orsini Posted April 28, 2017 Report Share Posted April 28, 2017 Tu devi dare un ritardo proporzionale alla tensione che vuoi dare al motore affinchè la sua velocità sia simile a quella che desideri. Più preciso è il ritardo di accensione, migliore sarà la precisone di velocità Poi fai un regolatore PI, che va a correggere il ritardo in funzione dell'errore di velocità misurato. TIeni presente che l'intera semionda dura 10ms, quindi il tuo regolatore per avere senso, oltre ad essere sincrono con il passaggio per lo zero della sinusoide, deve essere risolto in un tempo inferiore a 100µs, me è già al limite. Suggerimenti non possone essere tanti. Fai partire la regolazione con l'interrupt della rivelazione del passaggio per lo zero, butta fuori subito la correzione calcolata nel precedente ciclo e calcola la nuova correzione proporzionale ed integrale. Se non sai come si realizza un PI(D) leggi il mio tutorial sui controlli, il link alla didattica è nella mia firma ed il tutorial lo trovi nella sezione "elettrotecnica". Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now