自动化系统让信息依次经过固定的阶段:传感器、转换、处理器、执行器。追踪就是跟着一个读数走完这些阶段,并写下每个阶段做了什么。
这是自动化与新兴系统中的起点技能。每当题目描述一个物理情境并问计算机会做什么时,都会用到它。
每个阶段做什么?
- 传感器(输入): 测量物理量,例如温度、光线、压力或动作。
- ADC(模数转换器): 在传感器需要时,把变化的模拟信号变成数字值。
- 处理器: 把数值与存储的规则比较,例如“高于 30”,并决定输出。
- DAC(数模转换器): 在输出设备需要时,把数字值转回模拟信号。
- 执行器(输出): 做出物理动作,例如转动风扇或打开阀门。
不是每个系统都需要两种转换器。读懂情境,只写出它所描述的阶段。你必须使用哪些术语,以你所考年份的课程大纲为准,请查看 Cambridge 官网。
拓展:ADC 和 DAC 稍微超出 Cambridge 大纲列表。放进来是为了帮助你理解传感器信号如何到达处理器。
如何追踪一个周期?
- 用一行写出规则,包括阈值和比较符号。
- 取传感器的下一个读数。
- 对该读数套用比较,记下真或假。
- 记录执行器收到的输出。
- 对下一个读数重复。
例题
温室风扇控制器运行五个周期。传感器依次送出 24、27、31、29 和 26(°C)。
FOR cycle ← 1 TO 5
temp ← GetReading()
IF temp > 30
THEN
fan ← "ON"
ELSE
fan ← "OFF"
ENDIF
OUTPUT cycle, temp, fan
NEXT cycle
| cycle | temp | temp > 30 | fan |
|---|---|---|---|
| 1 | 24 | false | OFF |
| 2 | 27 | false | OFF |
| 3 | 31 | true | ON |
| 4 | 29 | false | OFF |
| 5 | 26 | false | OFF |
只有第 3 个周期打开风扇。用文字说就是:传感器测量,ADC 转换,处理器发现 31 大于 30,执行器收到 ON。
要留意的错误
常见的错误是在规则不含等号时,把边界当成包含在内。
错误答案: 读数为 30 时,风扇是 ON。
学生把“高于 30”读成了“30 或以上”。
规则写的是 temp > 30,所以 30 > 30 为假,风扇保持 OFF。如果规则是 temp >= 30,风扇才会打开。务必把比较符号原样抄进追踪表。
自我检测
1. 沿用同一条规则,读数 30、30.5、12 时风扇各是什么状态?
显示答案
30 > 30 为假,所以 OFF。30.5 > 30 为真,所以 ON。12 > 30 为假,所以 OFF。
2. 自动灯有光线传感器、处理器和灯。请说出输入设备、处理器的工作和输出设备。
显示答案
输入设备:光线传感器。处理器的工作:把光线读数与存储的数值比较,决定灯是否应该亮。输出设备:灯(执行器)。
3. 规则为 IF temp < 18 THEN heater ← "ON"。读数为 20、18、17。分别写出加热器状态。
显示答案
20 < 18 为假:OFF。18 < 18 为假:OFF。17 < 18 为真:ON。
接下来学什么
接下来,在区分反馈与固定顺序中,看看有些系统如何利用自己的输出进行自我修正。伪代码追踪训练器可以让你逐步运行这类规则,Python 推理沙盒则用简短的 Python 展示同一条规则。
如果追踪是你容易丢分的一步,计算机科学补习中分配给你的老师可以专门针对这一点帮你。