多自由度有阻尼matlab,有阻尼多自由度系统固有频率、阻尼的求取
有阻尼多自由度系统固有频率、阻尼的求取
对如下弹簧阻尼系统做的仿真,可以看到这是一个二阶系统,有阻尼存在,且阻尼是比例阻尼,可以用传统模态矩阵的方法求解,不过如果要让matlab画出多自由度系统的响应,需要使用状态方程辅助矩阵,具体详见代码。
代码如下
%多自由度系统仿真
clc
clear
closeall
%%物理参数
m = 200;
k = 980*1000;
c = 1.5*1000;
m1 = 1;
m2 = 1;
k1 = 1;
k2 = 1;
k3 = 0;
c1 = 1;
c2 = 1;
c3 = 0;
u1 = 1;%激励
u2 = 1;
%物理方程的矩阵
M = [m1 0;
0 m2;]*m;
C = [c1+c2 -c2;
-c2 c2;]*c;
K = [k1+k2 -k2;
-k2 k2;]*k;
Z = zeros(size(M));
I = eye(size(M));
F = [u1; u2];
%%状态方程辅助矩阵做仿真用
A = [C M;
M Z];
B = [K Z;
Z -M;];
G = [F;zeros(size(F))];
D = [Z I;
-inv(M)*K -inv(M)*C;];
%标准状态方程矩阵
Asys = D;
Bsys = inv(A);
Csys = [I Z];
Dsys = [Z Z];
sys = ss(Asys, Bsys, Csys, Dsys);
%脉冲响应
ts = 0.001;
fs = 1/ts;
t = 0:ts:3;
y = impulse(sys, t);
y1u1 = y(:,1,1);
y1u2 = y(:,1,2);
y2u1 = y(:,2,1);
y2u2 = y(:,2,2);
figure
subplot(221)
plot(t, y1u1)
title('y1-u1'), gridon
subplot(222)
plot(t, y1u2)
title('y1-u2'), gridon
subplot(223)
plot(t, y2u1)
title('y2-u1'), gridon
subplot(224)
plot(t, y2u2)
title('y2-u2'), gridon
%%解多自由度问题
[omega, phi, phin] = MDOFSolve(M, K);
Mr = simplify(phin'*M*phin);
Cr = simplify(phin'*C*phin);
Kr = simplify(phin'*K*phin);
fprintf('转化为正则空间的结果:\n');
fprintf('Mr=\n');
eval_r(Mr)
fprintf('Cr=\n');
eval_r(Cr)
fprintf('Kr=\n');
eval_r(Kr)
omegan = diag(Kr).^0.5;
zeta = diag(Cr)/2./omegan;
fprintf('固有频率(Hz)\n');
subs(omegan/2/pi)
fprintf('阻尼比\n');
subs(zeta)
得到的结果如下
转化为正则空间的结果:
Mr=
ans =
1 -8.01360251500077e-017
-8.01360251500077e-017 1
Cr=
ans =
2.86474508437579 1.65595689001804e-016
1.65595689001804e-016 19.6352549156242
Kr=
ans =
1871.63345512552 1.08189183481179e-013
1.08189183481179e-013 12828.3665448745
固有频率(Hz)
ans =
6.88542150158426
18.0262675180169
阻尼比
ans =
0.0331089636830301
0.0866803922544587
上面代码中的MDOFSolve函数如下
%多自由度模态矩阵的求取
function[omega, phi, phin] = MDOFSolve(M, K)
%求特征频率
symsw
eq = det(K - w*M);
omega2 = solve(eq, w);% omega平方
[~,IX] = sort(subs(omega2));
omega2 = omega2(IX);%排序
omega2 = real(eval_r(omega2));
% fprintf('特征频率的平方omega2:\n');
% pretty(omega2);
%求模态矩阵
omega2u = unique(omega2);
[~,IX] = sort(subs(omega2u));
omega2u = omega2u(IX);
u = sym(zeros(size(M,1)));
ind = 1;
forr = 1:length(omega2u)
ur = null(K-omega2u(r)*M);%重特征值的情况,M为单位阵的话,直接满足要求;否则要另处理
u(:, ind:ind+size(ur, 2)-1) = ur;
ind = ind + size(ur, 2);
end
% fprintf('模态矩阵u:\n');
% pretty(u)
% fprintf('u''*M*u:\n');
% pretty(simplify(u'*M*u))
% fprintf('u''*K*u:\n');
% pretty(simplify(u'*K*u))
%求正则模态矩阵
unorm = sym(zeros(size(M,1)));
forr = 1:size(u, 1)
ur = u(:, r);
Mr = ur'*M*ur;
ur = ur/Mr^0.5;
unorm(:, r) = ur;
end
% fprintf('正则模态矩阵unorm:\n');
% pretty(unorm)
% fprintf('unorm''*M*unorm:\n');
% pretty(simplify(unorm'*M*unorm))
% fprintf('unorm''*K*unorm:\n');
% pretty(simplify(unorm'*K*unorm))
% out
% omega = simplify(sqrt(omega2));
omega = sqrt(omega2);
phi = simplify(u);
phin = simplify(unorm);
end
多自由度有阻尼matlab,有阻尼多自由度系统固有频率、阻尼的求取相关推荐
- matlab弹簧阻尼系统论文,MATLAB系统仿真报告有阻尼受迫振动系统.doc
MATLAB系统仿真报告有阻尼受迫振动系统 问题描述 有阻尼受迫振动的结构及基本原理 图一 有阻尼的受迫振动系统 图1为有阻尼的受迫振动系统,质量为M,摩擦系数为B, 弹簧倔强系数为K.拉力.摩擦力和 ...
- 受迫阻尼 matlab 仿真,MATLAB系统仿真报告——有阻尼受迫振动系统
一. 问题描述 有阻尼受迫振动的结构及基本原理 图一 有阻尼的受迫振动系统 图1为有阻尼的受迫振动系统,质量为M,摩擦系数为B, 弹簧倔强系数为K.拉力.摩擦力和弹簧力三都影响质量为M的物体的加速度. ...
- matlab二阶阻尼震荡衰减,MATLAB系统仿真报告——有阻尼受迫振动系统
一. 问题描述 有阻尼受迫振动的结构及基本原理 图一 有阻尼的受迫振动系统 图1为有阻尼的受迫振动系统,质量为M ,摩擦系数为B , 弹簧倔强系数为K .拉力.摩擦力和弹簧力三都影响质量为M 的物体的 ...
- matlab计算结构自振频率,基于Matlab的多自由度系统固有频率及振型计算
基于Matlab的多自由度系统固有频率及振型计算 阅读:25212010-04-13 21:38 标签:杂谈 可参考文涛,基于Matlab语言的多自由度振动系统的固有频率及主振型计算分析,2007 对 ...
- 2021-03-16 汽车二自由度操纵稳定性 Matlab simulink
汽车二自由度操纵稳定性 Matlab simulink
- 主振型 matlab 振动,基于MATLAB语言的多自由度振动系统的固有频率及主振型计算分析...
基于 MATLAB 语言的多自由度振动系统的固有频率及主振型计算分析 文 涛 ,胡青春 (华南理工大学 机械工程学院 ,广东 广州 510640) 摘要 :多自由度振动系统固有频率及主振型计算分析是研 ...
- 基于matlab的mk2三自由度机械臂轨迹规划及控制器仿真设计
基于matlab的mk2三自由度机械臂轨迹规划及控制器仿真设计(报告+ppt) 摘 要:本文的研究对象为EEZYbotARM MK2三自由度机械臂,分析了其机械结构,建立D-H参数表,同时在MATLA ...
- 四自由度机械臂matlab建模与仿真
四自由度机械臂matlab建模与仿真 建模过程使用机器人工具箱Robotics Toolbox 机械臂有四个旋转自由度,模型近似如下,使用ADAMS建模 首先建立DH参数 matlab代码如下 cle ...
- matlab 固有频率 振型,基于MATLAB语言多自由度振动系统固有频率及主振型计算分析.pdf...
7 8 2007 1 36 1 MA T LA B 文 涛, 胡青春 ( , 510 640) : 多自由度振动系统固有频率及主振型计算分析是研究其振动特性的 础, 矩阵迭代法是计 算固有频率及主振型 ...
- matlab演示系统,基于Matlab的通信原理演示系统的设计与应用
基于 Matlab的通信原理演示系统的设计与应用 李 强 , 明 艳 , 吴坤君 (重庆邮电大学 通信学院 , 重庆 400065) 摘 要 : 利用 Matlab图形用户界面的开发环境和强大的通信仿 ...
最新文章
- 9.切换 iframe
- mysql 非自然月统计_技本功|统计信息对SQL执行效率的影响
- feign调用session丢失解决方案
- 工程搭建:搭建子工程之搭建环境构造返回实体类
- [BZOJ3545][ONTAK2010]Peaks
- Java 线程池框架核心代码分析
- UI设计中颜色的前进色与后退色
- Shell 07 项目案例
- 【LeetCode】剑指 Offer 15. 二进制中1的个数
- 复习笔记08 常用API
- 病毒 Worm.Logo.g
- Java实现短信验证码(阿里云)附短信SDK demo下载
- VBOT - PHP 个人微信号群管理机器人
- dsp6657的串口学习
- python 战舰_Python战舰:获取用户输入的他们想要多少艘战舰
- ping命令英文全称
- 线性和非线性方程数值解法_数值分析计算方法
- 魔力鸭linux驱动下载,驱动软件 RGB背光键盘最佳伴侣_魔力鸭 2108 S2 RGB全彩自定义机械键盘_键鼠评测-中关村在线...
- gtp java 文件传输_5_1_图片上传
- 数字电子钟 1Hz 秒脉冲信号的设计
热门文章
- 核心单词Word List 6
- 51单片机-波特率的计算定时器初始值的计算
- 关于南京市大学生办理住房补贴的流程示意图
- 【游戏开发实战】(完结)使用Unity制作水果消消乐游戏教程(九):使用UGUI显示游戏UI
- Linux服务器4 --- select模型服务端代码及select模型的利弊
- win10修复计算机选项,为你win10系统设置启动时按F10出现修复计算机选项的技巧...
- Kubernetes K8S之affinity亲和性与反亲和性详解与示例
- 计算机歌曲压缩比公式,音频动态压缩第三层(MPEGAudioLayer-3)
- matlab中ode45如何设置,如何使用Matlab中的ode45修正赋值错误(ode45函数的第488行)
- 全国计算机二级flash,教你如何在Flash当中制作插按钮动画