《状态变量分析法》由会员分享,可在线阅读,更多相关《状态变量分析法(8页珍藏版)》请在金锄头文库上搜索。
1、5.4 状态变量分析法状态变量分析法1.选择状态变量选择状态变量 对常态网络一般选择各电容电压和电感电流作为网络的状对常态网络一般选择各电容电压和电感电流作为网络的状态变量。态变量。基本思路:基本思路:2. 选择一棵常态树选择一棵常态树 常态树包含网络中的所有电压源、所有电容和一些必要的常态树包含网络中的所有电压源、所有电容和一些必要的电阻,但不包含任何电感和电流源。对任一常态网络至少可以电阻,但不包含任何电感和电流源。对任一常态网络至少可以选出一棵常态树。选出一棵常态树。3. 列写方程列写方程 列出网络中各电容支路所属基本割集的电流方程和各电感列出网络中各电容支路所属基本割集的电流方程和各电
2、感支路所属基本回路的电压方程。对电容树支所属的基本割集应支路所属基本回路的电压方程。对电容树支所属的基本割集应用用KCL可得电流方程,对电感连支所属的基本回路应用可得电流方程,对电感连支所属的基本回路应用KVL可得电压方程。可得电压方程。7. 编写编写MATLAB程序求解。程序求解。4. 消去从第三步所得到的基本割集电流方程和基本回路消去从第三步所得到的基本割集电流方程和基本回路电压方程中的非状态变量。电压方程中的非状态变量。5. 写出状态方程矩阵形式。写出状态方程矩阵形式。6. 求状态变量初始条件。求状态变量初始条件。Matlab中常用的一阶微分方程组求解函数:中常用的一阶微分方程组求解函数
3、:1. ode231. ode23函数:函数:函数:函数: 采用具自适应变步长的二阶采用具自适应变步长的二阶采用具自适应变步长的二阶采用具自适应变步长的二阶/ /三阶三阶三阶三阶Runge-Kutta-FelbbergRunge-Kutta-Felbberg法法法法调用格式:调用格式:调用格式:调用格式: ode23(StateEquation,t,x0)ode23(StateEquation,t,x0) StateEquationStateEquation为矩阵形式的状态方程,用函数描述为矩阵形式的状态方程,用函数描述为矩阵形式的状态方程,用函数描述为矩阵形式的状态方程,用函数描述 t t为
4、计算时间区间为计算时间区间为计算时间区间为计算时间区间 x0x0为状态变量初始条件为状态变量初始条件为状态变量初始条件为状态变量初始条件2. ode452. ode45函数:函数:函数:函数:采用具自适应变步长的四阶采用具自适应变步长的四阶采用具自适应变步长的四阶采用具自适应变步长的四阶/ /五阶五阶五阶五阶Runge-Kutta-FelbbergRunge-Kutta-Felbberg法,法,法,法,运算效率高于运算效率高于运算效率高于运算效率高于ode23ode23。 调用格式与调用格式与调用格式与调用格式与ode23ode23相同相同相同相同【例例】已知下图已知下图(a)中,中,C1=0
5、.1F, C2=0.47F,R31k, R65k,L4=0.1H,L5=0.2H,us7=10(t)V, is8=1(t)A,所有动态元件初始状态为零状态,用状态变量法求所有动态元件初始状态为零状态,用状态变量法求uC2 (t)。解:(解:(1)选择状态变量。以)选择状态变量。以u1、u2和和i4、i5作为状态变量。作为状态变量。(2)选常态树。选择()选常态树。选择(b)图粗线为常态树。)图粗线为常态树。(a)(b)(3)列出网络中各电容支路所属基本割集的电流方程和)列出网络中各电容支路所属基本割集的电流方程和各电感支路所属基本回路的电压方程。各电感支路所属基本回路的电压方程。(4)消去非状
6、态变量)消去非状态变量i6和和i3,写出状态方程矩阵形式。,写出状态方程矩阵形式。 (5)求状态变量初始条件。)求状态变量初始条件。(6)编写)编写MATLAB程序求解。程序求解。 编写函数编写函数StateFunc,描述状态方程:,描述状态方程:function SF=StateFunc(t,x)C1=0.1e-6;C2=0.47e-6;R3=1000;R6=5000;R36=R3+R6;L4=0.1;L5=0.2;us7=10;is8=1;SF=-1/C1/R36 0 R3/C1/R36 -R6/C1/R36; 0 0 -1/C2 -1/C2; -R3/L4/R36 1/L4 -R3*R6
7、/L4/R36 -R3*R6/L4/R36; R6/L5/R36 1/L5 -R3*R6/L5/R36 -R3*R6/L5/R36*x+. R6/C1/R36 -1/C1/R36; 0 0; R3*R6/L4/R36 R6/L4/R36; R3*R6/L5/R36 R6/L5/R36*is8;us7;主程序:主程序:clear;x0=0;0;0;0;t=0,2e-3;t,x=ode45(StateFunc,t,x0)subplot(2,2,1),plot(t,x(:,1);title(u1(t);ylabel(u1(t);subplot(2,2,2),plot(t,x(:,2);title(u2(t);ylabel(u2(t);subplot(2,2,3),plot(t,x(:,3);title(i4(t);ylabel(i4(t);subplot(2,2,4),plot(t,x(:,4);title(i5(t);ylabel(i5(t);