UQLab——其他概率分布随机变量转换标准Gaussian分布

本文详细介绍如何使用UQLab将复杂分布的随机变量转换为标准Gaussian分布,通过科学计数法输出样本以供ANSYS分析,以及基于Monte Carlo方法进行桁架结构的可靠度分析,包括失效概率和可靠度指标的计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、使用UQLab将其他类型的随机变量转换成标准Gaussian分布;
2、使用科学计数法输出样本,方便后续ANSYS的调用分析;
3、基于MC的可靠度分析。

原随机变量分布类型:
在这里插入图片描述

% 调用UQLab进行采样
clc
clear

uqlab
%% Specify these distributions as a UQLab INPUT object:
PriorOpts.Marginals(1).Name = 'E';               % Young's modulus
PriorOpts.Marginals(1).Type = 'LogNormal';
PriorOpts.Marginals(1).Moments = [2.1e11 2.1e10];   % (Pa)

PriorOpts.Marginals(2).Name = 'A';                
PriorOpts.Marginals(2).Type = 'LogNormal';
PriorOpts.Marginals(2).Moments = [2.0e-3 2.0e-4];       % (m2)

Moments = [5.0e4 5.0e4*0.15];
Parameters = uq_weibull_MtoP( Moments );
PriorOpts.Marginals(3).Name = 'P1';              
PriorOpts.Marginals(3).Type = 'Weibull';
PriorOpts.Marginals(3).Parameters = (Parameters);          % (N)       

PriorOpts.Marginals(4).Name = 'P2';              
PriorOpts.Marginals(4).Type = 'Weibull';
PriorOpts.Marginals(4).Parameters = (Parameters); 

PriorOpts.Marginals(5).Name = 'P3';              
PriorOpts.Marginals(5).Type = 'Weibull';
PriorOpts.Marginals(5).Parameters =(Parameters); 

PriorOpts.Marginals(6).Name = 'P4';              
PriorOpts.Marginals(6).Type = 'Weibull';
PriorOpts.Marginals(6).Parameters = (Parameters); 

PriorOpts.Marginals(7).Name = 'P5';              
PriorOpts.Marginals(7).Type = 'Weibull';
PriorOpts.Marginals(7).Parameters = (Parameters); 

PriorOpts.Marginals(8).Name = 'P6';              
PriorOpts.Marginals(8).Type = 'Weibull';
PriorOpts.Marginals(8).Parameters = (Parameters); 
PriorOpts.Copula.Type = 'Independent';
myPriorDist = uq_createInput(PriorOpts);

X_MC = uq_getSample(100,'MC');
X_LHS = uq_getSample(80, 'LHS');
X_Sobol = uq_getSample(500000,'Sobol');
X_Halton = uq_getSample(80,'Halton');

% 将样本以科学计数法的方式输出成txt文件
fid = fopen('truss8.txt', 'wt');                                % -t模式按照文本而非二进制模式读写 
fprintf(fid,[repmat('  %.4e  ', 1, size(X_Sobol,2)), '\n'], X_Sobol');      % 转置并适时(写完一列后)添加换行
fclose(fid); 

%% 将样本转化成标准高斯分布类型
UMarginals(1).Type = 'Gaussian';
UMarginals(1).Parameters = [0,1];
UMarginals(2).Type = 'Gaussian';
UMarginals(2).Parameters = [0,1];
UMarginals(3).Type = 'Gaussian';
UMarginals(3).Parameters = [0,1];
UMarginals(4).Type = 'Gaussian';
UMarginals(4).Parameters = [0,1];
UMarginals(5).Type = 'Gaussian';
UMarginals(5).Parameters = [0,1];
UMarginals(6).Type = 'Gaussian';
UMarginals(6).Parameters = [0,1];
UMarginals(7).Type = 'Gaussian';
UMarginals(7).Parameters = [0,1];
UMarginals(8).Type = 'Gaussian';
UMarginals(8).Parameters = [0,1];
UCopula.Type = 'Independent';

U = uq_GeneralIsopTransform(X_MC,myPriorDist.Marginals, myPriorDist.Copula, UMarginals, UCopula);

% 将样本以科学计数法的方式输出成txt文件
fid = fopen('truss_IsopTransform.txt', 'wt');                                % -t模式按照文本而非二进制模式读写 
fprintf(fid,[repmat('  %.4e  ', 1, size(U,2)), '\n'], U');      % 转置并适时(写完一列后)添加换行
fclose(fid); 


% 计算9个变量桁架结构的失效概率和可靠度指标
clear
clc

load weiyi_B.txt
Q = abs(weiyi_B);
m = size(Q, 1);
R = ones(m, 1)*0.1;   % 最大位移
Z = R - Q;            % 功能函数
count = 0;            % 功能函数值小于零的个数
for i = 1:m
    if Z(i) < 0
        count = count + 1;
    end
end
pf = count/m;   % 失效概率
beta = norminv(1-pf);   % 可靠度指标
SS = [pf, beta];
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值