2017-07-23 2 views
0
double Vs = 3.3; 
double r1 = 10000.0; 
double Vo = raw * .0001; //PSOC: .1mv to volt. 
double r2 = (r1 * Vo)/(Vs - Vo); 

std::cout << "Raw rtd reading = " << raw << std::endl; 
std::cout << "Voltage Output = " << Vo << std::endl; 
std::cout << "voltage Source = " << Vs << std::endl; 
std::cout << "Given Resistance = " << r1 << std::endl; 
std::cout << "Acquired Resistance = " << r2 << std::endl; 

return -412.6 + (140.41 * pow(1 + (0.00764*r2), 0.5)) + (-6.25e-17 * (r2 * r2 * r2 *r2 *r2)) + (-1.25e-24 * (r2 * r2 * r2 * r2 * r2 * r2 *r2)); 

Ist das korrekt? Ich bekomme immer wieder merkwürdige Werte zurück. Viele von ihnen sind Nan oder 65.000 Werte.Ist die Spannungsteilergleichung meines RTD-Sensors korrekt?

+2

Was ist ein RTD-Sensor? Das Tag "rtd" hat keine Erklärung. Magst du nicht einfach Akronyme? –

+0

Sie sollten in Erwägung ziehen, 'sqrt' anstelle von' pow (x, 0.5) 'zu verwenden. –

+0

wir haben keinen Kontext zu Ihrem Code, keine Erklärungen, welche Variable/Konstante was ist, so können wir nicht helfen/Beratung ... + Schließen so unklar – Spektre

Antwort

0

Nein, Ihre Gleichung ist nicht korrekt, wenn Sie versuchen, die Spannungsteilung eines Sensors zu berechnen, der eine analoge Spannung als Ausgabe liefert. Die Spannungsteilung ist eine übliche Art, Spannungen von solchen analogen Geräten zu normalisieren. Aber dieser letzte Begriff zum Beispiel

(-6.25e-17 * (r2 * r2 * r2 *r2 *r2)) + (-1.25e-24 * (r2 * r2 * r2 * r2 * r2 * r2 *r2) 

scheint keine Spannungsteiler Berechnung sein. Eine beliebige Anzahl von Online-Ressourcen wird die Spannungsteilergleichung zeigen sein:

enter image description here