第18章 哈嘍大佬们,我还用讲吗?(2/2)
赵教授扶了扶眼镜,说:“同时驱动多光谱摄像头和12个mems传感器,你们的电源管理系统怎么解决瞬时电流过载问题?”
“我们採用分级供电设计。”周宇调出电路图。
这张电路图因为赶时间的缘故,画的非常简单,但上面的標註却很清晰。
“摄像头单独使用ti的tps546c23 buck转换器,传感器阵列则用adp5070实现多路输出,根据以往的数据可以得出瞬时峰值电流被控制在4.3a以內,完全在18650电池组的20a放电能力范围內。”
“但四节並联的18650在2c放电时容量会衰减30%,你们的八小时续航......”
“所以我们在运动控制算法里加入了能耗优化模型。”
“当监测到vocs浓度低於閾值时,自动关闭三个高耗能传感器,並通过卡尔曼滤波器补偿数据完整性。”
“不过,这段代码我不会写,所以需要懂的人来验证下我说的是否正確。”
周宇確实不会写代码,他知道杜部长召集这帮教授来是为了协助他们实现方案的,他很乐意把不懂的问题拋出来。
他只简单看了下卡尔曼滤波器相关的专业內容,编程方面还没有来得及学。
郑处听到周宇这么说,心想此时正是个让教授们和周宇互动的机会,连忙开口:“这就是邀请各位教授来的原因,有教授愿意讲解下吗?”
“正好周宇同学可以学习下。”
赵教授正要说话,结果被人抢了先。
“我来演示卡尔曼滤波器的实现逻辑。”人工智慧系的李教授突然起身走向白板,马克笔尖在玻璃板上刮出尖锐的声响。
他快速画出状態空间模型,突然停顿:“周同学,你设定的过程噪声协方差矩阵q是怎么確定的?”
“根据传感器厂商提供的误差分布特徵值,这里的热噪声方差是0.02μg/m3,我们取其平方作为q矩阵对角线元素。”
李教授笔尖悬停半秒,在白板上写了起来。
电子系的陈教授突然说:“浮点运算在嵌入式系统会產生累积误差,为什么不用定点数?”
李教授指了指周宇的方案:“看这里,启用的是硬体fpu单元,单精度浮点运算只需3个时钟周期。”
“但內存对齐有问题!你的状態向量没有做64位对齐,在dma传输时会导致总线错误。”
“所以我们用tim2计时器的捕获模式,通过硬体时钟同步,误差控制在±0.1μs以內,这是tim2的自动重装载值计算过程。“
“不对,你的协方差矩阵在连续叠代20万次后出现內存泄漏,根据我们之前的经验,每次predict调用会使栈指针增长4位元组。“
“改了代码后栈空间占用归零,但会失去线程安全!“
李教授拿著笔,思考了一会儿后开始说道:“所以需要加互斥锁。“
“所有矩阵运算都展开为標量计算,完全规避动態內存分配。“
张教授在一旁看著已经懵了。
他本来已经做好要为周宇解释的准备了,谁知道这些教授上来就自己聊了起来!
周宇更是直接閒了起来。
哈嘍,各位大佬,我还用讲吗?
怎么你们討论的那么热闹?