目标C中计算流量计算的正确方法是什么?
问题描述:
我正在试图制作一个使用这3个公式的iPhone流速计算器。目标C中计算流量计算的正确方法是什么?
压力比b
b = p2 + 0.1/p1 + 0.1
的C值和b值是根据阀给出的数字。 参见本PDF http://content2.smcetech.com/pdf/SY.New.pdf
Q音速流动
Q = 600 * C (p1 + 0.1) sqrt(293/(273 + t))
这是我工作的代码第6页。
float pressure1 = ([pressureMPa.text floatValue])+ 0.1;
float c = 600 * ([cValue.text floatValue]);
float temperature = ([tempC.text floatValue]);
float root = sqrtf(293/(273+temperature));
float sonicFlow = c * pressure1 * root;
Q
=流量升/分钟C
=分米立方公尺/ s *酒吧p1
=供应压力:兆帕t
=温度摄氏度
Q亚音速流
Q = 600 * C (p1 + 0.1)* sqrt(1-(p2+0.1/p1 +0.1 - b/1-b)^2) * sqrt(293/(273 + t))
Q
=流量升/分钟C
- 值=分米立方公尺/ s *酒吧p1
供应压力:兆帕t
温度摄氏度b
-Value
什么是写的最佳方式亚音速流码?
我有开始和结束的想法是sqrt(1-(p2+0.1/p1 0.1)-b/1-b)^2
我遇到了问题。
答
看到你遇到的问题有点难。这是做平方根和权力所需的语法吗?
平方根:sqrtf(float)
电源:powf(float, float)
- 第二浮动是要提高第一浮到电源。
的稍微容易功率的二(也许更易于阅读)就是首先计算中间值,然后通过自身相乘:
valueA * valueA
还有,记得要小心问候在C中的运算符优先级。在加法和减法之前评估乘法,除法和模数。请确保将内容放在括号中,或者更好 - 正如@Warkst在您的文章中所建议的 - 通过多个步骤进行计算。所以对于位您遇到麻烦:
// sqrt((1-((p2+0.1)/(p1+0.1))-b)/(1-b))^2
float part1 = (p2 + 0.1)/(p1 + 0.1);
float part2 = (1 - part1 - b)/(1 - b);
float part3 = sqrtf(part2);
float result = part3 * part3;
part1/2/3
也许并不理想变量名,但你的想法。
听起来像你知道如何取一个平方根,所以我想你可以找到如何做一个权力2,所以我不明白是什么问题。您不必一行一行计算,只需使用多个步骤和中间结果即可。 – Warkst