chatGPT,帮我写个PID 今天上难度 昨天用chatGPT写了控制灯的PLC程序, 朋友们说太简单, 那好, 今天上难度。 PID是工业领域常用的一种算法, 我还没有自己写过, 让它帮我写一下试试 01二档起步 既然昨天试过了, 那么今天就着昨天的聊天, 继续问, 我还不太放心, 先英文问一句: 程序太长了, 截了好几次图才截下来。 比我想的要完美。 有注释, 结构清晰, 考虑了两个限制条件,(使能和输出限制) 挺好! 而且速度快, 这个长度的程序, 自己写得写一阵子吧, chatGPT一秒就可以。 这就结束了吗? 不, 甲方依然可以提要求! 02鸡蛋里挑骨头 上面生成的, 是经典的PID算法, 中规中矩。 但是, 还有些更极端的条件。 比如说积分饱和。 英文叫windingup, 来让它试一下: 完美解决, 没难住它, 看来这一课之前学过了。 还是要承认, 我自己写这部分, 是写不出来的, 估计得查资料写半天, 它已经超越我了。 那又怎样, 甲方可以继续提要求! 03要求加戏 我查了查资料, 发现PID算法还可以加戏, 例如, 我们可以让它加上前馈控制, 恩, 总之就是一种额外的算法: 顺利给出了答案, 看来这个它也会。 还有点小瑕疵, 要求它改一下: 恩, 按照要求改了, 不过, 程序怎么越来越短了? 对比了一下, 发现开始的两个条件丢了, (使能和输出限制) 这有点健忘呀, 改了这里, 忘了那里, 甲方不高兴了! 04忘记的,要补回来 让它把忘记的, 统统补回来: 恩,又改了一遍, 还差了一点, 再来! 几个回合下来 甲方又拿到了满意的结果。 这次还给加了中文注释, 因为我和它对话时, 一会英文, 一会中文, 所以它也时不时的, 随机切换。 05餐后甜点:滤波器 PID写的有点快了, 这么快完成, 意犹未尽, 再写个滤波器吧 我也不知道自己想要什么滤波器, 先来一个再说: 不错哦, 再随便打听打听: 卡尔曼和斯特林看起来高大上, 来一个, 斯特林像不像过年放的加特林 这个确实超纲了, 有点难为它了, 人家也不容易, 难度降一降吧: 你看, 人家也说了, 这应该是一个良好的起点, 帮助您了解如何编写均值滤波器的功能块。 这个起点, 已经省很多力气了。 而且, 就算不完美, 也没关系, 毕竟, 还可以继续提要求不是? 我们再换个类型: 指数滤波器, 均值滤波器, 中位数滤波器, 这三种餐后甜点, 还可以吧? 06结语 昨天把灯打开和关上的程序, 属于逻辑程序; 今天的PID和滤波器, 属于工艺类型的; 我们算是测试了两大类型的程序。 我认为, 结果还不错, 您看呢? 朋友们说, 还是不能直接拿来就用, 还会丢三落四, 没有想象的好。 我想说, 它能给我们一个很好的起点, 启发我们的思路, 而且, 我们还能反复提要求。 有没有发现, 反复提要求的过程, chatGPT反复给回答, 让我这个甲方越来越明确, 自己想要什么。 必须承认, 有的时候, 我们不知道自己想要什么, chatGPT可以记住之前的对话, 允许用户不断纠正, 从而, 帮助我们明确想要什么。 好像有点跑题了, 打住, 感谢大家阅读:)