莫度编程网

技术文章干货、编程学习教程与开发工具分享

自动控制原理-控制系统瞬态响应分析

控制系统时域瞬态响应分析

1 单位脉冲响应

当输入信号为单位脉冲响应函数 时,系统输出为单位脉冲响应,可使用impulse()函数计算。

matlab语法格式:

[y,x,t]=impulse(num,den,t)

或者 impulse(G)

式子中:t为仿真时间,y为时间t的输出响应,x为时间t的状态响应,G为系统的传递函数

2 单位阶跃响应

当输入信号为单位阶跃函数信号时,系统输出为单位阶跃响应,可使用step()函数计算。

matlab语法格式:

[y,x,t]=step(G,t)

或者 step(G)

式子中:t为仿真时间 缺省的时候,为系统默认时间,y为时间t的输出响应,x为时间t的状态响应,G为系统的传递函数,

3 零输入响应

当无输入信号的时候,使用initial()函数来计算和显示连续系统响应曲线

maltab语法格式

initial(G,x0) %绘制系统零输入响应曲线

initial(G1,G2,…,x0)%绘制多个系统的零输入响应曲线

[y,t,x]=initial(G,x0)

式子中,G为系统状态空间模型,x0为初始条件,y为输出响应,t为时间向量,x为状态变量时间响应。

4 任意函数作用下系统响应

maltab语法格式:

[y,t]=lsim(G,u,t)

其中,y为系统输出响应,x为系统状态响应,u为系统输入响应,t为仿真时间。

如 输入为斜坡函数,可设置t=初值:步长:终值;u=t;

举例1

对闭环传递函数

进行单位脉冲、单位阶跃、单位斜坡以及画出初始条件为[1 ;2 ;1]时的零输入响应。

maltab代码

num=[1 1];
den=[1 2 3 1];
G=tf(num,den) %传递函数
subplot(2,2,1);
impulse(G); %脉冲响应
subplot(2,2,2);
step(G); %阶跃响应
subplot(2,2,3)
G1=ss(G)
x0=[1;2;1]
initial(G1,x0); %零输入响应
t=0:0.1:10;
subplot(2,2,4)
u=t;
lsim(G,u,t); %斜坡响应

运行结果:

G =

s + 1

---------------------

s^3 + 2 s^2 + 3 s + 1

Continuous-time transfer function.


G1 =

A =

x1 x2 x3

x1 -2 -1.5 -1

x2 2 0 0

x3 0 0.5 0

B =

u1

x1 1

x2 0

x3 0

C =

x1 x2 x3

y1 0 0.5 1

D =

u1

y1 0

Continuous-time state-space model.

x0 =

1

2

1

举例2

求开环传递函数


单位负反馈的闭环传递函数的三角波输入的响应曲线三角波的函数定义为周期为8s,最大幅值为2。

%输入信号
t=0:0.1:8;
v1=[0:0.1:2];
v2=[1.9:-0.1:-2];
v3=[-1.9:0.1:0];

num=[10 20];
den=[1 3 5 0]
Gopen=tf(num,den) %开环传递函数
Gclose=feedback(Gopen,1) %单位闭环传递函数
u=[v1,v2,v3];
[y,x]=lsim(Gclose,u,t); %三角波输入响应
figure
plot(t,u,t,y);
xlabel('time [s]');
ylabel('theta [rad]');
grid on;

运行结果:

Gopen =

10 s + 20

-----------------

s^3 + 3 s^2 + 5 s

Continuous-time transfer function.

Gclose =

10 s + 20

-----------------------

s^3 + 3 s^2 + 15 s + 20

Continuous-time transfer function.

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    Powered By Z-BlogPHP 1.7.4

    蜀ICP备2024111239号-43