工程计算器
项目描述
该计算器值得注意的是,它采用堆栈计算模型(逆波兰表示法),它支持具有 SI 比例因子和单位的数字。并使用纯文本用户界面。
安装
安装:
pip3 install --user engineering-calculator
需要 Python 3.6 或更高版本。
不同寻常的是,还有一个手册页。Python 安装过程不再支持手册页,但是您可以从GitHub下载它。将它放在 ~/.local/man/man1中。
可以在ReadTheDocs上找到有关这两种ec的更多信息。
从源安装
要获取源代码:
$ git clone https://github.com/KenKundert/ec.git
克隆后,您可以使用以下方法获取最新更新:
$ cd ec $ git pull
要运行回归测试:
$ tox
安装:
$ python setup.py install --user
运行 EC:
$ ec 0:
安装手册页
如果您已从源代码安装,则可以使用以下命令安装手册页:
cd doc make publish
否则,您可以使用以下命令在 GitHub 上安装最新版本的手册页:
curl https://raw.githubusercontent.com/KenKundert/ec/master/install-manpage | bash -
安装后,您可以使用以下命令访问手册页:
man ec
工程计算器简介
要在 EC 中执行操作,您首先输入数字,然后输入运算符。特别是,当您输入数字时,它们会被压入堆栈。然后运算符从堆栈中取出数字并用结果替换它们。这些操作会立即执行,并且没有使用括号来对计算进行分组。任何中间结果都存储在堆栈中,直到需要为止。
添加两个数字:
0: 4 5 + 9:
该命令首先将 4 压入堆栈,然后将 5 压入堆栈,最后运行加法运算符,将 4 和 5 从堆栈中拉出,然后将总和 9 压回堆栈。提示符会显示 x-register 的值,一般是上一个命令的最终结果。
您可以在一行中将任意长度的计算串在一起:
0: 4 5 + 6 7 + * 117:
此命令演示了使用堆栈进行计算的强大功能。它首先计算总和并将结果放在堆栈中。该结果保留在堆栈中,同时计算 6 和 7 的总和,最后在最终乘法中使用和消耗它。
或者,您可以通过多条线路进行计算(这会计算两个并联 100 欧姆电阻的值):
0: 100 100: 100 100: || 50:
实际上,您只需要在想要查看结果时输入 enter即可。
如果选择运算符跟在数字或名称后面,则可以在不加空格的情况下输入它们。例如:
0: 4 5* 6 5+ * 220:
使用stack查看堆栈的内容:
0: 1 2 3 4 5 stack
1
2
3
y: 4
x: 5
5: + stack
1
2
y: 3
x: 9
9: + stack
1
y: 2
x: 12
12: + stack
y: 1
x: 14
14: + stack
x: 15
14: -1 stack
y: 15
x: -1
-1:
堆栈根据需要无限增长。底部的两个值是操作中通常涉及的值,它们被标记为x和y,以帮助您理解和预测各种命令的基本操作。例如:
0: 8 2 stack y: 8 x: 2 2: ytox 64:
命令名称ytox是“将y寄存器的值提高到x寄存器中的值”的缩写。
您可以使用pop从堆栈底部删除一个值:
0: 10 -3 stack y: 10 x: -3 -3: pop 10: stack x: 10
要将值存储到变量中,请键入等号后跟名称。要记住它,只需使用名称:
0: 100MHz =freq 100MHz: 2pi* =omega 628.32M: 1pF =Cin 1pF: 1 omega/ Cin/ 1.5915K:
显示变量使用:
628.32M: vars Cin = 1pF Rref = 50 Ohms freq = 100MHz omega = 628.32M 628.32M:
Rref是一个特殊变量,默认设置为 50 欧姆,但您可以更改其值。它用于dBm计算。
从上面的例子可以看出 EC 支持 SI 比例因子和单位。对单位的支持相对保守。您可以输入它们并且它会记住它们,但它们除了副本之外的任何操作都无法幸免。通过这种方式,它永远不会显示不正确或误导性的单位,但它会尽可能显示单位。例如:
0: 100MHz =freq 100 MHz: 2pi* "rads/s" =omega 628.32 Mrads/s: vars Rref = 50 Ohms freq = 100 MHz omega = 628.32 Mrads/s 628.32 Mrads/s: 2pi / 100M:
请注意,EC 捕获了 100MHz 的单位并将它们存储到内存频率中。另请注意,明确指定了“rads/s”的单位,并且它们也被捕获。最后,请注意除以2pi会清除单位。
这种将单位添加到数字的简单方法,例如。100MHz,有点受限。
您只能在比例因子之后添加单位,但是一旦您给出了比例因子,单位是可选的。这样,1m代表1e-3而不是一米。如果你想指定一米,你会使用 1_m。下划线是比例因子,如 m 或 k。它代表单位比例因子。
添加到数字末尾的单位只能由字母和下划线组成。不允许使用数字和特殊字符,如 /、^、*、-、( 或 )。
您只能将单位添加到数字文字。所以 100MHz 是可以的,但 'omega 2pi/Hz' 不是。
您可以通过输入带引号的字符串来克服此限制。这样做会将字符串的内容解释为单位并将它们应用于x寄存器中的任何内容。例如:
0: 100MHz 2pi* "rads/s" 628.32 Mrads/s: 2pi / "Hz" 100 MHz: 0: 9.8066 "m/s^2" 9.8066 m/s^2:
通常在数字之后给出单位,但是在紧接之前会给出一个美元符号:
0: $100M $100M:
您可以使用传统的程序员表示法或 Verilog 表示法输入十六进制、八进制或二进制数。例如:
0: 0xFF 255: 0o77 63: 0b1111 15: 'hFF 255: 'o77 63: 'b1111 15:
您还可以以传统或 Verilog 表示法显示十六进制、八进制或二进制的数字。为此,请使用hex、oct、bin、 vhex、voct或vbin:
0: 255 255: hex4 0x00ff: vbin 'b11111111:
您可以使用以下方法将电压转换为dBm:
0: 10 vdbm 30:
您可以使用以下方法将dBm转换为电压:
0: -10 dbmv 100 mV:
这两个都假设内存Rref中包含一个负载电阻,默认情况下为 50 欧姆。
在启动时,EC 从文件中读取并执行命令。它首先尝试 '~/.ecrc' 并运行它包含的任何命令(如果存在)。然后它会尝试“./.ecrc”(如果存在)。最后,它运行命令行上给出的任何文件。通常将您的通用首选项放在“~/.exrc”中。例如,如果您是一位希望获得高精度结果的物理学家,您可以使用:
eng6 h 2pi / "J-s" =hbar
这告诉 EC 使用 6 位分辨率并将hbar预定义为常数。本地启动文件 ('./.ecrc') 或作为命令行参数给出的文件通常用于提供更多项目特定的初始化。例如,在您正在处理 PLL 设计的目录中,您可能有一个包含以下内容的“./.ecrc”文件:
88.3uSiemens =kdet 9.1G "Hz/V" =kvco 2 =m 8 =n 1.4pF =cs 59.7pF =cp 2.2kOhms =rz
EC 还从命令行获取命令。例如:
$ ec "125mV 67uV / db" 65.417
EC 打印反引号字符串,同时在请求时插入寄存器和变量的值。例如:
$ ec 'degs 500 1000 rtop "V/V" `Gain = $0 @ $1.` quit' Gain = 1.118 KV/V @ 26.565 degs.
通常ec会打印 x 寄存器的值,并在它做完所有事情时退出。最后的退出告诉 ec 立即退出。这样就不会打印 x 寄存器的值。没有它,您会看到两次打印的幅度。
您可以使用以下语法定义函数:( ... )name,其中 '(' 开始函数定义,')name' 终止它,并且 ... 只是计算器操作的集合。例如:
0: (2pi * "rads/s")to_omega 0: (2pi / "Hz")to_freq 0: 1.4GHz 1.4 GHz: to_omega 8.7965 Grads/s: to_freq 1.4 GHz:
您可以通过以下方式获取可用操作的列表:
0: ?
您可以通过以下方式获得有关特定主题的帮助,例如 // :
0: ?//
您可以通过以下方式获取可用的帮助主题列表:
0: help
除了此处描述的内容之外,还有更多可用的内容。如果您已经安装了手册页,您可以通过运行以下命令获取更多信息:
$man ec
或者,您可以查看在线文档。
您可以使用以下命令退出程序:
0: quit
(或:q或^D)。
更详细的信息可以在这里找到。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。