MATLAB在控制工程中的几种建模方式

作者:清风拂面 | 创建时间: 2023-05-15
在对一个对象进行控制的过程中,通常会需要求得其具体模型,即传递函数,也会遇到系统形式之间的转换,MATLAB为我们提供了很多相关的函数,可以方便达到目的。...
MATLAB在控制工程中的几种建模方式

操作方法

状态方程形式 在MATLAB中可以创建状态方程形如:,其中,x为状态变量,u和y分别为输入和输出变量。而A、B、C、D均为常数矩阵。 给出一个例子来说明函数ss的具体用法: 在MATLAB中输入: A=[1 3;5 2]; B=[2;4]; C=[0 1]; D=[0]; sys_ss=ss(A,B,C,D) 运行之后,出现: sys_ss = a = x1  x2 x1   1   3 x2   5   2 b = u1 x1   2 x2   4 c = x1  x2 y1   0   1 d = u1 y1   0 Continuous-time state-space model. 其中,ss函数的输出量为状态方程中的常数矩阵,并提示此系统模型为连续的状态空间模型。

传递函数形式 当需要进行模型形式转换时,将其他模型形式转换为传递函数形式,则可以利用tf函数: 例:根据之前状态空间的输出结果,进行相应的转换,在MATLAB中输入: sys_tf=tf(sys_ss) 则运行输出的结果为: sys_tf = 4 s + 6 -------------- s^2 - 3 s - 13 Continuous-time transfer function. 从结果中可以看出,最终将状态方程转换成了传递函数模型,并提示为连续的传递函数。

零极点增益形式 有时会需要在传递函数的基础上,得到更加直观的系统表达,即一个系统的零极点,此时可以用到函数zpk,具体用法为: 在MATLAB中输入: sys_zpk=zpk(sys_tf) 运行后出现结果: sys_zpk = 4 (s+1.5) ------------------- (s-5.405)(s+2.405) Continuous-time zero/pole/gain model. 提示输出为连续的零极点模型。

频域响应数据形式 用Simulink对系统建立一个简单的模型,如图1所示: 图1  系统模型(零极点形式) 为了测得系统的频域响应,进而采样得到模型的信息,对系统输入一个正弦信号,并用示波器测量系统的响应输出,可以得到波形图如图4所示,其中示波器的具体参数配置如图2、图3所示。 图2 示波器设置(设置绘图的图框及线型) 图3 示波器设置(将测量输出保存在变量output中) 图4 频率响应(针对频率为1rad/s的输入信号) 运行结束后,可以在MATLAB的workspace中找到变量output,它保存为一个结构变量,这个结构变量中又分为三个部分:表示时间的矩阵time、表示信号的结构变量signals、表示具体位置的字符串变量blockName。 PS:如果想在command窗口中绘制类似示波器测量输出的曲线图,可以输入以下命令: >>plot(output.time,output.signals.values) %利用结构变量绘制图像 >> grid on >> xlabel('time'); >> ylabel('output'); 最后得到曲线如图5所示: 图5 频域响应形式曲线 从图中可以看出,曲线形状与示波器输出的曲线一样。

温馨提示

以上四种形式的形式之间可以进行相互的转换,利用函数ss、tf、zpk以及正弦函数的测量输入,可以让一个系统由多种不同的表现形式,进而更加方便地对系统实施控制。
点击展开全文

更多推荐