1 个稳定版本
11.0.3 | 2022年12月30日 |
---|
#382 in 可视化
240KB
1.5K SLoC
load_lpp (日志 - 处理 - 绘图) 🦀
此包编译以下三个用于记录、预处理和绘制负载时间序列的二进制文件。应用程序用 Rust 编写,旨在进行底层优化和长期稳定性。
1 load_log_dad141
CLI 应用程序通过常见的 DAD 141.1 数字放大器和 TCP-UTF8 记录负载单元。应用程序允许在 1 天的因数(分钟或小时)的整倍数间隔自动记录。有效的分钟间隔为 1、2、3、5、10、15、20、30 和 60 分钟。有效的小时间隔为 1、2、3、6、12 和 24 小时。使用 RFC 3339 - ISO 8601 标准格式的时间日期,以更通用和健壮地处理时区和夏令时。
2 load_process
此 CLI 应用程序按照以下步骤处理负载时间序列
- 读取并解析记录的负载时间序列。
- 将所有时间日期转换为选择的时区,即,如果需要则删除夏令时或更改时区。
- 使用数据中找到的最小时间间隔使时间序列连续。
- 可选,用 NAN 替换记录错误。
- 可选,用 NAN 替换输入文件中的给定时间日期(例如,受维护干扰的值)。
- 可选,用 NAN 替换给定的每日间隔(例如,每日温度影响或维护期)。
- 可选,自动检测并报告难以通过以下移动平均平滑和纠正的异常时间段。
- 可选,使用加权移动平均平滑时间序列(例如,风速和温度)并填充 NAN 值。它使用线性权重之间的移动平均,权重从用户定义的中心权重(通常是最大权重)到侧权重(通常是最小权重)。窗口宽度可以通过指定每侧的数据点数量来调整,这种参数化保证了窗口的对称性。可以设置约束来定义何时缺失的信息太大而无法填充 NAN 值(最大缺失负载值或它们的累积相关权重)。
- 命令行应用程序保存一个与load_plot兼容的新CSV文件。
3 load_plot
CLI应用程序用于绘制由dad141_log或load_process保存的负载时间序列。应用程序自动调整日期时间格式。图形输出格式为svg。
注意,在整个框架中,负载用于负载单元数据,而重量用于移动平均。
文档:rust_crate
CLI应用程序是用Rust编程语言编写的。
附加说明
DAD141.1
通用
- 移除密封开关跳线以启用所有命令,这仅适用于合法应用。
- 使用功能
2.4
来显示实际原始电压mV/V。 - 菜单3.1用于过载,确保它高于所需的最大负载。
校准:零点(截距)和量程(斜率,量程校准)
请参阅DAD手册中的示例和DOP手册第7.4节(第34页)。
- 使用功能
1.2 - CZ
(重力)或1.3 - AZ
(电子)进行零位,这会将当前测量的电压(mV/V)与零位读数关联起来。 - 使用功能
2.1
设置span_kg,设置RO_kg_sum。 - 使用功能
2.3
从以下公式设置span_V。
计算量程值(span_V)
span_kg = RO_kg_sum = RO_kg_1 + RO_kg_2 + ... RO_kg_n.
例如,span_kg = 20kN * 6负载单元 = 120 kN = 120 = 12,236.5921 kg。在DAD 141.1函数2.1中设置RO_kg_sum。
RO_V_1 + RO_V_2 + ... + RO_V_n = RO_V_sum,单位为mV/V。
span_V = (V_sum / kg_sum) * kg_max,单位为mV/V。在我们的例子中,12.00062 / 6 = 2.000103333 mV/V。
在我们的例子中,SPAN_V = 2.00032 + 2.00034 + 1.99979 + 2.00014 + 2.00011 + 1.99992 = 12.00062 mV/V。在函数2.3中将span_V放入。
其中
- RO_V是从校准证书中得出的额定输出(RO)的电压输出(mV/V)。
- RO_kg是额定输出,始终来自校准。
kg从mV
kg@x = (mV@x / (mV@RO * ExcitationVoltage)) * kg@RO
例如,如果kg@RO = 2039.43 kg,mv/V@RO ~ 2 mv/V,激励电压应为5 V
2040 kg应给出10mV(即,2 mv/V * 5 V),1020 kg应给出5mV(即,2 mv/V * 5 V / 2)。通常,204 kg = 1 mV
格式
应用程序期望10字节的DAD格式,对小数点的位置具有灵活性。前两个字符是值的描述,不包括在数值负载值的解析中。然而,原始字符串也将写入CSV文件,以避免丢失读取类型的信息,并在解析错误的情况下恢复值。可能的空白属性字符(Unicode标准)将被正确修剪并忽略。
负载单元和安装模块的安装
安装模块
使用三种类型的安装模块来获得正确的自由度,以匹配系统的变形。
- 固定:无移动性,该模块将该系统点固定在该位置(0D自由度)。
- 缓冲器:在某一方向上限制运动(1D自由度)。
- 自由:允许在负载单元平面内所有方向上移动(2D自由度)。
对齐
考虑机械变形的自由度,对负载细胞进行对齐。特别是要注意固定和缓冲负载细胞,以及它们与缓冲器处主要变形的对齐。请参阅手册中的图示。
润滑剂/油脂
用于在其运动过程中保护安装模块的移动部件(摇臂销和匹配的上表面)。一些例子包括
- 梅特勒-托利多手册,洛克tight防锈,食品级
- 弗林特克,在弗林特克使用由富克斯生产的RENOLIT ST-80。然而,他们已经提供了与负载细胞相似的型号。
远程/SSH日志记录
命令行应用程序适合远程监控。建立远程和持久连接的解决方案之一是使用ssh和tmux。此外,可以使用scp来复制-传输数据。
查找IP和/或主机名
- 查找IP地址,例如,使用
ifconfig
。 - 使用
host ipaddr_from_ifconfig
查找主机名。
启动
- 通过SSH连接到树莓派,
ssh user@ip
- 打开tmux,
tmux
- 启动日志记录进程,请参阅
./compiled_binary --help
- 使用
Ctrl+b
然后d
从终端断开tmux会话n,它将返回[已断开(从会话n)] - 使用
tmux ls
检查tmux会话是否仍在,它应该返回n: 1个窗口(创建日期时间2),其中日期时间为第2点 - 关闭终端/SSH连接,
exit
,它返回连接到uset@ip已关闭
检查日志记录
- 如启动步骤1所示,通过SSH连接到树莓派,
ssh user@ip
- 如启动步骤5所示,使用
tmux ls
查找tmux会话 - 使用
tmux attach -t n
连接会话,其中n是启动步骤4中的数字 - 重复启动中的步骤4、5、6
复制数据
- 打开终端,并使用
scp
将文件从树莓派复制到笔记本电脑,例如,scp user@localhost:~/path/to/file/loadcells.csv ./Desktop/
关闭日志记录
- 如启动步骤1所示,通过SSH连接到树莓派,
ssh user@ip
- 如启动步骤5所示,使用
tmux ls
查找tmux会话 - 使用
Ctrl+c
关闭正在运行的日志记录,应返回[已退出] - 使用
tmux ls
再次检查,应返回无服务器在...上运行
关于远程连接的附加细节
依赖关系
~16MB
~134K SLoC