西西河

主题:【原创】我所知道的舵、操舵和自动舵 -- 代码ABC

共:💬24 🌺266 新:
全看分页树展 · 主题 跟帖
家园 【原创】我所知道的舵、操舵和自动舵(三)

讲到自适应控制突然发现这坑挖得有点深,快把自己给埋住了,所以赶紧填了。

其实基于PID的自动舵和其它工业领域的PID控制是一回事,麻烦的都在所谓的参数整定上,也就是那条公式中的几个参数怎么算出来。不过船舶运动相对要麻烦一些。简单的控制系统尤其是那些模型清晰的,参数完全可以通过纸面运算得到。而船舶在水中的运动其实和飞机在空气运动类似,因此某种意义上说自动舵系统是一个简化版的飞控系统。好在需要控制的舵面只有一个,运动速度也远小于飞机,而且环境变化也没飞机那么剧烈。然而不管怎么说,想把船舶在水中运动的模型完全搞出来几乎是不可能的。也就是说现在的问题是:在我们不知道舵盘转动后船会怎么动的情况下,如何通过转舵来控制一条船。

听起来有两个不可思议的地方:首先我们怎么会不知道舵对船的作用;其次在不清楚系统运作机制的情况下怎么可能控制一个系统。

第一个问题:绝大部分情况下船是很听舵的控制的,然而事情总有例外,不同的船型、不同的水深、不同的速度、不同载重情况下舵的作用是不一样的。比如船相对水静止的时候舵是不起作用的。除此之外还有一些令人意外的事情,比如一些船(可能大部分都是)转舵瞬间会船头会有一个相反的转动,我听父亲说过他们船上的舵手在满舵前会先向相反的方向压一下舵然后再转过来,这样可以让船更快地转向。

第二个问题就是自适应控制的威力了,某些系统即使我们不知道内部工作原理,也可以通过他们对输入的响应推算。最有名的就是所谓的线性时不变系统,线性的意思就是叠加的输入的到叠加的输出;时不变则表示系统内部工作机制不会随时间变化而变化。比如一个系统对1输出两个0.5,那么我们可以判定其对2的输入会输出两个1,而且任何时刻都是这样。说穿了并不复杂,其实就是在函数形态已知的条件下,根据函数的几个点推导函数的参数而已。只不过很多时候我们并不需要知道函数的解析式,而且许多系统无法用几个函数表达,我们更多的使用这些系统对特定信号的响应来表达罢了。有了这些理论工具我们就可以通过观测系统的历史来预测系统对特定输入的响应,然后再通过一些优化算法来调整我们的控制参数令其输出达到指定的性能指标。这就是自适应控制的基本原理。和模型已知的控制区别在于,我们无法得到一个全局最优的控制,但我们可以得到一个在大部分情况下都不错的控制。

对于自动舵系统来说这套理论还真能解决大部分问题。最給力的就是我们不再需要找出复杂的船舶运动方程。虽然在自适应自动舵系统里我们还需要增加诸如船舶内部参数配置(如载重)和一些传感器(如波浪测量等),但整个模型是大大简化了。目前成熟的自动舵系统大部分都是这类东西,同时结合现代定位技术,如GPS。自动舵不但能保持航向还能保持船舶运动轨迹,这类能保持轨迹的自动舵我们称为轨迹舵,而保持航向的我们称为航向舵。在电子技术飞速进步的今天,驾驶室里的很多东西都转化为数字式的,并且在计算机的帮助下这些东西很容易结合起来发展出新的功能。比方和雷达配合自动舵可以完成自动避碰功能。配合电子海图和GPS定位系统现在航海部门的工作比以前要简单很多了。领航员可以直接在电子海图上画出航线,船舶就可以在自动舵的操控下自动开往目的地。以前需要在多个导航点测船位,再修改航向的工作现在变成后备作业。所以现代先进的驾驶室技术让菜鸟也可以开航空母舰,而且不会跑偏。

最后,土鳖不土鳖呢?这是一个问题。因为这里还留了一个尾巴——智能自动舵,不过目前这个东西还在实验室里,有空再补吧。

元宝推荐:铁手,

本帖一共被 1 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


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

Copyright © cchere 西西河