Project75 Inserito: 17 marzo 2021 Segnala Share Inserito: 17 marzo 2021 Buona sera, qualcuno mi potrebbe suggerire un modo per poter ottimizzare al meglio un PID? L'ottimizzazione iniziale e quella finale di siemens è da prendere in considerazione? O è meglio ottimizzare manualmente? Insomma vorrei, sempre gentilmente e per cortesia, una guida per ottimizzare al meglio, anche un link. Grazie mille. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 18 marzo 2021 Segnala Share Inserita: 18 marzo 2021 (modificato) Purtroppo attualmente, causa noto incendio, non sono disponibili i files in didattica. Vedo di recuperare il mio tutorial sulle regolazioni dove si descrivono le regole generali di ottimizzazione di un PID. Comunque detto in modo stringato, l'ottimizzazione di un PID si sviluppa in 3 fasi principali. Si escludono le parti integrale e derivativo; si parte con un proporzionale basso. Si da un gradino di riferimento di circa il 10% e si osserva il comportamento dell'uscita. Si incrementa gradualmente il guadagno sino a che la risposta inizia ad essere instabile. Si diminuice leggermente il guadagno. Si parte con un tempo di integrazione lungo, si ripetono le operazioni del punto 1 riducendo progressivamente il tempo di integrazione. Si inserisce un guadagno derivativo piccolo, si ripetono le operazioni del punto 1 aumentando progressivamente il peso del derivativo. Modificato: 18 marzo 2021 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 18 marzo 2021 Autore Segnala Share Inserita: 18 marzo 2021 8 ore fa, Livio Orsini scrisse: Si da un gradino di riferimento di circa il 10% e si osserva il comportamento dell'uscita. Il 10% del set_point? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 18 marzo 2021 Segnala Share Inserita: 18 marzo 2021 2 minuti fa, Project75 scrisse: Il 10% del set_point? No, si deve usare un gradino di riferimento il cui valore corrisponde a circa il 10% del valore massimo del riferimento. Esempio se il riferimento varia tra 0 e 10V si da un gradino di 1V. Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 18 marzo 2021 Autore Segnala Share Inserita: 18 marzo 2021 31 minuti fa, Livio Orsini scrisse: No, si deve usare un gradino di riferimento il cui valore corrisponde a circa il 10% del valore massimo del riferimento. Esempio se il riferimento varia tra 0 e 10V si da un gradino di 1V. Quindi se 0v=0 litri e 10v=1000 litri, devo impostare il set_point a 100 litri? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 18 marzo 2021 Segnala Share Inserita: 18 marzo 2021 (modificato) 41 minuti fa, Project75 scrisse: Quindi se 0v=0 litri e 10v=1000 litri, devo impostare il set_point a 100 litri? Se quello è il tuo valore di riferimento, si. Tieni presente che 10% è un dato puramente indicativo; la filosofia di ottimizzazzione è basata sulla risposta al gradino. Si usa, generalmente un gradino pari al 10% del riferimento per comodità. Si potrebbe anche usare una variazione a gradino della reazione, oppure sovrapporre un gradino di variazione ad un riferimento costante. Il gradino può anche essere di altra entità. La cosa veramente importante è che si applichi una variazione a gradino. L'ottimizzazione ideale media è quella la cui risposta ha un poco di sovra e sotto elongazione, ovvero il fattore di smorzamento "xsi" è pari a 0.707. Questo è il miglior compromesso tra stabilità e velocità di risposta. Un valore di "xsi" maggiore, diminuisce le oscillazioni, ma rallenta la risposta; viceversa diminuendo il fattore di smorzamento la risposta è più rapida ma si hanno molte più oscillazioni. Questo è il diagramma di una risposta al gradino din un regolatore PID con fattore di smorzamento di 0.707 Questo è il mio tutotorial sulle regolazioni, leggilo così ti fai un'idea di cosa è un regolatore PID Modificato: 18 marzo 2021 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 18 marzo 2021 Autore Segnala Share Inserita: 18 marzo 2021 Grazie mille Livio. Ma l'ottimizzazione iniziale e finale che ti permette di fare siemens, va bene o no? Perché tanti la sconsigliano? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 19 marzo 2021 Segnala Share Inserita: 19 marzo 2021 11 ore fa, Project75 scrisse: siemens, va bene o no? Questo non lo so, non ho mai usato i reglatori Siemens; anche con i PLC Siemens ho sempre ustato i miei Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 19 marzo 2021 Autore Segnala Share Inserita: 19 marzo 2021 1 ora fa, Livio Orsini scrisse: Questo non lo so, non ho mai usato i reglatori Siemens; anche con i PLC Siemens ho sempre ustato i miei Suppongo blocchi artigianali fatti da te, giusto? ...... Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 19 marzo 2021 Segnala Share Inserita: 19 marzo 2021 10 minuti fa, Project75 scrisse: Suppongo blocchi artigianali fatti da te, giusto? ... Cosa intendi per "artigianali"? Senza alcuna falsa modestia i miei regolatori sono ottimi regolatori, professionali, studiati e progettati secondo quanto previsto dalla teoria della regolazione, ottimizzati in funzione del tipo di processo da controllare. I regolatori di libreria, salvo casi particolari, sono progettati per impieghi generali, quindi con prestazioni che, in alcuni casi, non sono ottimali. Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 20 marzo 2021 Autore Segnala Share Inserita: 20 marzo 2021 il 19/3/2021 at 08:50 , Livio Orsini scrisse: i miei regolatori sono ottimi regolatori, professionali, studiati e progettati secondo quanto previsto dalla teoria della regolazione Di questo sono sicuro, ho detto artigianali in quanto alcuni dicono di aver progettato dei blocchi con le stesse funzioni dei pid siemens, proprio perché con quest'ultimi non si trovavano bene. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 21 marzo 2021 Segnala Share Inserita: 21 marzo 2021 se vuoi puoi guardare un P.I. che ho scrittoio anni fa. Ho aggiunto anche la parte derivativa che se ti da fastidio la togli. E' previsto un duty cycle, uscita con Relè statico ed analogica. Guardalo e studialo, l'avevo scritto per S7-300, con pochi accorgimenti lo puoi riportare in TIA Portal. FUNCTION_BLOCK FB80 // Digital regulator P.I.D Written by Walter P - Milan - Italy 05/06/2009 VAR_INPUT Set_Point:REAL ; // Set point value Feedback:REAL ; // Feedback value process Kp:REAL; // K Proportional gain Ki:REAL; // K Integral gain Kd:REAL; // K Derivative gain Max_Analog:REAL; // Maximum value for analog output Max_Time_Cycle:REAL; // Maximum time cycle for PWM digital output (milliseconds) Scan_Time:REAL; // Scanning time of the plc Time_Sample:REAL; // Time sample in OB35 Enable:BOOL; // Enable PWM digital P.I.D. Reset:BOOL; // Reset regulator // Call this function in OB35 every 100-150 mS. Temperature regulation is fine. END_VAR LABEL salto; end_label VAR_IN_OUT END_VAR VAR_OUTPUT Out_Analog_Reg:REAL ; // Output analog regulation Duty_Cycle_Perc:REAL; // Duty cycle On percentage Wave_On_PWM:BOOL; // Output high wave On of digital PWM Wave_Off_PWM:BOOL; // Output low wave On of digital PWM END_VAR VAR_TEMP END_VAR VAR Error:REAL ; // Error for each scan I_Ist:REAL; // Istant I:REAL ; // Integral memory D:REAL; // DErivative value P:REAL; // Proportional component Last_Error:REAL; // Error of previous scan Accu_Timer:REAL; // Timer Accumulator for the duty cycle PWM Thr_Wave_On:REAL; // Threshold for the wave ON Thr_Wave_Off:REAL; // Threshold for the wave OFF Wave_On:BOOL; // Wave On Wave_Off:BOOL; // Wave Off END_VAR BEGIN Error:=Set_Point - Feedback ; P:=Error * Kp * 1000.0 ; I_Ist:=Error * Ki; I:=I + I_Ist ; IF I <= 0.0 THEN I:=0.0; END_IF; IF I >= Max_Analog*0.8 THEN I:=Max_Analog*0.8; END_IF ; D:= (Error - Last_Error) * Kd; Last_Error:=Error; IF Enable=true THEN Out_Analog_Reg:=P + I + D; END_IF; IF Reset THEN P:=0.0; I:=0.0; I_Ist:=0.0; D:=0.0; Out_Analog_Reg:=0.0; Wave_On:=false; Wave_Off:=false; Accu_Timer:=0.0; END_IF; IF Out_Analog_Reg >= Max_Analog THEN Out_Analog_Reg:=Max_Analog;END_IF; IF Out_Analog_Reg <= 0.0 THEN Out_Analog_Reg:=0.0; END_IF; // STATE OF ENDED MACHINE TO GENERATE THE WAVE SQUARED ON AND OFF OF THE PWM Thr_Wave_On:= (Max_Time_Cycle / Max_Analog) * Out_Analog_Reg; Thr_Wave_Off:=Max_Analog - Thr_Wave_On; IF Accu_Timer=0.0 AND Enable THEN Wave_On:=true; Wave_Off:=false; END_IF; IF Wave_On=true THEN Accu_Timer:=Accu_Timer + Time_Sample; Duty_Cycle_Perc:=(Thr_Wave_On / Max_Time_Cycle) * 100.0; IF Accu_Timer >= Thr_Wave_On THEN Wave_On:=false; Wave_Off:=true; END_IF; END_IF; IF Wave_Off=true THEN Accu_Timer:=Accu_Timer + Time_Sample; IF Accu_Timer >= Max_Time_Cycle THEN Wave_Off:=false; Accu_Timer:=0.0; GOTO salto ; END_IF; END_IF; salto: Wave_On_PWM:= Wave_On AND Thr_Wave_On>= 1000.0; Wave_Off_PWM:=Wave_Off ; ; END_FUNCTION_BLOCK Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 21 marzo 2021 Autore Segnala Share Inserita: 21 marzo 2021 (modificato) 2 ore fa, walterword scrisse: se vuoi puoi guardare un P.I. che ho scrittoio anni fa. Ho aggiunto anche la parte derivativa che se ti da fastidio la togli. E' previsto un duty cycle, uscita con Relè statico ed analogica. Guardalo e studialo, l'avevo scritto per S7-300, con pochi accorgimenti lo puoi riportare in TIA Portal. Purtroppo non uso SCL, mi verrebbe un po difficile adattare a tia portal, proverò. Una domanda.... quindi è meglio crearsi da se un pid per avere una buona un'ottimizzazione ? Modificato: 21 marzo 2021 da Project75 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 21 marzo 2021 Segnala Share Inserita: 21 marzo 2021 23 minuti fa, Project75 scrisse: quindi è meglio crearsi da se un pid per avere una buona un'ottimizzazione ? Premessa: per progettare un regolatore è indispensabile dominare bene il problema ed avere nuone basi teoriche. L'uso dei regolatori di libreria può consentire dei risultati ottimi in circa il 75% delle applicazioni; se ci si accontenta di risultato buoni la percentule può arrivare anche al 90%. Però tutto è subordinato ad una buona ottimizzazione del regolatore stesso. Per poter ottimizzare bene il regolatore bisogna avere un minimo di conoscenza delle problematiche di regolazione e controllo. Inoltre è indispensabile conoscere bene il regolatore ch si andrà ad usare. Per questo motivo è indispensabile studiarsi bne ed approfonditamente il manuale. Puoi prendere il miglior regolatore possibile, ma se non sai cosa stai facendo e come va usato ed ottimizzato i risultati saranno sempre scadenti. Purtroppo non esistono scorciatoie, per poter fare certi lavori bisogna imparare. Dal forum si possono ottenere consigli, ma il grosso del lavoro devi farlo tu. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 21 marzo 2021 Segnala Share Inserita: 21 marzo 2021 (modificato) Niente è meglio di quello che si prova sulla propria pelle. E' chiaro che devi studiare la teoria etc etc etc Se poi non capisci un linguaggio strutturato vicino al linguaggio dell'uomo allora......hai ancora tanto da capire e studiare. Per adattarlo al TIa Portal non devi fare altro che dichiarare le variabili nella tendina piuttosto che nel file. Per il codice copi e incolli e guardi cosa succede. Questo è un approccio vero e reale visto che tutti i giorni sei qua a chiedere cose di qualsiasi tipo.... Comunque il codice è li sopra a disposizione di chiunque. ciao Modificato: 21 marzo 2021 da walterword Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 21 marzo 2021 Autore Segnala Share Inserita: 21 marzo 2021 1 ora fa, walterword scrisse: Se poi non capisci un linguaggio strutturato vicino al linguaggio dell'uomo allora......hai ancora tanto da capire e studiare. Infatti ho ancora tanto da imparare, se mai si inizia mai si arriva. Grazie mille a tutti 1 ora fa, walterword scrisse: Per adattarlo al TIa Portal non devi fare altro che dichiarare le variabili nella tendina piuttosto che nel file Dal momento che non capisco questo linguaggio, potresti spiegarmi più dettagliatamente? Grazie ancora Link al commento Condividi su altri siti More sharing options...
batta Inserita: 22 marzo 2021 Segnala Share Inserita: 22 marzo 2021 14 ore fa, Project75 scrisse: quindi è meglio crearsi da se un pid per avere una buona un'ottimizzazione ? I PID di libreria Siemens funzionano benissimo per tutte le comuni regolazioni. Il PID è un algoritmo praticamente standard. Se tu imposti lo stesso calcolo su due calcolatrici, avrai sempre il medesimo risultato. Se l'algoritmo usato è lo stesso, un PID Siemens ti darà lo stesso risultato di un qualsiasi altro PID. Poi, se ci si crea un regolatore personalizzato, si possono apportare modifiche all'algoritmo standard, ma qui si entra in un campo piuttosto complesso. Per sapere se ti conviene usare il PID Siemens o se hai bisogno di un regolatore specifico per il tuo caso, dovremmo almeno sapere cosa ci devi fare, con questo PID. In ogni caso, se prima non impari ad usare un PID di libreria, come puoi pensare di costruirti un regolatore con caratteristiche specifiche? Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 22 marzo 2021 Autore Segnala Share Inserita: 22 marzo 2021 31 minuti fa, batta scrisse: I PID di libreria Siemens funzionano benissimo per tutte le comuni regolazioni. Il PID è un algoritmo praticamente standard. Se tu imposti lo stesso calcolo su due calcolatrici, avrai sempre il medesimo risultato. Se l'algoritmo usato è lo stesso, un PID Siemens ti darà lo stesso risultato di un qualsiasi altro PID. Poi, se ci si crea un regolatore personalizzato, si possono apportare modifiche all'algoritmo standard, ma qui si entra in un campo piuttosto complesso. Per sapere se ti conviene usare il PID Siemens o se hai bisogno di un regolatore specifico per il tuo caso, dovremmo almeno sapere cosa ci devi fare, con questo PID. In ogni caso, se prima non impari ad usare un PID di libreria, come puoi pensare di costruirti un regolatore con caratteristiche specifiche? Grazie batta, ne dico una, ho da regolare una Valvola modulante a 1 metro cubo l'ora, misuratore di portata con range 0/50 metro cubo. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 22 marzo 2021 Segnala Share Inserita: 22 marzo 2021 37 minuti fa, Project75 scrisse: Grazie batta, ne dico una, ho da regolare una Valvola modulante a 1 metro cubo l'ora, misuratore di portata con range 0/50 metro cubo Detto così ... non da alcuna indicazione. Potrebbe funzionare bene con un PID scolastico come potrebbe essere necessario un regolatore sofisticatissimo. Dipende dall'intero processo, dalle precisioni richieste e dai tempi di risposta necessari Comunque concordo con quantoscive Batta. Prima dovresti almeno conoscere gli elementi fondamentali dellaregolazione, poi conoscere abbastanza bene come usare il regolatore di libreria. Dopo, se i risultati non sono sufficienti, potresti pensare a farti un tuo regolatore specifico. 1 ora fa, batta scrisse: un PID Siemens ti darà lo stesso risultato di un qualsiasi altro PID. Su questo sono d'accordo solo in parte. Diciamo, tanto per dare delle indicazioni, che nel 70% delle applicazioni potrebbe anche essere così, nell'altro 30% un regolatore studiato ad hoc darà prestazioni migliori in precisione e velocità di risposta. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 22 marzo 2021 Segnala Share Inserita: 22 marzo 2021 (modificato) Si certo ho usato anche io FB41 e compagnia bella. Funzionano senza problemi. Con il vecchio 200 i PID erano ancora più veloci e semplici del 300/400 Facevo riscaldamenti e raffreddamenti , peccato che i progettisti del sistema mettevano la termocoppia sul tubo di mandata acqua calda invece di metterlo sul corpo da riscaldare. In questo la regolazione va a farsi benedire, dopo qualche settimana l'avevano capita. Modificato: 22 marzo 2021 da walterword Link al commento Condividi su altri siti More sharing options...
Adelino Rossi Inserita: 22 marzo 2021 Segnala Share Inserita: 22 marzo 2021 Quote ho da regolare una Valvola modulante a 1 metro cubo l'ora, misuratore di portata con range 0/50 metro cubo. Senza entrare nel merito dei pid, anche la valvola è dimensionata per un campo 0-50mc? Hai l'impianto per 50mc e lo vuoi regolare pid a 1mc? Link al commento Condividi su altri siti More sharing options...
Project75 Inserita: 22 marzo 2021 Autore Segnala Share Inserita: 22 marzo 2021 Praticamente e un impianto di depurazione, l'acqua, con un unico tubo, per caduta, deva andare in due vasche, in una deve andare 1 metro cubo la restante parte, 9 metri cubi, nell'altra. Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 22 marzo 2021 Segnala Share Inserita: 22 marzo 2021 (modificato) applicazione che rientra nel dominio dei dosaggi. Ti basta lavorare bene con il proporzionale seguendo le specifiche di Clint e poi lavorare sul integrale inteso come memoria etc I parametri dipendono dalla distanza che c'e' tra la valvola di immissione acqua e le vasche. L'integrale ti permette di chiudere in anticipo prima che la quantità sia superiore o inferiore , devi fare delle prove reali per impostare bene i parametri. Evidentemente devi avere un feedback sui livelli delle due vasche o tanks che essi siano. Questo lo ottieni con sensori di livello analogici opportunamente scalati e normalizzati per quelli che sono i parametri di SetPoint etc Modificato: 22 marzo 2021 da walterword Link al commento Condividi su altri siti More sharing options...
STEU Inserita: 23 marzo 2021 Segnala Share Inserita: 23 marzo 2021 Ciao Walterword ho studiato il tuo PID, volevo farti un paio di domande se permetti. 1) Perchè nel proporzionale moltiplichi per 1000? 2)L'utilizzo di questo PID va bene per la regolazione delle temperarture? 3)Può andare bene in base alla tua esperienza per la regolazione in velocità (NON posizione) di un motore? grazie Link al commento Condividi su altri siti More sharing options...
walterword Inserita: 23 marzo 2021 Segnala Share Inserita: 23 marzo 2021 (modificato) il pid che ho scritto è nato proprio per temperature che venivano gestite da termoregolatori commerciali, fori nel quadro etc. Per la temperatura spacca il decimo. Moltiplico per 1000 perchè inserisco un proporzionale in ordine di grandezza basso , tipo 1.7 , 2.5 Per portarlo in range dei 27000 e rotti o 16648 lo moltiplico per 1000 Modificato: 23 marzo 2021 da walterword Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora