三参数 S-N 曲线拟合及MATLAB程序
更多阅读:sppy.site
S-N 曲线:应力 S 与疲劳寿命 N 之间关系的曲线。
三参数 S-N 曲线方程
(S−Sf)m×N=C(1)\tag{1} (S-S_\mathrm{f})^m\times N=C (S−Sf)m×N=C(1)
线性拟合方法
将式(1)取对数,可得
mlg(S−Sf)+lgN=lgC(2)\tag{2} m\lg(S-S_\mathrm{f})+\lg N=\lg C mlg(S−Sf)+lgN=lgC(2)
令 x=lg(S−Sf)x=\lg(S-S_\mathrm{f})x=lg(S−Sf) 、y=lgNy=\lg Ny=lgN 、a=lgCa=\lg Ca=lgC 、b=−mb=-mb=−m ,可得
y=a+bx(3)\tag{3} y=a+bx y=a+bx(3)
对于一系列的应力值 SiS_iSi 、疲劳寿命值 NiN_iNi (i=1,2,3,⋯,ni=1,2,3,\cdots,ni=1,2,3,⋯,n),由最小二乘法可得
{b=Lxy/Lxxa=yˉ−xˉb(4a)\tag{4a} \begin{cases} b=L_{xy}/L_{xx}\\[5pt] a=\bar{y}-\bar{x}b \end{cases} ⎩⎨⎧b=Lxy/Lxxa=yˉ−xˉb(4a)
线性相关系数 RRR 的平方为
R2=Lxy2LxxLyy(4b)\tag{4b} R^2=\frac{L_{xy}^2}{L_{xx}L_{yy}} R2=LxxLyyLxy2(4b)
其中
xi=lg(Si−Sf)yi=lgNixˉ=1n∑i=1nxiyˉ=1n∑i=1nyiLxx=∑i=1nxi2−1n(∑i=1nxi)2Lyy=∑i=1nyi2−1n(∑i=1nyi)2Lxy=∑i=1nxiyi−1n(∑i=1nxi)(∑i=1nyi)x_i=\lg(S_i-S_\mathrm{f}) \qquad y_i=\lg N_i\\[8pt] \bar{x}=\frac{1}{n}\sum_{i=1}^nx_i \qquad \bar{y}=\frac{1}{n}\sum_{i=1}^ny_i\\[8pt] L_{xx}=\sum_{i=1}^nx_i^2-\frac{1}{n}\Big(\sum_{i=1}^nx_i\Big)^2\\[8pt] L_{yy}=\sum_{i=1}^ny_i^2-\frac{1}{n}\Big(\sum_{i=1}^ny_i\Big)^2\\[8pt] L_{xy}=\sum_{i=1}^nx_iy_i-\frac{1}{n}\Big(\sum_{i=1}^nx_i\Big)\Big(\sum_{i=1}^ny_i\Big) xi=lg(Si−Sf)yi=lgNixˉ=n1i=1∑nxiyˉ=n1i=1∑nyiLxx=i=1∑nxi2−n1(i=1∑nxi)2Lyy=i=1∑nyi2−n1(i=1∑nyi)2Lxy=i=1∑nxiyi−n1(i=1∑nxi)(i=1∑nyi)
由于 SfS_\mathrm{f}Sf 未知,故式(4)中的表达式均可看作关于 SfS_\mathrm{f}Sf 的函数。为了得到最佳的线性相关性,即线性相关系数 RRR 的绝对值最大,于是有
d(R2)dSf=0(5a)\tag{5a} \frac{\mathrm{d}(R^2)}{\mathrm{d}S_\mathrm{f}}=0 dSfd(R2)=0(5a)
即有
d(R2)dSf=Lxy2LxxLyy(2LxydLxydSf−1LxxdLxxdSf)(5b)\tag{5b} \frac{\mathrm{d}(R^2)}{\mathrm{d}S_\mathrm{f}}=\frac{L^2_{xy}}{L_{xx}L_{yy}}\bigg(\frac{2}{L_{xy}}\frac{\mathrm{d}L_{xy}}{\mathrm{d}S_\mathrm{f}}-\frac{1}{L_{xx}}\frac{\mathrm{d}L_{xx}}{\mathrm{d}S_\mathrm{f}}\bigg) dSfd(R2)=LxxLyyLxy2(Lxy2dSfdLxy−Lxx1dSfdLxx)(5b)
其中
dLxydSf=−1ln10[∑i=1nyiSi−Sf−1n(∑i=1nyi)(∑i=1n1Si−Sf)]=−1ln10Ly0dLxxdSf=−2ln10[∑i=1nxiSi−Sf−1n(∑i=1nxi)(∑i=1n1Si−Sf)]=−2ln10Lx0(5c)\tag{5c} \frac{\mathrm{d}L_{xy}}{\mathrm{d}S_\mathrm{f}}=\frac{-1}{\ln 10}\bigg[\sum_{i=1}^n\frac{y_i}{S_i-S_\mathrm{f}}-\frac{1}{n}\Big(\sum_{i=1}^ny_i\Big)\Big(\sum_{i=1}^n\frac{1}{S_i-S_\mathrm{f}}\Big)\bigg]=\frac{-1}{\ln 10}L_{y0}\\[8pt] \frac{\mathrm{d}L_{xx}}{\mathrm{d}S_\mathrm{f}}=\frac{-2}{\ln 10}\bigg[\sum_{i=1}^n\frac{x_i}{S_i-S_\mathrm{f}}-\frac{1}{n}\Big(\sum_{i=1}^nx_i\Big)\Big(\sum_{i=1}^n\frac{1}{S_i-S_\mathrm{f}}\Big)\bigg]=\frac{-2}{\ln 10}L_{x0} dSfdLxy=ln10−1[i=1∑nSi−Sfyi−n1(i=1∑nyi)(i=1∑nSi−Sf1)]=ln10−1Ly0dSfdLxx=ln10−2[i=1∑nSi−Sfxi−n1(i=1∑nxi)(i=1∑nSi−Sf1)]=ln10−2Lx0(5c)
将式(5b)、(5c)代入式(5a),可得
H(Sf)=Ly0Lxy−Lx0Lxx=0(5d)\tag{5d} H(S_\mathrm{f})=\frac{L_{y0}}{L_{xy}}-\frac{L_{x0}}{L_{xx}}=0 H(Sf)=LxyLy0−LxxLx0=0(5d)
于是只需求解非线性方程 H(Sf)H(S_\mathrm{f})H(Sf) 便可得到 SfS_\mathrm{f}Sf ,进一步将 SfS_\mathrm{f}Sf 代入式(4)可得 aaa 、bbb ,则有
{C=10am=−b(6)\tag{6} \begin{cases} C=10^{a}\\[5pt] m=-b \end{cases} ⎩⎨⎧C=10am=−b(6)
计算程序
% 三参数线性拟合
% (S-Sf)^m * N = C
% INPUT
% data_S : 应力值, 列向量
% data_N : 疲劳寿命值, 列向量
% k : 初始点系数(初始点会影响拟合结果), 0~1之间的标量
% OUTPUT
% parameters : [Sf ; m ; C]
function parameters=SN_fit01(data_S,data_N,k)num=length(data_S);data_S=reshape(data_S,num,1);data_N=reshape(data_N,num,1);syms Sff realx=log10(data_S-Sff);x_mean=mean(x);y=log10(data_N);y_mean=mean(y);Lxx=sum(x.^2)-x_mean^2*num;Lxy=sum(x.*y)-x_mean*y_mean*num;Lx0=sum(x./(data_S-Sff))-x_mean*sum(1./(data_S-Sff));Ly0=sum(y./(data_S-Sff))-y_mean*sum(1./(data_S-Sff));H=Lx0/Lxx-Ly0/Lxy;fun_H=matlabFunction(H);fun_m=matlabFunction(-Lxy/Lxx);fun_C=matlabFunction(10^(y_mean-x_mean*Lxy/Lxx));ans_Sf=fzero(fun_H,min(data_S)*k);ans_m=fun_m(ans_Sf);ans_C=fun_C(ans_Sf);parameters=[ans_Sf;ans_m;ans_C];
end
算例
输入:
data_S=[160,120,100,85];
data_N=[96069,273147,434362,2005597];
k=0.8;
y=SN_fit01(data_S,data_N,k);
计算结果:
y=[78.61476407607871.1578247291662316938195.0512843]
非线性拟合方法
将式(1)中的幂函数形式变形为
S=Sf+a∗Nb∗(7a)\tag{7a} S=S_\mathrm{f}+\frac{a^*}{N^{b^*}} S=Sf+Nb∗a∗(7a)
其中
{b∗=1/ma∗=Cb∗(7b)\tag{7b} \begin{cases} b^*=1/m\\[5pt] a^*=C^{b^*} \end{cases} ⎩⎨⎧b∗=1/ma∗=Cb∗(7b)
根据一系列的 SiS_iSi 和 NiN_iNi,对式(7)进行非线性拟合可得 SfS_\mathrm{f}Sf 、mmm 、CCC 。
计算程序
% 三参数非线性拟合
% (S-Sf)^m * N = C
% S = Sf + a / N^b, 其中 b = 1/m, a = C^b
% INPUT
% data_S : 应力值, 列向量
% data_N : 疲劳寿命值, 列向量
% k : 初始点系数(初始点会影响拟合结果), 0~1之间的标量
% OUTPUT
% parameters : [Sf ; m ; C]
function parameters=SN_fit02(data_S,data_N,k)num=length(data_S);data_S=reshape(data_S,num,1);data_N=reshape(data_N,num,1);fo=fitoptions('Method','NonlinearLeastSquares',...'Lower',[0,0,0],...'Upper',[min(data_S),Inf,Inf],...'StartPoint',[min(data_S)*k,1e4,1]);ft=fittype('Sf+a./N.^b','independent','N',...'dependent','S','options',fo);fa=fit(data_N,data_S,ft);Sf=fa.Sf;m=1/fa.b;C=fa.a^m;parameters=[Sf;m;C];
end
算例
输入:
data_S=[160,120,100,85];
data_N=[96069,273147,434362,2005597];
k=0.8;
y=SN_fit02(data_S,data_N,k);
计算结果:
y=[72.81012886877161.4792077603623571844845.3819234]
三参数 S-N 曲线拟合及MATLAB程序相关推荐
- 三维层次聚类分析matlab,聚类分析(三) 层次聚类及matlab程序
一.层次聚类介绍 1.1 简介 层次聚类,主要是对给定的待聚类的数据集进行层次化分解.主要分为两大类: 1.从下到上的凝聚聚类 2.从上到下的分裂聚类 其他算法大部分是对样本之间距离度量或者类间凝聚/ ...
- 深度学习笔记第二门课 改善深层神经网络 第三周 超参数调试、Batch正则化和程序框架...
本文是吴恩达老师的深度学习课程[1]笔记部分. 作者:黄海广[2] 主要编写人员:黄海广.林兴木(第四所有底稿,第五课第一二周,第三周前三节).祝彦森:(第三课所有底稿).贺志尧(第五课第三周底稿). ...
- 线性最小二乘法拟合 matlab程序,曲线拟合的线性最小二乘法及其MATLAB程序
1 曲线拟合的线性最小二乘法及其MATLAB 程序 例7.2.1 给出一组数据点),(i i y x 列入表7–2中,试用线性最小二乘法求拟合曲线,并用(7.2),(7.3)和(7.4)式估计其误差, ...
- matlab对一组数据傅里叶变换,matlab快速傅里叶变换(三个matlab程序介绍)
描述 一种积分变换,它来源于函数的傅里叶积分表示.积分 (1) 称为ƒ 的傅里叶积分.周期函数在一定条件下可以展成傅里叶级数,而在(-∞,∞)上定义的非周期函数ƒ,显然不能用三角级数来表示.但是J.- ...
- 第三周 超参数调试、Batch正则化和程序框架(Hyperparameter tuning)
第三周 超参数调试.Batch正则化和程序框架(Hyperparameter tuning) 文章目录 第三周 超参数调试.Batch正则化和程序框架(Hyperparameter tuning) 3 ...
- 温故知新(五)——三参数陷波滤波器离散化推导及MATLAB实现
目录 1 三参数陷波滤波器 2 双线性变换 3 三参数计算 4 写在最后 1 三参数陷波滤波器 三参数型滤波器主要有以下一个参数: wn:滤波器带宽,单位rad/s=> * 2pi可转化为Hz: ...
- matlab程序结构分为哪三种,matlab程序结构
如何优化程序? 一言以蔽之:全部使用函数! 如何优化文件? 一言以蔽之:做成工具箱! 今天师姐要我上次matlab做的后处理文件,当时是用脚本写的,根本没用心修改过.洋洋洒洒500多行,现在看起来都头 ...
- 倒立摆的数学模型,matlab程序,simulink,c语言控制,一级倒立摆的控制设计
本论文主要研究内容 倒立摆装置被公认为自动控制理论中的典型试验设备,也是控制理论教学和科研中不可多得的典型物理模型.本论文的研究旨在完成这样一系列工作: 介绍倒立摆系统控制的研究发展过程和现状:研究单 ...
- matlab多元回归程序,多元回归程序MATLAB程序
<多元回归程序MATLAB程序>由会员分享,可在线阅读,更多相关<多元回归程序MATLAB程序(45页珍藏版)>请在人人文库网上搜索. 1.程序MATLAB多元回归程序matl ...
最新文章
- 漫画:如何在数组中找到和为 “特定值” 的两个数?
- 个人博客作业week1
- 人工智能学什么?专家表示基础科学教育需发力
- SQL Server Guid和NEWSEQUENTIALID函数
- 客户主数据冻结与删除标记位汇总
- html实现3d视觉特效
- 在win10下面新建一个虚拟网卡
- 【bzoj1738】[Usaco2005 mar]Ombrophobic Bovines 发抖的牛 Floyd+二分+网络流最大流
- HubbleDotNet开源全文搜索数据库项目--技术详解
- php 动态加载JavaScript文件或者css文件
- Struts标签入门
- Python版24点游戏
- 拓端tecdat|R语言有极值(EVT)依赖结构的马尔可夫链(MC)对洪水极值分析
- 王道训练营Day1作业
- [rtsp]海康IPC监控摄像头远程外网监控配置(DDNS)
- 笔记本电脑如何连接共享的计算机,笔记本电脑怎么设置wifi共享的介绍
- 联想硬盘启动计算机,win7系统联想台式电脑开机提示error 1962无法找到硬盘启动的解决方法...
- 模拟器什么的都过时了!这样玩吃鸡才能真正的高清无延迟
- HC-02蓝牙串口模块的配置和使用
- 简单的使用css画勾、叉、三角、大于号
热门文章
- html css制作404页面,一款纯css3实现的漂亮的404页面
- ICC配置文件与photoshop颜色管理
- 【Markdown】Markdown画图
- Excel 也可以很好玩:职场故事版
- 微信Mac 3.1.0版内测!支持发朋友圈、浏览相册!
- 河池学院计算机宿舍,【2021】河池学院学校食堂环境与寝室宿舍介绍_优优招生网...
- 服务器系统怎么重置path,DediPath独立服务器重置IPMI教程
- docker 线程无法超过4096的问题
- 你的故事有毒php源码,微信2018你的故事有毒生成器下载
- js实现pdf展示及电子签章