vermaccio
14-03-2006, 09:41
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++?
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++?