MATLAB与控制理论实验教程

更新时间:2023-12-20 19:40:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB与控制理论实验教程

编著 汪宁 郭西进 机械工业出版社

第五章 自动控制系统的数字计算机仿真

自动控制系统仿真是系统仿真的一个重要分支,它是一门涉及自动控制理论、计算数学、计算机技术、系统辨识、控制工程以及系统科学的综合性新型学科。它为控制系统的分析、计算、研究、综合设计以及自动控制系统的计算机辅助教学等提供了快速、经济、科学等有效的手段。

控制系统的验证中,所有的组成部分都是数学模型,这种控制系统的验证实验称为数字仿真,数字仿真可以在计算机设备上完成,所以也称计算机仿真。实际上计算机仿真是指以计算机为主要工具,对系统进行实验研究的一种方法。目的就是对控制系统的稳定性、动态品质、控制精度等性能进行计算验证。

计算机仿真可分为以下四步:

(1)建立系统的数学模型 系统的数学模型,是描述系统输入、输出变量以及内部各变量之间关系的数学表达式。描述自动控制系统诸变量间静态关系的数学表达式,称为静态模型;描述自动控制系统动态关系的数学表达式,称为动态模型。最常用的基本数学模型就是微分方程与差分方程。

对于一般系统来说,可以通过某些定律来建立数学模型;但是对于复杂系统,则必须通过系统辨识技术,考虑计算所要求的精度,略去一些次要因素,使模型既能够准确地反映系统的动态本质,又能够简化分析计算的工作,通过实验法建立数学模型。数学模型是系统仿真的依据,所以数学模型的准确性是十分重要的。

(2)建立系统的仿真模型 原始的自动控制系统的数学模型比如微分方程,并不能用来直接对系统进行仿真,还需将其转换为能够对系统进行仿真的模型。对于连续系统而言,将像微分方程这样的原始数学模型,在零初始条件下进行拉普拉斯变换,求得自动控制系统的传递函数之类的数学模型。以传递函数模型为基础,等效变换为状态空间模型,或者将其图形化为动态结构图模型,这些模型都是自动控制系统的仿真模型。

(3)选择算法,编制系统的仿真程序 对于非实时系统的仿真,可以用一般的高级语言编制仿真程序。对于快速的实时系统的仿真可以使用汇编语言来编制仿真程序,当然也可以直接使用仿真语言。目前使用最广泛的仿真语言是MATLAB语言,控制系统的MATLAB仿真是控制系统计算机仿真的一个特殊的软件工具。

(4)进行仿真实验并输出仿真结果 通过仿真实验对仿真模型与仿真程序进行检验和修改,再按照系统的仿真要求输出仿真结果。

之所以说MATLAB语言是计算机仿真的一个特殊的软件工具,在于它有一般高级语言难以比拟的优势,无论是作为科学研究与工程运算的工具,还是作为计算机辅助教学的工具,都是不可多得的,而且特别适合用来对控制系统进行计算与仿真。

5.1相关的数值计算方法

在数字仿真中,主要依据的是状态方程,因此需要将高阶微分方程或传递函数化为状态方程。如果在模拟计算机上对系统进行仿真,实现积分器是主要的,n阶系统必有n个积分器;如果在数字计算机上对系统进行仿真,最直观的想法就是在数字计算机上也构建出n个数字积分器,让计算机进行n次数值积分运算。数值积分的方法很多,下面主要介绍几种在数字计算机仿真中最常用的数值积分法。

5.1.1欧拉法

最简单的数值积分法是欧拉法,下面说明数值分析法的几何意义和基本概念。通常把仿真系统表示为一阶常微分方程组的形式,所以考虑一阶微分

y?f(t,y),初始值y(t0)?y0为,它在任意时刻的解为

?y(tn?1)?y(t0)??tn?10f(?,y)d??y(tn)??tn?1tn?1tnf(?,y)d?

用近似值yn?1、yn代替它们的准确值y(tn?1)、y(tn)得

yn?1?yn??tnf(?,y)d?

若区间(tn,tn?1)足够小,令h?tn?1?tn,用矩形面积hf(tn,yn)近似代替

?tn?1tnf(?,y)d?,则有yn?1?yn?hf(tn,yn)。

5.1.2龙格-库塔法

欧拉法是显式一步法,它具有计算简单的优点,但它的局部计算误差至于h2同阶,精度较低。龙格-库塔法是一种具有高精度的显式一步法。显式一步法的一般形式是

yn?1?yn?h?(tn,yn,h)(n?0,1,2,?,m?1)

式中,?(t,y,h)称为增量系数。对于欧拉法,它的增量系数是?(t,y,h)?f(t,y),而f(t,y)是一阶微分方程式的右端函数。

??f(t,y)的精确解,则对于给定的?(t,y,h),一般设y(t)是一阶微分方程y只能有近似值,即

y(tn?1)?y(tn)?h?(tn,y(tn),h)(n?0,1,2,?,m?1)

设y(t)是微分方程的精确解,称R(tn?1)?y(tn?1)?y(tn)?h?(tn,y(tn),h)为显式一步法在点tn?1处的局部截断误差。

若显式一步法局部截断R(tn?1)?O(hp?1),则称该式为p阶方法。因为欧拉法的局部截断R(tn?1)?O(h2),故它为一阶方法。

取?具有以下形式,即

?(t,y,h)??ciki

Ni?1其中k1?f(t,y),ki?f(t?aih,y??bijkj),(i?2,3,?,N)

i?1ai??bij

j?1i?1j?1此时相应的显式一步法为

N??yn?1?yn?h?cikii?1???k1?f(tn,yn)?i?1?ki?f(tn?aih,yn?h,?bijkj?j?1?(i?2,3,?,n)

式中ci,ai,bij是待定系数。称一步法为N级龙格-库塔法,以后简称N级R-K方法。

N级R-K方法中的待定系数是这样确定的:其原则是使局部截断R(tn?1)?O(hp?1)的p值达到最大值。y(tn?1)和?(tn,y(tn),h)分别在点tn处展开成泰勒级数,代入式R(tn?1)?y(tn?1)?y(tn)?h?(tn,y(tn),h)的右端,并整理成关于h的幂级数。令此幂级数的前面尽可能多的项的系数为零,就得到关于待定系数

ci、ai、bij的一个方程组。解此方程组,便可得到的ci、ai、bij值,从而获得一个N级p阶R-K方法的计算公式。

下面给出一个最常用的四阶R-K方法。

?h?y?y?(k1?2k2?2k3?k4)n?n?16??k1?f(tn,yn)?hh?k?f(t?,y?k1) ?2nn22?hh?k?f(t?,y?k2)nn?322??k?f(t?h,y?hk)4nn3?22?需要指出的是,四阶R-K方法的优点是精度高,程序简单,计算过程稳定,

步长易于调节。

上述基于数值积分的连续系统数字仿真,其数值解只是精确解的近似结果,必然会出现误差。由计算机有限数字位带来的误差,随步长的减小而使计算次数增加,因此误差会增大。由积分算法的局限性造成的误差,即计算值与精确值之间的误差称为局部截断误差,该误差与选用的数值积分方法有关。总之,在满足计算精度的前提下,要尽可能选择一个合适的步长和算法。

5.1.3微分方程数值积分的矩阵分析

前面介绍的各种数值积分法公式都是针对标量微分方程式的,实际上系统中大量的仿真对象是用一阶微分方程式或一阶微分方程组描述的。每一个微分方程都可以用数值积分方法来求解。这样就很容易将整个系统的瞬态响应全部算出来。下面给出四阶R-K方法求解一阶向量微分方程式的计算公式。

一阶向量微分方程及初值可表示为

??f(t,y)?y ??y(tn)?y0在控制系统的仿真中,最常见的向量微分方程是线性定常系统的状态方程,即

??Ax?Bu x即有

???aa12?x?1??11?2??a21a22?x ???????????x????3??an1an2?a1n??x1??b1???????a2n??x2??b2???? ?????????????????ann???xn??bn?四阶R-K方法的四个k可表示为

?k1?Axk?Bu(tk)??k2?A?xk?hk1??Bu(tk?h)??2?2?? ??k?A?x?hk??Bu(t?h)k2k??32?2????k4?A?xk?hk3??Bu(tk?h)对于n维向量x,取

h1?0,h2?

hh,h3?,h4?h 22

本文来源:https://www.bwwdw.com/article/hhb5.html

Top