Chronaxis用户手册English
本页目录时间范围和观测范围信号有效期条件表达式UNKNOWN不是False活动、点事件和上下文片段统计方式0、空值和partial分别代表什么时间积分与逐消息累计的区别

时间与结果质量

本页解释各功能共用的时间与质量含义。请求范围由dataset.domain控制,最近值保持由signals[].valid_for控制,部分结果由execution.partial_policy或计算项内的同名字段控制。先理解这些语义,再填写信号、规则和计算。

时间范围和观测范围

dataset.domain是你要求计算的范围。来源观测范围是实际读到了数据的范围,两者不同。请求[0,12)而日志只到8秒,只能给前8秒可确认的结果。

本手册用 [0,1) 表示从第0秒开始、到第1秒之前为止,共1秒。方括号表示包含起点,圆括号表示不包含终点。这样,接着计算 [1,2) 时就不会把第1秒重复计入前一段。

恰好在请求结束时刻发生的按钮变化,只有该时刻存在实际观测、且满足对应规则的触发条件时,才可能记录为点事件;请求结束本身不会生成事件。点事件只有发生时刻,没有结束时间(API字段end_ns为空),也不占用1纳秒的持续时间。连续时长仍按前述半开范围计算。

程序内部以整数纳秒保存时间,1秒等于1,000,000,000纳秒。若输入时间比纳秒更精细,转换时会记录舍入情况。原始浮点时间已经丢失的精度,则无法通过换成整数恢复。

信号有效期

假设0秒电流为10A,valid_for="2s"。在没有新更新、且来源实际记录覆盖这段时间时,0—2秒可保持10A;到2秒过期。如果来源只观测到1秒,有效期不能替来源补出1—2秒的数据。若1秒收到明确无效值,则从1秒起无效,不再保持0秒的值。CSV空单元格也是无效更新。

原字段名、表达式别名、语义标识分开:原列BMS_BatCurr绑定为current后,表达式写current > 5。可选semantic_id="battery.current"只是含义标签,表达式写battery.current > 5会被拒绝。普通分析不需要建立领域目录。

条件表达式

例如current > 5 and mode == 1表示“电流大于5A,而且模式值等于1”。current和mode必须已经在signals里定义,不能直接写未绑定的原文件列名。

所有支持的算符、内置函数及其参数已经逐项列在表达式完整说明:包括一元正负号、四种算术、六种比较、and/or/not、链式比较、括号、常量、枚举、类型和单位限制,以及不支持写法。本页只讲这些计算结果在时间上如何使用。

UNKNOWN不是False

没有有效输入时,程序无法知道条件真假,记作UNKNOWN。False and UNKNOWN可以确定为False;True or UNKNOWN可以确定为True;True and UNKNOWN仍未知。质量原因仍会记录。

例如设备在1秒已知正在工作,2秒状态数据缺失:程序只能说“从2秒起不知道是否还在工作”,不能说“2秒确认停机”。这分别对应interrupted(数据中断)与closed(已知结束)。上升沿表示已知False变成已知True;默认不会把“未知后第一次True”当作这种变化。rising_edge和start_only的emit_initial允许在本次分析的首次已知状态为True时发出初始事件;它不为下降沿生成初始事件。开头未知、随后首次确定为True,符合这个条件;如果已经见过False,再经历未知后变成True,就不属于初始状态,也不能据此推断一次已知的False→True变化。

活动、点事件和上下文片段

规则/对象 具体行为
condition_duration 条件从1秒起持续成立,minimum_duration="3s"要求保持满3秒,因此4秒才能确认。用这次事件计算能量时,可把等待的3秒计入,也可排除,见selection_origin的完整例子。
rising_edge/falling_edge 条件由假变真或由真变假的时刻。例如2秒由关闭变为开启,只记录2秒这个点,不代表开启持续了多久。
start_only 例如按钮按下后取5秒数据,这5秒内再次按下会被忽略。5秒后按钮仍未松开,也不会自动再触发。
Event(事件记录) 记录一次活动的开始、确认、结束及原因,或者记录一次触发时刻。
Segment(时间片段) 用于分析或导出的连续时间范围,可以来自事件、窗口或整个会话。例如活动前后各多取1秒。parent_event_ids记录这个片段关联了哪些事件。

例如设备第0~1秒工作,第1~2秒停止,第2~3秒又工作。若规则无需等待确认,就记录两次活动。

如果想在每次停止后再看3秒数据,可以设置窗口的 exit_delay="3s"。第二次活动在等待期间开始,因此两次活动会放进同一个第0~6秒的片段。事件表仍保留两次工作;中间停止的1秒只是被纳入片段,没有被改成工作时间。

统计方式

样本均值与时间均值使用不同权重;普通积分和逐消息累计也使用不同时间依据。选型、公式及覆盖门槛见统计与积分。

0、空值和partial分别代表什么

情况 结果
请求的这段时间有完整记录,能够确定条件始终不成立 条件积分为0,选中时长为0;没有样本可供比较或求平均,因此min/max/mean为空
前1秒1000W且条件True,后1秒条件未知 report下为1000J的可核实部分,status为partial,reason说明数据不完整;公开摘要不附数值覆盖率;strict下数值为空
条件全未知、无观测或零长度请求 不能据此返回正常0;保留具体原因
有效贡献正负抵消得到0 正常数值0,不能与无数据混为一谈

partial_policy="report"表示保留已知部分的计算值,"strict"表示所需数据不完整时不给数值。minimum_coverage是使用者要求的最低数据覆盖比例,不能补齐缺失数据。完整数值对照见运行参数。读取公开结果时同时查看value、unit、status、reason和quality。普通信号计算integral、duration、min_time、max_time、time_weighted_mean、sample_minimum、sample_maximum和sample_mean,以及 v4 的样本计数、方差、标准差、RMS 和样本分位数,在 minimum_coverage 大于 0 时返回 coverage_status。sufficient表示所需的观测、值有效性和条件已知范围均达到门槛;indeterminate表示不足或无法确定。这个字段不是数值覆盖率,也不会把样本统计改成时间加权统计。select明细和逐消息累计不属于这组标量结果。公开摘要不提供requested_coverage/value_coverage/condition_coverage三个数值比例。字段见公开摘要行。

时间积分与逐消息累计的区别

真实时间积分按时间差计算;legacy_sum按每条目标消息的表达式结果累加。例如表达式已写power * period,4000W×0.1s=400J,两条同刻消息仍是800J,不能再乘一次dt。缺值消息跳过且有原因,不拿上一条值补算。详见逐消息计算。

Chronaxis 用户手册 · 离线阅读