闭环消磁电流控制仪的设计与实现

2012-01-22 10:29
船海工程 2012年5期
关键词:消磁内核闭环

(海军工程大学 电气与信息工程学院 武汉 430033)

传统消磁系统认为舰船固定磁场在一定范围内是不发生变化的,所以只采用开环控制方式,即只给出一个固定的电流来补偿固定磁场。但是,实践证明,固定磁场可以随着地球磁场的长期作用、海浪对舰船的冲击、舰船上设备的改变、武器发射等情况发生变化。因此,随着磁性水雷的精度越来越高,国外磁性探潜设备对潜艇搜寻能力的提高,传统的开环消磁系统已不能满足舰船磁场隐身的要求。闭环消磁系统能实时测量舰船固定磁场的变化,并通过测得的变化量实时改变闭环消磁系统中的电流大小,以达到补偿固定磁场的目的。这样可以进一步减小舰船磁场,从而使磁性水雷失效,或者超出磁性探潜设备对潜艇的搜寻范围。本文对闭环消磁系统的核心部分闭环消磁电流控制仪进行开发和调试。

1 硬件介绍

系统的硬件组成见图1。

图1 硬件组成

本文采用ARM2748作为闭环消磁电流控制仪的主控芯片,用周立功公司生产的SmartARM2400工控开发平台进行开发。以太网访问控制器(MAC)已经在LPC2478中集成,是一个功能齐全的10/100 Mb/s以太网MAC。以太网PHY收发器采用KSZ8041NL单芯片以太网物理层收发器,它具有功耗低、体积小、波形稳定、价格便宜等特点。片外存储器采用16位存储器(NORFlash)SST39VF1601,其大小为1 Mb[1]。

闭环消磁电流控制仪主要完成3个功能:采集内部磁场、计算外部磁场和计算外部补偿电流。其主要工作流程如下。

首先从测磁仪读取磁场值,计算出潜艇内部磁场变化量,通过内外磁场换算法计算出外部磁场变化量;然后算出外部补偿电流的变化量,将该变化量发送给数控电源,数控电源输出对应的电流,达到补偿磁场变化量的目的。

2 uC/OS-Ⅱ软件系统介绍

本文采用uC/OS-Ⅱ嵌入式操作系统进行软件开发。

2.1 uC/OS-Ⅱ的移植

实验使用的是uCOS-ⅡV2.52版本,其嵌入式实时操作系统与硬件的关系见图2。

图2 uC/OS-Ⅱ体系结构

通过裁剪之后的uC/OS-Ⅱ微小内核源代码分为3部分[2]。

1)内核代码。内核代码仅提供了4个微小内核,分别位于sourceSOURCE1、sourceSOURCE2、sourceSOURCE3和sourceSOURCE4。它们的功能依次增强,代码也依次增大。

2)移植代码。将uC/OS-Ⅱ移植到LPC2478处理器上,需要修改四个与ARM体系有关的文件。分别为OS_CPU_C.C,OS_CPU_a.S, OS_CPU.H和IRQ.INC。

①OS_CPU_C.C:移植代码C语言部分;

②OS_CPU_a.S:移植代码汇编语言部分;

③OS_CPU.H:移植代码头文件;

④RQ.INC:移植代码与芯片无关的中断处理接口程序。

3)配置文件。配置文件是每个uC/OS-Ⅱ程序必备的文件,而且不同的程序一般不一样,但大小基本上相同。配置文件分别为INCLUDES.H和OS_CFG.H。

①INCLUDES.H:内核需要的头文件,对于特定的移植,一般不需要改变;

②OS_CFG.H:内核配置的头文件,一般需要根据程序的需求修改其常量的内容。

2.2 uC/OS-Ⅱ中的任务简述

uC/OS-Ⅱ是实时多任务操作系统,可以独立并行执行多个任务。通常将独立且并行执行的程序称为任务,也就是说任务是可以被分割为独立的且可并行执行的基本逻辑单位程序。一个任务的程序是顺序执行的,而不同任务的程序却是并行执行的。因此要把一个程序称为任务,必须满足两个条件:独立、并行执行。

独立的具体含义是指任务不能彼此直接调用,也不能直接进行数据交换。

如图3所示,task0和task1之间没有相互直接调用,之间的数据交换是通过内核来完成的,这时可以把task0和task1作为任务。任务在宏观上是并行执行的,一个任务需要另一个任务协助时,需将自己的请求通过系统调用提交给内核,另一个任务可以通过系统调用从内核获得这些请求,然后完成这个请求。

图3 独立的任务结构

图4 任务的并行执行

见图4,如果左侧图中每个任务都存在一个CPU,则所有的任务都可以实现并行处理,但这是不可能实现的。真实的情况如右侧图所示,CPU只有一个,但可以认为uC/OS-Ⅱ为每个任务虚拟了一个CPU。因此在对多任务进行编程时,应该时刻注意这个细节。

综上所述,任务是指程序员编写的应用软件程序,它与以往编写的程序没有太大的区别,但它是在内核下被分割为独立且可并行执行的基本逻辑单位的程序,这是它的最大特点。

3 程序设计和算法介绍

由于uC/OS-Ⅱ是多任务操作系统,因此需要建立几个关键的任务。

1)建立两个按键任务,分别是Start_Stop和Rerserve_Data。其中开始和暂停功能在Start_Stop任务中描述。

2)将接收的数据保存到片外存储器NORFlah中的功能在Rerserve_Data任务中实现。

3)建立一个UDP接收数据的任务UDP_test,这个任务的功能是采集磁场,即等待磁场数据通过以太网传输过来,然后对数据进行相应的操作,以便下一步将数据写入NORFlash中。

4)建立一个初始化任务,分别对ARM的IP地址、端口号,UDP协议,ARP协议,以太网底层功能等进行初始化。

5)建立一个计算补偿电流的任务Count_I,这个任务的功能是计算外部磁场的变化量和计算外部补偿电流的变化量。

采用文献[3]所介绍的内外磁场换算算法来计算外部磁场变化量,用到的公式为[3]

SF=(ΔNTΔN)-1ΔNT(ΔHn)h+1

(1)

(△Hw)h+1=△W×SF

(2)

式中:△N——内部磁场变化量矩阵,这个矩阵的数据已经存入磁场数据库中;

△W——外部磁场变化量矩阵,已经存入磁场数据库中;

△Hn——单次内部磁场变化量矩阵,可以通过改变潜艇磁场获得;

△Hw——单次外部磁场变化量矩阵,就是最后需要的数据。

计算外部补偿电流变化量时,用到的公式为

G×I=-b

(3)

式中:G——线圈效率矩阵;

I——线圈电流矩阵;

b——外部各个测量点的磁场矩阵。

由于测量点数大于可以通的电流数,相当于求解一个不相容的方程组。因此采用矩阵形式的最小二乘法来求解[4]。

设已给不相容实系数线性方程组(即无解的线性方程组)

A×X=B

(4)

那么它的最小二乘解所满足的代数方程为

AT×A×X=AT×B

(5)

式(5)是一个线性方程组,系数矩阵为ATA,常数项为ATB。

将式(3)代入式(4),然后按照式(5)计算,就可以得到各个线圈中应该通的电流大小。计算外部补偿电流的变化量时,只需把式(1) 的△Hn代入式(3)中的b即可。

具体软件流程见图5。

线圈效率已经测量出来。因为片外存储器(NORFlash)SST39VF1601是16位存储器,因此在写入数据时要注意存储地址及数据的存储位置。比如,LPC2478是小端存储器系统,16位数据的高8位存储在高地址,低8位存储在低地址。

经过实际操作,磁场数据的采集和存储可以很顺利地完成,外部补偿电流也能实时输出,并且可以实时根据外部磁场的变化,外部补偿电流实时发生变化,实时性基本达到了要求。补偿后的磁场也在很小的范围内,达到了闭环消磁的技术要求。

图5 闭环消磁过程流程

4 结论

实践证明,系统实时性达到了要求,补偿误差都在10%以内。而且加入了uC/OS-Ⅱ操作系统,使得软件编程简化,程序模块化和可视化程度增强。后期准备加入液晶显示模块,可以很方便地实时观察测得的磁场数据以及补偿后的效果等。

[1] 周立功.深入浅出ARM7-LPC2400[M].上册.广州:广州致远电子有限公司,2008.

[2] 周立功.uC/OS-Ⅱ微小内核分析与程序设计-基于LPC2400[M].广州:广州致远电子有限公司,2008.

[3] 王 鲸,刘胜道,苏广东.一种潜艇内外磁场换算算法的实验验证[J].海军工程大学学报,2010,22(1):83-86.

[4] 罗家洪,方卫东.矩阵分析引论[M].4版.广州:华南理工大学出版社,2006.

猜你喜欢
消磁内核闭环
多内核操作系统综述①
公平关切下闭环供应链差别定价决策
强化『高新』内核 打造农业『硅谷』
活化非遗文化 承启设计内核
基于安全闭环的“两客一危”动态监管平台
健管师基于多模态闭环式健康管理模式对2型糖尿病患者健管构建及应用
基于互相关分析的车辆消磁信号自动分割方法的研究
美海军两栖船坞登陆舰将采用新型消磁系统
微软发布新Edge浏览器预览版下载换装Chrome内核
消磁是什么