文档详情

雨流计数法matlab程度源代码

m****
实名认证
店铺
DOCX
13.90KB
约3页
文档ID:516245229
雨流计数法matlab程度源代码_第1页
1/3

精选优质文档-----倾情为你奉上% 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.% RAINFLOW% Copyright (c) 1999-2002 by Adam Nieslony,% MEX function.function rfdemo1(ext)% function rfdemo1(ext)%% RFDEMO1 shows cycles extracted from signal% using rainflow algoritm.% % INPUT: ext - option, number or vectors with turning% points or time history. Default ext=16.% % OUTPUT: no enable.% % SYNTAX:% >>rfdemo1% >>rfdemo1(10)% >>rfdemo1([2 3 2 4 2 5 1 6])%% By Adam Nies硂ny% Revised, 10-Nov-2009% Visit the MATLAB Central File Exchange for latest version.error(nargchk(0,2,nargin))if nargin==0, % turning points from 16 random numbers ext=sig2ext(randn(4));elseif length(ext(:))==1, % turning points from n random numbers ext=sig2ext(randn(1,ext));else % turning points from vector ext ext=sig2ext(ext);enda=rainflow(ext,1);[m n]=size(a);% if n>100,% button = questdlg(['Rainflow found ' num2str(sum(a(3,:))) ' cycles! Do you want to continue?'],...% 'Continue Operation','Yes','No','No');% if strcmp(button,'No')% error('Function aborted by user.') % end% endcol='ymcrgb';plot(0:length(ext)-1,ext,'k.:')hold onwyk=0:0.05:1;for c=1:n, colnr=rem(c-1,6)+1; nr1=round(a(4,c)+1); nr2=round(a(4,c)+1+a(5,c)*a(3,c)); if a(3,c)==1.0, if ext(nr1)ext(nr2), plot(wyk.*a(5,c)*0.5+a(4,c),cos( wyk.*pi)*a(1,c)+a(2,c),col(colnr)) text(a(4,c),a(2,c)+a(1,c),[int2str(c) '. Half-cycle, down'],... 'Color',col(colnr),'VerticalAlignment','bottom') else plot(wyk.*a(5,c)*0.5+a(4,c),cos(pi+wyk.*pi)*a(1,c)+a(2,c),col(colnr)) text(a(4,c),a(2,c)-a(1,c),[int2str(c) '. Half-cycle, up'],... 'Color',col(colnr),'VerticalAlignment','top') end endendxlabel('peaks, counted from 0')ylabel('value')title('Rainflow cycles extracted from signal')legend('peaks from signal',0)hold offdisp('Row 1: amplitude')disp('Row 2: mean')disp('Row 3: number of cycles (cycle or half cycle)')disp('Row 4: begin time of extracted cycle or half cycle')disp('Row 5: period of a cycle') disp(a)专心---专注---专业。

下载提示
相似文档
正为您匹配相似的精品文档
相关文档