西西河

主题:【原创】自动控制的故事(一)(完) -- 晨枫

共:💬488 🌺558
分页树展主题 · 全看首页 上页
/ 33
下页 末页
            • 家园 控制率还是用的模糊

              晨大对NN的归纳很对,NN的强大之处在于对一个“假未知”(知道其大概的数学模型)系统的快速模拟,能够在很少的循环反馈之中找到合适的参量从而对一个复杂的系统或者系统内的一部分完成逼近。我当初做的其实就是一个observer,这样一个复杂的系统的就变成了一个简单的系统(磁滞被NN抵消了)。从而可以用传统的控制律得到更好的控制效果。有了这么一个辅助的observer,要么在控制初期的收敛性更好要么达到收敛所需周期大大降低。

              NN目前还没能用于产生直接的控制信号。主要是对于NN工作的机制,大家还没有透彻的认识,这个受限于对生物神经系统比如神经元的工作机理通信方式协作机制的理解。在没有理解NN的工作原理之前,NN是不太可能被用为主控制律的。谁敢把一个不知道来龙去脉的黑匣子作为工业主控用途?都是辅助的,有了更好,就算那一天天晓得什么原因失灵了,我系统照样运行。

              什么时候人们对生物的神经系统工作原理有了更深的认识,NN才有作为一个全新的独立控制理论的前景。

              我们当时还有一个更有意思的课题,是我们机械和艺术系一起弄得。我们当时做了大概10左右的很简单的机器蚂蚁,就是能走能捡东西。单体控制就是传统的PID。当时我们两边的设想是用一个单独的NN系统让这些蚂蚁有一些简单的协作功能。我不知道这个项目现在进展的情况。不过在我看来,这是一个极好的推广。首先,NN是辅助系统,能协作最好,不能协作单个也能干活;其次,NN是最最自然的小团体协作控制律。我对这个项目其实是很有兴趣,不过要毕业了,也没落在我手上。如果能有突破,晨大,无人战斗机就真的可能要出头了。

              • 家园 你提到的多个小蚂蚁实际上已经超出自控的范畴了

                属于人工智能的一部分,例如多代理,机器学习和自动规划(automated planning)。

                不过我觉得最后还要靠概率统计对系统接受的信息或信号进行分类,提炼,核实。实际上如何让系统对自身产生的数值结果进行解释是难点,好比同样是一个红色信号灯亮,有时代表停止,有时代表前进,需要系统自己识别上下文环境。通过让机器渐进学习是一条路,但这样的机器很难让人信任,因为机器执行的结果很难被完全预料。

              • 家园 NN作为基本控制律最大的问题恐怕还不在于黑箱

                NN在本质上是经验模型,没有经验就没有模型。用到控制律上,控制器可以粗略地看成过程模型的逆模型,但NN很难求逆,把因果数据倒一个个硬性train一个NN或许在数值上可行,但causality颠倒不知道会引出什么怪事情来。

                即使这些问题都可以解决,NN基本上是不可外推的。这个外推包括数据集中的“空洞”,控制问题是连续的,碰到这些外推、内推的情况,NN的输出会无法预测。

                参数模型类型的控制律多少有一点外推能力,detune后总能抵挡一阵。这恐怕也是一个差别。

            • 家园 我接触到的NN

              基本都是把模型中不确定的部分用NN来代替,然后通过off line或者online的training来调整,效果可以挺好,不过NN系统的参数最开始调起来可真是累

              • 家园 我做的是on-line的

                累是累,不过效果是真好。我觉得其真正的局限还在于不能对一个“真未知”系统来模拟。所谓的不确定,其实至少你还知道其大概的模型,什么时候能真的模拟完全不知道的系统,什么时候NN才会走向实用。

                估计那一天怎么也要我们对自己的大脑有全新的认识以后了

    • 家园 嘿嘿,找到老师了

      偶专业不是控制,是标定控制系统,对于控制这块还是不是太了解,多谢晨大,我得再好好去琢磨琢磨系统!

      在我的工作范围内,巡航控制只是发动机控制的一部分,车速的稳定性通过PID控制发动机转速的波动来实现。

    • 家园 PID我现在主要用在以下几个场合
    • 家园 场合

      1怠速控制

      2巡航控制

    • 家园 受益匪浅

      偶是做汽车电子控制系统的,晨大对于PID的控制的举例让我豁然开朗,一定上车试试。

      • 家园 汽车上现在用的还是PID

        其实在汽车电子控制系统里边,PID的的使用虽然很多,但是更多的是通过对MAP的查询,结合限制值的组合逻辑判断来实现对发动机的控制。

        因为出于硬件限制和对运算速度的要求,简单的大小判断显然比微分方程的运算快得多。

        PID一般用于给定控制目标值的场合,比如说巡航控制,给个车速,让控制单元自己去玩去吧,还有就是怠速控制,当你停在十字路口的时候,你总不能为了维持发动机运转稳定,一直把脚放到加速踏板上保持一个固定的角度吧,那还不得累死,而且要是你的脚不灵活的话,稍微一动,转速上升,得,这个月的油钱又要增加了。

        对于复杂工况,是通过一系列的判断,来实现对工况的识别,比如说,起步换档的时发动机配合你的操作所提供的喷油量,并不是通过方程运算出来的,而是事先通过对典型工况的模拟,把可能的操作所需的喷油量填到一个MAP图里边,然后等你操作的时候,控制单元通过一些条件判断,嗯,车速小于5,嗯,气压值也很小,咦,水温也很低,哦,知道了,估计这家伙才上来,正准备走呢,好,那就去查查看,看起步的时候那个标定的家伙给的是多少?估计整个程序执行时间不会超过50ms,撑死100ms。

        要是用模型控制,得了,半天没有反应,死机了!

        • 家园 用map控制是典型的开环控制

          如果开环控制就足够了,那当然这是最简单的实施。PID也是可以和map结合起来的,比如像楼下说的双通道控制,把map做到前馈通道里,另外做一个低增益的PID反馈通道。我不知道汽车电子控制的硬件软件能力有多少,但这个前馈反馈PID用数字在做,绝对在单片机的能力之内;用模拟运放来做都是可以的,就是调整map麻烦一点。另外,map就是模型的一种,非参数模型,简单,实用。

      • 家园 PiD的学院派

        偶目前在车上对PiD进行参数整定时,一般采取学院派的做法,如果单纯使用积分的话,当碰到一个小坡的时候,发动机恐怕就只有熄火的分了,多少还是要给点P的,只不过有时实在太过分,给一个很小很小的P,系统就打摆子,加上积分就好了,微分从来不用,不会,嘿嘿,开发者也不会用,哈哈。因为他就是一个写PID程序的。

        • 家园 纯积分控制只有在很特别的情况下才效果比较好

          像容器液位的所谓“松弛”控制,也就是不追求液位的精确控制,但要求流量变化平稳。发动机是巡航控制的一部分吗?应该是追求速度的精确控制啊,怎么会用纯积分呢?

          很小的P就打摆子,会不会是信号噪声太大?加一点低通滤波试试?

          如果不是巡航控制的一部分,需要在油门变化的时候发动机马上跟上,但平时发动机转速平稳,可以试试“双通道”控制,把设定值作为前馈直接调整输出,但反馈回路里还是用低增益。这样可以兼顾油门变化的响应和平时的平稳。

          • 家园 以柔克刚,以刚克柔

            上学时老板曾经给一个PID整定原则“以柔克刚,以刚克柔”

            当对象特性是柔性的,即积分特性比较明显,甚至有几阶积分,则整定的参数应该以比例为主,甚至微分。

            反之当对象特性以刚性为主,即比例或者微分特性比较明显,则整定的参数应该以积分为主,或者干脆用所谓“等等看”的策略。

            因此猜测那个发动的特性可能是有比较强的刚性,所以一上比例就打摆子,还是需要有积分的缓和

            • 家园 这个说法好

              “刚性”的对象时间常数短,加点积分可以把闭环频率拉低一点,增加稳定性。积分为主的“柔性”对象本来频率就低,增加一点比例甚至微风把闭环频率拉高一点,加快相应速度。

              实际过程里这两种情况都不难解决,难的是混进一定的纯滞后。最混蛋的就是“刚性”对象加大的纯滞后,很难伺候。发动机有可能就是这样的情况,只能极大地压低比例增益,避免不稳定。

分页树展主题 · 全看首页 上页
/ 33
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河