控制系统设计,别急着上PID,先把生活里的稳想明白

admin

很多朋友一听“控制系统设计”,第一反应是工程师、单片机、PID、框图、仿真,离生活很远,其实你每天都在用控制系统:空调把房间维持在26℃,热水器把水温稳在40℃,扫地机器人知道快没电了要回充,电动车充电到80%自动降功率,控制系统设计说到底不是“让机器动起来”,而是“让它在变化里稳住”,我写这篇不是想堆术语,而是想聊聊:为什么很多系统在实验室里好好的,一到现场就让人抓狂。

先说我自己的一个生活实例,去年我买了一个智能花盆,宣传语很诱人:土壤湿度低了自动浇水,出差一周也不怕,它的控制逻辑特别简单:湿度传感器检测到土壤低于阈值,控制器打开小水泵,浇几秒,停一会儿再测,听起来没问题吧?结果第一周就把一盆绿萝浇得烂根,原因不是水泵坏了,而是控制系统设计里最典型的问题:测量点不等于真实状态,传感器只插在花盆边缘,边缘干了,中心还湿着;水泵一浇,水还没渗透,传感器又觉得湿度上来了,于是频繁启停,再加上土壤蒸发、温度变化、花盆大小这些扰动,一个“低于阈值就浇水”的规则根本不够用。

后来我做了几件很“土”但很有效的事:第一,换位置、多点采样,不迷信一个探头;第二,加最小浇水间隔,避免频繁启停;第三,保留手动模式和报警,发现异常能接管;第四,先观察一周再调参数,你看,这里面没有什么高深算法,但控制系统设计的关键动作全都有:明确被控对象、选对传感器、考虑执行器惯性、处理时延和死区、设置异常降级,我的观点是:控制系统设计的第一页不该是算法,而该写清楚目标、约束和边界,目标不是“湿度数字好看”,而是“植物根系环境别忽干忽湿”;约束是水泵流量、土壤渗透速度、用户不想天天加水;边界是传感器会坏、会漂、会被泥土遮住。

再说办公室空调,我们那间办公室设定26℃,控制面板显示得挺美,但靠窗的同事喊热,靠出风口的同事喊冷,为什么?因为温度传感器在回风口,控制系统只对“回风温度”负责,不对“人的体感”负责,它很努力地完成了一个错误的目标,后来行政调了出风方向、加了分区控制,才稍微好点,这件事让我更坚定一个观点:控制系统设计最怕的不是技术难,而是目标定义错,你控制的是回风口温度,用户要的是工作区舒适度;你控制的是水泵开关,用户要的是植物活着,目标错了,参数调得再漂亮也是白搭。

还有一个常见误区:很多人一上来就想上复杂算法,觉得简单阈值“不够高级”,但在我看来,控制系统设计里,稳定、安全、可维护,永远比炫技重要,PID当然好用,恒温、恒压、流量控制里到处都是,但参数不对会震荡,传感器有滞后会超调,执行器有死区会稳不住,与其硬堆算法,不如先做小闭环、先跑最小可行系统,再根据现场数据迭代,好系统有个特点:用户不太需要天天调它;坏系统也有个特点:参数菜单藏得很深,出了问题没人敢动。

最后说我的核心观点:控制系统设计像带团队,不是让每个变量都完美,而是让系统在扰动里保持可控,要承认传感器会“骗人”,执行器会“迟钝”,现场会比仿真复杂,所以要有冗余、校验、手动接管和降级策略;要接受“简单可靠”比“复杂先进”更值钱;要记住好系统让人无感,而不是让人天天和面板较劲,下次你做控制系统设计,不妨先别画框图,先问自己三句话:我到底要让什么稳住?哪些扰动躲不开?出问题时,系统怎么安全地退一步?这三句想明白了,后面的控制器、参数和代码,才不会跑偏。

目录[+]