Day17--动态过程微分方程描述

2021/12/24 23:11:54

本文主要是介绍Day17--动态过程微分方程描述,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

MATLAB是一个很强大的软件,在自动控制领域也是使用非常广泛,本系列博文将基于控制系统仿真进行,参考书籍《MATLAB/Simulink与控制系统仿真》,该系列博文与笔者的自动控制理论(考研篇)互为补充,详细理论知识点请各位移步自动控制理论(考研篇)系列博客。



17.动态过程微分方程描述

17.1 基本概念

  1. 在线性系统理论中,常用的数学模型形式:传递函数模型(系统的外部模型)、状态方程模型(系统的内部模型)、零极点增益模型、部分分式模型;
  2. 控制系统动态微分方程的建立的条件:
    1. 在给定量产生变化或扰动出现之前,被控量的各阶导数都为零,即系统处于平衡状态的,在任一瞬间,由各种不同环节组成的自动控制系统用几个独立变量就可以完全确定系统的状态;
    2. 建立的动态微分方程式是以微小增量为基础的增量方程,不是其绝对值的方程;当出现扰动或给定量产生变化时,被控量和各独立变量在其平衡点附近产生微小的增量,微分方程式描述的是微小偏差下系统运动状态的增量方程,不是运动状态变量的绝对值方程,也不是大偏差范围内的增量方程;
  3. 动态微分方程描述的被控量与给定量或扰动量间的函数关系,给定量和扰动量可以看成系统的输入,被控量看成输出;建立微分方程时,一般从系统的环节着手,先确定各环节的输入和输出,以确定其工作状态,建立各环节的微分方程,然后消除中间变量,得到系统的动态微分方程;

17.2 LRC电路实例

实战:LRC电路如下,建立该电路的微分方程。
1
解:

STEP1:确定输入输出;
在RLC电路中,输入量: u i ( t ) u_i(t) ui​(t),输出量: u o ( t ) u_o(t) uo​(t),中间变量: i ( t ) i(t) i(t);

STEP2:列出原始微分方程式;
根据基尔霍夫电压定律、电流定律可得: L d i ( t ) d t + R ⋅ i ( t ) + u o ( t ) = u i ( t ) , i ( t ) = C d u o ( t ) d t L\frac{di(t)}{dt}+R·i(t)+u_o(t)=u_i(t),i(t)=C\frac{du_o(t)}{dt} Ldtdi(t)​+R⋅i(t)+uo​(t)=ui​(t),i(t)=Cdtduo​(t)​

STEP3:消去中间变量;
L C d 2 u o ( t ) d t 2 + R C ⋅ d u o ( t ) d t + u o ( t ) = u i ( t ) LC\frac{d^2u_o(t)}{dt^2}+RC·\frac{du_o(t)}{dt}+u_o(t)=u_i(t) LCdt2d2uo​(t)​+RC⋅dtduo​(t)​+uo​(t)=ui​(t)

建立系统微分方程小结:

  1. 将系统划分多个环节,确定每个环节的输入和输出,每个环节写一个方程;
  2. 根据物理定律或通过实验等得出物理规律,列出各个环节的原始方程式,考虑适当简化、线性化;
  3. 将各环节方程联立,消去中间变量,化简得到只含有输入和输出及参量的系统方程式;
  4. 单输入单输出系统微分方程的输入模型形式:
    a 0 x o ( n ) ( t ) + a 1 x o ( n − 1 ) ( t ) + ⋯ + a n − 1 x o 1 ( t ) = b o x i m ( t ) + b 1 x i ( m − 1 ) ( t ) + ⋯ + b m − 1 x i ( 1 ) ( t ) + b m x i ( t ) a_0x^{(n)}_o(t)+a_1x^{(n-1)}_o(t)+\dots+a_{n-1}x^{1}_o(t)=b_ox^{m}_i(t)+b_1x^{(m-1)}_i(t)+\dots+b_{m-1}x^{(1)}_i(t)+b_mx_i(t) a0​xo(n)​(t)+a1​xo(n−1)​(t)+⋯+an−1​xo1​(t)=bo​xim​(t)+b1​xi(m−1)​(t)+⋯+bm−1​xi(1)​(t)+bm​xi​(t)

注:这里只是通过一个简单的RLC电路例子说明微分方程的建立,很多系统模型是有固定的规律的,请读者移步到自动控制原理(考研)篇或者自己查阅资料来学习。

17.3 MATLAB仿真实战

实战:RLC模型如下, R = 1.6 Ω , L = 2.1 H , C = 0.30 F R=1.6\Omega,L=2.1H,C=0.30F R=1.6Ω,L=2.1H,C=0.30F,初始状态是电感电流为零,电容电压为 0.2 V , t = 0 0.2V,t=0 0.2V,t=0时接入 1.5 V 1.5V 1.5V的电压,求 0 < t < 10 s 0<t<10s 0<t<10s i ( t ) , u o ( t ) i(t),u_o(t) i(t),uo​(t)的值,并画出电流与电容电压的关系曲线。
2
解:

% RLC_main.m文件

% 系统主函数
clear    % 清除工作空间变量

t0=0;tfinal=10;    % 响应时间
tspan=[t0 tfinal];

x0=[0.2;0];        % 初始化电感电流,电容电压
[t,x]=ode45('rlcsys',tspan,x0);    % rlc是系统微分方程描述函数

% 绘制状态响应图
figure(1);
subplot(211);
plot(t,x(:,1));
grid
title('电容电压/V');
xlabel('时间/s');

subplot(212);
plot(t,x(:,2));
grid
title('电感电流/A');
xlabel('时间/s');

figure(2);
vc=x(:,1);
i=x(:,2);
plot(vc,i);
grid
title('电感电流与电容电压的关系曲线');
xlabel('电容电压/V');
ylabel('电感电流/A');

% rlcsys.m文件
% 系统rlcsys函数
function xdot=rlcsys(t,x)    % 微分方程函数

% 电压、电阻、电感、电容数值
Vs=1.5;R=1.6;L=2.1;C=0.30;
xdot=[x(2)/C;1/L*(Vs-x(1)-R*x(2))];
end

3
4



这篇关于Day17--动态过程微分方程描述的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程