我是靠谱客的博主 坚定人生,最近开发中收集的这篇文章主要介绍【[matlab+自控02|自动控制的仿真基础(顺带回顾一点点matlab知识)]】前言一、自控实验常用的两种Matlab程序处理方式二、编写代码文件三、控制系统模型间的相互转换,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

整理一些自控仿真的基础语句,方便日后实际使用的时候查看回顾。也可以对刚刚想上手matlab控制仿真的童鞋有一点点帮助。

文章目录

  • 前言
  • 一、自控实验常用的两种Matlab程序处理方式
    • >创建程序代码(后缀名.m)
    • >搭建Simulink模块
  • 二、编写代码文件
    • 1.控制系统模型的建立
    • 2.二阶控制系统
  • 三、控制系统模型间的相互转换
    • >零极点转传递函数
    • >传递函数转零极点
    • >传递函数转部分分数展开式
    • >部分分数展开式转传递函数


前言

为了便于观看,分两章编写。本章侧重于代码的编写,工具箱的使用可以看前一篇。


一、自控实验常用的两种Matlab程序处理方式

>创建程序代码(后缀名.m)

类似其他高级语言,创建程序代码、保存、调试、运行

方式:打开Matlab----主页----新建脚本
在这里插入图片描述


>搭建Simulink模块

相较程序代码更加简单,直观,体现控制框图。

方式:打开Matlab----主页----Simulink----Blank Model----Library Browser


二、编写代码文件

1.控制系统模型的建立

经典控制系统常用的数学模型:传递函数模型,零极点增益模型

  • 传递函数模型 tf对象,也称多项式模型

在这里插入图片描述

  • 在MYATLAB中用分子分母多项式系数按s的降幂次序构成两个向量,用函数tf(num,den)来生成控制系统的函数。
num=[b1 b2 b3]; %分子
den=[a1 a2 a3] ; %分母
sys=tf(num,den);
%或者直接sys=tf([b1,b2,b3],[a1,a2,a3]);
printsys(num,den); %输出控制系统的函数

注意系数为0也要写,n阶就有n+1个系数
在这里插入图片描述

  • 用s=tf(‘s’)命令来定义传递函数的拉普拉斯变换的变量s,然后就可以直接按数学表达式的形式建立系统的传递函数模型。
s=tf('s');
Gs=(5*(s+2)^*(s^2+6*s+7))/(s*(s+1)^3*(s^3+2*s+1))

在这里插入图片描述

  • 零极点增益模型zpk对象

在这里插入图片描述

在MATLAB中,用向量z,p,k构成向量组,用zpk()函数来建立零极点增益模型。

k=10;
z=[-5];
p=[-0.5 -2 -3];
sys=zpk(z,p,k)

在这里插入图片描述

没有零点的话z=[];


2.二阶控制系统

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

[num den]=ord2(1,0.5);
G=tf(num,den)

在这里插入图片描述

三、控制系统模型间的相互转换

>零极点转传递函数

[num,den]=zp2tf(z,p,k)

>传递函数转零极点

[z,p,k]=tf2zp(num,den)

>传递函数转部分分数展开式

[r,p,k]=residue(num,den)

>部分分数展开式转传递函数

[num,den]=residue(r,p,k)


最后

以上就是坚定人生为你收集整理的【[matlab+自控02|自动控制的仿真基础(顺带回顾一点点matlab知识)]】前言一、自控实验常用的两种Matlab程序处理方式二、编写代码文件三、控制系统模型间的相互转换的全部内容,希望文章能够帮你解决【[matlab+自控02|自动控制的仿真基础(顺带回顾一点点matlab知识)]】前言一、自控实验常用的两种Matlab程序处理方式二、编写代码文件三、控制系统模型间的相互转换所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部