MECCANICA e DINTORNI

COSTRUIAMO LE NOSTRE CNC DIVERTENDOCI CON L'AIUTO DI TANTI PROFESSIONISTI ESPERTI
Oggi è gio mar 28, 2024 10:29

Tutti gli orari sono UTC +1 ora




Apri un nuovo argomento Rispondi all’argomento  [ 138 messaggi ]  Vai alla pagina Precedente  1 ... 5, 6, 7, 8, 9, 10  Prossimo
Autore Messaggio
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer apr 12, 2017 10:21 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: mar mar 23, 2010 22:18
Messaggi: 41202
Località: Artena(Roma)
tra quelle poche parole di italiano che avete scritto voi e quelle che non conosce Davide , sarà difficile stabilire chi ha ragione :lld:

_________________
la democrazia funziona fino a quando fate quello che dico io!
Mc Mazzafrusten meccanico mannaro
il riparatore di riparazioni
er robin hood de no'antri
tagliatore scelto di puntarelle
http://www.lievitoedintorni.it/phpbb/index.php


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer apr 12, 2017 10:29 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: mer ott 07, 2015 09:11
Messaggi: 1726
Località: Lastra a Signa (Firenze)
:risatina: :risatina: :risatina:

_________________
Alberto Bianchi
Le mie 'rumente', Tornio: Mi-Bo; Fresatrici: Fervi T044, Rumag REV1S, CST L1; Tavola rotante: Vertex HV8; Divisori: BS-0 & Yantai FNL100B; Trapano: Caber BO6; Forno a muffola; Segatrice Axel 4"x6"; Affila-bulini Parpas AU.


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer apr 12, 2017 10:57 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: mer ott 07, 2015 09:11
Messaggi: 1726
Località: Lastra a Signa (Firenze)
Max io in questi casi per deteminare quanto tempo impiega una routine ciclica e di conseguenza quanto ne rimane per il resto del programma (a priorità più bassa)
uso semplicemente un I/O (out) di servizio e l'oscilloscopio, alzando l'uscita all'inizio del ciclo critico e abbassandola alla fine, così vedo bene i tempi al netto di eventuali timer sw e printf varie; specialmente in ambiente RTOS dove ci sono processi concorrenti.
In questo modo mi rendo conto anche dell' eventuale jitter temporale e della sua entità.

Visto che esiste una libreria PID (tre versioni) della Keil (ARM) non vedo perché andare ad usare un porting di una cosa proveniente da Arduino... (che tra l'altro ha un discreto numero di fork il che mi fa sospettare che tanto perfetta non sia)
Un micro a 8 bit che gestisce numeri reali è estremamente lento per cui i tempi di di ciclo del PID sono espressi in secondi o al massimo decimi di sec.
Io ne feci uno qualche anno fa su un ATMega48 che aveva un ciclo di 1mS ma per essere veloce (così da lasciare sufficiente spazio al resto del programma) utilizzava interi scalati

Comunque la modalità auto, se ho capito bene, serve a fare in modo che quando cambi i coefficienti PID al volo, l'errore corrente venga opportunamente scalato, in automatico, per evitare perturbazioni nel segnale d'uscita.

Prova a dare un'occhiata qui per le librerie kail https://stm32f4-discovery.net/2014/11/project-03-stm32f4xx-pid-controller/
Il ciclo computazionale del pid lo devi agganciare a un interrupt periodico (periferica timer) ad alta priorità.

Per tracciare dei grafici sul PC, dalle grandezze in gioco, per vederne l'andamento nel tempo (ovviamente segnali relativamente lenti), in modo pratico e veloce uso il programma StampPlot che si interfaccia con la seriale del micro.
Ne esiste una versione Lite free che è più che sufficiente https://www.parallax.com/downloads/stampplot-lite-software Credo che potrà tornarti utile.

_________________
Alberto Bianchi
Le mie 'rumente', Tornio: Mi-Bo; Fresatrici: Fervi T044, Rumag REV1S, CST L1; Tavola rotante: Vertex HV8; Divisori: BS-0 & Yantai FNL100B; Trapano: Caber BO6; Forno a muffola; Segatrice Axel 4"x6"; Affila-bulini Parpas AU.


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer apr 12, 2017 11:37 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: lun feb 29, 2016 11:29
Messaggi: 13594
Località: Ustica & Dintorni saltuariamente Bologna o Pesaro
quoto onorino ... :rotfl: :rotfl: :rotfl:

_________________
Gli errori sono per i principianti, noi esperti puntiamo al disastro !!!
Le conoscenze acquisite, sono proporzionali al DANNO PRODOTTO !!! ( esperienza personale...)
youtube



Immagine 2°socio TIRATOSAURO CLUB ITALIAN


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: dom lug 16, 2017 14:01 
Non connesso
APPRENDISTA E ADDETTO ALLE PULIZIE
Avatar utente

Iscritto il: gio dic 16, 2010 19:30
Messaggi: 38
Località: Imperia
Dopo due pagine di lettura, avrò bisogno di sei mesi di meditazione profonda.

Mi avete scombussolato il C'hi

_________________
A.D. della Sballengrossen Muggestrassen Vanibraudy Stukkenburgo.


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer gen 24, 2018 00:50 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: mer set 14, 2016 20:53
Messaggi: 1212
Località: Salerno
McMax ha scritto:
Codice:
    PID CurrentIn; //definisco un PID
    float out;
    uint16_t inizio, fine;       
    Timer conta;  //definisco un timer
    while (1) {
        conta.reset(); //resetto il timer
        conta.start(); //faccio partire il timer
        inizio = conta.read_us(); //memorizzo posizione del timer
        out = CurrentIn.compute(); //eseguo il calcolo PID
        fine = conta.read_us() - inizio; //calcolo tempo impiegato
        PC.printf("calcolo PID richiede %dus\n",fine); //visualizzo tempo impiegato
    }

Risultato: 2us
Così ad occhio mi pare che ci siamo, anche considerando che la printf è abbastanza pesante di suo. Certo sulla pulsazione da 200us non ho tantissima risoluzione ma direi sufficiente.



scusate il quote ma con argomentazioni tecniche è d'obbligo.
Max, il timer è la print credo siano estremamente pesanti. per avere un valore reale protesti metterei la definizione del timer e la printf fuori dal while, fai 100 iterazioni esci, stoppi il timer e fai stampare il valore.. dovresti avere un valore maggiormente rispecchiante la realtà (almeno credo)

secondo me quasi la metà del tempo si perde a a inizializzare il timer e a stampare la printf
fermo restante che se son daccordo con albi serve un rtc

Alby praticamente tu per misurare una funzione usi il sistema descritto nel seguente link, ho capito bene?
https://www.carminenoviello.com/2015/09 ... nds-stm32/
bel sistema, anche se nn programmo hardware, me lo segno.. !!

_________________
Musco lapis volutus non obducitur:
Mutatum saxum nequit ullum ducere muscum:


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer gen 24, 2018 15:59 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: mer ott 07, 2015 09:11
Messaggi: 1726
Località: Lastra a Signa (Firenze)
Ciao, per quanto suggerivi a max penso che l'overhead introdotto dall'inizializzazione del timer non sia particolarmente significativo mentre la printf è una brutta bestia, nel senso che esistono tante implementazionei diverse più o meno veloci e che occupano più o meno memoria.
Personalmente cerco di usarle solo quando non se ne può fare a meno. Nel caso specifico anch'io l'avrei messa fuori del loop.

Si, con STM32 uso sempre un RT/OS (ChibiOs) e siccome in ambiente multithread non è possibile usare loop bloccanti perché fermano tutti i threads attivi, uso l'oscilloscopio per misurare i tempi di esecuzione e anche per avere un idea del jitter, cioè periodo di ripetizione di una data funzione, che non è sempre uguale perché dipende anche dal tempo di esecuzione degli altri threads che hanno priorità più alta.
In genere sulle schede che uso, lascio sempre qualche I/O di riserva per dedicarlo a queste funzioncine di debug.

_________________
Alberto Bianchi
Le mie 'rumente', Tornio: Mi-Bo; Fresatrici: Fervi T044, Rumag REV1S, CST L1; Tavola rotante: Vertex HV8; Divisori: BS-0 & Yantai FNL100B; Trapano: Caber BO6; Forno a muffola; Segatrice Axel 4"x6"; Affila-bulini Parpas AU.


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer gen 24, 2018 17:50 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
Ciao Albi, correggimi se sbaglio, anch’io misuro la durata della routine di interruzione, esattamente come fai tu. Ma in questo modo non si tiene conto del tempo che il micro utilizza per i salvataggi prima e il ripristino dopo l’interruzione. Tempo che comunque credo estremamente breve.

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer gen 24, 2018 20:06 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: mer set 14, 2016 20:53
Messaggi: 1212
Località: Salerno
@alby il timer secondo me è una brutta bestia come la printf, secondo me se porta fuori dal loop dimezza i tempi!! io userei il tuo metodo, ma sempre FUORI dal loop, cosi avrei una stima veramente reale

_________________
Musco lapis volutus non obducitur:
Mutatum saxum nequit ullum ducere muscum:


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: mer gen 24, 2018 20:47 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: mer ott 07, 2015 09:11
Messaggi: 1726
Località: Lastra a Signa (Firenze)
Massimo, se ti riferisci alle operazioni di pop e push dei registri, sono poche e comunque quantificabili con precisione in pochi cicli macchia per cui li puoi sempre aggiungere d'ufficio alle misure effettuate.
Comunque, la misura con l'oscilloscopio la uso non solo per vedere il tempo di esecuzione del codice di una isr ma anche per controllare, in generale, il tempo di esecuzione di blocchi critici, per esempio quando si fa uso intenso di operazoni a virgla mobile.

@FraPaola, di solito per questi timer ci si appoggia ad una periferica 'timer' per cui il funzionamento in hardware è del tutto trasparente rispetto al codice in esecuzione.

Una precisazione... alby non sono io, è un' altro utente! si fa spesso confusione. :???:

_________________
Alberto Bianchi
Le mie 'rumente', Tornio: Mi-Bo; Fresatrici: Fervi T044, Rumag REV1S, CST L1; Tavola rotante: Vertex HV8; Divisori: BS-0 & Yantai FNL100B; Trapano: Caber BO6; Forno a muffola; Segatrice Axel 4"x6"; Affila-bulini Parpas AU.


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: gio gen 25, 2018 07:08 
Non connesso
TORNITORE E FRESATORE

Iscritto il: dom dic 27, 2009 11:31
Messaggi: 1140
Località: Torre del Greco (NA)
Ok, grazie per la precisazione.

_________________
Solo gli stupidi non cambiano mai idea!

Tornio Wabeco D6000 con ELS; Fresa Wabeco F1210; Segatrice Nebes TM125 Inverter; Tavola a dividere Vertex HV-6,Morsa meccnica Allen MAP/78-N

https://www.youtube.com/watch?v=cobEZI8KvOk


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: gio gen 25, 2018 07:25 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8842
Località: Bussero (MI)
FraPaola, il sistema delle 100 interazioni in effetti è interessante, così si avrebbe una media più verosimile. Vorrei però far notare che si, è vero che la printf sta nel ciclo, ma è altrettanto vero che il timer viene fatto partire prima dell'istruzione da misurare e fermato subito dopo, quindi non importa quanto la printf impiega in esecuzione perché il timer è fermo.

_________________
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: gio gen 25, 2018 14:13 
Non connesso
TORNITORE E FRESATORE
Avatar utente

Iscritto il: mer set 14, 2016 20:53
Messaggi: 1212
Località: Salerno
Premesso che non sono un'esperto del settore ma permettimi una considerazione
Considerando che l'ordine con cui esegui un'algoritmo non è quello con cui l'hai scritto, il compilatore nell'atto di tradurlo in linguaggio macchina associa ad ogni istruzione un peso e una priorità, theaddizzando quanto più possibile, una sorta di time sharing dei processi.. quindi non ci è dato sapere se quel timer viene "inzializzato" prima o dopo di quell'istruzione o durante, si parla di operazioni così veloci che un minimo spostamento sbalza i valori.
Io farei così, farei ad esempio 1000 misurazioni (possibilmente utilizzando un RTC), toglierei le 100 misure con i tempi + alti, le 100 con il tempo più bassi e farei una media del restante..
ovviamente tale test ha un valore quanto + significato quanto maggiore sono il numero di iterazioni, ma la vedo l'unica per conoscere un valore quanto meno attendibile!!.

Albi, scusa se ti ho chiamato Alby :)

_________________
Musco lapis volutus non obducitur:
Mutatum saxum nequit ullum ducere muscum:


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: gio gen 25, 2018 14:43 
Non connesso
CAPO OFFICINA

Iscritto il: dom nov 06, 2011 17:34
Messaggi: 32784
Località: Napoli
Oh, non approfondite troppo che rischiate di andare in loop e neppure i "mastuggiorgio" di Villa Camaldoli vi tireranno fuori. :mrgreen:

Per i non campani... http://www.napoligrafia.it/tradizioni/m ... iorgio.htm


Top
 Profilo  
 
 Oggetto del messaggio: Re: nuovo controller Mc Raban basato su STM32 Nucleo
MessaggioInviato: gio gen 25, 2018 15:47 
Non connesso
CAPO OFFICINA
Avatar utente

Iscritto il: dom gen 31, 2010 21:46
Messaggi: 8842
Località: Bussero (MI)
No aspetta.... questo non è un sistema operativo è un codice ad esecuzione sequenziale quindi il timer parte quando gli dico di partire e si ferma quando gli dico di fermarsi! La printf viene eseguita una volta che il timer è fermo, questo è scritto nel codice ed è quello che il compilatore farà.
Poi ripeto, il discorso tuo della media ha senso ma per altri motivi, non certo perché il compilatore si prende la libertà di invertire l'esecuzione dei comandi.... cosa che in questo tipo di codici NON avviene.

_________________
McMax

“None of us can change the things we’ve done. But we can all change what we do next.” – Fred Johnson

fulminato in tenera età


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 138 messaggi ]  Vai alla pagina Precedente  1 ... 5, 6, 7, 8, 9, 10  Prossimo

Tutti gli orari sono UTC +1 ora


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduzione Italiana phpBB.it