08第八讲-MATLAB频域编程
- 格式:ppt
- 大小:2.36 MB
- 文档页数:16
基于MATLAB自动控制系统时域频域分析与仿真MATLAB是一款强大的数学软件,也是自动控制系统设计的常用工具。
它不仅可以进行时域分析和频域分析,还可以进行相关仿真实验。
本文将详细介绍MATLAB如何进行自动控制系统的时域和频域分析,以及如何进行仿真实验。
一、时域分析时域分析是指对系统的输入信号和输出信号进行时域上的观察和分析,以了解系统的动态特性和稳定性。
MATLAB提供了一系列的时域分析工具,如时域响应分析、稳态分析和步骤响应分析等。
1.时域响应分析通过时域响应分析,可以观察系统对于不同的输入信号的响应情况。
在MATLAB中,可以使用`lsim`函数进行系统的时域仿真。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
-定义输入信号。
- 使用`lsim`函数进行时域仿真,并绘制系统输出信号。
例如,假设我们有一个二阶传递函数模型,并且输入信号为一个单位阶跃函数,可以通过以下代码进行时域仿真:```num = [1];den = [1, 1, 1];sys = tf(num, den);t=0:0.1:10;u = ones(size(t));[y, t, x] = lsim(sys, u, t);plot(t, y)```上述代码中,`num`和`den`分别表示系统的分子和分母多项式系数,`sys`表示系统模型,`t`表示时间序列,`u`表示输入信号,`y`表示输出信号。
通过绘制输出信号与时间的关系,可以观察到系统的响应情况。
2.稳态分析稳态分析用于研究系统在稳态下的性能指标,如稳态误差和稳态标准差。
在MATLAB中,可以使用`step`函数进行稳态分析。
具体步骤如下:- 利用`tf`函数或`ss`函数创建系统模型。
- 使用`step`函数进行稳态分析,并绘制系统的阶跃响应曲线。
例如,假设我们有一个一阶传递函数模型,可以通过以下代码进行稳态分析:```num = [1];den = [1, 1];sys = tf(num, den);step(sys)```通过绘制系统的阶跃响应曲线,我们可以观察到系统的稳态特性。
一、基于MATLAB 的线性系统的频域分析基本知识(1)频率特性函数)(ωj G 。
设线性系统传递函数为:nn n n m m m m a s a s a s a b s b s b s b s G ++⋅⋅⋅++++⋅⋅⋅++=---1101110)( 则频率特性函数为:nn n n m m m m a j a j a j a b j b j b j b jw G ++⋅⋅⋅++++⋅⋅⋅++=---)()()()()()()(1101110ωωωωωω 由下面的MATLAB 语句可直接求出G(jw )。
i=sqrt (—1) % 求取—1的平方根GW=polyval (num ,i*w )./polyval(den ,i*w )其中(num ,den )为系统的传递函数模型。
而w 为频率点构成的向量,点右除(./)运算符表示操作元素点对点的运算.从数值运算的角度来看,上述算法在系统的极点附近精度不会很理想,甚至出现无穷大值,运算结果是一系列复数返回到变量GW 中。
(2)用MATLAB 作奈魁斯特图。
控制系统工具箱中提供了一个MATLAB 函数nyquist( ),该函数可以用来直接求解Nyquist 阵列或绘制奈氏图。
当命令中不包含左端返回变量时,nyquist ()函数仅在屏幕上产生奈氏图,命令调用格式为:nyquist(num ,den) nyquist (num,den ,w) 或者nyquist(G) nyquist(G,w ) 该命令将画出下列开环系统传递函数的奈氏曲线: )()()(s den s num s G = 如果用户给出频率向量w ,则w 包含了要分析的以弧度/秒表示的诸频率点。
在这些频率点上,将对系统的频率响应进行计算,若没有指定的w 向量,则该函数自动选择频率向量进行计算。
w 包含了用户要分析的以弧度/秒表示的诸频率点,MATLAB 会自动计算这些点的频率响应。
当命令中包含了左端的返回变量时,即:[re,im ,w]=nyquist (G )或[re ,im,w ]=nyquist (G ,w ) 函数运行后不在屏幕上产生图形,而是将计算结果返回到矩阵re 、im 和w 中。
第一章绪论1.1 概述机械信号是指机械系统在运行过程中各种随时间变化的动态信息,经各种测试仪器拾取并记录和存储下来的数据或图像。
机械设备是工业生产的基础,而机械信号处理与分析技术则是工业发展的一个重要基础技术。
随着各行各业的快速发展和各种各样的应用需求,信号分析和处理技术在信号处理速度、分辨能力、功能范围以及特殊处理等方面将会不断进步,新的处理激素将会不断涌现。
当前信号处理的发展主要表现在:1.新技术、新方法的出现;2.实时能力的进一步提高;3.高分辨率频谱分析方法的研究三方面。
信号处理的发展与应用是相辅相成的,工业方面应用的需求是信号处理发展的动力,而信号处理的发展反过来又拓展了它的应用领域。
机械信号的分析与处理方法从早期模拟系统向着数字化方向发展。
在几乎所有的机械工程领域中,它一直是一个重要的研究课题。
机械信号分析与处理技术正在不断发展,它已有可能帮助从事故障诊断和监测的专业技术人员从机器运行记录中提取和归纳机器运行的基本规律,并且充分利用当前的运行状态和对未来条件的了解与研究,综合分析和处理各种干扰因素可能造成的影响,预测机器在未来运行期间的状态和动态特性,为发展预知维修制度、延长大修期及科学地制定设备的更新和维护计划提供依据,从而更为有效地保证机器的稳定可靠运行,提高大型关键设备的利用率和效率。
机械信号处理是通过对测量信号进行某种加工变换,削弱机械信号中的无用的冗余信号,滤除混杂的噪声干扰,或者将信号变成便于识别的形式以便提取它的特征值等。
机械信号处理的基本流程图如图1.1所示。
图1.1机械信号处理的基本流程本文主要就第三、第四步骤展开讨论。
第2章机械信号的时域处理及其分析方法2.1 时域统计特征参数处理通过时域波形可以得到的一些特征参数,它们常用于对机械进行快速评价和简易诊断。
2.1.1有量纲的幅值参数有量纲的幅值参数包括方根幅值、平均幅值、均方幅值和峰值等。
若随机过程x(t) 符合平稳、各态历经条件且均值为零,设x为幅值,p(x)为概率密度函数,有量纲型幅值参数可定义为.1厂X r,l =2X,丨=1X rms,丨=2jXp,l T 旳式中:xr为方根均值,x为均值,Xrms为均方值,Xp为峰值由于有量纲型幅值参数来描述机械状态,不但与及其的状态有关,而且与机器的运动参数(如转速、载荷等)有关,因此直接用它们评价不同工况的机械无法得出统一的结论。
matlab编程实现求解基于振型叠加法的多自由度动力学系统的时域和频域响应动力学系统的时域和频域响应可以通过振型叠加法进行计算。
在MATLAB 中,可以通过编写程序来实现该方法的求解。
假设考虑的动力学系统是一个n自由度的系统,其动力学模型可以表示为:M*x'' + C*x' + K*x = F(t)其中,M是质量矩阵,C是阻尼矩阵,K是刚度矩阵,x是位移向量,F(t)是外力向量。
为了使用振型叠加法求解该系统的响应,需要先求解系统的固有振型和固有频率。
可以通过使用MATLAB中的eig函数来计算该系统的特征值和特征向量。
[V, D] = eig(K, M);其中,V是特征向量矩阵,D是特征值矩阵。
通过特征值和特征向量可以得到系统的固有频率和振型:omega_n = sqrt(diag(D)); % 固有频率Phi = V; % 固有振型接下来,可以根据零初条件来计算系统的响应。
可以通过定义初始位移和速度向量,以及外力向量,来求解系统的时域响应。
可以使用MATLAB中的ode45函数来求解非线性微分方程组。
% 定义初始状态向量x0 = [0; 0; ...; 0; 0]; % 位移和速度% 定义外力函数F = @(t) [f1(t); f2(t); ...; fn(t)];% 定义动力学方程odefun = @(t, x) [ x(n+1:2*n); ...; - inv(M)*(C*x(n+1:2*n) + K*x(1:n))+inv(M)*F(t) ];% 运行ode45函数[t, x] = ode45(odefun, [0, T], x0);另外,还可以通过FFT函数来求解该系统的频域响应。
可以通过计算系统的传递函数,并对输入信号进行快速傅里叶变换来得到系统的频域响应。
% 计算系统的传递函数H = inv(j*omega_n.*eye(n) - K + j*C*omega_n).*F;% 对输入信号进行FFT变换N = length(F);F_fft = fft(F);freq = linspace(0, 1/T, N);% 计算系统的频域响应X_fft = H .* F_fft;以上就是使用MATLAB实现基于振型叠加法求解多自由度动力学系统的时域和频域响应的方法。