LeoJhonSong / sonar_calculator

常见场景主/被动声呐方程计算器

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

sonar_calculator

需求

思维导图

  • 基本参数
    • 信号参数: 频率f,声速C,信号形式:CW/Chirp,脉宽t_pulse,带宽B
    • 探测方式: 主动探测, 被动探测
    • 探测距离: 最近距离, 最远距离
    • 换能器参数: 发送响应、接收灵敏度、指向性(阵型、通道数)
  • 计算结果
    • SL 最大发射功率 发射电压有效值
    • TL α吸收系数
    • NL 海洋背景噪声
    • DI 阵型、阵元数
    • TS 目标类型 目标大小
    • DT 虚警概率 检测概率(输入值)

公式

可以整理出必填参数为: $信号频率f, 声速c, 带宽B, 脉宽t$

         信号级  -背景干扰级=检测阈
主动: (SL-2TL+TS)-(NL-DI)=DT
被动: (SL- TL)   -(NL-DI)=DT
  • $SL=S_v+20\lg v=S_w+10\lg P, S_v/S_w为发射电压/功率响应 (值一样), v为发射器终端电压, P为发射器终端功率$

  • $TL=20\lg(r)+60+\alpha\times r$ 尤里克P88, 不计具体传播条件, 传播损失粗略近似 以km而不是m为单位, 导致多60

    • $\alpha=\frac{\frac{0.1f^2}{1+f^2}+\frac{40f^2}{4100+f^2}+2.75\times10^{-4}f^2+0.003}{1.0936}$ 尤里克P85, 低频段吸收系数经验公式 (Thorp) ==针对4度, 3000英尺约为914.4m处==
    • $r$单位km, $f$单位kHz
  • $TS$: 凸面, 大球, 有限任意平板 尤里克P239, 表9.1

    image-20231026215022847
  • $NL=10\lg f^{-1.7}+6S+55+10\lg B$ 刘伯胜P249公式7.20c用海况表示的浅海噪声谱级 (加上带内噪声) $f$单位kHz

  • DI=

    型式 AG 符号 条件 参考文献
    线列阵 $10\lg N$ $N为阵元数,d为孔径$ $d=\frac{n\lambda}{2}$ 压电换能器和换能器阵P363公式14.30
    点源方形阵 $10\lg MN$ $N行M列阵元,行间距d_1,列间距d_2$ $d_1=\frac{n_1\lambda}{2},d_2=\frac{n_2\lambda}{2}$ 压电换能器和换能器阵P382非相控阵空间增益
    椭圆形活塞阵 $10\lg \frac{4\pi^2\sqrt{a^2+b^2}}{\lambda^2}$ $2b为长轴,2a为短轴$ $b>\lambda$ 压电换能器和换能器阵P374
    圆形活塞阵 $20\lg\frac{\pi D}{\lambda}$ $D为活塞阵直径$ $a>\lambda$ 压电换能器和换能器阵P374 (由椭圆形活塞阵AG变换得)
    矩形活塞阵 $10\lg \frac{4\pi S}{\lambda^2}$ $b为长,a为宽$ $a, b<2\lambda$ 压电换能器和换能器阵P376
  • DT 尤里克P309

    • 互相关接收机: $DT=10\lg \frac{d}{2t}, t为信号持续时间, B为带宽$
    • 平方律检测器: $DT=5\lg\frac{dB}{t}$
    • 平滑滤波器: $DT=5\lg\frac{dB}{t}+|5\lg\frac{T}{t}|, T为积分时间$
    • d检测指数由$检测概率p(D)和虚警概率p(FA)的ROC曲线给出$ 尤里克P299image-20231027020229545

开发

环境配置

总结官方环境配置文档, 需要做的有三步:

  1. Flutter SDK 归档列表下到对应系统Stable channel最新版本的压缩包, 解压到想要的地方如/home/[username]/local/flutterC:\Users\[username]\Softwares\flutter

  2. 在终端/Powershell进入到该文件夹路径后根据在**网络环境下使用 Flutter用对应系统的语法, 添加环境变量切换镜像源以及将flutter添加到Path

    • Linux (如果使用zsh添加到如下的~/.zshrc, 如果使用bash则添加到~/.bashrc)

      cat <<EOT >> ~/.zshrc
      export PUB_HOSTED_URL="https://pub.flutter-io.cn"
      export FLUTTER_STORAGE_BASE_URL="https://storage.flutter-io.cn"
      export PATH="$PWD/flutter/bin:\$PATH"
      EOT
      
    • Windows

      # 这段命令官方文档里没完全写对
      $newPath = $pwd.PATH + "\bin\",$env:PATH -join ";"
      [System.Environment]::SetEnvironmentVariable('Path',$newPath,'User')
      [System.Environment]::SetEnvironmentVariable('PUB_HOSTED_URL','https://pub.flutter-io.cn','User')
      [System.Environment]::SetEnvironmentVariable('FLUTTER_STORAGE_BASE_URL','https://storage.flutter-io.cn','User')
      
  3. 打开一个新的终端执行flutter doctor下载dart并检查缺少依赖

    • Linux: 根据提示添加依赖
    • Windows: 从其他 Windows 需要的内容下载安装Visual Studio生成工具 (只需安装使用 C++ 的桌面开发部分所有默认组件)

构建应用

  • Linux: flutter build linux
  • Windows: flutter build Windows

参考资料

Flutter

第三方包

About

常见场景主/被动声呐方程计算器


Languages

Language:Dart 50.3%Language:C++ 24.1%Language:CMake 20.4%Language:HTML 2.0%Language:C 1.5%Language:Swift 1.5%Language:Kotlin 0.1%Language:Objective-C 0.0%