exponenta event banner

rainflow

Количество дождевых потоков для анализа усталости

Описание

c = rainflow(x) возвращает количество циклов для истории времени загрузки, x, в соответствии со стандартом ASTM E 1049. Дополнительные сведения см. в разделе Алгоритмы.

пример

c = rainflow(x,fs) возвращает количество циклов для x дискретизировано со скоростью fs.

пример

c = rainflow(x,t) возвращает количество циклов для x выборка во время хранения значений в t.

пример

c = rainflow(xt) количество циклов возврата для истории времени, сохраненной в расписании MATLAB ®xt.

пример

c = rainflow(___,'ext') задает временную историю как вектор идентифицированных реверсивов (пиков и впадин). 'ext' может использоваться с любым из предыдущих синтаксисов.

[c,rm,rmr,rmm] = rainflow(___) выводит матрицу дождевого потока, rmи два вектора, rmr и rmm, содержащий границы ячейки гистограммы для строк и столбцов rmсоответственно.

[c,rm,rmr,rmm,idx] = rainflow(___) также возвращает линейные индексы реверсов, определенных на входе.

rainflow(___) без выходных аргументов строит график реверсий нагрузки и гистограмму матрицы дождевого потока на текущем рисунке.

Примеры

свернуть все

Генерировать сигнал, который напоминает историю нагрузки, состоящую из синусоидальных полупериодов, соединяющих известные равноудаленные реверсии. Сигнал дискретизируется при частоте 512 Гц в течение 8 секунд. Постройте график экстремума и сигнала.

fs = 512;

X = [-2 1 -3 5 -1 3 -4 4 -2];
lX = length(X)-1;

Y = -diff(X)/2.*cos(pi*(0:1/fs:1-1/fs)') + (X(1:lX)+X(2:lX+1))/2;
Y = [Y(:);X(end)];

plot(0:lX,X,'o',0:1/fs:lX,Y)

Figure contains an axes. The axes contains 2 objects of type line.

Счетчики циклов вычисления для данных. Отображение матрицы счетчиков циклов.

[c,hist,edges,rmm,idx] = rainflow(Y,fs);

T = array2table(c,'VariableNames',{'Count','Range','Mean','Start','End'})
T=7×5 table
    Count    Range    Mean    Start    End
    _____    _____    ____    _____    ___

     0.5       3      -0.5      0       1 
     0.5       4        -1      1       2 
       1       4         1      4       5 
     0.5       8         1      2       3 
     0.5       9       0.5      3       6 
     0.5       8         0      6       7 
     0.5       6         1      7       8 

Отображение гистограммы подсчета циклов как функции диапазона напряжений.

histogram('BinEdges',edges','BinCounts',sum(hist,2))
xlabel('Stress Range')
ylabel('Cycle Counts')

Figure contains an axes. The axes contains an object of type histogram.

Использовать rainflow без выходных аргументов для отображения гистограммы циклов как функции среднего цикла и диапазона циклов.

rainflow(Y,fs)

Figure contains 2 axes. Axes 1 with title Load Reversals contains an object of type line. Axes 2 with title Rainflow Matrix Histogram contains an object of type histogram2.

Генерировать сигнал, который напоминает историю нагрузки, состоящую из синусоидальных полупериодов, соединяющих известные, неравномерно разнесенные реверсы. Сигнал дискретизируется при частоте 10 Гц в течение 15 секунд. Постройте график экстремума и сигнала.

fs = 10;

X = [0 1 3 4 5 6 8 10 13 15];
Y = [-2 1 -3 5 -1 3 -4 4 -2 6];

Z = [];
for k = 1:length(Y)-1
    x = X(k+1)-X(k);
    z = -(Y(k+1)-Y(k))*cos(pi*(0:1/fs:x-1/fs)/x)+Y(k+1)+Y(k);
    Z = [Z z/2];
end
Z = [Z Y(end)];

t = linspace(X(1),X(end),length(Z));
plot(X,Y,'o',t,Z)

Figure contains an axes. The axes contains 2 objects of type line.

Счетчики циклов вычисления для данных. Отображение матрицы счетчиков циклов.

[c,hist,edges,rmm,idx] = rainflow(Z,t);

TT = array2table(c,'VariableNames',{'Count','Range','Mean','Start','End'})
TT=7×5 table
    Count    Range    Mean    Start    End
    _____    _____    ____    _____    ___

     0.5       3      -0.5      0       1 
     0.5       4        -1      1       3 
       1       4         1      5       6 
     0.5       8         1      3       4 
       1       6         1     10      13 
     0.5       9       0.5      4       8 
     0.5      10         1      8      15 

Использовать rainflow без выходных аргументов для отображения гистограммы циклов как функции среднего цикла и диапазона циклов.

rainflow(Z,t)

Figure contains 2 axes. Axes 1 with title Load Reversals contains an object of type line. Axes 2 with title Rainflow Matrix Histogram contains an object of type histogram2.

Генерация случайного сигнала с частотой 100 Гц в течение 100 секунд. Сохраните сигнал и его временную информацию в расписании.

fs = 100;
t = seconds(0:1/fs:100-1/fs)';

x = randn(size(t));
TT = timetable(t,x);

Отображение реверсий и матрицы дождевого потока сигнала.

rainflow(TT)

Figure contains 2 axes. Axes 1 with title Load Reversals contains an object of type line. Axes 2 with title Rainflow Matrix Histogram contains an object of type histogram2.

Создайте набор экстремальных значений, напоминающих реверсии нагрузки. Постройте график данных.

X = [-2 1 -3 5 -1 3 -4 4 -2]';

plot(X)
xlabel('Sample Index')  
ylabel('Stress')

Figure contains an axes. The axes contains an object of type line.

Счетчики циклов вычисления для данных. Укажите, что входные данные состоят из уже определенных экстремальных значений.

[C,hist,edges] = rainflow(X,'ext');

Отображение гистограммы подсчета циклов как функции диапазона напряжений.

histogram('BinEdges',edges','BinCounts',sum(hist,2))
xlabel('Stress Range')  
ylabel('Cycle Counts')

Figure contains an axes. The axes contains an object of type histogram.

Использовать rainflow без выходных аргументов для отображения гистограммы циклов как функции среднего цикла и диапазона циклов.

rainflow(X,'ext')

Figure contains 2 axes. Axes 1 with title Load Reversals contains an object of type line. Axes 2 with title Rainflow Matrix Histogram contains an object of type histogram2.

Входные аргументы

свернуть все

История времени загрузки, заданная как вектор. x должны иметь конечные значения.

Типы данных: single | double

Частота выборки, заданная как положительный действительный скаляр.

Типы данных: single | double

Значения времени, указанные как вектор, a duration массив или duration скаляр, представляющий временной интервал между выборками.

Пример: seconds(0:1/100:1) является duration матрица, представляющая 1 секунду выборки при частоте 100 Гц.

Типы данных: single | double | duration

История времени загрузки, указанная как расписание. xt должно содержать увеличивающееся конечное время строки. Расписание должно содержать только один числовой вектор данных с конечными значениями нагрузки.

Если расписание имеет отсутствующие или повторяющиеся моменты времени, его можно исправить с помощью подсказок в «Чистом расписании» с «Отсутствующим», «Повторяющимся» или «Неуниформным временем».

Пример: timetable(seconds(0:4)',rand(5,1)) задает случайную величину, дискретизированную с частотой 1 Гц в течение 4 секунд.

Типы данных: single | double

Выходные аргументы

свернуть все

Количество циклов, возвращаемое в виде матрицы. c содержит информацию о цикле в столбцах в следующем порядке: счетчики, диапазоны, средние значения, индексы начальной выборки и индексы конечной выборки. Пример см. в разделе Алгоритмы. Если задать частоту выборки, временной интервал или вектор значений времени, то два последних столбца c содержат начальное и конечное время цикла. При звонке rainflow с расписанием в качестве входных данных, то последние два столбца выражают начальное и последнее время цикла в секундах.

Матрица дождевого потока. Строки rm соответствуют диапазону цикла, а столбцы соответствуют среднему значению цикла.

Границы ячейки гистограммы, возвращаемые в виде векторов. rmr и rmm содержат края ячеек строк и столбцов rmсоответственно.

Линейные индексы разворотов, возвращаемые в виде вектора.

Алгоритмы

Анализ усталости изучает, как происходит накопление повреждений в объекте, подверженном циклическим изменениям напряжения. Количество циклов, необходимых для разрушения объекта, зависит от амплитуды цикла. Широкополосное входное возбуждение содержит циклы различной амплитуды, а наличие гистерезиса в объекте имеет эффект вложенности одних циклов в другие, либо полностью, либо частично. Подсчет дождевого потока оценивает количество циклов изменения нагрузки как функцию амплитуды цикла.

Изначально, rainflow превращает историю нагрузки в последовательность реверсивных операций. Реверсии - это локальные минимумы и максимумы, где знак изменения нагрузки. Функция подсчитывает циклы, рассматривая движущуюся опорную точку последовательности Z и движущееся упорядоченное трехточечное подмножество со следующими характеристиками:

  1. Первая и вторая точки в совокупности называются Y.

  2. Вторая и третья точки в совокупности называются X.

  3. И в X, и в Y точки сортируются от более раннего до более позднего по времени, но не обязательно являются последовательными в последовательности обращения.

  4. Диапазон X, обозначаемый r (X), является абсолютным значением разности между амплитудой первой точки и амплитудой второй точки. Определение r (Y) является аналогичным.

rainflow алгоритм выглядит следующим образом:

В конце функция собирает различные циклы и полуциклы и суммирует их диапазоны, их средства и точки, в которых они начинаются и заканчиваются. Затем эту информацию можно использовать для получения гистограммы циклов.

Рассмотрим следующую последовательность сторнирования:

ШагZАннулированияТри разворота?Yr (Y)Xr (X)r (X) < r (Y)?Z в Y?Действия
1AA, B, CДаAB3До н.э4НетДа
  1. Сосчитать АВ как ½ цикла.

  2. Отбросить А.

  3. Установите Z в B.

2BB, CНетПрочтите Д.
3BB, C, DДаДо н.э4CD8НетДа
  1. Граф до н.э. как ½ цикла.

  2. Отбросить Б.

  3. Установите Z в значение C.

4CC, DНетПрочтите Е.
5CC, D, EДаCD8DE6ДаЧитать Ф.
6CC, D, E, FДаDE6EF4ДаПрочтите Г.
7CC, D, E, F, GДаEF4FG7НетНет
  1. Подсчитать EF как 1 цикл.

  2. Отбросить E и F.

8CC, D, GДаCD8DG9НетДа
  1. Считать CD как ½ цикла.

  2. Отбросить С.

  3. Установите Z в значение D.

9DD, GНетПрочтите Х.
10DD, G, HДаDG9GH8ДаЧитай Дж.
11DD, G, H, JДаGH8HJ7ДаПрочтите К.
12DD, G, H, J, KДаHJ7JK4ДаЧитать Л.
13DD, G, H, J, K, LДаJK4KL3ДаПрочтите М.
14DD, G, H, J, K, L, MДаKL3LM5НетНет
  1. Подсчитать KL как 1 цикл.

  2. Отбросить K и L.

15DD, G, H, J, MДаHJ7JM5ДаЧитать Н.
16DD, G, H, J, M, NДаJM5MN1ДаПрочтите П.
17DD, G, H, J, M, N, PДаMN1NP4НетНет
  1. Подсчитать MN как 1 цикл.

  2. Отбросить М и Н.

18DD, G, H, J, PДаHJ7МИРОВОЙ СУДЬЯ9НетНет
  1. Подсчитать HJ как 1 цикл.

  2. Выброс H и J.

19DD, G, PДаDG9GP10НетДа
  1. Посчитайте ДГ как ½ цикла.

  2. Отбросить Д.

  3. Установите Z в G.

20GG, PНедостаточно данных

Посчитайте GP как ½ цикла.

Теперь соберите результаты.

Счетчик цикловДиапазонСреднийНачатьКонец
½3–0.5AB
½4–1BC
141EF
½81CD
13–0.5KL
112.5MN
170.5HJ
½90.5DG
½101GP

Сравните это с результатом выполнения rainflow на последовательности:

q = rainflow([-2 1 -3 5 -1 3 -4 4 -3 1 -2 3 2 6])
q =

    0.5000    3.0000   -0.5000    1.0000    2.0000
    0.5000    4.0000   -1.0000    2.0000    3.0000
    1.0000    4.0000    1.0000    5.0000    6.0000
    0.5000    8.0000    1.0000    3.0000    4.0000
    1.0000    3.0000   -0.5000   10.0000   11.0000
    1.0000    1.0000    2.5000   12.0000   13.0000
    1.0000    7.0000    0.5000    8.0000    9.0000
    0.5000    9.0000    0.5000    4.0000    7.0000
    0.5000   10.0000    1.0000    7.0000   14.0000

Ссылки

[1] ASTM E1049-85 (2017), «Стандартная практика подсчета циклов при анализе усталости». Западный Консохокен, Пенсильвания: ASTM International, 2011, https://www.astm.org/cgi-bin/resolver.cgi?E1049.

Расширенные возможности

.

См. также

| |

Представлен в R2017b