我是靠谱客的博主 秀丽外套,最近开发中收集的这篇文章主要介绍matlab延时函数怎么写_Nyquist判据基本原理及在延时系统中的应用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

dc846e3b-e72d-eb11-8da9-e4434bdf6706.png

写在最前:文末有MATLAB代码。创作不易,未经允许,禁止转载。

Nyquist判据是工程领域的一大利器,突破了劳斯判据和赫尔维兹判据等代数判据不能处理带有延时环节系统的瓶颈,在我研究的延时系统中,就需要用到该判据来判断系统的稳定性。与代数判据不同的是,Nyquist判据是一种几何判据

在研究Nyquist判据在延时系统中的应用前,先需要理解Nyquist判据判定系统稳定性的基本原理

学过控制工程的都应该知道,在

域中,线性系统传递函数的一般通式可以写为
[1]

其中,

分别为系统传递函数的零点(Zeros)和极点(Poles),它们既可以是实数也可以是复数。另外,一般来说,式
中分母的阶次高于分子的阶次,即

想理解Nyquist判据,最重要的是要明白“映射定理”,该定理是从单个零点的系统开始到多个零点的系统,再到单个极点的系统,以及多个极点的系统,最终推导到一般化的系统模型。下面介绍“映射定理”。

1. 单个零点系统

是系统的零点,如果其为复数,那么显然其可以表达为复平面,也就是所谓
平面中的一点。现在我们要做的一件事是,
绕着这个零点 顺时针画一个 封闭曲线
。其中,“绕着”意味着,不穿过该点,即
点不在该封闭曲线上。

那么

就将这个复平面上的所有点都映射到了所谓
平面上,如下图:

dd846e3b-e72d-eb11-8da9-e4434bdf6706.png
单个零点的映射

注意一点:自变量是

,即自变量
取一系列值,这些值按顺序连起来构成了顺时针的封闭曲线

所以在复平面内的那条封闭曲线

通过
映射的效果其实就是复平面上的所有点都沿着
平移,最后封闭曲线
经过平移得到了封闭曲线
。例如,原来复平面上的
点沿着
平移到了坐标原点上。

那么在映射后的

平面上,原本绕
顺时针一圈的封闭曲线
对应的就是绕着原点
顺时针一圈的封闭曲线
,也可以说封闭曲线
从起点到终点
相对原点相位增量
(因为一般规定逆时针旋转,相位增大)。

同样可以推知,如果在复平面中,

点不在该封闭曲线
的包围圈内,那么对应的
平面中,封闭曲线
也不围绕原点,也可以说封闭曲线
从起点到终点
相对原点相位增量

2. 多个零点系统

其实,和单个零点类似,只是将零点数目增多了而已。现在系统包含

个零点,然后顺时针画了一个封闭曲线
,但封闭曲线
仅包围了其中的
个零点(
),那么经过映射后,在
平面中,封闭曲线
将会
顺时针绕原点
。也可以说封闭曲线
从起点到终点
相对原点相位增量

3. 单个极点系统

类比单个零点的情况,

的相位互为相反数,这意味着,在映射后的
平面上,原本绕
顺时针一圈的封闭曲线
对应的就是绕着原点
逆时针一圈的封闭曲线
,也可以说封闭曲线
从起点到终点
相对原点相位增量

4. 多个极点系统

和单个极点类似,只是将极点数目增多了而已。现在系统包含

个极点,然后顺时针画了一个封闭曲线
,但封闭曲线
仅包围了其中的
个极点(
),那么经过映射后,在
平面中,封闭曲线
将会
逆时针绕原点
。也可以说封闭曲线
从起点到终点
相对原点相位增量

综合 2 和 4 ,就可以知道:

复平面(或称
平面)上,封闭曲线
如果顺时针包围了系统传递函数的
个零点和
个极点,那么在
平面中,封闭曲线
将逆时针绕着原点
圈,这就是所谓“映射定理”。

负反馈系统

常见的负反馈系统可以用下图表示:

de846e3b-e72d-eb11-8da9-e4434bdf6706.png
负反馈系统

其闭环传递函数为:

其中

为前项通道传递函数;
为反馈通道传递函数;
为开环传递函数。

,
. 其中
均为
的多项式。

系统的开环传递函数为:

系统的闭环传递函数为:

我们最终需要知道是闭环系统的稳定性。

闭环系统稳定的充要条件是闭环系统传递函数在复平面(或
平面)的右半平面上没有极点。

该定理的验证可以通过拉式反变换来证明。如果系统传递函数包含复平面右半平面的极点,那么拉式反变换后,时域信号中将包含以时间为自变量的正指数项,这些项随时间指数最大,系统显然不稳定。要使系统稳定,则要求极点都在负半平面,那么拉式反变换后,时域信号中将包含以时间为自变量的负指数项,这些项随时间指数衰减,系统最终趋于稳定。

e0846e3b-e72d-eb11-8da9-e4434bdf6706.png
稳定系统(左)与不稳定系统(右)的时域响应

由式

知,
闭环系统稳定的充要条件是
没有
右半平面的零点

现在定义:

注意,分子和分母分别为闭环开环传递函数的特征多项式(其实分别是闭环和开环传递函数的分母)。

那么,在

平面上,如果有一条顺时针闭合曲线
包围了整个
右半平面(如下图),那么经过
的映射后,可以根据
平面上的闭合曲线
包围原点的方向和圈数来判断系统稳定性。

e1846e3b-e72d-eb11-8da9-e4434bdf6706.png
包围复右半平面的封闭曲线
假设闭环系统稳定,则曲线
包围
的零点的个数为零。如果
系统开环没有右极点,则曲线
不围绕原点;如果
系统开环有右极点,则曲线
应该逆时针围绕原点,且围绕的圈数等于开环系统右极点的个数。

由于

是开环传递函数
,所以
包围原点的圈数也就是曲线
经过开环传递函数
映射后包围
点的圈数。

在通过开环传递函数

映射的时候,其实只需要取
变化即可,这点很重要,因为原曲线
在图示半圆部分趋于无穷大,如果开环传递函数分母的阶数高于分子的阶数,则半圆处无穷远的点将映射到坐标原点。

例子

1、如果一个闭环系统,其对应的开环传递函数为:

,判断闭环稳定性。

其Nyquist图如下:

e2846e3b-e72d-eb11-8da9-e4434bdf6706.png

由于开环传递函数无右极点,且Nyquist图没有包围

点,所以对应的闭环系统稳定。

2、如果一个闭环系统,其对应的开环传递函数为:

,判断闭环稳定性。

其Nyquist图如下:

e3846e3b-e72d-eb11-8da9-e4434bdf6706.png

由于开环传递函数有一个右极点,且Nyquist图顺时针包围

点一圈,根据稳定条件,应当需要逆时针包围
点一圈,所以对应的闭环系统不稳定。

Matlab 代码

clc
clear
close all
s1 = zpk([],[-1 -2 -3],15);
figure(1)
nyquist(s1);
set(gcf,'unit','centimeters','position',[0 10 13.53 9.03],'color','white');
set(gca,'FontSize', 11 ,'FontName', 'Times New Roman')
s2 = zpk([],[1 -2 -3],15);
figure(2)
nyquist(s2);
set(gcf,'unit','centimeters','position',[0 10 13.53 9.03],'color','white');
set(gca,'FontSize', 11 ,'FontName', 'Times New Roman')

延时系统

延时系统与通常见到的简单线性不同的是,反馈中包含前一时刻

的响应。这里给出一种最简单的延时系统模型
[2]

e4846e3b-e72d-eb11-8da9-e4434bdf6706.png

其闭环传递函数为:

特征方程即令闭环传递函数的分母为

其对应的开环传递函数为:

如果其中

为单自由度机械系统的传递函数,即一个无右半平面极点的二阶系统。又因为复指数函数可以展开为无穷幂级数的形式:

所以上式

的分子可以视为多项式,那么整体的Nyquist图其实是关于实轴对称的,且分母中无右半平面极点,所以判断对应闭环系统稳定的充要条件是:
时,开环传递函数的Nyquist图不包围
点。

对于不同刚度的系统,同样的反馈条件,可能出现稳定性不一样的情况。如图:

e5846e3b-e72d-eb11-8da9-e4434bdf6706.png
高刚性系统稳定(左边),低刚度系统不稳定(右边)

闭环系统稳定性的判断方法就是看开环传递函数的Nyquist图是否包围了

点。


MATLAB 代码

clc; clear; close all;
wn	= 2*pi*10; % Natural Frequency
T
= (10*2*pi + pi/3)/wn;
% Time delay
K1
= 50;
% High Stiffness
K2
= 20;
% Low Stiffness
zeta = 0.5e-2; % Damping ratio
w = linspace(0.3*wn, 2*wn, 1e4); % Analysis frequency bandwidth
G1 =1./( K1 * ( -w.^2/wn^2 + 2 * zeta * 1j * w/wn + 1 ) );
G2 =1./( K2 * ( -w.^2/wn^2 + 2 * zeta * 1j * w/wn + 1 ) );
Nyq1 =
(1 - exp(-1j * w * T)).*G1;
Nyq2 =
(1 - exp(-1j * w * T)).*G2;
figure(1); clf;
plot( real(Nyq1),
imag(Nyq1) , 'b','linewidth',2);
title('Stable');
xlabel('Real'); ylabel('Imaginary');
hold on;axis equal;
plot(-1,0,'k+','MarkerSize',32);
axis([-2 5 -5 2])
set(gca,'FontSize', 14 ,'FontName', 'Times New Roman')
set(gcf,'unit','centimeters','color','white');
grid on
figure(2); clf;
plot( real(Nyq2),
imag(Nyq2) , 'r','linewidth',2);
hold on;axis equal;
title('Unstable');
xlabel('Real'); ylabel('Imaginary');
plot(-1,0,'k+','MarkerSize',32);
axis([-2 5 -5 2])
set(gca,'FontSize', 14 ,'FontName', 'Times New Roman')
set(gcf,'unit','centimeters','color','white');
grid on

参考

  1. ^董景新, 赵长德, 郭美凤等. 控制工程基础(第3版)[M], 清华大学出版社, 2009.
  2. ^Y. Altintas, Manufacturing Automation: Metal Cutting Mechanics, Machine Tool Vibrations, and CNC Design, 2012.

最后

以上就是秀丽外套为你收集整理的matlab延时函数怎么写_Nyquist判据基本原理及在延时系统中的应用的全部内容,希望文章能够帮你解决matlab延时函数怎么写_Nyquist判据基本原理及在延时系统中的应用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部