Matlab与ANSYS结合:参数优化应用

使用Maltab中的system函数,实现Matlab与Ansys的交互,即可实现相同模型计算数千遍并输出数据。

MATLAB调用ANSYS进行有限元分析步骤如下:

  1. MATLAB生成数据,并以科学计数法的形式写出到一个txt文件input.txt中;
  2. 编写ansys的APDL程序,在MATLAB环境下使用函数"system"调用APDL程序,ANSYS以batch方式运行进行分析求解,并输出想要分析的结果,写出到一个txt文件output.txt
  3. MATLAB调用output.txt,进行数据分析。

%% 将matlab中的样本数据以科学计数法的形式导出成txt文件

% the samples  厚悬臂梁在不同参数下的顶端最大位移 荷载P/kN 弹性模量E/GPa 泊松比v 截面宽b 截面高h 截面长L

Mu = [ 2.5,200,0.225,1.0,3,3.5 ];                              % mean value

Std = Mu*0.1;                                                 % standard deviation   标准差

Sigma = diag(Std.^2);                                         % standard deviation;

N = 10;

input = lhsnorm(Mu, Sigma, N);   %拉丁超立方抽样

a = input;

% fid = fopen('F:\matlabtoansys1\beam.txt', 'wt');             % -t模式按照文本而非二进制模式读写   名为beam.txt储存100*6个参数数据

% fprintf(fid,[repmat('%.4e ', 1, size(a,2)), '\n'], a');      % 转置并适时(写完一列后)添加换行

% fclose(fid);

%% 该代码为基于遗传算法利用matlab与ansys的数据传递最优化

% 清空环境变量

input_test=input; %input(9:end,:)';

%output_test=output';%output(9:end)';

%% 遗传算法参数初始化

maxgen=40;                        %进化代数,即迭代次数

sizepop=10;                        %种群规模            

pcross=[0.4];                       %交叉概率选择,0和1之间

pmutation=[0.2];                    %变异概率选择,0和1之间

%节点总数

lenchrom=ones(1,6);       %注意染色体长度

bound=[0.7*Mu(1),1.3*Mu(1);0.7*Mu(2),1.3*Mu(2);0.7*Mu(3),1.3*Mu(3);

      0.7*Mu(4),1.3*Mu(4);0.7*Mu(5),1.3*Mu(5);0.7*Mu(6),1.3*Mu(6)];    %数据范围

%------------------------------------------------------种群初始化--------------------------------------------------------

individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]);  %将种群信息定义为一个结构体

avgfitness=[];                      %每一代种群的平均适应度

bestfitness=[];                     %每一代种群的最佳适应度

bestchrom=[];                       %适应度最好的染色体

%初始化种群

for i=1:sizepop

individuals.chrom(i,:) = Code(lenchrom,bound);    

x(i,:) = individuals.chrom(i,:);

end

fid = fopen('F:\matlabtoansys1\beam.txt', 'wt'); % -t模式按照文本而非二进制模式读写   名为beam.txt储存100*6个参数数据

fprintf(fid,[repmat('%.4e ', 1, size(x,2)), '\n'], x');      % 转置并适时(写完一列后)添加换行

fclose(fid);

%计算适应度   (不知道为什么这里贴代码就上传不上去,显示系统繁忙)Matlab调用ANSYS进行参数优化的图1




后面为遗传算法迭代寻优过程

运行之后,在文件夹中会出现以下文件,其中beam.txt为100*6个参数数据,weiyi.txt为每次计算时不同参数下位移的值,Dataread.mac和datawrite.mac两个宏文件分别为数据读取和写入功能,bestvalue写出最佳参数值,而test1.mac则是APDL语言写成的批处理文件,以下给出部分文件截图,有的图片没有截全

Matlab调用ANSYS进行参数优化的图2

Matlab调用ANSYS进行参数优化的图3

Matlab调用ANSYS进行参数优化的图4

Matlab调用ANSYS进行参数优化的图5

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空