当前位置: 首页 > news >正文

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

用极点配置设计伺服系统

方法2-反馈修正

如果我们想只用前馈校正输入,从而达到伺服控制的效果,我们需要很精确的知道系统的参数模型,否则系统输出仍然具有较大的静态误差。

但是如果我们在误差比较器和系统的前馈通道之间插入一个积分器,如下所示:

我们就可以利用反馈来消除静态误差。推到过程如下:

根据系统方程:

\dot{x}=Ax+Bu \\ y=Cx \\ u=G\zeta-Kx

可知:

\dot{x}=(A-BK)x+BG\zeta

结合前馈积分器:

\dot{\zeta}=r-y \\ \dot{\zeta}=r-Cx

所以结合后的系统方程为:

\dot{x}=(A-BK)x+BG\zeta \\ \dot{\zeta}=r-Cx

转换成state-space形式为:

\begin{bmatrix} \dot{x}\\ \dot{\zeta} \end{bmatrix}= \begin{bmatrix} A-BK &BG \\ -C&0 \end{bmatrix} \begin{bmatrix} x\\ \zeta \end{bmatrix} + \begin{bmatrix} 0\\ 1 \end{bmatrix}r \\ y=\begin{bmatrix} C & 0 \end{bmatrix} \begin{bmatrix} x\\ \zeta \end{bmatrix}

如果用上一节的例子验证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);
G=600000;
augA=[A-B*k B*G;-C 0];
augB=[0;0;1];
augC=[C 0];
augD=0;
sys_aug=ss(augA,augB,augC,augD);
step(sys_aug)
grid on

程序运行结果为:

根据结果可知,此方法可以完全消除静态误差。由于应用了反馈误差信号,所以此方法鲁棒性较好。

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

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

http://www.dtcms.com/a/99909.html

相关文章:

  • Java简单生成pdf
  • 在Wincc中使用Dapper读写数据库
  • Go/Python(Nuitka)/Rust/Zig 技术对比
  • 记一次关于云的渗透过程
  • Git配置
  • C# 的Lambda表达式‌常见用法和示例
  • C++中常见符合RAII思想的设计有哪些
  • c++使用iconv进行字符编码格式转换
  • 小红书多账号运营:如何实现每个账号独立 IP发布文章
  • ubuntu 安装 postgresql
  • Dubbo(23)如何配置Dubbo的服务消费者?
  • 蓝桥杯_DS18B20温度传感器
  • 【Java】Java核心知识点与相应面试技巧(六)——类与对象(一)
  • 什么是CMS?常用CMS有哪些?
  • Oracle数据库数据编程SQL<2.3 DML增、删、改及merge into>
  • 【学Rust写CAD】15 定点数实现(fixed.rs)
  • CSS中的em,rem,vm,vh详解
  • PipeWire 音频设计与实现分析一——介绍
  • C# 字符串(String)
  • 前端路由守卫与后端权限验证,仅使用路由守卫是否安全?
  • docker日志大小和保存管理
  • 常用的排序算法
  • 浅析Android Jetpack ACC之ViewModel
  • vector之内存分配详解
  • 23 种设计模式中的迭代器模式
  • Three.js 快速入门教程【十九】CSS2DRenderer(CSS2D渲染器)介绍,实现场景中物体或设备标注标签信息
  • QML中刷新图片的三种方法对比分析
  • [ComfyUI] 如何升级自定义节点(Custom Nodes)
  • 计算机网络和因特网
  • AGI 的概念、意义与未来展望