当前位置: 首页 > news >正文

基于matlab实现的弹簧振动系统模型程序(动态模型)

完整代码:

clear all; 

%System data 
m=1.0; zeta=0.01; omega0=1.0; Dt=1.0; f0=1.0; 
x0=0.0; dotx0=0.0; 
xmax=sqrt(x0^2+(dotx0/omega0)^2)+min([0.5*abs(f0)*Dt/(m*omega0) f0/omega0^2]); 
omegad=omega0*sqrt(1-zeta^2); 
dt0=0.1*pi/omega0; nstep=500; 

a=0.70; b=0.70; r=0.35*a; fact=0.50/xmax; 

xf0=0.5*[0 -a   0   a     0]'; 
yf0=[0  -b/4 -b/2 -3*b/4 -b]'; 
xd1=0.5*[-a   -a   a     a]'; 
yd1=[-6*b    0   0    -6*b]'; 
xd2=0.5*[-0.8*a 0.8*a]'; 
yd2=[-3*b   -3*b]'; 
xf0=[xf0 
    xf0 
    xf0 
    xf0 
    xf0 
    xf0]; 
yf0=[yf0 
   -b+yf0 
   -2*b+yf0 
   -3*b+yf0 
   -4*b+yf0 
   -5*b+yf0]; 
xf=[0 
   xf0 
   0]; 
xSQ=[-a 5*a 5*a -a -a]'; 
ySQ=[0       0      -2*r   -2*r 0]'; 
xH=[-2000 2000]'; yH=[0 0]'; 

xx=x0; 
tt=0; 

set(gcf,'DoubleBuffer','on'); 

i=1; 
t=i*dt0; 
t0=min([t Dt]); 
t1=t-t0; 
h=exp(-zeta*omega0*t)*sin(omegad*t)/(m*omegad); 
doth=exp(-zeta*omega0*t)*(cos(omegad*t)-zeta*omega0/omegad*sin(omegad*t))/m; 
H=(1/m-doth-2*zeta*omega0*h)/omega0^2; 
h1=exp(-zeta*omega0*t1)*sin(omegad*t1)/(m*omegad); 
doth1=exp(-zeta*omega0*t1)*(cos(omegad*t1)-zeta*omega0/omegad*sin(omegad*t1))/m; 
H1=(1/m-doth1-2*zeta*omega0*h1)/omega0^2; 
if t>Dt 
  t2=t-Dt; 
  h2=exp(-zeta*omega0*t2)*sin(omegad*t2)/(m*omegad); 
  doth2=exp(-zeta*omega0*t2)*(cos(omegad*t2)-zeta*omega0/omegad*sin(omegad*t2))/m; 
  H2=(1/m-doth2-2*zeta*omega0*h2)/omega0^2; 
else 
  H2=0; 
end 
x=-f0*H2+f0*(t0/m+h1-h+2*zeta*omega0*(H1-H))/(Dt*omega0^2); 
x=x+exp(-zeta*omega0*t)*(x0*cos(omegad*t)+(dotx0+zeta*omega0*x0)*sin(omegad*t)/omegad); 
tt=[tt 
  t]; 
xx=[xx 
  x]; 
x=fact*x; 
yf=[0 
   -2*b+(1+x)*yf0 
   -6*b+(1+x)*yf0(size(yf0,1))]; 
clf; 
figure(1); 
subplot(2,1,1) 
h1=plot(xH,yH,'r'); 
hold on 
h2=plot(xH,yH-6*b+yf0(size(yf0,1))-r,'k'); 
h3=plot(xf,yf,'r'); 
h4=plot(4*a+xd1,-3*b+yd1,'r'); 
h5=plot(4*a*[1 1]',-3*b*[0 1]','r'); 
hej=yf(size(yf,1)); 
h6=plot(4*a+xd2,(-7*b+yf(size(yf,1))-hej)*ones(2,1),'r'); 
h7=plot(4*a*[1 1]',[-7*b+yf(size(yf,1))-hej yf(size(yf,1))]','r'); 
h8=plot(xSQ,yf(size(yf,1))+ySQ,'r'); 
hold off 
axis([-2 5 -10*b+(1+fact*x0)*yf0(size(yf0,1))-2*r r]); 
subplot(2,1,2) 
h9=plot(xH,yH,'k'); 
hold on; 
h10=plot(tt,-xx,'r'); 
hold off; 
axis([ 0 nstep*dt0  -xmax xmax]) 

% start loop 
for i=1:nstep 

t=i*dt0; 
t0=min([t Dt]); 
t1=t-t0; 
h=exp(-zeta*omega0*t)*sin(omegad*t)/(m*omegad); 
doth=exp(-zeta*omega0*t)*(cos(omegad*t)-zeta*omega0/omegad*sin(omegad*t))/m; 
H=(1/m-doth-2*zeta*omega0*h)/omega0^2; 
h1=exp(-zeta*omega0*t1)*sin(omegad*t1)/(m*omegad); 
doth1=exp(-zeta*omega0*t1)*(cos(omegad*t1)-zeta*omega0/omegad*sin(omegad*t1))/m; 
H1=(1/m-doth1-2*zeta*omega0*h1)/omega0^2; 
if t>Dt 
  t2=t-Dt; 
  h2=exp(-zeta*omega0*t2)*sin(omegad*t2)/(m*omegad); 
  doth2=exp(-zeta*omega0*t2)*(cos(omegad*t2)-zeta*omega0/omegad*sin(omegad*t2))/m; 
  H2=(1/m-doth2-2*zeta*omega0*h2)/omega0^2; 
else 
  H2=0; 
end 
x=-f0*H2+f0*(t0/m+h1-h+2*zeta*omega0*(H1-H))/(Dt*omega0^2); 
x=x+exp(-zeta*omega0*t)*(x0*cos(omegad*t)+(dotx0+zeta*omega0*x0)*sin(omegad*t)/omegad); 

tt=[tt 
  t]; 
xx=[xx 
  x]; 
x=fact*x; 
yf=[0 
   -2*b+(1+x)*yf0 
   -6*b+(1+x)*yf0(size(yf0,1))]; 
set(h3,'Xdata',xf); 
set(h3,'Ydata',yf); 
set(h4,'Xdata',4*a+xd1); 
set(h4,'Ydata',-3*b+yd1); 
set(h5,'Xdata',4*a*[1 1]'); 
set(h5,'Ydata',-3*b*[0 1]'); 
set(h6,'Xdata',4*a+xd2); 
set(h6,'Ydata',(-7*b+yf(size(yf,1))-hej)*ones(2,1)); 
set(h7,'Xdata',4*a*[1 1]'); 
set(h7,'Ydata',[-7*b+yf(size(yf,1))-hej yf(size(yf,1))]'); 


set(h8,'Xdata',xSQ); 
set(h8,'Ydata',yf(size(yf,1))+ySQ); 
set(h10,'Xdata',tt); 
set(h10,'Ydata',-xx); 

pause(0.1) 
end;

相关文章:

基于matlab实现的弹簧振动系统模型程序(动态模型)

完整代码: clear all; %System data m1.0; zeta0.01; omega01.0; Dt1.0; f01.0; x00.0; dotx00.0; xmaxsqrt(x0^2(dotx0/omega0)^2)min([0.5*abs(f0)*Dt/(m*omega0) f0/omega0^2]); omegadomega0*sqrt(1-zeta^2); dt00.1*pi/omega0; nstep500; a0.70; b0.…...

哨兵1号(Sentinel-1)SAR卫星介绍

1. 哥白尼计划 说起欧空局的哨兵1号,就不得不先说一下欧空局的“哥白尼计划”。 欧空局的哥白尼计划(Copernicus Programme)是欧空局与欧盟合作的一项极其重要的地球观测计划。该计划旨在提供免费开放的、可持续的地球观测数据&#xff0c…...

[maven] scopes 管理 profile 测试覆盖率

[maven] scopes & 管理 & profile & 测试覆盖率 这里将一些其他的特性和测试覆盖率(主要是 jacoco) scopes maven 的 scope 主要就是用来限制和管理依赖的传递性,简单的说就是,每一个 scope 都有其对应的特性&…...

css网页打印字体设置

media print {font-family:"SimHei";color: #000;border-color: #000; }常用字符编码表 中文名英文名Unicode 编码黑体SimHeiSimHei微软雅黑Microsoft YaHei5FAE\8F6F\96C5\9ED1宋体SimSun\5B8B\4F53仿宋FangSong\4EFF\5B8B html5常用转义字符℃ 字符十…...

JAVA高级技术入门(单元测试,反射,注解,动态代理)

JAVA高级技术入门(单元测试,反射,注解,动态代理) 一、Junit单元测试二、反射1.认识反射,获取类概念:快速入门:获取Class对象的三种方式 2.1获取类的构造器2.2获取类的构造器的作用&a…...

uni-app 实现自定义按 A~Z 排序的通讯录(字母索引导航)

创建 convertPinyin.js 文件 convertPinyin.js 将下面的内容复制粘贴到其中 const pinyin (function() {let Pinyin function(ops) {this.initialize(ops);},options {checkPolyphone: false,charcase: "default"};Pinyin.fn Pinyin.prototype {init: functi…...

C++ PrimerPlus 复习 第一章 命令编译链接文件 make文件

第一章 命令编译链接文件 C 有什么呢?C 源代码文件后缀运行C过程可执行代码:编译语法:makeMakefile 基础语法编写完make只要和将要编译的文件放一起就行 然后在该目录使用make命令,就将自动运行;基础的Makefile版本 现…...

微信小程序——常用组件的属性介绍

常用的组件内容标签 text 文本组件类似于HTML中的span标签,是一个行内元素rich-text 富文本标签支持把HTML字符串渲染为WXML结构 text标签的基本使用 通过text组件的selectable属性,实现长按选中文本内容的效果。只有text标签支持长按选中效果&#x…...

【深度学习】 Python 和 NumPy 系列教程(廿七):Matplotlib详解:3、多子图和布局:散点矩阵图(Scatter Matrix Plot)

目录 一、前言 二、实验环境 三、Matplotlib详解 1、2d绘图类型 2、3d绘图类型 3、多子图和布局 1. subplot()函数 2. subplots()函数 3. 散点矩阵图(Scatter Matrix Plot) 一、前言 Python是一种高级编程语言,由Guido van Rossum于…...

解决jupyter打开的默认路径问题

已经安装完anaconda,但是jupyter每一次打开的路径都不是自己想要的路径,可以在配置文件中修改jupyter打开的默认路径,具体步骤如下: 首先打开anaconda的命令行 如果有多个环境的,需要输入conda activate 环境名称以下命…...

Git 学习笔记

Git 学习笔记 Git 简介 Git 是一个 开源的分布式版本控制系统。 什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 什么是分布式版本控制系统? 介绍分布式版本控制系统前,有…...

【Qt】QGroundControl入门3:源码初探

1、源码目录 QGroundControl使用pro来管理工程,可以使用qmake来编译。同时还有CMakeLists.txt,应该可以使用cmake来编译,本人还没有尝试。 QGroundControl是跨平台的,支持android、win、linux、mac、ios系统,在QGCCommon.pri中可见关于跨平台编译的配置。 1.1 目录树 …...

腾讯mini项目-【指标监控服务重构】2023-07-31

今日已办 trace_id传播 关于如何使用 trace_id 创建 span 的思路 【暂未实现 & 测试】 调研 SpanProcessor 阅读源码的test 明日待办 根据 trace_id 创建 span,应该需要 parent span_id 才能有 trace 的树状 span 的关系...

Rust通用编程概念(3)

Rust通用编程概念 1.变量和可变性1.执行cargo run2.变量3.变量的可变性4.常量5.遮蔽5.1遮蔽与mut区别1.遮蔽2.mut 2.数据类型1.标量类型1.1整数类型1.2浮点数类型1.3数字运算1.4布尔类型1.5字符类型 2.复合类型2.1元组类型2.2数组类型1.访问数组2.无效的数组元素访问 3.函数3.1…...

学Python的漫画漫步进阶 -- 第四步

学Python的漫画漫步进阶 -- 第四步 四、运算符4.1 算术运算符4.2 比较运算符4.3 逻辑运算符4.4 位运算符4.5 赋值运算符4.6 运算符的优先级4.7 练一练4.8 运算符的总结全部16步完成后 ,后续就是介绍项目实战,请大家给予点赞、关注! 四、运算符…...

【LeetCode-中等题】18. 四数之和

文章目录 题目方法一:双指针(定2动2) 题目 方法一:双指针(定2动2) 这题可以参考【LeetCode-中等题】15. 三数之和 区别在于,三数之和只需要用一个for循环定住一个数,然后设置两个前…...

每日一题 102二叉树的层序遍历

题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 1: 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]] 示例 2&#xff1a…...

牛客: BM4 合并两个排序的链表

牛客: BM4 合并两个排序的链表 文章目录 牛客: BM4 合并两个排序的链表题目描述题解思路题解代码 题目描述 题解思路 以链表一为主链表,遍历两条链表 若当前链表二的节点val小于当前链表一的下一个节点val,则将链表链表二的该节点连到链表一的节点的下一个,链表一的当前节点往…...

C语言基础知识点(六)二维数组指针和地址

#include <stdio.h>int main() {int a[2][3] {2, 4, 6,8, 10, 12};printf("a:%p, a1:%p\n", a, a 1); // 相差3*sizeof&#xff08;int&#xff09;12&#xff0c;二维数组名是一个指向每一行的指针&#xff0c;a:0061FF08, a1:0061FF14prin…...

nodejs格式化输入

需求 比如我现在要格式为Axxx-xxx&#xff08;xxx是数字&#xff09;的格式&#xff0c;但是输入有可能为A1-2这种情况&#xff0c;就需要补零&#xff0c;变成A001-002 代码实现 const regex /^A(\d)\-(\d)$/; // 正则匹配桩号合法格式const match input.match(regex);if…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

Android第十三次面试总结(四大 组件基础)

Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成&#xff0c;用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机&#xff1a; ​onCreate()​​ ​调用时机​&#xff1a;Activity 首次创建时调用。​…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

Kafka主题运维全指南:从基础配置到故障处理

#作者&#xff1a;张桐瑞 文章目录 主题日常管理1. 修改主题分区。2. 修改主题级别参数。3. 变更副本数。4. 修改主题限速。5.主题分区迁移。6. 常见主题错误处理常见错误1&#xff1a;主题删除失败。常见错误2&#xff1a;__consumer_offsets占用太多的磁盘。 主题日常管理 …...