如何进行matlab控制系统的设计?
扫描二维码
随时随地手机看文章
Matlab具有简洁性,高效性、科学运算功能、绘图功能、集成的也有庞大的工具箱和模块集,也具有强大的动态系统仿真功能。在语法层面,Matlab的变量命名规则应当注意是以字母开头,为引导,后面可以跟字母、数字、下划线等,在编程的时候应当注意,大小写是有区分的,注意分开使用。一些常用变量应当注意,保留了一些特定的常数变量,如:
eps,表示机器的浮点运算误差限,在Matlab仿真实验开发中,eps的精度达到2.2204*10^-6,当运算的误差精度下于这个数值的时候,可以认为误差为零。
i,j;若在程序的设计过程中,算法上下使用了这个数值,比如在循环结构中,应用到了循环结构,此时变量将有可能被改写,倘若需要恢复该变量的值,则需要对-1求平方根。
inf,inf变量表示无穷大,-inf表示为无穷小;值得一提的是,在MATLAB程序中,即使遇到除0,也不会终止程序运行,只是给出一个警告,并将结果赋成Inf,以提醒算法开发者。
Pi,表示圆周率。
接下来简单介绍数据结构的内容:
Matlab中,存在数值型数据、符号型数据、以及字符串、多维数组、单元数组,类与对象等;
控制系统应用是MATLAB和Simulink的重点应用领域,它包括了被控对象建模、控制器设计、自动代码生成部署和系统验证全流程。具体如下:
使用基本模型、系统辨识或自动参数估计对线性和非线性被控对象动态特性进行建模。
配平、线性化和计算非线性 Simulink 模型的频率响应。
使用根轨迹、波特图、LQR、LQG 和其他设计方法,基于被控对象模型设计控制器。
使用时域和频域中的超调、上升时间、相位裕度、增益裕度及其他性能和稳定性特性,以交互方式分析控制系统性能。
自动调节 PID、增益调度和任意 SISO 和 MIMO 控制系统。
设计和实现稳健的模型预测控制器或使用无模型控制方法,如模型引用自适应控制、极值搜索控制、强化学习和模糊逻辑。
将控制算法部署到嵌入式系统,用于实时控制、调节或参数估计。
设计和测试状态监控与预测性维护算法。
仿真对于控制方向的研究和开发有多重要就不用强调了。不管是写paper还是开会做presentation,有个看起来很cool的仿真都是有帮助的。如果能快速的搭建仿真,还能帮着在研究的前期快速验证idea是否可行。
然而进行仿真总不是简单的事情。一方面可能要进行繁琐的公式推导和计算(而且特别容易出错,错了还不容易找出问题)。另一方面又需要写大量的程序(特别是要有视觉效果的时候)。今天我来介绍一种工作流程来绕开这两个麻烦,它特别适用于机械系统的控制和仿真。这里需要用到的是Simscape multibody (以前叫Simmechanics) 和 Simulink Control Design工具箱。
为了简单起见,起到抛砖引玉的作用,我们就制作一个最简单的机械系统 -- 倒立摆 -- 的仿真。特别注明我用的是MATLAB R2015b. 其它版本的MATLAB可能略有差异。
Matlab的控制系统工具箱包含有控制系统建模、分析及控制器设计相关的函数和图形可视化界面等工具,根据控制系统的微分方程,Matlab提供了四种形式用以描述控制系统。
1、传递函数形式传递函数形式(Transfer Function):Matlab提供内置函数tf(num,den),可直接用于系统传递函数形式的模型输入,其中num为传递函数分子多项式系数向量,den为传递函数分母多项式系数向量。
2、状态空间方程形式状态空间方程形式(State-Space Function):Matlab提供内置函数ss(a,b,c,d),可直接用于系统状态空间方程形式的模型输入,其中a为状态传输矩阵,b为输入矩阵,c输出矩阵,d为矩阵。
3、零极点增益形式零极点增益形式(Zero Pole):Matlab提供内置函数zpk(z,p,k),可直接用于系统零极点增益形式的模型输入,其中z为系统零点组成的向量,p为系统极点组成的向量,k为系统增益。
4、频率响应形式频率响应形式(Frequency Response):Matlab提供内置函数frd(r,f),可直接用于系统频率响应形式的模型输入,其中r为系统对应输入频率f时的响应向量。
在MATLAB的控制系统工具箱(Control System Toolbox)中,提供了很多函数、模块和应用程序包,实现控制系统的设计和校正。这里主要介绍 控制系统设计器APP的使用方法。
控制系统设计器
控制系统设计器是MATLAB中提供的一个专门用于控制系统设计和校正的应用程序APP。利用该APP可以在MATLAB或者Simulink中为给定的反馈控制系统模型设计SISO控制器,可以采用交互式的Bode图编辑器、Nichols图编辑器、根轨迹编辑器等调节各环节的零极点和增益,采用时域或者频域方法分析控制系统的阶跃响应和零极点图,实现多个控制器的分析比较等。
在控制系统设计器中,采用如 图1-1所示的控制系统结构,其中所有环节的传递函数都默认取为常数1。控制系统设计器的作用就是根据对整个系统的性能指标要求,在被控对象(G)给定后,正确设计传感器(H)、补偿器或者控制器(C)以及预滤波器(F)环节的数学模型。