文档库 最新最全的文档下载
当前位置:文档库 › 随机载荷模拟及雨流计数方法在matlab中的实现

随机载荷模拟及雨流计数方法在matlab中的实现

随机载荷模拟及雨流计数方法在matlab中的实现
随机载荷模拟及雨流计数方法在matlab中的实现

近日来的工作

一、仿真随机过程

sw=2;

A=sqrt(2*sw*detaw)

(1)中心频率为10pi,detaw=0.01,带宽为2pi的低频窄带随机过程for n=9:0.01:11;

xn=A*sin(n*pi*t+rand(1,1)*2*pi);

x=x+xn;

end

(2)中心频率为100pi,detaw=0.01,带宽为2pi的高频窄带随机过程for n=99:0.01:101;

yn=A*sin(n*pi*t+rand(1,1)*2*pi);

y=y+yn;

end

(3)低频与高频组合成的宽带随机过程

二、用雨流计数法截取循环

(1)得到随机过程x的极点值(储存在矩阵S中)。

n=length(x);

s=x(1);

for i=2:n-1;

if (x(i)>x(i-1))&&(x(i)>x(i+1))||((x(i)

end

end

S=[s,x(n)];

(2)对极值点间变程进行比较分析,截取循环

while i+3

i=i+1;

detaS1=abs(S(i+1)-S(i)); %获得四个极值点间的三段变程

detaS2=abs(S(i+2)-S(i+1));

detaS3=abs(S(i+3)-S(i+2));

if (detaS2<=detaS1)&&(detaS2<=detaS3) %将变程满足截取条件的循环截取出 Ba=[Ba,(S(i+2)-S(i+1))/2]; %截取出循环的幅值

Bm=[Bm,(S(i+2)+S(i+1))/2]; %截取出循环的均值

Q=[Q;S(i+1),S(i+2)]; %构成截取出循环的极值点存于Q中,即原随机过程抛弃的点

S(i+1)=[];

S(i+2)=[];

i=i-1;

end

end

Sr=S; %剩余的极值点存于Sr中

(3)分别对低频窄带、高频窄带、宽带进行雨流处理

低频窄带

高频窄带

宽带

首先,每种随机过程都对一个信号雨流处理的结果比较

其次,每种随机过程都对很多个信号雨流处理的统计结果(对100组信号进行统计):

rate

低频窄带随机过程0.0814

频窄带随机过程0.3006

组合宽带随机过程0.3178

这样看的话这种雨流计数法对这三种随机过程的适用性:宽带>高频窄带>低频窄带(自己这么想的,不知是否行的通)

三、对剩余载荷的处理

re=[ZSr,ZSr];

[reside,Ba,Bm,Q]=Rainflow(re);

四、载荷的重构(将循环插入剩余载荷中)

(1)筛选出要插入循环Q中高于门槛值threshold的循环存于S中

[c,r]=size(Q);

S=[];

Abs=[];

for i=1:c

if abs(Q(i,2)-Q(i,1))>threshold

S=[S;Q(i,1),Q(i,2)];

Abs=[Abs,abs(Q(i,2)-Q(i,1))];

end

end

(2)对S中循环按幅值大小降序排列

[Abs,index]=sort(Abs);

index=fliplr(index);

k1=S(:,1);S(:,1)=k1(index);

k2=S(:,2);S(:,2)=k2(index);

(3)按幅值由大到小插入载荷序列中(这部分编出来程序运行没有问题,但结果显示似乎并没有插进去,还在寻找问题中…)

[c,r]=size(S);

no1=[];no2=[];

while m<=c

if S(m,1)

n=length(reside);

rde=[];indexrde=[];

for i=1:n-1

if(reside(i)>=S(m,2))&&(reside(i+1)<=S(m,1)) %筛选出第m

个循环能够插入的序列

rde=[rde;reside(i),reside(i+1)];

indexrde=[indexrde;i,i+1];

end

end

[k,g]=size(rde);

if k==0

m=m+1;

else

chu=randi(k,1,1); %在所有能够插入的序列中随机选取一个插入

p=indexrde(chu,1);

reside=[reside(1:p),S(m,1),S(m,2),reside(p+1:length(reside))]; m=m+1;

end

else

n=length(reside);

rin=[];indexrin=[];

for i=1:n-1

if (reside(i)<=S(m,2))&&(reside(i+1)>=S(m,1))

rin=[rin;reside(i),reside(i+1)];

indexrin=[indexrin;i,i+1];

end

end

[k,g]=size(rin);

if k==0

m=m+1;

else

chu=randi(k,1,1);

p=indexrin(chu,1);

reside=[reside(1:p),S(m,1),S(m,2),reside(p+1:length(reside))]; m=m+1;

end

end

end

问题四:这种以逆雨流法重构载荷的意义就在于去除一些不必要的载荷吗?

《应用计算方法教程》matlab作业二

6-1 试验目的计算特征值,实现算法 试验容:随机产生一个10阶整数矩阵,各数均在-5和5之间。 (1) 用MATLAB 函数“eig ”求矩阵全部特征值。 (2) 用幂法求A 的主特征值及对应的特征向量。 (3) 用基本QR 算法求全部特征值(可用MATLAB 函数“qr ”实现矩阵的QR 分解)。 原理 幂法:设矩阵A 的特征值为12n ||>||||λλλ≥???≥并设A 有完全的特征向量系12,,,n χχχ???(它们线性无关),则对任意一个非零向量0n V R ∈所构造的向量序列1k k V AV -=有11()lim ()k j k k j V V λ→∞ -=, 其中()k j V 表示向量的第j 个分量。 为避免逐次迭代向量k V 不为零的分量变得很大(1||1λ>时)或很小(1||1λ<时),将每一步的k V 按其模最大的元素进行归一化。具体过程如下: 选择初始向量0V ,令1max(),,,1k k k k k k k V m V U V AU k m +===≥,当k 充分大时1111,max()max() k k U V χλχ+≈ ≈。 QR 法求全部特征值: 111 11222 111 ,1,2,3,k k k k k A A Q R R Q A Q R k R Q A Q R +++==????==??=???? ??????==?? 由于此题的矩阵是10阶的,上述算法计算时间过长,考虑采用改进算法——移位加速。迭 代格式如下: 1 k k k k k k k k A q I Q R A R Q q I +-=?? =+? 计算k A 右下角的二阶矩阵() () 1,1 1,() (),1 ,k k n n n n k k n n n n a a a a ----?? ? ??? 的特征值()()1,k k n n λλ-,当()()1,k k n n λλ-为实数时,选k q 为()()1,k k n n λλ-中最接近(),k n n a 的。 程序

概率特性仿真实验与程序-Matlab仿真-随机数生成-负指数分布-k阶爱尔兰分布-超指数分布

概率特性仿真实验与程序-Matlab 仿真-随机数生成-负指数分布-k 阶 爱尔兰分布-超指数分布 使用Java 中的SecureRandom .nextDouble()生成一个0~1之间的随机浮点数,然后使用反函数法生成一个符合指数分布的随机变量(反函数求得为λ) 1ln(R x --=)。指数分布的 参数λ为getExpRandomValue 函数中的参数lambda 。生成一个指数分布的随机变量的代码如下,后面都将基于该函数生成一组负指数分布、K 阶爱尔兰分布、2阶超指数分布随机变量,然后将生成的随机数通过matlab 程序进行仿真,对随机数的分布特性进行验证。 生成一组参数为lambda (λ)的负指数分布的随机变量 通过下面的函数生成一组λ参数为lambda 的随机变量,其中size 表示随机变量的个数。通过该函数生成之后,可以将这些随机值保存在文件中,以备分析和验证,比如保存在exp.txt 文件中,供下面介绍的matlab 程序分析。 通过genExp (1000000, 0.2)生成1000000个参数为0.2的随机变量,然后保存到exp.txt 中,然后使用下面的matlab 程序对这些随机数的性质进行验证,如果这些随机数符合λ=0.2的负指数分布,则其均值应为1/λ,即1/0.2=5,其方差应为1/λ2=1/(0.2*0.2)=25。然后对这些随机数的概率分布进行统计分析,以长度为1的区间为统计单位,统计各区间内随机数出现的频数,求出在各区间的概率,绘制图形,与参数为λ的真实负指数分布曲线进行对比。下图为matlab 代码

如下图所示,均值为4.996423,约等于5,方差为24.96761,约等于25,与实际情况相符。此外,通过matlab统计的概率密度函数曲线与真实曲线基本重合(其中在0-1之间没有重合的原因是,实际情况是在0-1之间有无数个点,而matlab统计时以1为一个区间进行统计,只生成了一个统计项,而这无数个点的概率全部加到1点处,因此两条线没有重合,而且1点处的值远大于实际值,如果统计单位划分越细,0-1之间的拟合度更高),表明生成的随机数符合负指数分布。

计算方法_全主元消去法_matlab程序

%求四阶线性方程组的MA TLAB程序 clear Ab=[0.001 2 1 5 1; 3 - 4 0.1 -2 2; 2 -1 2 0.01 3; 1.1 6 2.3 9 4];%增广矩阵 num=[1 2 3 4];%未知量x的对应序号 for i=1:3 A=abs(Ab(i:4,i:4));%系数矩阵取绝对值 [r,c]=find(A==max(A(:))); r=r+i-1;%最大值对应行号 c=c+i-1;%最大值对应列号 q=Ab(r,:),Ab(r,:)=Ab(i,:),Ab(i,:)=q;%行变换 w=Ab(:,c),Ab(:,c)=Ab(:,i),Ab(:,i)=w;%列变换 n=num(i),num(i)=num(c),num(c)=n;%列变换引起未知量x次序变化for j=i:3 Ab(j+1,:)=-Ab(j+1,i)*Ab(i,:)/Ab(i,i)+Ab(j+1,:);%消去过程 end end %最后得到系数矩阵为上三角矩阵 %回代算法求解上三角形方程组 x(4)=Ab(4,5)/Ab(4,4); x(3)=(Ab(3,5)-Ab(3,4)*x(4))/Ab(3,3); x(2)=(Ab(2,5)-Ab(2,3)*x(3)-Ab(2,4)*x(4))/Ab(2,2); x(1)=(Ab(1,5)-Ab(1,2)*x(2)-Ab(1,3)*x(3)-Ab(1,4)*x(4))/Ab(1,1); for s=1:4 fprintf('未知量x%g =%g\n',num(s),x(s)) end %验证如下 %A=[0.001 2 1 5 1; 3 -4 0.1 -2 2;2 -1 2 0.01 3; 1.1 6 2.3 9 4]; %b=[1 2 3 4]'; %x=A\b; %x1= 1.0308 %x2= 0.3144 %x3= 0.6267 %x4= -0.0513

matlab 产生随机数命令大全

matlab产生随机数 Matlab(https://www.wendangku.net/doc/6012869498.html,) 随机数生成方法: 第一种方法是用 random 语句,其一般形式为 y = random('分布的英文名',A1,A2,A3,m,n), 表示生成 m 行 n 列的 m × n 个参数为 ( A1 , A2 , A3 ) 的该分布的随机数。例如: (1) R = random('Normal',0,1,2,4): 生成期望为 0,标准差为 1 的(2 行 4 列)2× 4 个正态随机数 (2) R = random('Poisson',1:6,1,6): 依次生成参数为 1 到 6 的(1 行 6 列)6 个 Poisson 随机数 第二种方法是针对特殊的分布的语句: 一.几何分布随机数(下面的 P,m 都可以是矩阵) R = geornd(P) (生成参数为 P 的几何随机数) R = geornd(P,m) (生成参数为 P 的× m 个几何随机数) 1 R = geornd(P,m,n) (生成参数为 P 的 m 行 n 列的 m × n 个几何随机数) 例如 (1) R = geornd(1./ 2.^(1:6)) ( 生成参数依次为 1/2,1/2^2,到 1/2^6 的 6 个几何随机数) (2) R = geornd(0.01,[1 5]) (生成参数为 0.01 的(1行5列)5 个几何随机数). 二.Beta 分布随机数 R = betarnd(A,B) (生成参数为 A,B 的 Beta 随机数) R = betarnd(A,B,m) (生成× m 个数为 A,B 的 Beta 随机数) 1 R = betarnd(A,B,m,n) (生成 m 行 n 列的 m × n 个数为 A,B 的 Beta 随机数). 三.正态随机数 R = normrnd(MU,SIGMA) (生成均值为 MU,标准差为 SIGMA 的正态随机数)R = normrnd(MU,SIGMA,m) (生成 1× m 个正态随机数) R = normrnd(MU,SIGMA,m,n) (生成 m 行 n 列的 m × n 个正态随机数)例如 (1) R = normrnd(0,1,[1 5]) 生成 5 个正态(0,1) 随机数 (2) R = normrnd([1 2 3;4 5 6],0.1,2,3) 生成期望依次为[1,2,3;4,5,6], 方

雨流计数法matlab程度源代码

% 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. %

Matlab 各种随机数设置

Matlab 各种随机数设置 randn(伪随机正态分布数) Normally distributed pseudorandom numbers Syntax r = randn(n) randn(m,n) randn([m,n]) randn(m,n,p,...) randn([m,n,p,...]) randn(size(A)) r = randn(..., 'double') r = randn(..., 'single') Description r = randn(n) returns an n-by-n matrix containing pseudorandom values drawn from the standard normal distribution. randn(m,n) or randn([m,n]) returns an m-by-n matrix. randn(m,n,p,...) or randn([m,n,p,...]) returns an m-by-n-by-p-by-... array. randn returns a scalar. randn(size(A)) returns an array the same size as A. r = randn(..., 'double') or r = randn(..., 'single') returns an array of normal values of the specified class. Note The size inputs m, n, p, ... should be nonnegative integers. Negative integers are treated as 0. The sequence of numbers produced by randn is determined by the internal state of the uniform pseudorandom number generator that underlies rand, randi, and randn. randn uses one or more uniform values from that default stream to generate each normal value. Control the default stream using its properties and methods. Note In versions of MATLAB prior to 7.7 (R2008b), you controlled the internal state of the random number stream used by randn by calling randn directly with the 'seed' or 'state' keywords. Examples Generate values from a normal distribution with mean 1 and standard deviation 2. r = 1 + 2.*randn(100,1); Generate values from a bivariate normal distribution with specified mean vector and covariance matrix. mu = [1 2]; Sigma = [1 .5; .5 2]; R = chol(Sigma); z = repmat(mu,100,1) + randn(100,2)*R; Replace the default stream at MATLAB startup, using a stream whose seed is based on clock, so that randn will return different values in different MATLAB sessions. It is usually not desirable to do this more than once per MATLAB session. RandStream.setDefaultStream ...

雨流计数法及其在程序中的具体实现

雨流计数法及其在程序中的具体实现 董乐义,罗俊,程礼 (西安空军工程大学工程学院,陕西西安710038) 摘 要:根据雨流计数法的规则和在实际中应用的体会,介绍了雨流计数法在程序中实现的具体方 法。它适合用各种语言编写,在计取循环数时采用的“四点法”使程序的实现比用其他方法更加准确可靠,简单明了。 关键词:计数法;程序;循环 中图分类号:T P 311.1;T P 301.6 文献标识码:A 文章编号:1002-6061(2004)03-0038-03 Rain Flow Count Method and Its Realization in Programming DONG L e-y i,L U O Jun,CHENG L i (Airfor ce and E ngine Department of En gineering College of Airforce Engineer ing U nivers ity,Xi'an 710038,Ch ina) Abstract :Acco rding to t he rules o f the rain -flo w co unt met ho d and the exper iences in pract ice ,this art icle int roduces t he met hod t o realize t he rain-f low count in t he prog ramm ing.It can be compiled in various com put er lang uag es.And the “F our -point s m et hod ”used in co unt ing t he loo p number can make t he realizat ion of prog ram mor e reliable ,simple and clear t han o ther methods . Key words :count met ho d ;pro gram ;loo p 收稿日期:2003-10-28 作者简介:董乐义(1974-),在读研究生,专业方向为航空发动 机可靠性与使用寿命研究。 1 雨流计数法简介 雨流计数法又可称为“塔顶法”,是由英国的M at-suiski 和Endo 两位工程师提出的,距今已有50多年。雨流计数法主要用于工程界,特别在疲劳寿命计算中运用非常广泛。由来请参看图1,把应变-时间历程数据记录转过90°,时间坐标轴竖直向下,数据记录犹如一系列屋面,雨水顺着屋面往下流,故称为雨流计数法。在50年前人们主要以手工计算为主,但手工计算只能处理一些相对比较简单(指数据量不大)的数据,对于数据较多的问题手工处理起来就不太容易了。随着电子计算机的不断发展,运算速度的不断加快使这些烦琐的计算大大简化。 这种方法的突出特点是根据所研究对象的应变-时间之间的非线性关系来进行计数,亦即把样本记录用雨流计数法定出一系列循环。 雨流计数法有下列规则: 1)雨流在试验记录的起点和依此在每一个峰值的 内边开始,亦即从1,2,3,…等尖点开始。 图1 雨流计数法 2)雨流在流到峰值处(即屋檐)竖直下滴,一直流到对面有一个比开始时最大值(或最小值)更正的最大值(或更负的最小值)为止。 3)当雨流遇到来自上面屋顶流下的雨时,就停止流动,并构成了一个循环。 4)根据雨滴流动的起点和终点,画出各个循环,将所有循环逐一取出来,并记录其峰谷值。 5)每一雨流的水平长度可以作为该循环的幅值。 ?38?计算机技术与应用2004年第24卷第3期

雨流计数法在风力发电机组疲劳寿命计算中的应用

雨流计数法在风力发电机组疲劳寿命计算中的应用 摘要:本文围绕疲劳寿命计算和雨流计数法展开,详细介绍了对雨流计数原理的理解步骤,对疲劳寿命计算流程做了一个整体的概括,本文旨在讲述雨流计数法统计全循环的步骤。风电材料设备 关键词:雨流计数法风力发电机组疲劳寿命中国 1 引文 众所周知,风力发电在我国取得了长足的发展和进步。但是,目前我国还没有完善的技术标准和认证体系。风电产品的质量是风电设备制造企业的生命线,而建立标准和开展产品检测认证则是保障风电设备质量的有效手段。因此,我国急需健全、完善和提高风电技术标准和检测认证体系,为风电设备的质量提供保障和监督。由此可见,建立我国自主的风电机组评价体系和产品的认证机构就显得尤为重要。建立这些除了需要必要的财力物力之外,还必须要有大批量的掌握结构设计、载荷评估、寿命计算、热力学、振动学等知识的技术人员。 2 疲劳寿命计算 结构设计计算或者评估一般要进行极限强度计算、疲劳寿命计算、振动分析、热平衡计算等。本文主要围绕疲劳寿命计算叙述,根据所进行的分析以及所必须的已知条件,可以把疲劳寿命计算的步骤归纳为以下流程图[1]。疲劳寿命计算根据载荷谱不同可分为三种情况:恒幅载荷作用下的疲劳寿命计算可以直接利用S-N曲线;变幅载荷下的疲劳寿命计算可以运用MINER理论进行等效计算;随机载荷是个比较复杂的情况,首先要将其转化为恒幅或者变幅载荷谱,然后再进行计算。 疲劳寿命计算的一般方法是: ①首先获取相关零件的材料性能、几何形状、加工工艺、装配过程和加载历程等信息,应用有限元结构分析技术(静强度分析)来判断可能发生破坏的位置(即危险点);然后利用软件后处理来确定在施载荷条件下的局部应力——应变响应; ②获取工作载荷谱:对于复杂的加载历程(主要指随机载荷历程),可用循环计数法对载荷进行分析、处理,得出统计规律。 ③最后结合零件或材料寿命曲线以及载荷谱进行疲劳寿命分析,以获得疲劳寿命的预计值。对照分析

(整理)matlab16常用计算方法.

常用计算方法 1.超越方程的求解 一超越方程为 x (2ln x – 3) -100 = 0 求超越方程的解。 [算法]方法一:用迭代算法。将方程改为 01002ln()3 x x =- 其中x 0是一个初始值,由此计算终值x 。取最大误差为e = 10-4,当| x - x 0| > e 时,就用x 的值换成x 0的值,重新进行计算;否则| x - x 0| < e 为止。 [程序]P1_1abs.m 如下。 %超越方程的迭代算法 clear %清除变量 x0=30; %初始值 xx=[]; %空向量 while 1 %无限循环 x=100/(2*log(x0)-3); %迭代运算 xx=[xx,x]; %连接结果 if length(xx)>1000,break ,end %如果项数太多则退出循环(暗示发散) if abs(x0-x)<1e-4,break ,end %当精度足够高时退出循环 x0=x; %替换初值 end %结束循环 figure %创建图形窗口 plot(xx,'.-','LineWidth',2,'MarkerSize',12)%画迭代线'.-'表示每个点用.来表示,再用线连接 grid on %加网格 fs=16; %字体大小 title('超越方程的迭代折线','fontsize',fs)%标题 xlabel('\itn','fontsize',fs) %x 标签 ylabel('\itx','fontsize',fs) %y 标签 text(length(xx),xx(end),num2str(xx(end)),'fontsize',fs)%显示结果 [图示]用下标作为自变量画迭代的折线。如P0_20_1图所示,当最大误差为10-4时,需要迭代19次才能达到精度,超越方程的解为27.539。 [算法]方法二:用求零函数和求解函数。将方程改为函数 100()2ln()3f x x x =-- MATLAB 求零函数为fzero ,fzero 函数的格式之一是 x = fzero(f,x0) 其中,f 表示求解的函数文件,x0是估计值。fzero 函数的格式之二是 x = fzero(f,[x1,x2])

matlab中产生随机数的程序

1.由U(0,1)分布的随机数产生U(a,b)的随机数 r=rand(1,20); s=a+(b-a)*r; 例: r=rand(1,20); s=2+(10-2)*r s = Columns 1 through 11 7.0589 2.7803 4.2280 6.3751 9.6601 9.7191 3.2609 9.7647 9.6573 5.8830 8.4022 Columns 12 through 20 3.1351 5.3741 9.3259 8.3377 9.6759 7.2459 2.2857 8.7930 9.4719 2.指数分布的抽样 (6.9)n=10的时候 u=rand(1,19); r=1; for i=1:19 r=r*u(i); end s=log(r); m=1; for j=11:19 if(u(j-1)>u(j)) y(m)=u(j) else y(m)=u(j) end m=m+1; end for k=2:9 x(k)=(y(k-1)-y(k))*s end x y = 0.4168

0.4168 0.6569 y = 0.4168 0.6569 0.6280 y = 0.4168 0.6569 0.6280 0.2920 y = 0.4168 0.6569 0.6280 0.2920 0.4317 y = 0.4168 0.6569 0.6280 0.2920 0.4317 0.0155 y = 0.4168 0.6569 0.6280 0.2920 0.4317 0.0155 0.9841 y = 0.4168 0.6569 0.6280 0.2920 0.4317 0.0155 0.9841 0.1672

matlab用于计算方法的源程序

1、Newdon迭代法求解非线性方程 function [x k t]=NewdonToEquation(f,df,x0,eps) %牛顿迭代法解线性方程 %[x k t]=NewdonToEquation(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:原函数,定义为内联函数 ?:函数的倒数,定义为内联函数 %x0:初始值 %eps:误差限 % %应用举例: %f=inline('x^3+4*x^2-10'); ?=inline('3*x^2+8*x'); %x=NewdonToEquation(f,df,1,0.5e-6) %[x k]=NewdonToEquation(f,df,1,0.5e-6) %[x k t]=NewdonToEquation(f,df,1,0.5e-6) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquation(f,df,1) if nargin==3 eps="0".5e-6; end tic; k=0; while 1 x="x0-f"(x0)./df(x0); k="k"+1; if abs(x-x0) < eps || k >30 break; end x0=x; end t=toc; if k >= 30 disp('迭代次数太多。'); x="0"; t="0"; end

2、Newdon迭代法求解非线性方程组 function y="NewdonF"(x) %牛顿迭代法解非线性方程组的测试函数 %定义是必须定义为列向量 y(1,1)=x(1).^2-10*x(1)+x(2).^2+8; y(2,1)=x(1).*x(2).^2+x(1)-10*x(2)+8; return; function y="NewdonDF"(x) %牛顿迭代法解非线性方程组的测试函数的导数 y(1,1)=2*x(1)-10; y(1,2)=2*x(2); y(2,1)=x(2).^+1; y(2,2)=2*x(1).*x(2)-10; return; 以上两个函数仅供下面程序的测试 function [x k t]=NewdonToEquations(f,df,x0,eps) %牛顿迭代法解非线性方程组 %[x k t]=NewdonToEquations(f,df,x0,eps) %x:近似解 %k:迭代次数 %t:运算时间 %f:方程组(事先定义) ?:方程组的导数(事先定义) %x0:初始值 %eps:误差限 % %说明:由于虚参f和df的类型都是函数,使用前需要事先在当前目录下采用函数M文件定义% 另外在使用此函数求解非线性方程组时,需要在函数名前加符号“@”,如下所示 % %应用举例: %x0=[0,0];eps=0.5e-6; %x=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps) %函数的最后一个参数也可以不写。默认情况下,eps=0.5e-6 %[x k t]=NewdonToEquations(@NewdonF,@NewdonDF,x0,eps)

MATLAB随机数生成

2009年03月20日星期五 03:25 P.M. rand(n):生成0到1之间的n阶随机数方阵 rand(m,n):生成0到1之间的m×n 的随机数矩阵 (现成的函数) 另外: Matlab随机数生成函数 betarnd 贝塔分布的随机数生成器 binornd 二项分布的随机数生成器 chi2rnd 卡方分布的随机数生成器 exprnd 指数分布的随机数生成器 frnd f分布的随机数生成器 gamrnd 伽玛分布的随机数生成器 geornd 几何分布的随机数生成器 hygernd 超几何分布的随机数生成器 lognrnd 对数正态分布的随机数生成器 nbinrnd 负二项分布的随机数生成器 ncfrnd 非中心f分布的随机数生成器 nctrnd 非中心t分布的随机数生成器 ncx2rnd 非中心卡方分布的随机数生成器 normrnd 正态(高斯)分布的随机数生成器 poissrnd 泊松分布的随机数生成器 raylrnd 瑞利分布的随机数生成器 trnd 学生氏t分布的随机数生成器 unidrnd 离散均匀分布的随机数生成器 unifrnd 连续均匀分布的随机数生成器 weibrnd 威布尔分布的随机数生成器 (From:https://www.wendangku.net/doc/6012869498.html,/question/30033707.html) matlab生成随机数据 matlab本身提供很多的函数来生成各种各样的随机数据: normrnd 可以生成一定均值和标准差的正态分布 gamrnd 可以生成gamma分布的伪随机数矩阵 chi2rnd 可以生成卡方分布的伪随机数矩阵 trnd 可以生成t分布的伪随机数矩阵 frnd 可以生成f分布的伪随机数矩阵 raylrnd 可以生成rayleigh分布的伪随机数矩阵

雨流计数法

3Rainflow Cycle Counting J Problem Description 62 J Set Up the Fatigue Analysis 63 J Run the Fatigue Analysis 69 J Review the Results 72 J Concluding Remarks 78

MSC Fatigue 2005 QuickStart Guide 62 Problem Description Problem Description This example is an extension of the previous example where the simple constant amplitude loading is replaced with a more complex randomly varying time signal. Invoke Pre&Post or MSC Patran by typing the following symbols at the system prompt or from a DOS window: fXX or fatX or fatigue where XX is the version number p3or patran If you have not already, open the same database that you created in the previous example working in the same directory from the File | Open menu. The name of the database should be keyhole. Objective ?To predict the life of the keyhole subject to a varying load signal. ?To understand how to normalize the FE stresses. ?To introduce the concept to rainflow cycle counting. ?To introduce the concept of damage summation. ?To investigate the effect of mean stress. ?To investigate the probabilistic nature of fatigue. Note:The geometry and materials information are identical to that of the previous exercise.

随机载荷模拟及雨流计数方法在matlab中的实现

近日来的工作 一、仿真随机过程 sw=2; A=sqrt(2*sw*detaw) (1)中心频率为10pi,detaw=0.01,带宽为2pi的低频窄带随机过程for n=9:0.01:11; xn=A*sin(n*pi*t+rand(1,1)*2*pi); x=x+xn; end (2)中心频率为100pi,detaw=0.01,带宽为2pi的高频窄带随机过程for n=99:0.01:101; yn=A*sin(n*pi*t+rand(1,1)*2*pi); y=y+yn; end (3)低频与高频组合成的宽带随机过程

二、用雨流计数法截取循环 (1)得到随机过程x的极点值(储存在矩阵S中)。 n=length(x); s=x(1); for i=2:n-1; if (x(i)>x(i-1))&&(x(i)>x(i+1))||((x(i)

计算方法上机实验报告-MATLAB

《计算方法》实验报告 指导教师: 学院: 班级: 团队成员:

一、题目 例2.7应用Newton 迭代法求方程210x x --=在1x =附近的数值解 k x ,并使其满足8110k k x x ---< 原理: 在方程()0f x =解的隔离区间[],a b 上选取合适的迭代初值0x ,过曲线()y f x =的点()() 00x f x ,引切线 ()()()1000:'l y f x f x x x =+- 其与x 轴相交于点:()() 0100 'f x x x f x =-,进一步,过曲线()y f x =的 点()()11x f x , 引切线 ()()()2111: 'l y f x f x x x =+- 其与x 轴相交于点:() () 1211 'f x x x f x =- 如此循环往复,可得一列逼近方程()0f x =精确解*x 的点 01k x x x ,,,,,其一般表达式为: ()() 111 'k k k k f x x x f x ---=- 该公式所表述的求解方法称为Newton 迭代法或切线法。

程序: function y=f(x)%定义原函数 y=x^3-x-1; end function y1=f1(x0)%求导函数在x0点的值 syms x; t=diff(f(x),x); y1=subs(t,x,x0); end function newton_iteration(x0,tol)%输入初始迭代点x0及精度tol x1=x0-f(x0)/f1(x0);k=1;%调用f函数和f1函数 while abs(x1-x0)>=tol x0=x1;x1=x0-f(x0)/f1(x0);k=k+1; end fprintf('满足精度要求的数值为x(%d)=%1.16g\n',k,x1); fprintf('迭代次数为k=%d\n',k); end 结果:

雨流计数法

疲劳分析中的雨流计数法

这种方法的突出特点是根据所研究材料的应力-应变之间的非线 性关系来进行计数,亦即把样本记录用雨流法定出一系列闭合的 应力-应变滞后环。 参看图1,把应变-时间历程样本记录转过90°,时间坐标轴竖直 向下,样本记录犹如一系列屋面,雨水顺着屋面往下流,故称为 雨流法。雨流法有下列规则: (ⅰ)雨流在试验记录的起点和依此在每一个峰值的内边开始, 亦即从1,2,3…等尖点开始。 (ⅱ)雨流在流到峰值处(即屋檐)竖直下滴,一直流到对面有 一个比开始时最大值(或最小值)更正的最大值(或更负的最小值)为止。 (ⅲ)当雨流遇到来自上面屋顶流下的雨时,就停止流动。 (ⅳ)如果初始应变为拉应变,顺序的始点是拉应变最小值的点。 (ⅴ)每一雨流的水平长度是作为该应变幅值的半循环计数的. 在图1中,雨流法从1点开始,该点认为是最小值。雨流流至2点,竖直下滴到3与4点幅值间的2ˊ点,然后流到4点,最后停于比1点更负的峰值5的对应处。得出一个从1到4的半循环。下一个雨流从峰值2点开始,流经3点,停于4点的对面,因为4点是比开始的2点具有更正的最大值,得出一个半循环2-3。第三个流动从3点开始,因为遇到由2点滴下的雨流,所以终止于2ˊ点,得出半循环3-2ˊ。这样,3-2和2-3就形成了一个闭合的应力-应变回路环,它们配成一个完全的循环2′-3-2。 下一个雨流从峰值4开始,流经5点,竖直下滴到6和7之间的5ˊ点,继续往下流,再从7点竖直下滴到峰值10的对面,因为10点比4点具有更正的最大值。得出半循环4-5-7。 第五个流动从5点开始,流到6点,竖直下滴,终止于7点的对面,因为7点比5点具有更负的极小值。取出半循环5-6。第六个流动从6点开始,因为遇到由5点滴下的雨滴,所以流到5ˊ点终止。半循环6-5与5-6配成一个完全循环5ˊ-6-5,取出5ˊ-6-5。 第七个流动从7点开始,经过8点,下落到9-10线上的8ˊ点,然后到最后的峰值10,取出半循环7-8-10。第八个流动从8点开始,流至9点下降到10点的对面终止,因为10点比8点具有更正的最大值。取出半循环8-9。最后一个流动从9点开始,因为遇到由8点下滴的雨流,所以终止于8ˊ点。取出半循环9-8ˊ。把两个半循环8-9和9-8ˊ配对,组成一个完全的循环8-9-8ˊ。 这样,图1所示的应变一时间记录包括三个完全循环8-9-8ˊ,2-3-2ˊ,5-6-5ˊ和三个半循环1-2-4,4-5-7,7-8-10。图3-18表明,雨流法得到的应变是与材料应力-应变特性相一致的。从图1中看出,有三个完全的循环,与此对应,在图2中有三个阴影线所示的闭合回路。 图2 对应图1应变记录的应力应变响应 雨流法的要点是载荷-时间历程的每一部分都参与计数,且只计数一次,一个大的幅值所引起的损伤不受截断它的小循环的影响,截出的小循环迭加到较大的循环和半循环上去。因此可以据累计损伤理论,将等幅实验得到的S-N曲线和雨流法的处理结果输入电子计算机,进行构件的疲劳寿命估算便能得出较满意的结果。

matlab产生随机数的方法

matlab 产生随机数的方法 第一种方法是用 random 语句,其一般形式为 y = random (' 分布的英文名 ',A1,A2,A3,m,n ) , 表示生成m 行n 列的m x n 个参数为(A1 , A2 , A3 ) 的该分 布的随机数。 例如: (1) R = random ('Normal',0,1,2,4): 生成期 望为 0, 标准差为 1 的(2 行 4 列)2 x 4个正态随机数 (2) R = random ('Poisson',1:6,1,6): 依次 生成参数为 1 到 6 的(1 行 6 列 )6 个 Poisson 随机数 第二种方法是针对特殊的分布的语句: 一. 几何分布随机数 R = geornd(P) R = geornd(P,m) (下面的 P , m 都可以是矩阵) (生成参数为 P 的几何随机数) (生成参数为 P 的 x m 个几何随机数) 1 R = geornd (P,m,n ) (生成参数为 P 的 m 行 n 列的 m x n 个几何随 机数) 例如 ⑴ R = geornd (1./ 2八(1:6))(生成参数依次为 1/2,1/2A 2,至U 1/2A 6 的 6 个几 何随机数 ) ⑵ R = geornd (0.01,[1 5])( 生成参数为0.01的(1行5列)5个几何随 机数). 二. Beta 分布随机数 R = betarnd(A,B) R = betarnd(A,B,m) 生成 m 行 n 列的 m x n 个数为 A,B 的 Beta 随 三.正态随机数 R = normrnd (MU, SIGMA ) (生成均值为 MU,标准差为SIGMA 的正态随机数) R = normrnd (MU , SIGMA,m ) (生成 1x m 个正态随机数) R = normrnd(MU , SIGMA,m,n) (生成 m 行 n 列的 m x n 个正态随机数) 例如 (1) R = normrnd(0,1,[1 5]) 生成 5 个正态 (0,1) 随机数 (2) R = normrnd([1 2 3;4 5 6],0.1,2,3) 生成期望依次为 [1,2,3;4,5,6], 方 差为 0.1 的 2x 3 个正态随机数. 生成参数为 A,B 的 Beta (生成 x m 个数为 A,B 随机数) 的 Beta 随机数) R = betarnd(A,B,m,n) 机数) .

相关文档