工程优化问题之三杆桁架设计研究(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代码实现

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity UI.Image 六边形+流光 Shader

效果图 参考代码 Shader"Custom/HexFlowImage" {Properties{[PerRendererData] _MainTex ("Sprite Texture", 2D) "white" {}_Color ("Tint", Color) (1,1,1,1)_StencilComp ("Stencil Comparison", Float) 8_Stencil (…

YOLO v8目标跟踪详细解读(一)

在此之前,我们已经对yolo系列做出了详细的探析,有兴趣的朋友可以参考yolov8等文章。YOLOV8对生态进行了优化,目前已经支持了分割,分类,跟踪等功能,这对于我们开发者来说,是十分便利。今天我们对…

【Vue+Element-plus】记录后台首页多echart图静态页面

一、页面效果 二、完整代码 Index.vue <template><div><div><DateTime /><!-- {{username}} --></div><el-row :gutter"20"><el-col :span"8"><div class"grid-content bg-purple"><P…

【Python数据容器】--- 元组的基本使用

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【Python小白从入门到精通】&#x1f388; 本专栏旨在分享学习Python的一点学习心得&#xff0c;欢迎大家在评论区讨论&#x1f48c; 元组…

LeetCode150道面试经典题-删除有序数组中的重复项(简单)

1.题目 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的唯一元素的数量为 k &#xff0c…

spring按条件注入@Condition及springboot对其的扩展

概述 spring的ioc极大的方便了日常开发&#xff0c;但随着业务的迭代。配置的一些参数在某些情况下需要按条件注入。 比如原先定义的db公共模块下&#xff0c;相关的配置和工具类只是基于mysql的。但是后续有模块需要使用mongo/es等其他数据库&#xff0c;又想继续使用db公共…

【12】Git工具 协同工作平台使用教程 Gitee使用指南 腾讯工蜂使用指南【Gitee】【腾讯工蜂】【Git】

tips&#xff1a;少量的git安装和使用教程&#xff0c;更多讲快速使用上手Gitee和工蜂平台 一、准备工作 1、下载git Git - Downloads (git-scm.com) 找到对应操作系统&#xff0c;对应版本&#xff0c;对应的位数 下载后根据需求自己安装&#xff0c;然后用git --version验…

K8S MetalLB LoadBalancer

1. 简介 kubernetes集群没有L4负载均衡&#xff0c;对外暴漏服务时&#xff0c;只能使用nodePort的方式&#xff0c;比较麻烦&#xff0c;必须要记住不同的端口号。 LoadBalancer&#xff1a;使用云提供商的负载均衡器向外部暴露服务&#xff0c;外部负载均衡器可以将流量路由…

日常BUG——使用Long类型作id,后端返回给前段后精度丢失问题

&#x1f61c;作 者&#xff1a;是江迪呀✒️本文关键词&#xff1a;日常BUG、BUG、问题分析☀️每日 一言 &#xff1a;存在错误说明你在进步&#xff01; 一、问题描述 数据库long类型Id: 前端返回的Id实体类: Data ApiModel("xxx") public class …

【广州华锐视点】VR燃气轮机故障判断模拟演练系统

VR燃气轮机故障判断模拟演练系统由广州华锐视点开发&#xff0c;是一款基于虚拟现实技术的教育工具&#xff0c;旨在为学生提供一个安全、高效、互动的学习环境&#xff0c;帮助他们更好地掌握燃气轮机的故障诊断技能。 这款VR实训软件能够模拟真实的燃气轮机故障诊断场景&…

案例13 Spring MVC参数传递案例

基于Spring MVC实现HttpServletRequest、基本数据类型、Java Bean、数组、List、Map、JSON方式的参数传递。 1. 创建项目 选择Maven快速构建web项目&#xff0c;项目名称为case13-springmvc02。 2. 配置Maven依赖 <?xml version"1.0" encoding"UTF-8&quo…

前沿分享-鱼形机器人

可能并不太前沿了&#xff0c;是21年底的新闻了&#xff0c;但是看见了就顺便发一下吧。 大概就是&#xff0c;通过在pH响应型水凝胶中编码不同的膨胀速率而构建了一种环境适应型变形微机器人,让微型机器人直接向癌细胞输送药物从而减轻药物带来副作用。 技术原理是&#xff0c…

数据结构:力扣刷题

题一&#xff1a;删除有序数组中的重复项 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。 考虑 nums 的…

C++:模拟实现vector以及vector的迭代器失效和拷贝问题

文章目录 实现的功能模拟实现迭代器失效隐含浅拷贝问题 实现的功能 模拟实现 由于前面实现了string&#xff0c;因此这里实现过程不为重点&#xff0c;重点为关于迭代器失效和拷贝问题 template <class T> class vector { public:typedef T* iterator;typedef const T*…

非计算机科班如何丝滑转码?

近年来&#xff0c;很多人想要从其他行业跳槽转入计算机领域。非计算机科班如何丝滑转码&#xff1f; 如何规划才能实现转码&#xff1f; 对于非计算机科班的人来说&#xff0c;想要顺利转码成为计算机相关岗位的从业者&#xff0c;需要经过以下几个步骤&#xff1a; 规划转码…

(docker)mysql镜像拉取-创建容器-容器的使用【个人笔记】

【容器的第一次创建】 容器的第一次创建&#xff0c;需要先下载镜像&#xff0c;从 镜像拉取 0、可以搜索镜像的版本 docker search mysql1、先拉取MySQL的镜像&#xff0c;默认拉取最新版&#xff0c;使用下面的命令拉取mysql镜像 docker pull mysql也可以指定mysql的版本…

MySQL 事务原理:事务概述、隔离级别、MVCC

文章目录 一、事务1.1 事务概述1.2 事务控制语句1.3 ACID特性 二、隔离级别2.1 隔离级别的分类2.1.1 读未提交&#xff08;RU&#xff09;2.1.2 读已提交&#xff08;RC&#xff09;2.1.3 可重复读&#xff08;RR&#xff09;2.1.4 串行化 2.2 命令2.3 并发读异常2.3.1 脏读2.3…

Linux 发行版 Debian 12.1 发布

导读在今年 6 月初&#xff0c;Debian 12“bookworm”发布&#xff0c;而日前 Debian 迎来了 12.1 版本&#xff0c;主要修复系统用户创建等多个安全问题。 Debian 是最古老的 GNU / Linux 发行版之一&#xff0c;也是许多其他基于 Linux 的操作系统的基础&#xff0c;包括 Ub…

Redis单机,主从,哨兵,集群四大模式

Redis 单机模式 Redis 单机模式是指 Redis 数据库在单个服务器上以独立的、单一的进程运行的模式。在这种模式下&#xff0c;Redis 不涉及数据分片或集群配置&#xff0c;所有的数据和操作都在一个实例中进行。以下是关于 Redis 单机模式的详细介绍&#xff1a; 单一实例&#…

数据分析两件套ClickHouse+Metabase(二)

Metabase篇 Metabase安装部署 任何问题请查看 -> 官方文档 jar包从GitHub下载 -> 地址 同样有个问题, 默认数据源里没有ClickHouse, 不过ClickHouse官方提供了插件包 -> 插件包 在安装metabase目录下新建一个plugins文件夹, 把下载的clickhouse.metabase-driver.ja…