工程优化问题之三杆桁架设计研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

三杆桁架是一种常见的结构形式,广泛应用于桥梁、建筑物和机械设备等领域。三杆桁架的设计优化是指通过调整杆件的尺寸、形状和连接方式等参数,使得结构在满足一定约束条件下,具有最佳的性能和经济性。

本文目标函数和约束条件如下:

\begin{aligned} & \text{Fuction} \\ & minf(x)=(2\sqrt{2}x_1+x_2)\times l \\ & \text{Subject to} \\ & g_1(x)=\frac{\sqrt2x_{1}+x_{2}}{(\sqrt2x_{1}^{2}+2x_{1}x_{2})}P-\sigma\leq0 \\ & g_2(x)=\frac{x_{2}}{\sqrt{2}x_{1}^{2}+2x_{1}x_{2}}P-\sigma\leq0 \\ & g_3(x)=\frac{1}{\sqrt{2}x_{2}+x_{1}}P-\sigma\leq0 \\ & 0\leq x_i\leq1,i=1,2 \\ & \text{Parameter: } \\ & l=100\mathrm{cm};P=2\mathrm{kN/(cm^2)};\sigma=2\mathrm{kN/(cm^2)}\end{aligned}

三杆桁架设计优化的目标主要包括以下几个方面:

1. 结构强度和刚度:三杆桁架的设计需要满足一定的强度和刚度要求,以确保结构在使用过程中不会发生失稳或破坏。优化设计可以通过调整杆件的截面积和长度等参数,使得结构在承受外载荷时具有最佳的强度和刚度。

2. 结构重量:三杆桁架的重量直接影响到结构的成本和运输安装的方便性。优化设计可以通过减少杆件的重量,使得结构在满足强度和刚度要求的前提下具有最轻的重量。

3. 结构稳定性:三杆桁架在受到外载荷作用时需要保持稳定,避免发生失稳和塑性变形。优化设计可以通过调整杆件的尺寸和形状,使得结构在承受外载荷时具有最佳的稳定性。

4. 结构的经济性:三杆桁架的设计需要考虑到材料成本、制造成本和维护成本等因素,以使得结构在满足性能要求的前提下具有最低的总成本。

为了实现三杆桁架设计的优化,研究者们采用了多种方法和技术。其中包括传统的数学优化方法,如线性规划、非线性规划和整数规划等,以及现代的优化算法,如遗传算法、粒子群算法和模拟退火算法等。这些方法和技术可以帮助研究者在设计过程中快速搜索最优解,提高设计效率。

此外,研究者们还通过建立数值模型和进行仿真分析,对三杆桁架的性能进行评估和优化。这些模型和分析方法可以帮助研究者更好地理解结构的行为和响应,指导优化设计的过程。

总之,三杆桁架设计优化是一个复杂而重要的工程问题,涉及到多个目标和约束条件。通过合理选择优化方法和技术,并结合数值模型和仿真分析,可以实现三杆桁架设计的高效优化,提高结构的性能和经济性。

📚2 运行结果

部分代码:

function [lb,ub,dim,fobj] = Engineering_Problems(type)
% type:问题类型
% 不同数字 对应 不同问题
% 比如,type = 1 : 选择优化 Tension/compression spring design problem
% type = 2 : 选择优化 Pressure vessel design problem
switch type
    case 1 % Tension/compression spring design problem
        fobj = @spring;       % 函数
        lb = [0.05 0.25  2];   % 下限
        ub = [2    1.3   15];   % 上限
        dim = length(lb);     % 维度
    case 2 % Pressure vessel design problem
        fobj = @ pvd;
        lb =[0 0 10 10];
        ub = [99 99 200 200];
        dim = length(lb);
    case 3 % Three-bar truss design problem
        fobj = @ three_bar;
        lb = [0 0];
        ub = [1 1];
        dim = length(lb);
        
end

    function fitness = spring(x)
        x1 = x(1);
        x2 = x(2);
        x3 = x(3);
        f = (x3+2)*x2*(x1^2);
        panaty_factor = 10e100; % 按需修改
        %
        g1 = 1-((x2^3)*x3)/(71785*(x1^4));
        g2 = (4*(x2^2)-x1*x2)/(12566*(x2*(x1^3)-(x1^4))) + 1/(5108*(x1^2))-1;
        g3 = 1-(140.45*x1)/((x2^2)*x3);
        g4 = ((x1+x2)/1.5)-1;
        panaty_1 = panaty_factor*(max(0,g1))^2; % g1的惩罚项
        panaty_2 = panaty_factor*(max(0,g2))^2; % g2的惩罚项
        panaty_3 = panaty_factor*(max(0,g3))^2; % g3的惩罚项
        panaty_4 = panaty_factor*(max(0,g4))^2; % g4的惩罚项
        fitness  = f + panaty_1+panaty_2+panaty_3+panaty_4;
    end

    function fitness = pvd(x)
        x1= x(1);x2 = x(2);x3 = x(3);x4 = x(4);
        f = 0.6224*x1*x3*x4 + 1.7781*x2*x3^2+3.1661*x1^2*x4+19.84*x1^2*x3;
        panaty_factor = 10e100; % 按需修改
        %
        g1 = -x1+0.0193*x3;
        panalty_1 = panaty_factor*(max(0,g1))^2;
        g2 = -x2+0.00954*x3;
        panalty_2 = panaty_factor*(max(0,g2))^2;
        g3 = -pi*x3^2*x4 - (4/3)*pi*x3^3 + 1296000;
        panalty_3 = panaty_factor*(max(0,g3))^2;
        g4 = x4 - 240;
        panalty_4 = panaty_factor*(max(0,g4))^2;
        fitness = f + panalty_1 + panalty_2 + panalty_3 + panalty_4;
    end

    function fitness = three_bar(x)
        l = 100; P = 2; q = 2;
        x1= x(1);
        x2 = x(2);
        f = l*(2*sqrt(2)*x1+x2);
        panaty_factor = 10e100; % 按需修改
        %
        g1 = P*(sqrt(2)*x1+x2)/(sqrt(2)*x1^2+2*x1*x2)-q;
        penalty_g1 = panaty_factor*(max(0,g1))^2;
        g2 = P*(x2)/(sqrt(2)*x1^2+2*x1*x2)-q;
        penalty_g2 = panaty_factor*(max(0,g2))^2;
        g3 = P/(sqrt(2)*x2+x1)-q;
        penalty_g3 = panaty_factor*(max(0,g3))^2;
        fitness = f+penalty_g1+penalty_g2+penalty_g3;
    end

end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]叶友东,王雅.基于ANSYS分析的三杆桁架优化设计[J].煤矿机电, 2004(5):5.DOI:10.3969/j.issn.1001-0874.2004.05.039.

[2]朱钦,杨海霞.基于粒子群-布谷鸟搜索算法的桁架结构优化设计[J].三峡大学学报(自然科学版), 2017(1).DOI:10.13393/j.cnki.issn.1672-948X.2017.01.014.

🌈4 Matlab代码实现

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/69668.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算能BM1684X部署手写数字识别模型

大致流程--------------------------------------------------------------- 参考《sophon-sail_zh》 移植步骤------------------------------------------------------------------------ 首先搭建好自己的网络模型,并导出为onnx格式--具体可以参照--> GitH…

什么是P2P?

P2P (Peer-to-Peer) 是一种分布式的网络架构,其中各个节点(通常被称为“peers”或“节点”)直接进行数据共享和交换,而无需依赖中央服务器。P2P 网络强调平等的参与和共享,每个节点既可以是数据的消费者(下…

Python数据分析实战-列表字符串、字符串列表、字符串的转化(附源码和实现效果)

实现功能 str([None,master,hh]) ---> [None,"master","hh"] ---> "None,master,hh" 实现代码 import re import astx1 str([None,master,hh]) print(x1)x2 ast.literal_eval(x1) print(x2)x3 ",".join(str(item) for item…

ARTS 挑战打卡的第1天,我学到了这些~

关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ●Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: 分享一篇有观点和思考的技术文章 深度学习 深度学习概念崛起框架 主页传送门&…

最大交换(力扣)枚举 JAVA

给定一个非负整数,你至多可以交换一次数字中的任意两位。返回你能得到的最大值。 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7。 示例 2 : 输入: 9973 输出: 9973 解释: 不需要交换。 注意: 给定数字的范围是 [0, 10^8] 解题思路: 1、数最…

学习笔记-JVM监控平台搭建

SpringBoot Actuator 1 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId> </dependency>2 开启配置 # 暴露所有的监控点【含Prometheus】 management.endpoin…

C语言 冒泡排序

目录 一、原理 二、代码演示 三、代码优化 一、原理 假设&#xff1a; int arr[] { 9,8,7,6,5,4,3,2,1,0 }; 将 arr 内的元素进行升序排列&#xff0c;得到一个新的数组 int arr[] { 0&#xff0c;1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;…

SAP从入门到放弃系列之BOM组-Part1

目录 BOM组两种模式&#xff1a; 创建BOM的方式 方式一&#xff1a;直接在每个工厂分别创建BOM。 方式二&#xff1a;创建BOM组&#xff0c;然后每个工厂参考创建 方式三&#xff1a;创建BOM组&#xff0c;每个工厂参考创建&#xff0c;针对有特殊的工厂复制BOM组后进行调…

【Java】数据交换 Json 和 异步请求 Ajax

&#x1f384;欢迎来到边境矢梦的csdn博文&#xff0c;本文主要讲解Java 中 数据交换和异步请求 Json&Ajax 的相关知识&#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以关注一下&#…

PCL 计算外接圆的半径

目录 一、算法原理1、计算公式2、主要函数3、源码解析二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。爬虫自重。 一、算法原理 1、计算公式

函数的模拟实现

题一&#xff1a; 模拟实现strncpy #include <stdio.h>void my_strncpy(char* arr2, char* arr1, size_t num){int i 0;for (i 0; i < num; i){*(arr2 i) *(arr1 i);}}int main(){char arr1[] "hello liangzai";char arr2[10] { 0 };//strncpy(ar…

【Spring Boot】构建RESTful服务 — 使用Swagger生成Web API文档

使用Swagger生成Web API文档 高质量的API文档在系统开发的过程中非常重要。本节介绍什么是Swagger&#xff0c;如何在Spring Boot项目中集成Swagger构建RESTful API文档&#xff0c;以及为Swagger配置Token等通用参数。 1.什么是Swagger Swagger是一个规范和完整的框架&…

怎么快速搭建BI?奥威BI系统做出了表率

搭建BI系统有两大关键&#xff0c;分别是环境搭建和数仓建设。这两点不管是哪一个都相当地费时费力&#xff0c;那要怎么才能快速搭建BI平台&#xff0c;顺利实现全企业数字化运营决策&#xff1f;奥威BI系统方案&#xff0c;你值得拥有&#xff01; 奥威BI系统方案&#xff0…

12.Eclipse导入Javaweb项目

同事复制一份他的项目给我ekp.rar (懒得从SVN上拉取代码了)放在workspace1目录下 新建一个文件夹 workspace2,Eclipse切换到workspace2工作空间 选择Import导入 选择导入的项目(这里是放到workspace1里面) 拷贝一份到workspace2里面 例子 所有不是在自己电脑上开发的web项目…

haproxy基本编译环境部署

前提&#xff1a;haproxy支持基于lua实现功能扩展&#xff08;需要安装比较新的lua语言&#xff0c;方便进行haproxy编译&#xff09;。 wget http://www.lua.org/ftp/lua-5.3.5.tar.gz lua -v # 检查环境 yum list lua # 查看可以安装环境 同时还需要gcc&#xff0c;gcc-c&…

Transformer(一)简述(注意力机制,NLP,CV通用模型)

目录 1.Encoder 1.1简单理解Attention 1.2.什么是self-attention 1.3.怎么计算self-attention 1.4.multi-headed 1.5.位置信息表达 2.decorder&#xff08;待补充&#xff09; 参考文献 1.Encoder 1.1简单理解Attention 比方说&#xff0c;下图中的热度图中我们希望专注于…

基础篇-环境搭建

JDK安装 https://www.oracle.com/java/technologies/downloads/ 安装完成后&#xff0c;一直点下一步就行 打开控制面板输入cmd运行&#xff0c;控制台输入java -version。如果看到版本号就说明我们安装成功了 JDK的组成 1. JVM JAVA虚拟机&#xff0c;JAVA真正运行的地方 …

喜报!诚恒科技与赛时达科技达成BI金蝶云星空项目合作

随着全球数字化浪潮轰轰烈烈袭来&#xff0c;仅仅凭借手工处理的方式难以在庞大的数据海洋中精准获取信息、把握市场需求、了解目标用户&#xff0c;为企业创新提供强有力的支持。深圳赛时达科技有限公司&#xff08;简称赛时达科技&#xff09;希望通过数字化转型实现从手工处…

虚拟世界探索:科技之下的未来可能性

随着科技的飞速发展&#xff0c;人们对于虚拟世界的憧憬和探索也日益加深。虚拟世界&#xff0c;那是一个超越现实的概念&#xff0c;一个充满想象力和创造力的领域。然而&#xff0c;虚拟世界究竟有可能实现吗&#xff1f;这是一个引人深思的问题。 虚拟世界&#xff0c;首先让…

SQL | 高级数据过滤

5-高级数据过滤 通过组合WHERE子句&#xff0c;建立功能更强的检索语句。 5.1-组合WHERE子句 前面写的都是单一条件下的WHERE子句&#xff0c;SQL语句允许给出多个WHERE子句来组合检索&#xff0c;这些WHERE子句通过AND子句或者OR子句进行连接。 操作符&#xff08;operato…