此建模从一个简单的系统:弹簧质量阻尼系统,来学习状态空间方程系统。
m是质量;b是阻尼系数;k是弹簧系数。
此系统的状态空间方程,如下图:
01新建脚本(.m文件)
我们在matlab主页,直接点击新建,新建脚本。并且将此.c文件重命名保存到对应的保存路径下。
02编辑器代码
之后在对应的.m文件下,编辑好对应的各个量和代码。
此时质量m假设为1,弹簧系数k假设为1,阻尼系数b假设为0.5;
代码如下:
%%定义变量的值,质量m、弹簧系数k、阻尼系数b
m=1;
k=1;
b=0.5;%%定义矩阵A,B,C,D
A=[[0,1];[-k/m,-b/m]];%%逗号或空格分开代表在不同的列;用分号分开代表在不同的行。
B=[0;1/m];
C=[1,0];
D=0;%%建立状态空间方程
sys=ss(A,B,C,D);
%%从状态空间方程转化为传递函数
[num,den]=ss2tf(A,B,C,D);%%num为分子部分,den为分母部分
G_s=tf(num,den);
在运行之前,最好先把.m文件点一下保存,再运行。
运行之后,即可在命令行窗口输入所需要的量。
a.输出状态空间方程矩阵
例如输入状态空间方程:sys
(即可看到输出的A,B,C,D矩阵)
b.输出传递函数
在编辑器的代码最后,是将状态空间方程转换为传递函数。
例如在命令行窗口输入传递函数:G_s
(即可看到此状态空间方程的传递函数表达)
学习来源:《控制之美》[卷1],王天威