MATLAB与自动控制原理
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与自动控制原理相关推荐
- 自动控制原理matlab pdf下载,第五章-matlab在自动控制原理中的应用.pdf
第五章-matlab在自动控制原理中的应用.pdf 第第五五章章 MATLAB MATLAB MATLAB MATLAB在自动控制原理的应用在自动控制原理的应用 5 5 5 5 1 1 1 1 控制系 ...
- matlab创新开放性实验,基于MATLAB 的自动控制原理实验仿真系统的设计
基于MATLAB 的自动控制原理实验仿真系统的设计 基于MATLAB 的自动控制原理实验仿真系统的设计 田晴,张茁 (河北联合大学电气工程学院,河北唐山063000) 摘要:MATLAB的图形用户界面 ...
- 自控matlab设计,自动控制原理课程设计--基于MATLAB软件的自动控制系统仿真
自动控制原理课程设计--基于MATLAB软件的自动控制系统仿真 < 自动控制原理 >课程设计说 明 书日期: 2012.5.21-2012.6.1 自动控制原理 课程设计评阅书题目 基于 ...
- MATLAB设计控制系统仿真实验,基于MATLAB的自动控制原理实验仿真系统的设计
一.引言<自动控制原理>是自动化专业的基础课程,是控制科学与工程学科的一门方法论课程,主要培养学生掌握控制系统的分析和设计方法,其内容之多,理论性之强,决定了课程学习的难度.而实验课作为课 ...
- 自动控制matlab实验,自动控制原理MATLAB实验报告.doc
自动控制原理MATLAB实验报告 实验一 控制系统数学模型的Matlab实现 一.实验目的 二.实验环境及仪器 五.思考题 实验一 控制系统数学模型的Matlab实现 一.实验目的 二.实验环境及仪器 ...
- 自动控制原理matlab实验,自动控制原理MATLAB实验报告[稻谷书苑]
<自动控制原理MATLAB实验报告[稻谷书苑]>由会员分享,可在线阅读,更多相关<自动控制原理MATLAB实验报告[稻谷书苑](15页珍藏版)>请在人人文库网上搜索. 1.实验 ...
- 控制原理实验根轨迹MATLAB,《自动控制原理》实验报告(线性系统的根轨迹)
线性系统的根轨迹 实验四 线性系统的根轨迹 一.实验目的 1. 熟悉MATLAB用于控制系统中的一些基本编程语句和格式. 2. 利用MATLAB语句绘制系统的根轨迹. 3. 掌握用根轨迹分析系统性能的 ...
- 尼科尔斯图matlab绘制,自动控制原理(上册)
第1章 绪论 1.l 引言 1.2 自动控制系统的基本形式 1.2.1 开环控制系统 1.2.2 闭环控制系统 l.2.3 智能化发展趋势 1.3 自动控制的基本方式 1.3.1 反馈控制与顺馈控制 ...
- MATLAB之自动控制原理(1)
1.求解高阶系统的单位阶跃响应 利用tf函数进行系统建模: 利用tfzp函数对有理分式进行因式分解: 利用residue函数进行部分分式展开: 利用step函数求解单位阶跃响应 P90 例3-6 nu ...
最新文章
- 沉淀2017,勇闯2018
- 很多人都不知道学了c/c++到底能做什么?让大牛来告诉你............
- 用纯CSS实现3D立方体效果
- 计算机报名锁定后可以修改吗,网上报名正式提交后 报名信息即被锁定 无法修改...
- 私人飞机包机运营商flyExclusive通过与BitPay合作支持加密货币付款
- java_opts 参数与JVM内存调优
- 今天算做正式开始SP开发吧,第一步当然是将down下来的资料好好地看一看,顺便也记下这些有用的地址...
- Java 注解Annotation总结一
- 干货分享:常见的十种破解密码方法!赶紧收藏!
- 网站速度对谷歌SEO优化的影响
- 将VRoidStudio人物通过Blender导入到Mixamo
- 【文科生带你读JavaScript数据结构与算法】2. 双向链表与LRU缓存算法原理与实现(下)
- 使用 ThreeJS 还原「流浪气球」
- 马云首次出演电影 《功守道》;沙特授予机器人公民身份;美五大科技股集体暴增1810亿美元丨价值早报
- 网络能力认证CCSC-管理1级 技术1级别
- python数据库-1
- “铁人三项”运营、技术、资本无短板,BW期货交易平台要逆天爆发?
- 网络安全“全面防”,应对难以察觉的网络威胁!
- 联想天逸无法进入bios
- 怎么样给小孩取名字?给孩子起名字也不是一件难事