Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati?
Dopo più di un anno dal primo test drive ci siamo rimessi al volante della Renault 5 E-Tech Electric, questa volta utilizzandola come prima auto per circa due settimane. Scoprite con noi se il progetto convince ancora
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix
Un proiettore economico, che fa della portabilità e immediatezza i suoi punti di forza. Adatto per una camera da letto o per la casa vacanze, è basato su sistema proprietario Linux ma offre piena compatibilità ufficiale a Netflix
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
ASUS ProArt GoPro Edition è il notebook compatto per chi crea
Un notebook sviluppato in collaborazione con GoPro ma che risponde al meglio alle necessità di tutti coloro che creano contenuti video: robustezza, design, potenza di calcolo e funzionalità si abbinano al meglio tra di loro, pur se a prezzo di un costo elevato per via della tanta memoria onboard
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 14-03-2006, 09:41   #1
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
[c++] integrazione numerica? come si fa?

sto implementando un sistema di controllo a controreazione con blocchetti integratori "1/s" in c++ (se non capite di che parlo è lo stesso: andate avanti a leggere):

c'è una funzione y=f(x) di cui NON conosco l'equazione MA conosco che valore (chiamiamolo y) assume ogni tempuscolo dt=64millisecondi.

quindi
t=0 ---> y1
t=64 -->y2
t=128 --y3

Non mi pare che in c++ esista una funzione per integrare (o sbaglio)?


Io devo trovare quanto vale l'integrale della funzione in quegli stessi tempuscoli (t=0, t=64,....) ma tenendo conto che va fatto in tempo reale.

Ad esempio se voglio l'integrale al tempuscolo t=128 io conosco

t1=0 e relativo y1=3
t2=64 e relativo y2=2
t3=128 e relativo y3=4

-------------|
-|-----------|
-|----|------|
-|----|------|
t1----t2----t3

come calcolo integrale(t1-->t3)????


mi è venuto in mente di farlo con le aree.

tra t1 e t2 prendo un area avente base 64 (il tempuscolo) e come altezza "la media tra y1 e y2" ovvero tra y1=3 e y2=2 cioè altezza 2.5

quindi area(t1-->t2)=64*2.5

Poi faccio la stessa cosa tra t2 e t3 dove l'area avrà altezza "la media tra y2 e y3" ovvero tra y2=2 e y3=4 cioè altezza 3

quindi area(t2-->t3)=64*3

quindi integrale(t1-->t3)=area(t1-->t2)+area(t2-->t3)=
=64*2.5+64*3


Posso fare in questo modo?
Oppure è un metodo spuntato, grezzo e c'è un altro modo migliore per farlo in c++?
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2006, 10:38   #2
shinya
Senior Member
 
L'Avatar di shinya
 
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
Cerca "Numerical Recipes in C" su google. E' un libro distribuito gratuitamente, ed è la bibbia per quanto riguarda i metodi numerici. Mi pare di ricordare un capitolo sui metodi di integrazione (Simpson e via discorrendo se la memoria non mi fa cilecca).
shinya è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2006, 10:47   #3
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da shinya
Cerca "Numerical Recipes in C" su google. E' un libro distribuito gratuitamente, ed è la bibbia per quanto riguarda i metodi numerici. Mi pare di ricordare un capitolo sui metodi di integrazione (Simpson e via discorrendo se la memoria non mi fa cilecca).
Posso sbagliarmi, ma non e' distribuito gratuitamente.
Ad ogni modo, e' un libro che non puo' mancare nella biblioteca di un informatico, a maggior ragione di un controllista.

Tornando al problema: sicuro che ti serva davvero? Il controllo che stai implementando e' praticamente un pid, l'integrazione proposta dovrebbe essere piu' che sufficiente. A meno che questo sia parte di un controllo piu' ampio...


High Flying
Sottovento
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2006, 11:05   #4
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
io ho fatto una cosa del genere
//INTEGRAZIONE GRAFICA AD AREE

//faccio integrale di dotx (=x) e sommare a x precedente per avere nuovo x
//1)calcolo l'areola tra questa interazione e la precedente
integrale_dotx=MILLISECONDI*((dotx-dotx_precedente)/2);
//2)poi devo sommare a tute le areole precedenti già oltrepassate per avere integrale totale
x=x+integrale_dotx;
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2006, 11:28   #5
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Con i trapezi ?

http://it.wikipedia.org/wiki/Regola_del_trapezio
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2006, 12:17   #6
vermaccio
Senior Member
 
L'Avatar di vermaccio
 
Iscritto dal: Sep 2001
Città: Roma
Messaggi: 2141
si. è quella che ho usato io. la regola dei trapezi. non me ne ricordavo il nome e l'ho chiamata "metodo delle aree" hehehe
__________________
..strisc...strisc...oooooOOoooO
http://digilander.iol.it/pentiumII Navi da battaglia giapponesi classe Yamato WWII
vermaccio è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2006, 12:31   #7
crick_pitomba
Member
 
Iscritto dal: Oct 1999
Messaggi: 111
da quello che ricordo dall'esame di analisi numerica, i metodi di integrazione ti consentono di calcolare una stima di un integrale definito a partire da una funzione.

nel tuo caso non hai una funzione da integrare quindi hai due strade

1)interpoli i dati in una funzione e calcoli l'integrale della funzione ottenuta con i metodi dell'analisi numerica

2)calcoli, come hai giustamente pensato, di fare l'integrale come somme di aree. imho quesa è la soluzione che fornisce risultati più accurati. ovviamente se puoi diminuire ulteriormente il valore dell'intervallo ottieni risultati sempre più accurati

Del resto il processo di integrazione secondo riemann è proprio un calcolo di rettangoloidi facendo tendere la base a zero...
crick_pitomba è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2006, 12:37   #8
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da crick_pitomba
1)interpoli i dati in una funzione e calcoli l'integrale della funzione ottenuta con i metodi dell'analisi numerica
Infatti il metodo dei trapezi fa un'interpolazione unendo due punti in cui è definita la funzione con una retta...
cionci è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Renault 5 elettrica al giudizio definitivo: solo stupore iniziale o premi meritati? Renault 5 elettrica al giudizio definitivo: solo...
HONOR CHOICE Projector Air Pro: piccolo, portatile e con Netflix HONOR CHOICE Projector Air Pro: piccolo, portati...
ASUS ProArt GoPro Edition è il notebook compatto per chi crea ASUS ProArt GoPro Edition è il notebook c...
Fable e Sol a confronto: due cartoni animati creati su un PC con RTX 3090 Fable e Sol a confronto: due cartoni animati cre...
Il tablet rugged leggero e sottile: Lenovo ThinkTab X11 offre resistenza, doppia USB-C e batteria rimovibile Il tablet rugged leggero e sottile: Lenovo Think...
TSMC accelera sui 1,4 nanometri: produzi...
Razer compra StreamElements: cambia tutt...
Il Task Manager di Windows arriva su Mac...
Sony: PS5 resta più conveniente d...
Ubisoft spegne uno dei suoi esperimenti ...
Garante Privacy: multa da 9,5 milioni di...
Windows 11, Microsoft promette un sistem...
Windows 11, l'ultima build sperimentale ...
YouTube cancella i canali ASMR più...
Valgono miliardi, ma non pubblicano rice...
ROG Falchion Ace 75 HE: ASUS fa sul seri...
Google rilascia il primo teaser dei Pixe...
Attenti a queste TV Box: a TV spento si ...
Radeon RX 9050: arriva il primo confront...
L'AI Act più severo slitta al 202...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:37.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v