MATLAB学习笔记(二) 控制工程会用到的

MATLAB中 控制工程会用到的

  • 基础
    • 传递函数表达
    • 传递函数 零极点式 状态空间表达式 相互转化
    • 画响应图线
    • 根轨迹
    • Nyquist图和bode图
    • 现控部分
      • 求约旦
      • 判能控能观
      • 极点配置和状态观测

基础

传递函数表达

在这里插入图片描述

% 拉普拉斯变换
syms t s a
f = exp(a*t)            %e的a次方
l = laplace(f)          %拉氏变换
f2 = ilaplace(f)        %拉氏反变换%传递函数%多项式形式
num=[1,2]           %表示传递函数分子系数    从右往左表示0次 1次   0次为2 1次为1
den=[1,2,3]         %表示分母上的系数
sys = tf(num,den)   %连续时间传递函数%零极点形式
z = [1 2 3]         %零点   用逗号空格都可以
p = [4 5 6]         %极点
k = 15              %增益
sys = zpk(z,p,k)    %传递函数 

传递函数 零极点式 状态空间表达式 相互转化

在这里插入图片描述

%状态空间表达式
A = [1,2,3;4,5,6;7,8,9]
B = [0;1;1]
C = [1,2,3]
D = 3sys = ss(A,B,C,D)%状态空间表达式到多项式形式传递函数---  ss2tf
A = [1,2,3;4,5,6;7,8,9]
B = [0;1;1]
C = [1,2,3]
D = 3
[num,den] = ss2tf(A,B,C,D)
sys = tf(num,den)%状态空间表达式生成零极点---  ss2zp
A = [1,2,3;4,5,6;7,8,9]
B = [0;1;1]
C = [1,2,3]
D = 3
[z,p,k] = ss2zp(A,B,C,D)
sys = zpk(z,p,k)

在这里插入图片描述

%多项式形式到零极点形式---    tf2zp
num = [1,2]
den = [1,2,3]
[z,p,k] = tf2zp(num,den)%多项式形式到状态空间表达式-- tf2ss
num = [1,2]
den = [1,2,3]
[A,B,C,D] = tf2ss(num,den)
sys = ss(A,B,C,D)

在这里插入图片描述


%零极点形式得到状态空间表达式-- zp2ss
z = [1 2 3]         %零点 
p = [4 5 6]         %极点
k = 15              
[A,B,C,D] = zp2ss(z,p,k)
sys = ss(A,B,C,D)%零极点形式得到多项式形式--  zp2tf
z = [1;2;3]         %零点 
p = [4 5 6]         %极点
k = 15              
sys = zpk(z,p,k)
[num,den]= zp2tf(z,p,k)
sys = tf(num,den)

画响应图线

在这里插入图片描述

%时域响应部分  求单位阶跃响应和单位脉冲响应
num = [1];
den = [1,0.4];
t = [0:0.1:20];
% step 函数用于计算由分子 num 和分母 den 定义的系统在时间向量 t 上的阶跃响应
y = step(num,den,t);
%y = impulse(num,den,t);    % 单位脉冲响应
plot(t,y)                   % 以时间 t 为横轴,阶跃响应 y 为纵轴绘制曲线
grid on                     % grid on 用于在绘图中显示网格线,方便观察数据
xlabel('时间/s')
ylabel('y')
title('单位阶跃响应曲线')
legend('单位阶跃响应曲线')      %在坐标图例添加标签

根轨迹

在这里插入图片描述

%根轨迹num = [1,2]
den = [1,2,3]
sys = tf(num,den)
pzmap(sys)              %画出零极点位置
rlocus(sys)             %画出根轨迹num = [1,2]
den = conv([1,0],conv([0.5,1],[4,1])) 
%卷积 实际上就是算S*[(0.5s+1)(4s+1)]
sys = tf(num,den)
k = [0,0.1,10]  %就是给k一个范围
rlocus(sys,k)

Nyquist图和bode图

在这里插入图片描述
在这里插入图片描述


%频率特性奈奎斯特图
num = 5
den = [3,1]
G = tf(num,den)
figure   % figure 函数用于打开一个新的图形窗口,后续的绘图操作将在这个窗口中进行% 在图形窗口中创建子图布局
% subplot(2,1,1) 表示将图形窗口划分为 2 行 1 列的子图网格,并激活第 1 个子图(即第一行的子图)
subplot(2,1,1)nyquist(G)
title('nyquist图')
grid on      % 在当前子图中显示网格线%绘制伯德图
subplot(2,1,2)
bode(G)
title('bode图')
grid on
%频域性能指标:赋值裕度(没有Db单位得) 相角裕度,穿越频率,截止频率。
num = 5
den = [3,1]
G = tf(num,den)
[Gm,pm,Wcg,wcp] = margin(G)   %一串直接求了

现控部分

求约旦

在这里插入图片描述

判能控能观

在这里插入图片描述

%判断能控能观性
A = [1,2,3;4,5,6;7,8,9]
B = [0;1;1]
C = [1,2,3]
D = 1
M = [B,A*B,A*A*B]
M = ctrb(A,B)                %计算可控性矩阵
a = rank(M)
if a == 3disp('可控');
elsedisp('no')
end
%判断能观性N = obsv(A,C)               %计算能观判别矩阵
b = rank(N)

极点配置和状态观测

在这里插入图片描述

%状态反馈    极点配置
A = [1,2,3;4,5,6;7,8,9]
B = [0;1;1]
C = [1,2,3]
D = 1%期望闭环极点
p = [1,2,4]
%适用place函数进行任意极点配置
%当然也要先判能控
K = place(A,B,p)%状态观测器
A = [1,2,3;4,5,6;7,8,9]
B = [7;2;8]
C = [3,1,3]
D = 1
N = obsv(A,C)
N = [C;C*A;C*A*A]
b = rank(N)
p = [-5,-6,-7]
G = place(A',C',p)

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

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

相关文章

基于YOLOv9的课堂行为检测系统

基于YOLOv9的课堂行为检测系统 项目概述 本项目是一个基于YOLOv9深度学习模型的课堂行为检测系统,旨在通过计算机视觉技术自动识别和监测课堂中学生的各种行为状态,帮助教师更好地了解课堂教学效果。 项目结构 课堂行为检测/ ├── data/ │ ├──…

C 语言中的 volatile 关键字

1、概念 volatile 是 C/C 语言中的一个类型修饰符,用于告知编译器:该变量的值可能会在程序控制流之外被意外修改(如硬件寄存器、多线程共享变量或信号处理函数等),因此编译器不应对其进行激进的优化(如缓存…

java 洛谷题单【算法2-1】前缀和、差分与离散化

P8218 【深进1.例1】求区间和 解题思路 前缀和数组: prefixSum[i] 表示数组 a 的前 (i) 项的和。通过 prefixSum[r] - prefixSum[l - 1] 可以快速计算区间 ([l, r]) 的和。 时间复杂度: 构建前缀和数组的时间复杂度是 (O(n))。每次查询的时间复杂度是 …

绿盟二面面试题

5000篇网安资料库https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39a6eab17cc0ed0fca5f0e4c979ce64bd112762def9ee7cf0112a7e76af&scene21#wechat_redirect 1. 原理深度&…

线程安全学习

1 什么是线程 线程是cpu调度的最小单位&#xff0c;在Linux 下 实现线程的方式为轻量级进程&#xff0c;复用进程的结构体&#xff0c;使用clone函数创建 2 线程安全 所谓线程安全&#xff0c;更确切的应该描述为内存安全 #include <stdio.h> #include <pthread.h…

Linux红帽:RHCSA认证知识讲解(十 三)在serverb上破解root密码

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;十 三&#xff09;在serverb上破解root密码 前言操作步骤 前言 在红帽 Linux 系统的管理工作中&#xff0c;系统管理员可能会遇到需要重置 root 密码的情况。本文将详细介绍如何通过救援模式进入系统并重新设置 root 密码。…

**Microsoft Certified Professional(MCP)** 认证考试

1. MCP 认证考试概述 MCP&#xff08;Microsoft Certified Professional&#xff09;是微软认证体系中的一项入门级认证&#xff0c;旨在验证考生在微软产品和技术&#xff08;如 Windows Server、Azure、SQL Server、Microsoft 365&#xff09;方面的技能。2020 年&#xff0…

系统性能优化总结与思考-第一部分

1.C代码优化策略总结 编译器方面&#xff1a;用好的编译器并用好编译器&#xff08;支持C11的编译器&#xff0c;IntelC&#xff08;速度最快&#xff09;GNU的C编译器GCC/G&#xff08;非常符合标准&#xff09;&#xff0c;Visual C&#xff08;性能折中&#xff09;&#x…

RCL谐振电压增益曲线

谐振电路如何通过调频实现稳压&#xff1f; 为什么要做谐振&#xff1f; 在谐振状态实现ZVS导通&#xff0c;小电流关断 电压增益GVo/Vin&#xff0c;相当于产出投入比 当ff0时&#xff0c;G1时&#xff0c;输出电压输入电压 当G<1时&#xff0c;输出电压<输入电压 …

Linux进程相关选择题及解析

1. 关于Linux进程创建,以下说法正确的是? A. fork()函数调用后,子进程从父进程的fork()之后开始执行 B. fork()函数返回两次,父进程返回子进程PID,子进程返回0[10][11] C. exec函数族会替换当前进程的代码段,但保留数据段和堆栈 D. wait()函数只能等待直接子进程退出 答…

STM32 HAL DHT11驱动程序

DHT11驱动程序会占用TIM3定时器&#xff0c;进行高精度延时。程序共包含4个文件 DHT11.c DHT11.h delay.c delay.h DHT11.c #include "stm32f1xx_hal.h" #include "dht11.h" #include "delay.h" // 添加延时头文件 #define DHT_PORT GPIOB…

网页防篡改与盗链防护:实时监控与自动化修复实践

摘要&#xff1a;针对网页内容篡改与盗链问题&#xff0c;本文基于群联AI云防护系统&#xff0c;详解如何通过哈希校验、实时监控与CDN联动实现秒级修复&#xff0c;并提供Python与AWS S3集成代码。 一、网页安全的核心需求 防篡改&#xff1a;保障页面内容完整性&#xff0c;…

【4】k8s集群管理系列--harbor镜像仓库本地化搭建

一、harbor基本概念 ‌Harbor是一个由VMware开源的企业级Docker镜像仓库解决方案‌&#xff0c;旨在解决企业在容器化应用部署中的痛点&#xff0c;提供镜像存储、管理、安全和分发的全生命周期管理‌。Harbor扩展了Docker Registry&#xff0c;增加了企业级功能&#xff0c;如…

Docker 安装 Elasticsearch 8.x

Docker 安装 Elasticsearch 8.x 前言一、准备工作二、设置容器的目录结构三、启动一个临时的容器来复制配置文件四、复制配置文件到本地目录五、删除临时容器六、创建并运行容器&#xff0c;挂载本地目录七、修改文件配置监听端口八、端口配置&#xff1a;Host 网络模式 vs Por…

C#: 用Libreoffice实现Word文件转PDF

现实场景中要实现Word格式转PDF格式还是比较常见的。 如果要用开源的组件&#xff0c;只有用Libreoffice了。 一、下载安装Libreoffice 先进入如下链接&#xff0c;找到最新版本和匹配的操作系统来安装。 官网试过&#xff0c;下载是能下载&#xff0c;但安装了用不了&…

MoogDB数据库日常维护技巧与常见问题解析

在当今的数据驱动世界中&#xff0c;数据库作为信息存储与管理的核心组件&#xff0c;扮演着举足轻重的角色。MoogDB作为一款高性能、易扩展的数据库解决方案&#xff0c;越来越受到开发者和企业的青睐。为了确保MoogDB的稳定性与高性能&#xff0c;定期的日常维护及对常见问题…

JAVA多线程的几种实现方式

‌1. 继承 Thread 类‌ ‌原理‌&#xff1a;通过继承 Thread 类并重写 run() 方法定义线程任务&#xff0c;调用 start() 启动线程‌。‌代码示例‌&#xff1a; public class MyThread extends Thread {Overridepublic void run() {System.out.println("线程 " g…

爬虫(基本知识介绍,urllib库的说明)

爬虫 爬虫基础&#xff08;一些基本原理的梳理&#xff09; scheme://[username:password]hostname[:port][/path][;parameters][?query][#fragment] 注&#xff1a; parameters 和 query 混用&#xff0c;并且现在 query 用的多 ?query 查询 &#xff0c;用来查询某类资源…

探秘串口服务器厂家:背后的故事与应用

在科技飞速发展的今天&#xff0c;串口服务器作为连接串口设备与网络的桥梁&#xff0c;在工业自动化、智能交通、智能家居等众多领域发挥着关键作用。你是否好奇&#xff0c;那些生产串口服务器的厂家究竟有着怎样的故事&#xff1f;它们的产品背后又蕴含着怎样的原理呢&#…

工厂能耗系统智能化解决方案 —— 安科瑞企业能源管控平台

安科瑞顾强 政策背景与“双碳”战略驱动 2025年《政府工作报告》明确提出“单位国内生产总值能耗降低3%左右”的目标&#xff0c;要求通过产业结构升级&#xff08;如高耗能行业技术革新或转型&#xff09;、能源结构优化&#xff08;提高非化石能源占比&#xff09;及数字化…