输出调节2.1——基于内模原理的无静差跟踪控制

2024-03-01 14:59

本文主要是介绍输出调节2.1——基于内模原理的无静差跟踪控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 渐近跟踪问题和扰动抑制问题

对于线性时不变系统而言,实现渐近跟踪和扰动抑制,必须在控制器中“植入”参考信号和扰动信号的模型。因此,对参考信号和扰动信号建立相应的模型是求解渐近跟踪问题和扰动抑制问题的前提。

2. 无静差跟踪控制系统设计

2.1 系统结构

 

                                   

                                                              图1 无静差跟踪控制系统结构框图

无静差跟踪控制系统组成一般如图1所示。控制器由“伺服控制器”和“镇定控制器”所组成。伺服控制器为一个线性时不变系统,其功能是为控制系统实现渐近跟踪和扰动控制提供机理保证。镇定补偿器为一个静态反馈,其功能是使控制系统渐近稳定。

3. 仿真与分析

3.1 问题描述

给定一个连续时间线性时不变受控系统:

                                        \dot{x}=\boldsymbol{Ax}+\boldsymbol{b}u+\boldsymbol{b}_{w}w=\begin{bmatrix} 0 & 1 &0 &0 \\ 0& 0 & -1 &0 \\ 0& 0 & 0 &1 \\ 0& 0& 11& 0 \end{bmatrix}\boldsymbol{x}+\begin{bmatrix} 0\\ 1 \\ 0 \\ -1 \end{bmatrix}u+\begin{bmatrix} 0\\ 4 \\ 0 \\ 6 \end{bmatrix}w

                                       y=\boldsymbol{cx}=\begin{bmatrix} 1 & 0&0 & 0 \end{bmatrix}\boldsymbol{x}

其中,n=4,p=1,q=1n表示状态信号维度,p表示输入信号维度,q表示扰动信号维度)。给定参考输入y_{0}(t)和扰动w(t)为阶跃函数。要求综合使系统实现无静差跟踪的镇定补偿器和伺服补偿器。

注:本例子引用于《线性系统理论》(第2版)——郑大钟著第6章,无静差跟踪控制314页;

3.2 控制器设计

步骤1:判断输入输出维度关系,dim(\boldsymbol{u})=dim(\boldsymbol{y})=1,满足dim(\boldsymbol{u})\geq dim(\boldsymbol{y})

步骤2:判断系统是否完全能控;

%% 系统状态方程
A = [0,1,0,0;0,0,-1,0;0,0,0,1;0,0,11,0];b = [0;1;0;-1];
bw =[0;4;0;6];dim_x = 4; % 状态变量x的维度=4%% 判断系统是否完全能控
E_con = ctrb(A,b);           % 求解能控性矩阵
E_val_con = rank(E_con);     % 根据能控性矩阵是否满秩判断能控性if E_val_con == dim_xfprintf('系统完全能控');
elsefprintf('系统不完全能控');
end

步骤3:求解给定参考输入y_{0}(t)和扰动w(t)的共同不稳定多项式\phi (s)

由于给定参考输入y_{0}(t)和扰动w(t)均为阶跃函数,所以利用拉普拉斯变换有:

                                               \phi _{r}(s)=\frac{1}{s} 和\phi _{w}(s)=\frac{1}{s},两者最小公倍式为\phi (s)=s

步骤4:判断是否可实现无静差跟踪控制;

                                 计算  \phi (s)=s=0,求得特征根\lambda =0,则

                        rank\begin{bmatrix} \lambda _{i}\boldsymbol{I}-\boldsymbol{A}& \boldsymbol{B}\\ -\boldsymbol{C} & \boldsymbol{D} \end{bmatrix}=rank\begin{bmatrix} -\boldsymbol{A} & \boldsymbol{b}\\ -\boldsymbol{c} &0 \end{bmatrix}=n+q

%% 判断是否存在无静差跟踪控制器
M_con = [-A,b;        % 无静差控制器是否存在的判断矩阵-c,0];
M_val_con = rank(M_con); % 无静差控制器是否存在的判断矩阵的秩if M_val_con == dim_x + dim_wfprintf('存在无静差跟踪控制器\n');
elsefprintf('不存在无静差跟踪控制器\n');
end

步骤5:求解给定参考输入y_{0}(t)和扰动w(t)的共同不稳定模型(内模);

                                                  \dot{x}_{c}=A_{c}x_{c}+b_{c}e,其中,e=y_{0}(t)-y(t)

                   本系统中,A_{c}=[0],b_{c}=[1]

 

步骤6:构造增广矩阵的状态方程;

                                     \begin{bmatrix} \boldsymbol{\dot{x}}\\ \dot{x}_{c} \end{bmatrix}=\begin{bmatrix} \boldsymbol{A} & \boldsymbol{0}\\ -b_{c}\boldsymbol{c} &A_{c} \end{bmatrix}\begin{bmatrix} \boldsymbol{x}\\ x_{c} \end{bmatrix}+\begin{bmatrix} \boldsymbol{b}\\ 0 \end{bmatrix}u+\begin{bmatrix} \boldsymbol{b}_{w}\\0 \end{bmatrix}w+\begin{bmatrix} \boldsymbol{0}\\ b_{c} \end{bmatrix}y_{0}

步骤7:利用极点配置求\boldsymbol{k}kc

%% 伺服控制器和镇定控制器系数求解
Ac = zeros(1,1); bc = ones(1,1);
ZG_A = [A,zeros(4,1);-bc*c,Ac];  % 增广矩阵
ZG_B = [b;0];p_K = [-1;-1;-1+1i;-1-1i;-2];   % 系统期望极点
K = acker(ZG_A,ZG_B,p_K);       % 控制器增益系数K
fprintf('控制器增益系数 K=\n')
disp(K);
控制器增益系数 K=-1.4000   -2.0400  -27.4000   -8.0400    0.4000

利用MATLAB求得:

                                               k=[-1.4,-2.04,-27.4,-8.04]

                                               k_{c}=-0.4

自此,控制器设计完毕。

3.3 结果分析

1. 主函数(main.m)

%%————————————————————————————————————%%
%功能:基于内模原理的无静差跟踪控制器设计
%时间:2020年4月14日
%作者:Peng Jin
%版本:V1.0
%———————————————————————————————————%%
%%
clc
clear all
close all%% 系统状态方程
A = [0,1,0,0;0,0,-1,0;0,0,0,1;0,0,11,0];b = [0;1;0;-1];
bw =[0;4;0;6];
c = [1,0,0,0];dim_x = 4; % 状态变量x的维度=4
dim_u = 1; % 输入控制u的维度=1
dim_w = 1; % 扰动输入w的维度=1%% 判断系统是否完全能控
E_con = ctrb(A,b);           % 求解能控性矩阵
E_val_con = rank(E_con);     % 根据能控性矩阵是否满秩判断能控性if E_val_con == dim_xfprintf('系统完全能控\n');
elsefprintf('系统不完全能控\n');
end%% 判断是否存在无静差跟踪控制器
M_con = [-A,b;        % 无静差控制器是否存在的判断矩阵-c,0];
M_val_con = rank(M_con); % 无静差控制器是否存在的判断矩阵的秩if M_val_con == dim_x + dim_wfprintf('存在无静差跟踪控制器\n');
elsefprintf('不存在无静差跟踪控制器\n');
end%% 伺服控制器和镇定控制器系数求解
Ac = zeros(1,1); bc = ones(1,1);
ZG_A = [A,zeros(4,1);-bc*c,Ac];  % 增广矩阵
ZG_B = [b;0];p_K = [-1;-1;-1+1i;-1-1i;-2];   % 系统期望极点
K = acker(ZG_A,ZG_B,p_K);       % 控制器增益系数K
fprintf('控制器增益系数 K=\n')
disp(K);%%  系统求解x0 = [0;0;0;0;0];[t,x] = ode45(@genzong,[0,20],x0);
y0 = 1;figure;
plot(t,x(:,1),'r-');  % y的实际输出值
hold on;
plot(t,y0,'b-');      % y的期望值
xlabel('时间/s'); ylabel('期望输入与跟随输出');

2. 系统方程(genzong.m)

function dx = genzong(t,x)k1 = -1.4; k2 = -2.04; k3 = -27.4; k4 = -8.04; % 镇定补偿器增益系数
kc = -0.4;   % 伺服补偿器增益系数
u = [-k1 -k2 -k3 -k4 kc]*x;
y0 = 1; % 参考输入
w = 1;  % 扰动信号y = x(1);   % 输出方程
e = y -y0;  % 输出误差dx(1) = x(2);
dx(2) = -x(3) + u + 4*w;
dx(3) = x(4);
dx(4) = 11*x(3) - u + 6*w;
dx(5) = -x(1) + y0;dx = dx';end

仿真结果如下:

                                           

                                                                                                        图2 仿真结果图

由结果可知,控制器能实现无静差跟踪控制。



4. 内模原理

                      

(1)内模:由上图可知,无静差控制方案的特点在于:在伺服补偿器中植入参考输入y_{0}(t)和扰动w(t)的共同不稳定模型\phi (s),通常称这个置于系统内部的外部型号模型为“内模”。

(2)内模原理:无静差跟踪控制系统,在保证系统渐近稳定前提下,系统可实现渐近跟踪和扰动抑制的基本原因在于内模以及内模产生的补偿作用。通常,称基于参考输入y_{0}(t)和扰动w(t)的共同不稳定模型即内模实现的无静差跟踪控制的机理称为内模原理。

(3)内模原理的特性:

              a. 内模原理更具一般性(即对任意类型函数)和更为一般角度(即同时对参考输入和扰动信号),一阶和二阶无静                 差控制实质为内模的局部应用。

              b. 利用内模原理实现无静差跟踪控制的系统 ,仅对除内模以外的受控系统和补偿器的参数变动具有很强鲁棒性,

       而对内模参数不具有鲁棒性。结合上面例子而言,控制器对于 ​​​​​A_{c}=[0],b_{c}=[1]这两个参数发生扰动时,跟踪控制将会                 失效。


       例如,将dx(5) = -x(1)+y0改为dx(5) = -x(1)+1.5*y0,即将A_{c}=[0],b_{c}=[1.5],则系统就存在了误差。

function dx = genzong(t,x)k1 = -1.4; k2 = -2.04; k3 = -27.4; k4 = -8.04; % 镇定补偿器增益系数
kc = -0.4;   % 伺服补偿器增益系数
u = [-k1 -k2 -k3 -k4 kc]*x;
y0 = 1; % 参考输入
w = 1;  % 扰动信号y = x(1);   % 输出方程
e = y -y0;  % 输出误差dx(1) = x(2);
dx(2) = -x(3) + u + 4*w;
dx(3) = x(4);
dx(4) = 11*x(3) - u + 6*w;
dx(5) = -x(1) + 1.5*y0;dx = dx';end

                            

                                                                        图3  内模参数有扰动时的仿真结果图


(4)内模原理实质:依靠参考输入y_{0}(t)和扰动w(t)的共同不稳定代数方程\phi (s)=0的根与参考输入y_{0}(t)和扰动w(t)的不稳定振型实现精确对消,从而达到渐近跟踪和扰动抑制的目标。因此,内模参数的任何摄动,都将直接破坏这种精确对消,从而破坏渐近跟踪和扰动抑制的机理。

尽管如此,在工程应用中,假设参考输入y_{0}(t)和扰动w(t)有界,即使\phi (s)的系数产生变动,基于内模原理的无静差跟踪控制系统的输出仍能以有限误差实现跟踪,如图3所示。

 

 

 

这篇关于输出调节2.1——基于内模原理的无静差跟踪控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/jinpeng_cumt/article/details/105513673
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/762862

相关文章

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

Java Stream的distinct去重原理分析

《JavaStream的distinct去重原理分析》Javastream中的distinct方法用于去除流中的重复元素,它返回一个包含过滤后唯一元素的新流,该方法会根据元素的hashcode和eq... 目录一、distinct 的基础用法与核心特性二、distinct 的底层实现原理1. 顺序流中的去重

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间