机械振动系统的matlab仿真分析-郭

[t,y]=solver('F',tspan,y0)

function ydot=F(t,y)

ydot=[function1;function2;function3;....]

functionn是以列向量形式组成为系统的状态方程(一阶微分方程组)

tspan运算的起止时间[t0,t1]

y0为初始状态值,用列向量来表示,维数为状态向量数

时域响应函数:

initial(零输入响应)

impulse(单位冲击响应)

step(单位阶跃响应)

lsim(任意输入响应)

频域响应函数:

bode(系统频率响应-伯德图曲线)

nyquist(系统奈奎斯特曲线)

单自由度振动系统和多自由度振动系统:---自由度:状态变量的个数

 m_1x''_1=f_1-c_1(x'_1-x'_2)-k_1(x_1-x_2)m_2x''_2=c_1(x'_1-x'_2)+k_1(x_1-x_2)+f_2-c_2x'_2-k_2x_2

X_1=x_1;X_2=x'_1;X_3=x_2;X_4=x'_2

X'_1=X_2

X'_2=-\frac{k_1}{m_1}X_1-\frac{c_1}{m_1}X_2+\frac{k_1}{m_1}X_3+\frac{c_1}{m_1}X_4+\frac{1}{m_1}f_1

X'_3=X_4

X'_4=\frac{k_1}{m_2}X_1+\frac{c_1}{m_2}X_2-\frac{k_1+k_2}{m_2}X_3-\frac{c_1+c_2}{m_2}X_4+\frac{1}{m_2}f_2

\bigl(\begin{smallmatrix} X'_1\\ X'_2\\ X'_3\\ X'_4 \end{smallmatrix}\bigr)=\begin{pmatrix} 0 & 1& 0 & 0\\ -\frac{k_1}{m_1}&-\frac{c_1}{m_1} &\frac{k_1}{m_1} &\frac{c_1}{m_1} \\ 0 & 0 & 0 & 1\\ \frac{k_1}{m_2}&\frac{c_1}{m_2} &-\frac{k_1+k_2}{m_2} &-\frac{c_1+c_2} {m_2} \end{pmatrix}\begin{pmatrix} X_1\\ X_2\\ X_3\\ X_4 \end{pmatrix}+\begin{pmatrix} 0 &0 \\ \frac{1}{m_1}& 0\\ 0&0 \\ 0&\frac{1}{m_2} \end{pmatrix}\begin{pmatrix} f_1\\ f_2 \end{pmatrix}

另外一种整理方法

\bigl(\begin{smallmatrix} m_1&0\\ 0 & m_2\\ \end{smallmatrix}\bigr)(\begin{smallmatrix} X''_1\\ X''_2 \end{smallmatrix}\bigr)+\bigl(\begin{smallmatrix}c_1&-c_1\\ -c_1 &c_1+c_2\\ \end{smallmatrix}\bigr)(\begin{smallmatrix} X'_1\\ X'_2 \end{smallmatrix}\bigr)+\bigl(\begin{smallmatrix} k_1&-k_1\\ -k_1 & k_1+k_2\\ \end{smallmatrix}\bigr)(\begin{smallmatrix} X_1\\ X_2 \end{smallmatrix}\bigr)=(\begin{smallmatrix} f_1\\ f_2 \end{smallmatrix}\bigr)

Y=\bigl(\begin{smallmatrix} x'\\ x \end{smallmatrix}\bigr)=\bigl(\begin{smallmatrix} x'_1\\ x'_2\\ x_1\\ x_2 \end{smallmatrix}\bigr)=\bigl(\begin{smallmatrix} \frac{c_1}{m_1} & -\frac{c_1}{m_1}&\frac{k_1}{m_1} &-\frac{k_1}{m_1} \\ -\frac{c_1}{m_2} &\frac{c_1+c_2}{m_2} &-\frac{k_1}{m_2} &\frac{k_1+k_2}{m_2} \\ 1 &0 &0 &0 \\ 0 & 1 & 0& 0 \end{smallmatrix}\bigr)\bigl(\begin{smallmatrix} x'_1\\ x'_2\\ x_1\\ x_2 \end{smallmatrix}\bigr)+\bigl(\begin{smallmatrix} \frac{1}{m_1}& 0\\ 0 &\frac{1}{m_2} \\ 0 &0 \\ 0& 0 \end{smallmatrix}\bigr)\bigl(\begin{smallmatrix} f_1\\ f_2 \end{smallmatrix}\bigr)

取弹簧和阻尼器对左侧壁和质量m1的水平作用力z1、z2和质量m1、m2的位移z3、z4为所要研究的输出

c=\bigl(\begin{smallmatrix} 0 &c_2 & 0 &k_2 \\ -c_1& c_1 &-k_1 &k_1 \\ 0& 0& 1&0\\ 0& 0 &0 & 1 \end{smallmatrix}\bigr)

D=0

m1=1.5
c1=0.5
k1=0.3
m2=2
c2=0.3
k2=0.6
t1=0:0.1:10
f1=0*t1
f2=0.1*sin(5*t1)
u=[f1;f2]


A=[-c1/m1 c1/m1 -k1/m1 k1/m1;c1/m1 -(c1+c2)/m2 k1/m2 -(k1+k2)/m2;...
    1 0 0 0;0 1 0 0]
B=[1/m1 0;0 1/m2;0 0;0 0]
C=[0 c2 0 k2;-c1 c1 -k1 k1;0 0 1 0;0 0 0 1]
D=0
G=ss(A,B,C,D)
x=[0 0 0 0]

[y,t1,x]=lsim(G,u,t1,x)
plot(t,x(:,1),'g',t,x(:,2),'r',t,x(:,3),'--',t,x(:,4),'-*')
legend('x(1)','x(2)','x(3)','x(4)')

 其中遇到的问题:

错误使用 DynamicSystem/lsim (第 84 行)
Invalid syntax for time or frequency response command. See command help for more information.

出错 main (第 21 行)
[y,t1,x]=lsim(G,f1,f2,t1,x)

解决:

lsim(SYS,U,T)绘制动态系统SYS对输入信号用U和T表示,时间向量T表示为的时间单位,由规则间隔的时间样本组成。矩阵U的列数与SYS中的输入数一样多并且它的第i行指定

T(i)时刻的输入值

f1=0*t1
f2=0.1*sin(5*t1)
u=[f1;f2]

 

上图中,图线x1、x2、x3、x4为质量块m1、m2的状态变量-位移(也即输出变量z3、z4)。

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
机械振动Matlab仿真中,通常需要进行数据预处理和特征提取。预处理包括滤波等操作,而特征提取则是为了得到振动信号的有用信息。 首先,我们可以使用低通滤波对振动信号进行预处理。以fir1函数为例,可以设计一个低通滤波器。假设采样频率为fs,截止频率为fc,代码如下: ``` fs = 1000; fc = 50; Wn = fc/(fs/2); b = fir1(100,Wn,'low'); pre_data = filter(b,1,data); ``` 接下来,我们可以进行特征提取。常用的特征包括均值、方差、峰值、束缚能和时域波形等。下面是以时域波形和均值为例的特征提取代码: ```matlab subplot(121); plot(data); xlabel('时间(ms)'); ylabel('幅值'); title('时域波形'); subplot(122); mean_val = mean(data); plot(mean_val,'r'); xlabel('采样点数'); ylabel('幅值'); title('均值'); ``` 最后,我们可以展示提取出的特征,以便进行故障判别。一种方法是将时域波形和均值的图像绘制在同一个图像上,下面是相应的代码: ```matlab subplot(211); plot(data); hold on; mean_val = mean(data); plot(mean_val,'r'); hold off; xlabel('时间(ms)'); ylabel('幅值'); title('时域波形及均值'); subplot(212); bar([0,1,2,3],features); set(gca,'XTickLabel',{'','','',''}); xlabel('特征名称'); ylabel('幅值'); title('特征展示'); ``` 这样,我们就可以通过Matlab仿真来进行机械振动信号的预处理和特征提取了。请注意,以上代码仅为示例,实际应用中可能需要根据具体情况进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [信号预处理 - 基于Matlab振动信号预处理仿真](https://blog.csdn.net/ai52learn/article/details/130629489)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一夕ξ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值