MATLAB在自动控制原理中的应用

传递函数

1、利用matlab构建传递函数
例:G(s)=(s+1)/(s^2+5s+6)

%% 方法一
G_s = tf([1 1],[1 5 6])%% 方法二
s = tf('s')
G_s1 = (s+1)/(s^2+5*s+6)



2、搭建闭环传递函数
例:
第一步:利用MATLAB构建各个部分的传递函数:
engine:

sys_engine = tf([1],[0.02 0.2]);
sys_acturator = tf([0.1],[0.5 2]);
system = sys_engine*sys_acturator;
%%方法二
system = series(sys_engine,sys_acturator);
s = tf('s');
sys_ctrl = 1/s; %积分控制器
%系统的开环传递函数
system_ol = sys_ctrl*system;




第二步:搭建闭环传递函数

%系统的闭环传递函数
%方法一:
system_clo = system_ol/(1+system_ol);
%化简:
minreal(system_clo);
%方法二
system_cl_k1 = feedback(system_ol,1); %反馈函数可以换成H(S)


3、输出响应
阶跃响应:函数step(闭环系统)

step(system_cl_k1);


伯德图:bode(闭环系统):
打开栅格:grid on

bode(system_cl_k1);
grid on


乃氏图:nyquist(闭环系统):

根轨迹图:rlocus(开环系统)

rlocus(system_ol);
%打开栅格
sgrid
%或者
grid on
%打开根轨迹编辑器
rltool(system_ol);



4、对比不同控制器的输出响应

sys_ctrl = 5/s;
system_ol_5 = sys_ctrl*system;
system_cl_k5 = feedback(system_ol,1);

当有两种不同的输出响应时
打开MATLAB中APP中的Linear System Analyzer

导入数据


状态空间方程


1、MATLAB中的状态空间方程及能控性能观性判断
传递函数中系统是可控可观的,状态空间方程的可控可观需要进行判断

%% 判断系统的能控性质
clc
clear
%线性定常连续系统:dx=Ax+Bu
%状态完全能控的充分必要条件:rank(Uc)=n
% Uc = [B AB .....A(n-1)B]
%例
%输入系统矩阵
A = [1 2 1;0 1 0;1 0 3];
B = [1 0;0 1;0 0];
%求解矩阵Uc
Uc = [B A*B A^2*B];
%求解矩阵Uc的秩
rank(Uc)%% 判断系统的状态能控性和输出能控性
% rank(Uc)=n
% 判断系统的状态能控性
A = [-4 1;2 -3];
B = [1;2];
Uc = [B A*B];
% 函数ctrb,计算可控性矩阵
uc = ctrb(A,B);
rank(Uc)% 判断系统的输出能控性
% rank(Uco)=q q为输出个数
C = [1 0];
Uco = [C*B C*A*B];
rank(Uco)%% 判断系统的能观性
%rank(U0)=n
% 输入系统矩阵
A = [0 1 0 0;3 0 0 2;0 0 0 1;0 -2 0 0];
B = [0;1;0;0];
C = [1 0 0 0];
D = 0;
% 求矩阵U0
U0 = [C;C*A;C*A^2;C*A^3];
% 求矩阵U0的秩
rank(U0)

以能控性为例:

2、MATLAB构建状态空间方程及输出

A = [0 1;-2 -3];
B = [0;1];
C = [1 0];
D = 0;
sys = ss(A,B,C,D);
%阶跃响应
step(sys);
%伯德图
bode(sys);
%乃氏图
nyquist(sys);

状态空间方程与传递函数之间的转换

以上面的数据为例
1、状态空间模型转换为传递函数

system = tf(sys)


2、传递函数转换为状态空间

ss(system)

MATLAB构建离散系统

配置一个离散系统,采样时间为0.1

sys_ls = tf([0 1],[2 3],'Ts',0.1)

MATLAB离散系统与连续系统的转换

相关概念见离散化资料
零阶保持器转换

c2d(system,0.01,'zoh')


一阶保持器转换

 c2d(system,0.01,'foh')


双线性变换

 c2d(system,0.01,'tustin')


离散系统转换成连续系统(由于连续转离散有些参数丢失,因此离散转连续时不能完全与连续一样,只能近似)

d2c(ans)


状态空间方程如何离散化?????

利用MATLAB对控制系统进行仿真

1、以某个系统为例

system = tf([1],[1 3 2])
% lsim输入有三部分:系统,输入向量,输入时间
lsim(system,[1;1;2;2;3;3],[0:0.1:0.5])


2、直接编写系统函数并用求解器进行系统求解
脚本函数

function dx = mysystem(t,x) %输入第一个向量必须是时间,第二个为状态向量,假设x为二维向量
dx = [0;0];
dx(1) = x(2);
dx(2) = -x(1);end

命令行窗口调用求解

ode45(@mysystem,[0 10],[1;2]) %括号内变量为函数句柄(调用函数,仿真时间,初始状态),出图
[t,y] = ode45(@mysystem,[0 10],[1;2]) %不绘制图形,直接输出数据(时间和状态变量)


MATLAB与自动控制原理相关推荐

  1. 自动控制原理matlab pdf下载,第五章-matlab在自动控制原理中的应用.pdf

    第五章-matlab在自动控制原理中的应用.pdf 第第五五章章 MATLAB MATLAB MATLAB MATLAB在自动控制原理的应用在自动控制原理的应用 5 5 5 5 1 1 1 1 控制系 ...

  2. matlab创新开放性实验,基于MATLAB 的自动控制原理实验仿真系统的设计

    基于MATLAB 的自动控制原理实验仿真系统的设计 基于MATLAB 的自动控制原理实验仿真系统的设计 田晴,张茁 (河北联合大学电气工程学院,河北唐山063000) 摘要:MATLAB的图形用户界面 ...

  3. 自控matlab设计,自动控制原理课程设计--基于MATLAB软件的自动控制系统仿真

    自动控制原理课程设计--基于MATLAB软件的自动控制系统仿真 < 自动控制原理 >课程设计说 明 书日期: 2012.5.21-2012.6.1 自动控制原理 课程设计评阅书题目 基于 ...

  4. MATLAB设计控制系统仿真实验,基于MATLAB的自动控制原理实验仿真系统的设计

    一.引言<自动控制原理>是自动化专业的基础课程,是控制科学与工程学科的一门方法论课程,主要培养学生掌握控制系统的分析和设计方法,其内容之多,理论性之强,决定了课程学习的难度.而实验课作为课 ...

  5. 自动控制matlab实验,自动控制原理MATLAB实验报告.doc

    自动控制原理MATLAB实验报告 实验一 控制系统数学模型的Matlab实现 一.实验目的 二.实验环境及仪器 五.思考题 实验一 控制系统数学模型的Matlab实现 一.实验目的 二.实验环境及仪器 ...

  6. 自动控制原理matlab实验,自动控制原理MATLAB实验报告[稻谷书苑]

    <自动控制原理MATLAB实验报告[稻谷书苑]>由会员分享,可在线阅读,更多相关<自动控制原理MATLAB实验报告[稻谷书苑](15页珍藏版)>请在人人文库网上搜索. 1.实验 ...

  7. 控制原理实验根轨迹MATLAB,《自动控制原理》实验报告(线性系统的根轨迹)

    线性系统的根轨迹 实验四 线性系统的根轨迹 一.实验目的 1. 熟悉MATLAB用于控制系统中的一些基本编程语句和格式. 2. 利用MATLAB语句绘制系统的根轨迹. 3. 掌握用根轨迹分析系统性能的 ...

  8. 尼科尔斯图matlab绘制,自动控制原理(上册)

    第1章 绪论 1.l 引言 1.2 自动控制系统的基本形式 1.2.1 开环控制系统 1.2.2 闭环控制系统 l.2.3 智能化发展趋势 1.3 自动控制的基本方式 1.3.1 反馈控制与顺馈控制 ...

  9. MATLAB之自动控制原理(1)

    1.求解高阶系统的单位阶跃响应 利用tf函数进行系统建模: 利用tfzp函数对有理分式进行因式分解: 利用residue函数进行部分分式展开: 利用step函数求解单位阶跃响应 P90 例3-6 nu ...

最新文章

  1. 沉淀2017,勇闯2018
  2. 很多人都不知道学了c/c++到底能做什么?让大牛来告诉你............
  3. 用纯CSS实现3D立方体效果
  4. 计算机报名锁定后可以修改吗,网上报名正式提交后 报名信息即被锁定 无法修改...
  5. 私人飞机包机运营商flyExclusive通过与BitPay合作支持加密货币付款
  6. java_opts 参数与JVM内存调优
  7. 今天算做正式开始SP开发吧,第一步当然是将down下来的资料好好地看一看,顺便也记下这些有用的地址...
  8. Java 注解Annotation总结一
  9. 干货分享:常见的十种破解密码方法!赶紧收藏!
  10. 网站速度对谷歌SEO优化的影响
  11. 将VRoidStudio人物通过Blender导入到Mixamo
  12. 【文科生带你读JavaScript数据结构与算法】2. 双向链表与LRU缓存算法原理与实现(下)
  13. 使用 ThreeJS 还原「流浪气球」
  14. 马云首次出演电影 《功守道》;沙特授予机器人公民身份;美五大科技股集体暴增1810亿美元丨价值早报
  15. 网络能力认证CCSC-管理1级 技术1级别
  16. python数据库-1
  17. “铁人三项”运营、技术、资本无短板,BW期货交易平台要逆天爆发?
  18. 网络安全“全面防”,应对难以察觉的网络威胁!
  19. 联想天逸无法进入bios
  20. 怎么样给小孩取名字?给孩子起名字也不是一件难事

热门文章

  1. 佳能Canon LBP215dw 一体机驱动
  2. pytest_函数传参和firture传参数request
  3. 阿尔·里斯-市场营销的22条法则(22条商规)-10
  4. 音视频开发Level0: 入门级20~25k的工作
  5. 私募创业之思勰:走到最后留下的还是价值观一致的人
  6. 关于表单form元素中onsubmit事件处理机制的认识
  7. 想知道有声读物应该怎么做吗
  8. 微信有声读物音频播放小程序系统设计与实现
  9. 机器人能帮助缝制 T 恤吗?机器可以取代人力吗?
  10. 江铠同疑证实李湘怀二胎:小恬妞要当姐姐啦