工程计算与分析课程报告-Matlab

news2024/11/13 11:25:39

如下图所示的单自由度系统: m=20kg, c=30 Ns/m, and k=3000 N/m.

1、应用数学、机械等理论知识推导出以下系统的数学模型:

其中:

x坐标如上图所示,取其稳态点为零点。

M为重物质量

K为弹簧弹性系数

C为阻尼系数

F(t)为施加在重物上的外激励力量

2、计算当外激励为周期性激励:F(t)=40cos(10t)(N),而所有的初值条件为零,即 x(0)=dx(0)/dt=0, 应用MATLAB计算系统的动态响应x(t)=?并绘制图形。(计算时间域为[0 5]秒)。c=30 Ns/m, and k=3000 N/m

% 定义系统参数  
m = 20.0;  % 质量,单位:kg  
c = 30.0;  % 阻尼系数,单位:Ns/m  
k = 3000.0;  % 弹簧刚度,单位:N/m  
% 定义外部激励函数  
F = @(t) 40*cos(10*t);  
% 定义一阶方程系统的匿名函数  
system_equation = @(t, y) [y(2); (F(t) - c*y(2) - k*y(1)) / m];  
% 初始条件  
y0 = [0; 0];  % 初始位移和初始速度  
% 时间范围  
tspan = [0 5];  
% 使用ode45求解  
[t, y] = ode45(system_equation, tspan, y0);  
% 提取位移  
x = y(:, 1);  
figure;  
plot(t, x);  
xlabel('T');  
title('动态响应');  

3、当外激励为脉冲激励时, 计算系统的稳态响应x(t)=?并绘制图形。(计算时间域为[0 5]秒)。 IMPLUSE

c=30 Ns/m, and k=3000 N/m
即:考虑具有粘性阻尼的弹簧 - 质量系统在 t = 0 时受到一个单位冲量作用:

% 定义系统参数  
m = 20.0;  % 质量,单位:kg  
c = 30.0;  % 阻尼系数,单位:Ns/m  
k = 3000.0;  % 弹簧刚度,单位:N/m  
  
% 定义ODE的匿名函数  
ode_system = @(t, y) [y(2); (-c*y(2) - k*y(1)) / m];  
  
% 初始条件(假设脉冲导致了一个初始速度)  
y0 = [0; 1];  % 初始位移为0,初始速度为1 m/s  
  
% 时间范围  
tspan = [0 5];  
  
% 使用ode45求解  
[t, y] = ode45(ode_system, tspan, y0);  
% 提取位移  
x = y(:, 1);  
% 绘制图形  
figure;  
plot(t, x);  
xlabel('T');  
title('脉冲激励响应');  

4、当外激励为阶跃激励时, 计算系统的稳态响应x(t)=?并绘制图形。(计算时间域为[0 5]秒)。 STEP

即:F(t)=20 N

c=30 Ns/m, and k=3000 N/m

% 参数  
m = 20.0;  % 质量,单位:kg  
c = 30.0;  % 阻尼系数,单位:Ns/m  
k = 3000.0;  % 弹簧刚度,单位:N/m  
F = 20;    % 阶跃激励的大小,单位:N  
% 定义ODE的匿名函数,考虑阶跃激励  
ode_system = @(t, y) [y(2); (F * (t > 0) - c*y(2) - k*y(1)) / m];  
% 初始条件  
y0 = [0; 0];  % 初始位移和速度都为0  
% 时间范围  
tspan = [0 5];  
% 使用ode45求解  
[t, y] = ode45(ode_system, tspan, y0);  
  
% 提取位移  
x = y(:, 1);  
  
% 绘制图形  
figure;  
plot(t, x);  
xlabel('T');  
title('阶跃激励响应');  

5、当外激励为阶跃激励(即:F(t)=20 N时, 改变不同弹簧弹性系数k、阻尼系数c的值(见下述条件),计算系统的稳态响应x(t)=?并绘制图形,分析结果。(计算时间域为[0 5]秒)。

条件:

c=10;15 ;20 ;25;30;35;40;Ns/m,

 k=1000;2000;3000;4000  N/m

% 参数定义  
F = 20; % 阶跃激励的大小,单位:N  
m = 20.0; % 质量,单位:kg  
tspan = [0 5]; % 时间范围  
y0 = [0; 0]; % 初始条件:位移和速度都为0  
  
% 定义ODE函数(不需要单独的文件,直接作为匿名函数)  
ode_system = @(t, y, F, m, c, k) [y(2); (F - c*y(2) - k*y(1)) / m];  
  
% 初始化绘图参数  
figure; % 创建一个新的图形窗口  
hold on; % 保持当前图形,以便在同一窗口上绘制多个曲线  
grid on; % 打开网格  
xlabel('Time (s)'); % x轴标签  
ylabel('Displacement (m)'); % y轴标签  
title('Response of the System to a Step Input'); % 图形标题  
  
% 绘制不同k和c值的响应  
colors = 'rbgcykm'; % 颜色向量,用于区分不同曲线  
k_values = [1000, 2000, 3000, 4000]; % 弹簧弹性系数  
c_values = [10, 15, 20, 25, 30, 35, 40]; % 阻尼系数  
  
subplot(221)
k = 1000;
for i_c = 1:length(c_values)
    c = c_values(i_c);
    % 使用ode45求解ODE
    [t, y] = ode45(@(t, y) ode_system(t, y, F, m, c, k), tspan, y0);
    x = y(:, 1); % 提取位移
    % 绘制位移响应曲线
    plot(t, x, 'LineWidth', 2, 'Color', colors(mod(i_k + i_c, length(colors)) + 1)); % 使用不同的颜色和线宽
    hold on;
end
title("K=1000")
legend('c=10','c=15','c=20','c=25','c=30','c=35','c=40')

subplot(222)
k = 2000;
for i_c = 1:length(c_values)
    c = c_values(i_c);
    % 使用ode45求解ODE
    [t, y] = ode45(@(t, y) ode_system(t, y, F, m, c, k), tspan, y0);
    x = y(:, 1); % 提取位移
    % 绘制位移响应曲线
    plot(t, x, 'LineWidth', 2, 'Color', colors(mod(i_k + i_c, length(colors)) + 1)); % 使用不同的颜色和线宽
    hold on;
end
title("K=2000")
legend('c=10','c=15','c=20','c=25','c=30','c=35','c=40')

subplot(223)
k = 3000;
for i_c = 1:length(c_values)
    c = c_values(i_c);
    % 使用ode45求解ODE
    [t, y] = ode45(@(t, y) ode_system(t, y, F, m, c, k), tspan, y0);
    x = y(:, 1); % 提取位移
    % 绘制位移响应曲线
    plot(t, x, 'LineWidth', 2, 'Color', colors(mod(i_k + i_c, length(colors)) + 1)); % 使用不同的颜色和线宽
    hold on;
end
title("K=3000")
legend('c=10','c=15','c=20','c=25','c=30','c=35','c=40')

subplot(224)
k = 4000;
for i_c = 1:length(c_values)
    c = c_values(i_c);
    % 使用ode45求解ODE
    [t, y] = ode45(@(t, y) ode_system(t, y, F, m, c, k), tspan, y0);
    x = y(:, 1); % 提取位移
    % 绘制位移响应曲线
    plot(t, x, 'LineWidth', 2, 'Color', colors(mod(i_k + i_c, length(colors)) + 1)); % 使用不同的颜色和线宽
        hold on;
end
title("K=4000")
legend('c=10','c=15','c=20','c=25','c=30','c=35','c=40')

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

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

相关文章

应用层协议HTTP

应用层协议HTTP 注1. HTTP协议2. 认识URL3. HTTP 协议请求与响应格式3.1.快速获取HTTP请求3.2 快速解析HTTP请求3.3 细致了解HTTP请求与响应 4. 完善Http.hpp代码,实现http协议4.1 http请求4.2再谈URL4.3构建http应答4.4 Content-Type属性 5.HTTP请求/响应属性5.1HT…

vscode+git解决远程分支合并冲突

1)远程分支和远程分支不复杂情况合并 例如readme的冲突 可直接在github上解决 删到只剩下 #supergenius002 合并冲突测试1/合并测试冲突1合并测试冲突2/合并测试冲突2就行 《《《/》》》也要删掉 2)但如果是复杂的冲突,让我们回到vscod…

glsl shader中实现canvas中的createRadialGradient效果

在网上找了好久,也没有发现有现成用shader去实现canvas radialGradient效果的.大部分都是简单的只有一个中心圆或者通过canvas绘制渐变再作为纹理图像进行贴图,没有类似像canvas有内圆与外圆,两圆心位置不一样,可以用实现类似焦点…

【开发问题记录】启动某个微服务时无法连接到seata(seata启动或配置异常)

问题记录 一、问题描述1.1 问题复现1.1.1 将Linux中的部分微服务启动1.1.2 在本地启动当时出错的服务 1.2 解决思路1.2.1 Nacos中seata相关的信息1.2.2 Linux中seata相关的信息 二、问题解决2.1 seata的配置错误2.1.1 Nacos中seata的配置问题2.1.2 命名空间问题的发现 2.2 网络…

Python数值计算(12)

本篇说说Neville方法。Neville方法的基础是,插值多项式可以递归的生成,有时进行插值的目的是为了计算某个点的值,这个时候并不需要将拟合曲线完全求出,而是可以通过递归的方式进行计算,具体操作如下: 例如…

代码实践思考:ROS1和ROS2

扩展 能否借助人工智能工具将ROS1批量转为ROS2如何更高效的进行ROS学习 ROS1大量案例直接批处理用智能工具转为ROS2案例 不同版本之间的工具软件直接用智能方式进行代码升级 例如OpenCV之类,一些函数变化,直接用智能工具进行批量代码优化 机器人画圆-…

滞回比较器工作原理,应用,TINA仿真

滞回比较器 滞回比较器的主要应用是增加滞回控制,让其对微小的变化不那么敏感,增强抗干扰能力,避免由噪声引起的不稳定状态,通常用于噪声环境下的阈值检测以及信号调理。根据不同需求,滞回比较器还可以设计成开漏极输出…

超级智能体创造营:启动!我的情侣匹配度测试助手

零、写在前面 听说由百度文心智能体平台主办,万众瞩目的 超级智能体创造营 第三期启动啦! 在本期的创造营中,博主开发了一款有趣的超级智能体:情侣匹配度测试助手。 为什么要开发它呢,快来听博主娓娓道来吧~ 一、超…

【通俗理解】自由意志与预测——混沌理论与预测的不可能性

【通俗理解】自由意志与预测——混沌理论与预测的不可能性 自由意志与预测的类比 你可以把自由意志比作一只难以捉摸的蝴蝶,它的每一次振翅都可能引发不可预测的风暴。而预测则像是一个试图捕捉这只蝴蝶的网,但往往因为蝴蝶的微小变动而错失目标。 自由意…

五大AI测试开源框架及使用方法介绍

AI测试框架是一套系统的测试工具和方法,包括测试的规范和基础代码,涵盖了一系列的测试思想和方法。这些框架可以帮助开发者和测试人员对AI模型进行测试,确保AI模型在真实世界的应用中能够达到预期的效果。接下来的内容,我们将介绍…

PHP苹果 V X iPhone微商i o s多分开V X语音转发密友朋友圈一键跟圈软件

苹果VX神器!iPhone微商必备:ios多开、VX语音转发、密友朋友圈一键跟圈软件大揭秘! 一、iOS多开新境界,工作生活两不误! 你是不是也烦恼过,想要在工作号和生活号之间自由切换,却因为iPhone的限制…

【vue3】pinia配置(任意组件通信,集中状态管理容器)

选择式写法 一、安装pinia依赖 终端输入:npm install pinia 二、配置pinia 第一步:创建仓库,在src目录下创建文件夹modules和文件index.ts. 第二步:配置index.ts // 创建pinia大仓库 import { createPinia } from "pin…

H5+JS视频列表

源码在最后面 好像有些浏览器不适配(可能是设置了禁用自动播放的功能) 实现功能 视频自动无声播放鼠标置于某个视频板块之上时自动无声播放点击视频跳转视频链接 效果图(部分 视频加载可能有点慢) 部分功能实现原理 1.无声播放…

学习C语言第十六天(调试、)

调试 第一题 C 第二题 A 第三题 C 第四题 C 第五题 D release不可以调试 第六题 越界访问访问到了i的地址 编程题 模拟strcpy void my_strcpy(char*arr1,char*arr2) {while (*arr2){*arr1 *arr2;} } int main() {char arr1[50…

【足球走地软件】走地数据分析预测【大模型篇】走地预测软件实战分享

了解什么是走地数据? 走地数据分析,在足球赛事的上下文中,是一种针对正在进行中的比赛进行实时数据分析的方法。这种方法主要用于预测比赛中的某些结果或趋势,如总进球数、比分变化、球队表现等。 在足球走地数据分析中&#xf…

仕考网:公务员可以报考军队文职吗?

公务员可以报考军队文职考试,但是需要满足前提条件。 对于已经与国家、地方的用人单位建立劳动关系的社会人才,在获得当前用人单位的许可后才可以申请报考。 在面试过程中,考生必须出示一份由其用人单位出具的且加盖公章的同意报考证明。一…

C++: set容器

一、关联式容器 我们已经了解了STL中的部分容器,比如vector、list、deque等,这些容器被称为序列式容器,其底层为线性序列的数据结构,里面存储的是元素本身。 关联式容器也是用来存储数据的,与序列式容器不同&#xf…

Windows中启用Linux命令功能WSL,并安装Linux子系统

文章目录 一、WSL简介 二、启用WSL 三、参考文章 一、WSL简介 WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)允许用户直接在 Windows 上运行Linux 环境(包括大多数命令行工具、实用程序和应用程序&#x…

汽车软件开发中的功能安全挑战与应对策略:基于Jira平台构建端到端的可追溯性,实现精细化需求管理

2024年7月18-19日,龙智携汽车软件开发及管理解决方案创新亮相2024 ATC汽车软件与安全技术周。龙智技术支持部负责人&Atlassian认证专家叶燕秀、龙智功能安全高级工程师景玉鑫在活动主会场联合发表了精彩演讲,分享推动汽车软件开发与功能安全的创新实…

硬核产品经理

链接:硬核产品经理 (qq.com)