首页 > 解决方案 > 为 Octave 安装 Rainflow 算法

问题描述

我想问你一个关于从这个站点安装 Rainflow 包的问题:https ://github.com/AmritaLonkar/rainflow-octave

我应该是这个https://de.mathworks.com/matlabcentral/fileexchange/3026-rainflow-counting-algorithm为 Octave 修改的 Matlab 包,但它不起作用。安装写在这里,但我不能这样做。我不是程序员,所以我想请你帮忙和详细的安装过程。

GNU Octave 的编译和安装

  1. 执行以下操作以从“rainflow.c”创建一个已编译的 mex 文件并测试结果: $ cd ./rainflow-octave$ make$ ls ./src/rainflow.mexrainflow.mex$ make test
  2. 将文件:rainflow.mex、rainflow.m 和 sig2ext.m 移动到 GNU Octave 可以找到它们的地方。如果 oct- 或 mex- 文件位于搜索路径中列出的目录中,Octave 将自动定位它们。要找出搜索路径,请执行以下操作: $ octaveoctave> pathOctave 的搜索路径包含以下目录: . /usr/local/share/octave/site-m 如果需要,请随时提出更多问题。

最好的问候米哈尔

我的系统

标签: octave

解决方案


我能够在我的 Windows 10 系统上使用 Octave 6.2.0 构建和运行rainflow 包。

Octave 能够在内部执行一些编译以构建包。我不知道如何使用构建后的雨流工具,但以下过程可以创建它:

  1. 下载rainflow源树并将其解压缩到它自己的文件夹中。这通常是上述git程序的目的。它下载和管理源代码。相反,手动下载源代码。
  • 雨流页面开始
  • 点击绿色按钮,上面写着Code
  • 单击下载 ZIP,将文件保存在名为 rainflow 的文件夹中,您将能够再次找到它。我用过C:\Octave\rainflow\

现在打开八度。您可以使用该pkg工具从下载的源代码构建可安装包,然后安装它。这个包非常简单,Octave-Windows 环境足以执行构建:

  • 在 Octave 中,使用cd命令或 Octave 左上角的文件夹树导航到保存rainflow 的文件夹。就我而言,使用cd我会输入的命令cd c:\octave\rainflow\。你的可能不一样。

  • 该文件夹中的唯一文件应该是rainflow-octave-master.zip

  • 现在,使用该pkg工具使用命令编译包pkg build . rainflow-octave-master.zip(这.意味着它将包保存在当前文件夹中。)

  • 完成后,该文件夹中现在应该有第二个文件,名为rainflow-1.0.2-x86_64-w64-mingw32-api-v55.tar.gz

  • 使用命令安装包pkg install rainflow-1.0.2-x86_64-w64-mingw32-api-v55.tar.gz(它会给出一些关于文档的警告,但包仍然应该安装。)

  • 通过使用命令列出已安装的软件包来验证安装pkg list。你应该在包列表中看到rainflow。如果没有,请尝试pkg rebuild另一个pkg list. 就我而言,我在列表的中途看到:

       rainflow  |   1.0.2 | C:\Users\USERNAME\octave\rainflow-1.0.2
    

您现在可以通过首先使用命令加载它来使用该包pkg load rainflow

稍微测试一下:

octave:76> rainflow
error: rainflow: RAINFLOW requires at least one input argument.
octave:77> rainflow(1)
ans = [](3x0)
octave:78> A = magic(3)
A =

   8   1   6
   3   5   7
   4   9   2

octave:79> rainflow(A)
ans =

   0.5000   2.0000   0.5000   0.5000   3.5000
   3.5000   3.0000   8.5000   6.5000   5.5000
   1.0000   1.0000   0.5000   1.0000   0.5000

我看到的唯一问题是之后help rainflow没有显示 rainflow.m 的帮助,我怀疑它应该包含在 rainflow.c 文件中。也许这与自创建雨流以来八度音程的变化有关?如果您想阅读帮助,您需要导航到软件包安装位置或解压缩的源文件的位置并键入help rainflow,此时它将显示:

octave:49> help rainflow
'rainflow' is a script from the file C:\octave\rainflow\src\rainflow.m
 RAINFLOW cycle counting.
   RAINFLOW counting function allows you to extract
   cycle from random loading.

 SYNTAX
   rf = RAINFLOW(ext)
   rf = RAINFLOW(ext, dt)
   rf = RAINFLOW(ext, extt)

 OUTPUT
   rf - rainflow cycles: matrix 3xn or 5xn dependend on input,
     rf(1,:) Cycles amplitude,
     rf(2,:) Cycles mean value,
     rf(3,:) Number of cycles (0.5 or 1.0),
     rf(4,:) Begining time (when input includes dt or extt data),
     rf(5,:) Cycle period (when input includes dt or extt data),

 INPUT
   ext  - signal points, vector nx1, ONLY TURNING POINTS!,
   dt   - sampling time, positive number, when the turning points
          spaced equally,
   extt - signal time, vector nx1, exact time of occurrence of turning points.


   See also SIG2EXT, RFHIST, RFMATRIX, RFPDF3D.

这些其他功能似乎也包含在内,并且帮助有效,因此您可以尝试help sig2exthelp rfhisthelp rfmatrixhelp rfpdf3d。我还没有测试过它们是否真的有效。但这将使包启动并运行以供您开始使用。祝你好运!


推荐阅读