参考

单自由度振动理论推导参考:


结果

输出位移由3部分组成:

代码

import matplotlib.pyplot as plt
import numpy as np
from moviepy.video.io.bindings import mplfig_to_npimage
import moviepy.editor as mpyfrom numpy import pi,sqrt,cos,sin,arctan,exp##########begin:计算单自由度振动###############
k1=(2*pi)**2
m1=1
wn=sqrt(k1/m1)
s_=0.16
wd=sqrt(1-s_**2)*wn
c1=2*s_*wn*m1
t=np.array(np.linspace(0,4,1000,False))#0:0.002:2;
f0=2
f_x0=1*sin(2*pi*f0*t)
f1=f_x0
s=2*pi*f0/wn;
B0=1/k1#%B0=F0/k1 2019.3.31 by lijilin
B=B0/sqrt((1-s**2)**2+(2*s_*s)**2);
phai=arctan(2*s_*s/(1-s**2));
#%%%%%%%%%%%%%%%%%%
if s>1:
#    B=-B;phai=phai+pi;#%%%%当频率比s>1,响应滞后相位角为pi/2~pi!!!!!2019.3.31bylijilin
#%%%%%%%%%%%%%%%%%%%%%%
x0=0.02;
dx0=0.0;
x1=exp(-s_*wn*t)*(x0*cos(wd*t)+(dx0+s_*wn*x0)/wd*sin(wd*t))
x2=B*exp(-s_*wn*t)*(sin(phai)*cos(wd*t)+(s_*wn*sin(phai)-2*pi*f0*cos(phai))/wd*sin(wd*t))
x3=B*sin(2*pi*f0*t-phai)
x=x1+x2+x3
plt.figure
plt.subplot(3,1,1)
plt.plot(t,f1)
plt.subplot(3,1,2)
plt.plot(t,x)
plt.grid# 用matplotlib绘制一个图形
plt.figure
duration = 4fig_mpl, ax = plt.subplots(1,figsize=(5,3), facecolor='white')fs=1000/4xx=lambda d:t[:int(d*fs+1)]
zz=lambda d:x[:int(d*fs+1)]
zz1=lambda d:x1[:int(d*fs+1)]
zz2=lambda d:x2[:int(d*fs+1)]
zz3=lambda d:x3[:int(d*fs+1)]ax.set_title("output")
ax.set_xlabel("t")
ax.set_ylim(-0.03,0.03)
ax.set_xlim(0,4)
line, = ax.plot(xx(0),zz(0), lw=3)
line1, = ax.plot(xx(0),zz1(0), lw=2)
line2, = ax.plot(xx(0),zz2(0), lw=2)
line3, = ax.plot(xx(0),zz3(0), lw=2)# 用MoviePy制作动(为每个t更新曲面)。制作一个GIFdef make_frame_mpl(t):line.set_xdata(xx(t))line1.set_xdata(xx(t))line2.set_xdata(xx(t))line3.set_xdata(xx(t))line.set_ydata(zz(t) ) # 更新曲面line1.set_ydata(zz1(t) ) # 更新曲面line2.set_ydata(zz2(t) ) # 更新曲面line3.set_ydata(zz3(t) ) # 更新曲面return mplfig_to_npimage(fig_mpl) # 图形的RGB图像animation =mpy.VideoClip(make_frame_mpl, duration=duration)
animation.write_gif("sin_mpl.gif", fps=20)

python单自由度振动计算-数据可视化2相关推荐

  1. Python使用tsne进行高维数据可视化实战:二维可视化、三维可视化

    Python使用tsne进行高维数据可视化实战:二维可视化.三维可视化 # 绘制二维可视化图像并添加标签字符函数 def plot_embedding(data, label, title):x_mi ...

  2. 单自由度振动全解:matlab理论计算 virtual.lab motion仿真Excite PU仿真

    目录 1.单自由度振动理论推导见:https://blog.csdn.net/lijil168/article/details/88932542 2.利用matlab编程如下(计算发动机飞轮位移激励下 ...

  3. 使用Python Seaborn和Pandas进行数据可视化

    Hey, folks! Today we will be unveiling a very interesting module of Python - Seaborn Module and will ...

  4. 单自由度振动系统 matlab,单自由度系统的振动及matlab分析

    <单自由度系统的振动及matlab分析>由会员分享,可在线阅读,更多相关<单自由度系统的振动及matlab分析(6页珍藏版)>请在金锄头文库上搜索. 1.单自由度系统的振动及 ...

  5. Python爬虫实战,pyecharts模块,Python实现豆瓣电影TOP250数据可视化

    前言 利用Python实现豆瓣电影TOP250数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: pandas模块 pyecharts模块: 以及一些 ...

  6. python与excel做数据可视化-Python的Excel操作及数据可视化

    Excel表操作 python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库. 安装xlrd pip install xlrd 简单的表格读取 ...

  7. python实现的电影票房数据可视化

    代码地址如下: http://www.demodashi.com/demo/14275.html ##详细说明: Tushare是一个免费.开源的python财经数据接口包.主要实现对股票等金融数据从 ...

  8. Python爬虫实战,pyecharts模块,Python实现奥斯卡金像奖数据可视化

    前言 利用Python实现奥斯卡金像奖数据可视化.废话不多说. 让我们愉快地开始吧~ 开发工具 Python版本: 3.6.4 相关模块: requests模块 pandas模块 pyecharts模 ...

  9. chatgpt赋能python:Python制表位:优化数据可视化与分析的利器

    Python 制表位:优化数据可视化与分析的利器 在数据可视化和分析中,表格是一种常用的数据展示方式.Python 提供了丰富的用于构建表格的库,其中之一便是制表位(Tabulate).本文将介绍制表 ...

最新文章

  1. css行高line-height的用法
  2. 1.5 Kali Linux策略
  3. 青龙羊毛——可推(搬运)
  4. Optional 详解 Java
  5. spring aop抽取切点表达式
  6. py2exe for python3_使用Py2Exe for Python3创建自己的exe程序
  7. javaserver_集成Spring和JavaServer Faces:改进的模板
  8. C++结构体中const使用场景
  9. 创业须要恪守“一个常识“
  10. python用什么来写模块-使用C语言编写Python模块-引子【转】
  11. 什么是dispatchEvent?
  12. Mac上的MySQL可视化工具总结
  13. 百战程序员 全栈软件测试课程 2022 笔记
  14. Insyde uefi 隐藏设置_文颐法语:iOS 14安装后发现的9个隐藏的iPhone功能
  15. 计算机丢失MSVCR100.dll文件的解决办法
  16. 成长型思维——人不成熟的五大特征和高效能人士的七个习惯
  17. 美术绘画之场景基础-张聪-专题视频课程
  18. mysql utl_file_利用UTL_FILE包实现文件I/O操作
  19. 自定义注解和AOP的结合
  20. 记录centos上 Probable fatal error: No physical fonts found问题解决过程

热门文章

  1. 转载自《读者》--您也吻我一下好吗
  2. APICACHE : Express/Node的API响应缓存中间件
  3. BGP——路由汇总造成次优选路问题
  4. Linxu:磁盘分区
  5. 【MySQL】rds 不支持镜像表/联合表,怎么办?
  6. sqlmap源码阅读
  7. 容纳10万人服务器多少钱_令人尴尬的故事:为什么我的服务器只能容纳10名玩家...
  8. ubuntu16.04安装virtualbox5.2
  9. matlab的syntax简记
  10. Python解决滑块验证码