发新帖我要提问
12
返回列表
打印

【求助】一元三次方程和一元四次方程的MCU求解法

[复制链接]
楼主: emailli
手机看帖
扫描二维码
随时随地手机跟帖
21
lixun00| | 2007-9-13 03:42 | 只看该作者 回帖奖励 |倒序浏览

请给出a,b,c,可以算出实根的分布。。。

使用特权

评论回复
22
lixun00| | 2007-9-13 04:01 | 只看该作者

算了,还是我查表导下吧

使用特权

评论回复
23
lixun00| | 2007-9-13 04:48 | 只看该作者

晕,从网上down下分度表,发现竟然不同,cu50的。

pt100,用matlab计算系数竟然为0?
>>a=[1000,-10000,-11000000;2000,-40000,-96000000;3000,-90000,-117000000];
>> b=[3.914;7.840;11.788];
>> x=a

x =

    0.0039
   -0.0000
    0.0000
晕。。。

使用特权

评论回复
24
emailli|  楼主 | 2007-9-13 11:19 | 只看该作者

系数提供 和 为什么不用查表

Rt = R0*(1+A*t+B*t^2)
PT100和PT10在0~800℃之间的温度--电阻函数。
Rt为该温度下的电阻,R0为0℃下的电阻,A,B为常系数。
可以看到,该函数可以看成是一元二次方程。只要利用求根公式就可以了。

Rt = R0*(1+A*t+B*t^2+C*(t-100℃)*t^3)
这个是在-200℃~0℃之间的温度--电阻函数
Rt为该温度下的电阻,R0为0℃下的电阻,A,B,C为常系数。
可以看到,该函数可以看成一元四次方程,其中常数项和Rt有关。
=====所以希望知道一元四次方程的求根公式======
=====希望有简单点的,适合MCU计算的,又可以达到精度的====
=====至少根的精度要达到万分之一吧======

********************************
以上两个公式的 PT100和PT10的系数:
A = 3.9083E-3
B = -5.775E-7
C = -4.183E-12
********************************

Rt = R0*(1+A+B*t(t-100)+C*t^2*(t-100))
这个是Cu100和Cu50的温度--电阻函数。
Rt为该温度下的电阻,R0为0℃下的电阻,A,B,C为常系数。
可以看出,该函数可以看成一个一元三次方程。其常数项和Rt有关。
====所以,这里需要一个一元三次方程的求根公式===

*******************************
Cu50和Cu100的公式系数
A = 4.28E-3
B = -9.31E-8
C = 1.23E-9
*******************************



====同时能够方便MCU使用的=====


============================================
目前一元三次和一元四次的求解
我们用的是曲线拟合公式来做的。
效果还不错。
用t = (a+c*R+e*R^2)/(1+b*R+d*R^2)来拟合
其中拟合系数 通过一个 曲线拟合软件得到的。
============================================



系数的确很小,接近与0


该公式和系数是 90版的 《常用热电偶、热电阻分度表》 手册上找到的。


至于有人问为什么不用查表?

因为查表如果你输入的点少了,精度达不到要求。

如果输入的点多了,花费的空间不间的比用公式计算来的少。

一个点需要四个字节来保存。必须使用double型变量保存。

目前利用 拟合公式,大概使用了2K不到的代码完成了 整个电阻到温度的换算。

精度在 万分之二左右。

使用特权

评论回复
25
lixun00| | 2007-9-13 12:56 | 只看该作者

看来要提高matlaib精度,很有意思...呵呵...

使用特权

评论回复
26
lixun00| | 2008-3-17 22:57 | 只看该作者

倒塌了,想了一些办法,硬是不行...不过发现数学很多都捡起来

使用特权

评论回复
27
computer00| | 2008-3-17 23:52 | 只看该作者

直接用matlab求解,得到的结果好长,哈哈~~~

解1:

1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-1/3*b/a

解2:
 -1/12/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+1/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-1/3*b/a+1/2*i*3^(1/2)*(1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3))

解3:
-1/12/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+1/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)-1/3*b/a-1/2*i*3^(1/2)*(1/6/a*(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3)+2/3*(3*c*a-b^2)/a/(36*c*b*a-108*d*a^2-8*b^3+12*3^(1/2)*(4*c^3*a-c^2*b^2-18*c*b*a*d+27*d^2*a^2+4*d*b^3)^(1/2)*a)^(1/3))

使用特权

评论回复
28
775850100| | 2013-11-6 21:52 | 只看该作者
emailli 发表于 2007-9-13 11:19
Rt = R0*(1+A*t+B*t^2)PT100和PT10在0~800℃之间的温度--电阻函数。Rt为该温度下的电阻,R0为0℃ ...

没有去查相应的国标。就参照您的答案了,您给的各类型热电阻的函数对我非常有帮助,谢谢!!!拿走啦:handshake

使用特权

评论回复
29
伟布斯| | 2013-11-7 13:08 | 只看该作者
我帮你顶贴吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则