Skip to main content

工程计算器

项目描述

该计算器值得注意的是,它采用堆栈计算模型(逆波兰表示法),它支持具有 SI 比例因子和单位的数字。并使用纯文本用户界面。

安装

版本:1.8.2
发布时间:2022-01-04
https://pepy.tech/badge/ec/month https://github.com/KenKundert/ec/actions/workflows/build.yaml/badge.svg https://img.shields.io/readthedocs/engineering_calculator.svg https://img.shields.io/pypi/v/engineering_calculator.svg https://img.shields.io/pypi/pyversions/engineering_calculator.svg

安装:

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:

堆栈根据需要无限增长。底部的两个值是操作中通常涉及的值,它们被标记为xy,以帮助您理解和预测各种命令的基本操作。例如:

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 表示法显示十六进制、八进制或二进制的数字。为此,请使用hexoctbinvhexvoctvbin

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)。

更详细的信息可以在这里找到。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Engineering-calculator-1.9.0.tar.gz (43.8 kB 查看哈希

已上传 source

内置分布

engineering_calculator-1.9.0-py3-none-any.whl (52.3 kB 查看哈希

已上传 py3