自动控制——用描述函数法分析非线性系统的稳定性与自激振荡

news2024/11/15 12:05:47

用描述函数法分析非线性系统的稳定性与自激振荡

引言

在控制系统中,非线性系统的稳定性和自激振荡(self-oscillation)问题往往较线性系统更为复杂。为了分析这些问题,描述函数法(Describing Function Method)被广泛应用。描述函数法是一种近似分析工具,适用于弱非线性系统,能够预测系统在非线性元件的影响下是否会产生自激振荡。本文将介绍描述函数法的基本理论,并分析几种常见的非线性特性,如饱和特性、死区特性、间隙特性和继电器特性。

描述函数法的基本理论

描述函数法是一种基于频域分析的近似方法,用于分析具有非线性元件的反馈控制系统。描述函数 N ( A ) N(A) N(A) 是输入为正弦信号 r ( t ) = A sin ⁡ ( ω t ) r(t) = A\sin(\omega t) r(t)=Asin(ωt) 时,非线性元件输出信号的基频分量与输入信号幅值 A A A 的关系。

给定一个非线性元件,其输入输出关系为 y ( t ) = f ( r ( t ) ) y(t) = f(r(t)) y(t)=f(r(t)),则描述函数定义为:

N ( A ) = Y 1 ( A ) A N(A) = \frac{Y_1(A)}{A} N(A)=AY1(A)

其中, Y 1 ( A ) Y_1(A) Y1(A) 为输出信号中基频分量的复数幅值。

在描述函数法中,非线性系统的分析可以通过以下步骤进行:

  1. 将非线性系统分为线性部分 G ( s ) G(s) G(s) 和非线性部分 N ( A ) N(A) N(A)
  2. 对于给定的输入正弦信号 r ( t ) = A sin ⁡ ( ω t ) r(t) = A\sin(\omega t) r(t)=Asin(ωt),计算非线性元件的描述函数 N ( A ) N(A) N(A)
  3. 使用奈奎斯特稳定判据来分析闭环系统的稳定性和自激振荡。

常见非线性特性及其描述函数

1. 饱和特性

饱和特性常见于放大器或其他设备中,表示输出信号在一定范围内线性变化,但超过阈值时输出信号被限制在饱和值。

设饱和特性函数为:

y ( t ) = { k A sin ⁡ ( ω t ) ∣ A sin ⁡ ( ω t ) ∣ ≤ L L ⋅ sign ( A sin ⁡ ( ω t ) ) ∣ A sin ⁡ ( ω t ) ∣ > L y(t) = \begin{cases} kA\sin(\omega t) & |A\sin(\omega t)| \leq L \\ L \cdot \text{sign}(A\sin(\omega t)) & |A\sin(\omega t)| > L \end{cases} y(t)={kAsin(ωt)Lsign(Asin(ωt))Asin(ωt)LAsin(ωt)>L

描述函数为:

N ( A ) = 2 L π A 1 − ( L A ) 2 + 2 L π A sin ⁡ − 1 ( L A ) N(A) = \frac{2L}{\pi A} \sqrt{1 - \left(\frac{L}{A}\right)^2} + \frac{2L}{\pi A} \sin^{-1}\left(\frac{L}{A}\right) N(A)=πA2L1(AL)2 +πA2Lsin1(AL)

2. 死区特性

死区特性表示当输入信号的绝对值小于某一阈值时,输出为零;当输入超过该阈值时,输出才开始变化。

死区函数可以表示为:

y ( t ) = { 0 ∣ A sin ⁡ ( ω t ) ∣ ≤ D k ( A sin ⁡ ( ω t ) − D ⋅ sign ( A sin ⁡ ( ω t ) ) ) ∣ A sin ⁡ ( ω t ) ∣ > D y(t) = \begin{cases} 0 & |A\sin(\omega t)| \leq D \\ k(A\sin(\omega t) - D \cdot \text{sign}(A\sin(\omega t))) & |A\sin(\omega t)| > D \end{cases} y(t)={0k(Asin(ωt)Dsign(Asin(ωt)))Asin(ωt)DAsin(ωt)>D

描述函数为:

N ( A ) = k ( 1 − D A ) N(A) = k \left( 1 - \frac{D}{A} \right) N(A)=k(1AD)

3. 间隙特性

间隙特性表示当输入信号的绝对值在某一范围内时,输出信号为零;超出该范围时,输出信号与输入信号成比例变化。

描述函数为:

N ( A ) = 2 k π A [ ( A − D ) 2 − g 2 + g sin ⁡ − 1 ( g A ) ] N(A) = \frac{2k}{\pi A} \left[ \sqrt{(A - D)^2 - g^2} + g \sin^{-1}\left(\frac{g}{A}\right) \right] N(A)=πA2k[(AD)2g2 +gsin1(Ag)]

其中 g g g 是间隙宽度。

4. 继电器特性

继电器特性是一种典型的非线性特性,表示输出信号在两个定值之间切换,通常用于描述二位开关系统。

继电器特性函数为:

y ( t ) = { Y A sin ⁡ ( ω t ) > 0 − Y A sin ⁡ ( ω t ) < 0 y(t) = \begin{cases} Y & A\sin(\omega t) > 0 \\ -Y & A\sin(\omega t) < 0 \end{cases} y(t)={YYAsin(ωt)>0Asin(ωt)<0

描述函数为:

N ( A ) = 4 Y π A N(A) = \frac{4Y}{\pi A} N(A)=πA4Y

系统稳定性与自激振荡分析

考虑一个具有非线性元件的闭环反馈系统,其传递函数为 G ( s ) G(s) G(s)。应用描述函数法分析稳定性和自激振荡的步骤如下:

  1. 计算非线性元件的描述函数 N ( A ) N(A) N(A)
  2. 系统的特征方程为:

1 + G ( j ω ) N ( A ) = 0 1 + G(j\omega)N(A) = 0 1+G()N(A)=0

  1. 通过分析 G ( j ω ) G(j\omega) G() N ( A ) N(A) N(A) 的相位关系,判断系统是否存在满足特征方程的解(即自激振荡的条件)。
  2. 若系统满足 G ( j ω ) N ( A ) = − 1 G(j\omega)N(A) = -1 G()N(A)=1 的条件,则系统存在自激振荡。

Python代码示例

下面的代码演示了如何使用描述函数法分析一个简单非线性系统的自激振荡条件。

import numpy as np
import matplotlib.pyplot as plt

# 定义线性系统的传递函数G(jw)
def G(jw):
    return 1 / (jw**2 + 2*0.5*jw + 1)  # 二阶系统

# 定义非线性元件的描述函数N(A)
def N(A):
    Y = 1.0  # 继电器特性的输出
    return 4 * Y / (np.pi * A)

# 计算自激振荡的条件
A_values = np.linspace(0.1, 2, 500)
G_values = np.abs(G(1j))
N_values = N(A_values)
stability_condition = G_values * N_values

# 绘图
plt.figure(figsize=(10, 6))
plt.plot(A_values, stability_condition, label='|G(jω)N(A)|')
plt.axhline(1, color='red', linestyle='--', label='Stability Boundary (|G(jω)N(A)|=1)')
plt.xlabel('Amplitude A')
plt.ylabel('|G(jω)N(A)|')
plt.title('Stability Condition for Self-Oscillation')
plt.legend()
plt.grid(True)
plt.show()

在这里插入图片描述

代码解释

  • G(jw):定义了系统的频域传递函数,这是一个二阶系统。
  • N(A):定义了继电器特性的描述函数。
  • stability_condition:计算了稳定性条件 ∣ G ( j ω ) N ( A ) ∣ |G(j\omega)N(A)| G()N(A)
  • ∣ G ( j ω ) N ( A ) ∣ = 1 |G(j\omega)N(A)| = 1 G()N(A)=1 时,系统满足自激振荡条件。

结论

描述函数法是一种强大的工具,可以有效地分析弱非线性系统的稳定性和自激振荡。通过描述函数,可以将复杂的非线性问题简化为频域分析,从而在工程应用中预测系统的动态行为。

本文简单介绍了描述函数法的基本理论,推导了几种常见非线性特性的描述函数,并通过Python代码演示了自激振荡条件的分析。理解和应用描述函数法,对于设计和分析复杂控制系统至关重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QtWebEngineView加载本地网页

直接加载放在exe同级目录下的资源是不行的&#xff0c;需要把资源通过qrc放到exe里面&#xff0c;然后通过类似qrc:/robotHtml/index.html这样的路径加载才行。 mWebView new QWebEngineView(parent);// mWebView->load(QUrl::fromLocalFile("./robotHtml/index.html&…

Vue3集成高德离线地图实践

1. 离线地图效果预览 2. 地图下载器下载离线地图 根据需要选择地图&#xff0c;我这边选择高德地图&#xff0c;层级选择0-15级别即可&#xff0c;进行下载 3. 放到nginx内网服务器 注意配置允许跨域 4. Vue3核心代码 // main.js // 初始化vue-amap initAMapApiLoader({o…

联想LJ2405打印机清零方法

联想LJ2405D_LJ2455D_LJ2605D硒鼓清零方法 在设备待机状态下&#xff0c;打开前盖&#xff0c;然后按住开始键不松手&#xff0c;直到所有指示灯全部亮起后再松开手&#xff0c;然后将硒鼓取出再装回&#xff0c;盖上前盖&#xff0c;清零操作完成。 联想LJ2405打印机碳粉清零…

编程学习之路:如何克服挫折感,成为更好的自己

目录 编程学习之路&#xff1a;如何克服挫折感&#xff0c;成为更好的自己 一、小瓜有话说 1、学习的广度可以带动深度 2、清空大脑和清空代码都是解决问题的方式 ①清空大脑&#xff1a;睡个觉&#xff0c;拉个屎&#xff0c;吃顿饭。 ②清空代码&#xff1a;换一种思维…

花钱买不到系列-深刻理解进程地址空间

花钱买不到系列—linux虚拟地址空间-CSDN博客https://blog.csdn.net/weixin_49529507/article/details/141272458?spm1001.2014.3001.5501 在上一篇文章中&#xff0c;引出了虚拟地址这块&#xff0c;也用大富翁给儿子们画饼的例子解释&#xff0c;通过大富翁的例子&…

内存管理篇-03物理内存管理-32位

正片从现在开始了。 1.结构体关联 当DDR初始化后&#xff0c;整个内存就可以访问了。但是需要合理的管理&#xff0c;防止内存碎片以及安全相关的问题。因此需要对物理内存进行严格的管理。 物理内存分为&#xff1a;页&#xff0c; 分区&#xff0c;内存节点。DMA需要连续的内…

配置PXE预启动执行环境:Kickstart自动化无人值守安装

文章目录 实现 Kickstart 无人值守安装1. 安装Kickstart和配置应答文件&#xff08;图形化界面&#xff09;2. 配置 PXE 菜单支持 Kickstart 无人值守安装3. 验证 Kickstart 无人值守安装4. 拓展&#xff1a;命令行配置应答文件&#xff08;命令行界面&#xff09; 实现 Kickst…

猜数3次-python

题目要求&#xff1a; 定一个数字&#xff08;1-10&#xff0c;随机产生&#xff0c;通过3次判断来猜出数字&#xff09; 数字随机产生&#xff0c;范围1-10有三次机会猜测数字&#xff0c;通过3层嵌套判断实现每次猜不中会提示大了或者小了 ps&#xff1a;补充随机函数 imp…

client网络模块的开发和client与server端的部分联动调试

客户端网络模块的开发 我们需要先了解socket通信的流程 socket通信 server端的流程 client端的流程 对于closesocket()函数来说 closesocket()是用来关闭套接字的,将套接字的描述符从内存清除,并不是删除了那个套接字,只是切断了联系,所以我们如果重复调用,不closesocket()…

合合信息文档解析Coze插件发布,PDF转Markdown功能便捷集成

近日&#xff0c;TextIn开发的PDF转Markdown插件正式上架Coze平台。 在扣子搜索“pdf转markdown”&#xff0c;或在Coze平台搜索“pdf2markdown”&#xff0c;即可找到插件&#xff0c;在你的专属智能体中便捷使用文档解析功能。 如果想测试解析插件在你需要的场景下表现如何&…

R语言VAR模型的多行业关联与溢出效应可视化分析

全文链接&#xff1a;https://tecdat.cn/?p37397 摘要&#xff1a;本文对医疗卫生、通信、金融、房地产和零售等行业的数据展开深入研究。通过读取数据、计算收益率、构建 VAR 模型并进行估计&#xff0c;帮助客户进一步分析各行业变量的影响及残差的协方差与相关矩阵&#xf…

xml打印模板解析-SAAS本地化及未来之窗行业应用跨平台架构

一、为何要自己设置打印模板系统 1.确保自由知识产权 2.支持跨平台&#xff1a;物联网&#xff0c;自助终端&#xff0c;电脑&#xff0c;web&#xff0c;C#&#xff0c;jsp,android,java,php 等多种语言 二、xml 代码解析 package CyberWinPHP.Cyber_Plus;import java.io.…

2024下半年软考有哪些科目开考?该怎么选?

近年来&#xff0c;软考&#xff08;软件水平考试&#xff09;的难度逐渐攀升&#xff0c;这并非源于题目本身的复杂化&#xff0c;而是官方对通过率的调控策略所致。整体通过率维持在13%左右&#xff0c;高级别考试更是低至10%以下&#xff0c;考生需慎重对待。以湖南2024年上…

数据仓库建模的步骤-从需求分析到模型优化的全面指南

想象一下,你正站在一座巨大的图书馆前。这座图书馆里存放着你公司所有的数据。但是,书籍杂乱无章,没有分类,没有索引。你如何才能快速找到所需的信息?这就是数据仓库建模要解决的问题。本文将带你深入了解数据仓库建模的主要步骤,让你掌握如何将杂乱的数据转化为有序、高效、易…

Java | Leetcode Java题解之第367题有效的完全平方数

题目&#xff1a; 题解&#xff1a; class Solution {public boolean isPerfectSquare(int num) {double x0 num;while (true) {double x1 (x0 num / x0) / 2;if (x0 - x1 < 1e-6) {break;}x0 x1;}int x (int) x0;return x * x num;} }

监控摄像头能看到电脑屏幕内容吗?监控摄像头VS电脑屏幕监控软件!告别盲区,让您的企业管理无死角!

在企业管理中&#xff0c;监控摄像头和电脑屏幕监控软件都是重要的工具&#xff0c;但它们在监控电脑屏幕内容方面存在显著差异。本文将深入探讨监控摄像头在捕捉电脑屏幕内容时的局限性&#xff0c;并对比介绍安企神——电脑屏幕监控软件的优势及其功能策略&#xff0c;帮助企…

在Windows下安装设置Node.js 20.16.0

文章目录 一、下载Node.js二、安装Node.js三、设置Node.js四、更换npm源 一、下载Node.js 官网地址&#xff08;中文网&#xff09; 或者使用直链下载 二、安装Node.js 打开下载好的安装包&#xff0c;点击下一步 同意用户协议后下一步 选择安装目录后下一步 可以根据自…

02 tkinter有趣项目-头像制作-界面设计

头像制界面设计 **avatar.png** **界面** 界面分析 背景图片: 顶部中央位置显示一个小孩背着书包的图片。这个图片是程序的背景&#xff0c;占据了大部分的窗口空间。 标题和按钮: 在图片上方&#xff0c;有一个标题栏&#xff0c;显示文本“在线姓氏头像制作”&#xff0c;使…

vue+fastadmin跨域请求问题

记录一个 vuefastadmin项目api 访问跨域问题 前端页面使用的是 axios 发起请求&#xff0c;api 是 fastadmin 写的&#xff0c;遇到跨域错误&#xff1a; 解决办法&#xff1a; 控制器代码中加入check_cors_request()实现跨域检测 fa 官网对跨域的说明 &#xff1a;跨域配置 -…

乐凡三防高亮屏工业平板电脑的应用场景

随着科技的发展&#xff0c;三防高亮屏工业平板电脑在越来越多的领域中得到广泛应用。下面探讨一下三防高亮屏工业平板电脑的应用场景及其在不同领域中的优势。 物流行业 在物流行业中&#xff0c;三防高亮屏工业平板电脑可以用于仓库管理、货物跟踪、运输调度等多个方面。在阳…