ezunits并非如此ez-理想气体

问题描述

我在使用ezunit时遇到很多问题,似乎无法正确处理单位及其转换。一个人应该计算出2个20°C的罐的容积,这些罐在700bar的相对压力下充满6kg H_2。

总容积应为0.103 m ^ 3,一个罐的容积应为51.5 l。

这就是我在Wxmaxima中得到的:https://ibb.co/6P91kYk

我的代码

/* [ Created with wxMaxima version 20.06.6 ] */
/* [wxMaxima: input   start ] */
kill(all); load(ezunits);
/* [wxMaxima: input   end   ] */

/* [wxMaxima: section start ]
Brennstoffzellenfahrzeug H_2,2 Tanks,T=20°C,p_rel=700bar,m=6kg. Welches Volumen hat ein Tank?
   [wxMaxima: section end   ] */


/* [wxMaxima: input   start ] */
T: 273.15`K+20`deg; p_rel: 700`bar; RR:8.314`J/(mol*K); m: 6`kg;
/* [wxMaxima: input   end   ] */


/* [wxMaxima: input   start ] */
p: p_rel+1`bar;
/* [wxMaxima: input   end   ] */


/* [wxMaxima: input   start ] */
p: p``N/m^2;
/* [wxMaxima: input   end   ] */


/* [wxMaxima: input   start ] */
M_H_2:2*1.01`g/mol;
/* [wxMaxima: input   end   ] */


/* [wxMaxima: input   start ] */
R: RR/M_H_2;
/* [wxMaxima: input   end   ] */


/* [wxMaxima: input   start ] */
kill(V); dimensionally(solve(P*V=m*R*T,V)); V: rhs(%[1]);
/* [wxMaxima: input   end   ] */


/* [wxMaxima: input   start ] */
V_tank: V/2;
/* [wxMaxima: input   end   ] */


/* Old versions of Maxima abort on loading files that end in a comment. */
"Created with wxMaxima 20.06.6"$

解决方法

有些东西我可以尝试。

(1)bar不是内置单元。试试:declare_unit_conversion(1 ` bar = 101325 ` Pa)

(2)要转换20摄氏度,请尝试:T: 20 ` degC `` K

(3)在这里m显示为变量,单位也是m。将变量m重命名为m_tank之类。

(4)单位不会自动减少为基本单位。尝试:先fundamental_units(V_tank);,然后再V_tank `` fundamental_units(V_tank);

这些更改后,我得到的是:

(%i3) load(ezunits)
(%o3) /usr/local/Cellar/maxima/5.44.0/share/maxima/5.44.0/share/\
ezunits/ezunits.mac
(%i4) declare_unit_conversion(1 ` bar = 101325 ` Pa)
(%o4)                         done
(%i5) T:20 ` degC `` K
                            5863
(%o5)                       ---- ` K
                             20
(%i6) p_rel:700 ` bar
(%o6)                       700 ` bar
(%i7) RR:8.314 ` J/(mol*K)
                                    J
(%o7)                     8.314 ` -----
                                  K mol
(%i8) m_tank:6 ` kg
(%o8)                        6 ` kg
(%i9) p:p_rel+1 ` bar
(%o9)                       701 ` bar
(%i10) p:p `` N/m^2
                                     N
(%o10)                    71028825 ` --
                                      2
                                     m
(%i11) M_H_2:2*1.01 ` g/mol
                                   g
(%o11)                     2.02 ` ---
                                  mol
(%i12) R:RR/M_H_2
                                          J
(%o12)               4.115841584158416 ` ---
                                         K g
(%i13) kill(V)
(%o13)                        done
(%i14) dimensionally(solve(p*V = m_tank*R*T,V))

rat: replaced -7239.353762376237 by -73117473/10100 = -7239.353762376238
                                            2
                         24372491     J kg m
(%o14)            [V = ------------ ` -------]
                       239130377500     N g
(%i15) V:rhs(%[1])
                                          2
                       24372491     J kg m
(%o15)               ------------ ` -------
                     239130377500     N g
(%i16) V_tank:V/2
                                          2
                       24372491     J kg m
(%o16)               ------------ ` -------
                     478260755000     N g
(%i17) fundamental_units(V_tank)
                                3
(%o17)                         m
(%i18) V_tank `` fundamental_units(V_tank)
                         24372491     3
(%o18)                   --------- ` m
                         478260755
(%i19) float(%)
                                           3
(%o19)              0.05096067520739811 ` m

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...