EDA365电子论坛网

标题: 求解离散化状态方程 [打印本页]

作者: IBB-EUT    时间: 2020-12-25 10:40
标题: 求解离散化状态方程
程序如下:
9 B" E( y- W0 v4 U
- S7 S) T: [2 ~3 ~! k% Z5 ]  _A=[0 0 1 0;
3 H; }% V( i& Y& U7 k2 w4 T$ z$ X   0 0 0 1;
; E6 f# s0 `% w  d- D. a6 t% h   1 1 1 2;  i+ }+ n1 b9 ?
   5 -6 3 -4];
3 v2 w7 F: m# `B=[0 0;
/ E+ U/ v. r* O+ w( n! O; P, Y) f0 s   0 0;; h/ g6 c+ i8 i
   -1 0;1 M5 }0 J8 Y7 _' O' N9 P
   0 7];
& `8 f. \& k5 \. [: hC=[1 1 1 2;
9 a. i9 F1 j- F' Q. \5 [   1 -1 0 0;: W/ ~  x0 Y3 C" e6 v1 M$ Q1 F! \
   0 1 0 0];%%  A第三行与C第一行一样;B第三行与D第一行一样+ J$ k; B, ]; i( O8 G
D=[-1 0;1 F7 t) [& D" [: \
    0 0;
2 R1 h  T$ I. M   -1 0];
  M( `( ?+ s$ Q/ z5 vN=500;T=5;a=0;h=(T-a)/N;L=length(a:h:T);    %%步长
6 d; @8 u. u4 _. GX=zeros(4,L);Y=zeros(3,L);U=zeros(2,L);       %%初始化; u- i% f- {! x, s
%%u1=sinx;
' y) ^% i  M( h* o. W%%u2=cosx;
# k, m4 g9 \5 ]1 A
[Ad,Bd,Cd,Dd]=c2dm(A,B,C,D,h);       %%%状态方程离散化
* Y3 E1 A+ ~& A0 Lfor i=1; D& `; R$ J7 O' U
    U(1,i)=sin(h*(i-1));, p$ s4 D  }- j* d" ^
    U(2,i)=cos(h*(i-1));
& ]: o/ _+ V5 Z. O3 f, Hend      %%%  输入+ K) y% K* k$ z$ w1 n+ U/ T7 H/ E
for j=10 M7 G4 A. ?: b9 H2 k: d- [
    Y(:,j)=Cd*X(:,j)+Dd*U(:,j);# R; Y0 C. h  A! ?. h
    X(:,j+1)=Ad*X(:,j)+Bd*U(:,j);/ T. r" H% g6 L. T& N
end        %%%  求离散化后的状态方程
  A0 g: }/ ^: |) ?' a8 r3 G" Kplot(X(3,);, {1 n/ u) i& Z7 E! q4 X; X+ ~
hold on;
( ~( Z* J  c% ^8 Zplot(Y(1,)4 u) `' z7 E8 q% [" n/ t
1 N$ y( ]% ^1 ~8 R

# W. @0 j/ v6 R按道理两个曲线应该重合,结果(附件)却不重合,这是什么原因?
3 q- B8 r1 m: A" I8 p & x( _1 Z8 B1 Q; w1 d$ z; Q

作者: Uifhjvv    时间: 2020-12-25 11:13
从你的C矩阵看,你的Y(1)和X(3)可不相等哦,这两个曲线不重合很正常。
作者: 小小鲁班    时间: 2020-12-25 13:14
楼主你的代码我跑出来报这个错误  U" F8 ^0 m& F) W0 B+ f

201605k82858yrmtdd9z20.png (27.2 KB, 下载次数: 6)

201605k82858yrmtdd9z20.png

作者: shuddkk    时间: 2020-12-28 11:21
来学习一下




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2