MATLAB 控制系统设计与仿真 - 29

news/2025/3/31 3:23:11/

用极点配置设计伺服系统

方法1-前馈修正

对于一个可控的系统,我们知道可以用极点配置来得到系统的动态响应指标,但是系统有时会存在较大的静态误差。

例如:

系统的状态矩阵如下,试求取其阶跃响应。

A=\begin{bmatrix} 0 & 1\\ -9 & -1 \end{bmatrix}, B=\begin{bmatrix} 0\\ 1 \end{bmatrix}, C=\begin{bmatrix} 1& 0 \end{bmatrix},D=0

MATLAB 代码如下:

clear all;clc;
A=[0 1;-9 -1];
B=[0 ;1];
C=[1 0];
D=0;
sys0=ss(A,B,C,D);
step(sys0)
grid on

程序运行结果如下:

有上图可知,原系统的动态响应性能很差,并且有较大的静态误差。

首先我们可以用极点配置,改善系统的动态特性。

MATLAB程序代码入下:

clear all;clc;
A=[0 1;-9 -1];
B=[0 ;1];
C=[1 0];
D=0;
sys0=ss(A,B,C,D);
[y0 t0]= step(sys0,12);
Co = ctrb(A,B);
m=rank(Co);    %% m=2 controllable
p=[-100 -200];
k=place(A,B,p);
sys1=ss(A-B*k,B,C,D);
[y1 t1]= step(sys1,12);
yyaxis left
plot(t0,y0);
yyaxis right
plot(t1,y1);
grid on
legend('原系统','极点配置后的新系统') 

程序运行结果如下:

有上图可知,通过极点配置后,系统的动态特性得到了较好的改善,但是系统然后存在较大的静态误差。

有系统的状态方程可知,系统达到稳态时:\dot{x}_{ss}=0=Ax_{ss}+Bu_{ss} \\ y_{ss}=Cx_{ss}

如果我们可以在前馈对输入进行滤波,那么我们可以消除静态误差,其方框图如下所示:

u_{ss}=Gr-Kx_{ss}

结合上式,我们可求出:

G=-inv(C*inv(A-BK)*B)

例如,消除上述系统的静态误差。

MATLAB代码如下:

clear all;clc;
A=[0 1;-9 -1];
B=[0 ;1];
C=[1 0];
D=0;
sys0=ss(A,B,C,D);
p=[-100 -200];
k=place(A,B,p);
sys1=ss(A-B*k,B,C,D);
[y,t]=step(sys1,1);
y1=y*(-inv(C*inv(A-B*k)*B));
yyaxis left
plot(t,y)
grid on
yyaxis right
plot(t,y1)
legend('极点配置后的新系统','极点配置+消除静态误差的新系统') 

程序运行结果如下:

由上图可知,通过极点配置和伺服控制,我们可以获得很好的动态性能和静态性能。

但是,实际过程中,我们很难得到精确的系统状态矩阵,所以接下来会介绍另外一个方法来做伺服控制。

**************************************************************************************************************

最后,欢迎大家有问题给我留言。

非常感谢小伙伴们的-点赞-收藏-关注


http://www.ppmy.cn/news/1583467.html

相关文章

每日一题-力扣-2829. k-avoiding 数组的最小总和

解决"k-avoiding 数组的最小总和"问题 这道题有两种主要解法。 解法一:直接数学计算(最优解) 通过数学推导直接计算出结果,不需要构建实际的数组。 class Solution:def minimumSum(self, n: int, k: int) -> int…

车载以太网网络测试 -24【SOME/IP概述】

1 摘要 本文主要介绍SOME/IP的背景以及在车载行业的发展和应用,并对SOME/IP的概念定义、协议栈位置、SOA简述以及行业标准做了介绍。为后续详细介绍SOME/IP做个铺垫。 2 车载SOME/IP 概述 SOME/IP**(Scalable Service-Oriented Middleware over IP&am…

阿里巴巴达摩院人工智能训练师(高级)

阿里巴巴达摩院人工智能训练师(高级) 阿里颁发的证书,找“橙点同学” 一共有五个视频课程,全部上完后即可参加考试~ 考试一共34题,可以考两次,第一次不过的话没关系,可以看题析之后…

寻找力量

喜马拉雅-国内专业音频分享平台,随时随地,听我想听! 生活总是让你遍体鳞伤,但是后来才发现那些曾经让你受伤的东西,最后都会让你变得强大。 大家好,我是孟豪,今天这首新歌你的答案是由歌手阿荣所唱。 在这首歌里他希望…

ref vs reactive,watch vs watchEffect的区别与使用场景

一、ref 与 reactive 的核心区别 使用场景 ref:处理基本数据类型;需要重新赋值对象(如从api获取新数据) reactive:处理复杂的嵌套对象或者数组,不需要整体替换,直接访问属性(避免频繁写.value&…

孟德尔随机化:脑卒中研究新钥匙

孟德尔随机化:脑卒中研究新钥匙 孟德尔随机化,作为一种基于遗传变异的因果推断方法,正逐渐成为医学研究领域的有力工具,在脑卒中研究中发挥着关键作用 。它的基本原理源于孟德尔遗传定律,即个体在受精过程中&#xff0…

c#的.Net Framework 的console 项目找不到System.Window.Forms 引用

首先确保是建立的.Net Framework 的console 项目,然后天健reference 应用找不到System.Windows.Forms 引用 打开对应的csproj 文件 在第一个PropertyGroup下添加 <UseWindowsForms>true</UseWindowsForms> 然后在第一个ItemGroup 下添加 <Reference Incl…

Open CASCADE学习|基于AIS_PointCloud显示点集

定义与用途 AIS_PointCloud是OpenCASCADE中用于表示和管理点云数据的类&#xff0c;能够高效地绘制大量任意彩色点集。它通过Graphic3d_ArrayOfPoints将点数据传递给OpenGL图形驱动程序&#xff0c;以将设定点绘制为“点精灵”数组&#xff0c;且点数据被打包到顶点缓冲区对象…