状态空间离散化matlab,状态空间方程离散化的matlab处理
之前已经简单了解过状态空间方程的离散化方法,对于二阶等效电路模型来讲,由于其本身各个方程之间不是耦合的,所以离散化计算过程并不是十分复杂,很容易就可以得到其状态空间方程的离散形式。
但是对于某些状态空间方程,比如圆柱电池的二状态热模型,由于方程本身是耦合的,所以无法直接通过公式推导就得到其离散化形式,这时就需要求助于matlab。
对于这样一个连续方程:
$$ dfrac{dx}{dt}=Ax+Bu $$
通过[G,H]=c2d(F,G,ts);,便可以将其转化为离散形式,其中时间步长为ts:
$$ x_{k+1}=Gx_{k}+Hu_{k} $$
G和H为A、B指定时间步长的离散化结果。
c2d函数过程实际上为之前“电池模型的状态空间方程”一文中介绍的状态空间方程的直接离散化方法,其具体的使用介绍参考Mathworks文档。具体格式如下:1
2
3
4
5sysd = c2d(sys,Ts)
sysd = c2d(sys,Ts,method)
sysd = c2d(sys,Ts,opts)
[sysd,G] = c2d(sys,Ts,method)
[sysd,G] = c2d(sys,Ts,opts)
其中method缺省值是零阶保持器。除了零阶保持器,还有一阶保持器、Tustin等等方法可以选择。但是对于Tustin尚存在一些疑问,因为这种近似方法涉及$x_{k+1}$的值。是不是如果我们并不关注状态值本身的话,只关心输出值,可以将状态方程和输出方程一起使用Tustin这种method离散化。而如果我们关注的是状态值$x_{k+1}$本身,而不是输出值$y_{k}$的话,那就只能使用零阶保持器。(疑问)
举个例子
$$ x’=begin{bmatrix}
2 & -1 & -1 \
0 & -1 & 0 \
0 & 2 & 1
end{bmatrix}x+begin{bmatrix}
7 \
2 \
3
end{bmatrix}u$$
$$ y=begin{bmatrix} 1&2&4end{bmatrix}x $$
将该连续方程离散化:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70>> A=[2 -1 -1; 0 -1 0;0 2 1];
>> B=[7 2 3]';
>> C=[1 2 4];
>> D=0;
>> [G1,H1,Cd1,Dd1]=c2dm(A,B,C,D,0.1,'zoh')
G1 =
1.2214 -0.1162 -0.1162
0 0.9048 0
0 0.2003 1.1052
H1 =
0.7473
0.1903
0.3355
Cd1 =
1 2 4
Dd1 =
0
>> [G2,H2,Cd2,Dd2]=c2dm(A,B,C,D,0.1,'tustin')
G2 =
1.2222 -0.1170 -0.1170
0 0.9048 0
0 0.2005 1.1053
H2 =
0.7485
0.1905
0.3358
Cd2 =
1.1111 2.2473 4.1520
Dd2 =
1.2364
>> [G,H]=c2d(A,B,0.1)
G =
1.2214 -0.1162 -0.1162
0 0.9048 0
0 0.2003 1.1052
H =
0.7473
0.1903
0.3355
>>
当然离散系统与其对应的连续系统是存在误差的,时间步长ts越大,误差越大。如果时间步长取得过长,则需要检验一下离散化误差是否再接受范围内。
状态空间离散化matlab,状态空间方程离散化的matlab处理相关推荐
- matlab复数方程的根,matlab解超越方程的复数根
本帖最后由 zhaocb 于 2015-7-18 16:22 编辑 各位大神,我需要解一个超越方程,'0=(r^2+(50*m*(2*pi*k*C)^2))*tanh(r*0.04)+i*r*(50- ...
- matlab二元方程区间求解,matlab求解二元方程组
陈星似 魔法师 matlab求解二元方程组 悬赏分:0 提问时间:2010-11-30 23:29回答数:1浏览量:241问题指向:全国 t1=(q1+q2+q3+q4-q5-q6-q7)/g1/c1 ...
- 基于matlab弹道方程代码,基于Matlab/Simulink的弹丸外弹道6自由度运动仿真
第 23卷 第 4期 Vol. 23 No. 4 重 庆 工 学 院 学 报 (自然科学 ) Journal of Chongqing Institute of Technology(Natural ...
- matlab悬链线方程的求解,Matlab建模教程-变分法简介.doc
Matlab建模教程-变分法简介 §1 变分法简介 作为数学的一个分支,变分法的诞生,是现实世界许多现象不断探索的结果,人们可以追寻到这样一个轨迹: 约翰·伯努利(Johann Bernoulli,1 ...
- matlab解方程的程序,matlab算法程序解方程.ppt
<matlab算法程序解方程.ppt>由会员分享,可在线阅读,更多相关<matlab算法程序解方程.ppt(10页珍藏版)>请在人人文库网上搜索. 1.一 般 的 代 数 方 ...
- matlab复数方程的根,matlab解一元三次方程,得到的都是复数根。
对于你昨天的那个方程,是典型的非线性方程,我修改了程序,用fsolve函数来解,程序在下面.先新建一个m文件,再把以下全部程序直接复制进m文件中,运行即可,不要在主窗口中运行,用m文件来写程序,比直接 ...
- matlab曲面方程,如何用Matlab拟合数据求解曲面方程 - 仿真模拟 - 小木虫 - 学术 科研 互动社区...
我不知道你的方程,我粗略得到一个R2 = 0.99以上的方程,代码及结果如下 高次多项式拟合代码 : load shuju.mat B=fit([Dotx,Dotx],Dotz,'poly43') 结 ...
- matlab解方程 x-sinx,用matlab解方程:
0. 0. 2.284102297393826 0. 5.500674981700299 0. 8.639254626179064 0. 11.78097785939476 0. 14.9225648 ...
- matlab求高阶微分的命令,matlab求解高阶微分方程辅导
同学你好,我们可以辅导matlab高阶微分方程.关于matlab解决高阶微分方程的知识点如下,如果同学感觉还死有不明白的地方,可以直接联系我们,安排专业老师进行一对一授课讲解. 微分方程(Differ ...
- 【离散系统】传递函数和状态空间方程离散化
本文如有错误,恳请指正. 目录 离散系统 采样控制系统 数字控制系统 信号采样 采样定理(香农定理) 信号保持-零阶保持器 Z变换 Z 变换方法 级数求和法 部分分式法 基本定理 Z反变换 Z反变换方 ...
最新文章
- 用C语言解“两个数的简单计算器”题
- 面试题之在字符串中查找出第一个只出现一次的字符的位置
- SSH暴力破解IP大曝光
- 学习速率 learning rate
- Lambda表达式替代匿名方法
- java阻塞队列小结
- 网络基础知识 快速计算子网掩码的2种方法
- Eigen--Matrix
- 图像平均池化 利用pytorch对图像进行池化
- 【目标跟踪】基于matlab Kalman滤波目标跟踪【含Matlab源码 388期】
- 图片去水印的原理_去水印简单操作:图图去水印
- 安装GitExtentions KDiff3已配置为合并工具,kdiff3的路径未配置
- win怎么更换计算机密码错误,win10系统更改开机密码提示“Windows不能更改密码”的解决方法...
- NUC980开源项目38-4g上网
- 北京博奥智源,发布ERP系统之财务管理及成本核算模块开发功能
- ubuntu(服务端)+windows(客户端)搭建iscsi
- Kali Linux渗透测试——无线渗透
- YOLOV5的FPS计算问题
- 在外企上班是一种什么体验?附国内热门外企公司名单!
- oracle 2019 ocp,关于Oracle数据库管理2019 OCP专家认证
热门文章
- Java ee和Java se的区别
- C#list转JSON(Newtonsoft.Json.dll)(仅做记录)
- JavaScript表单基本验证
- python点云数据处理_python处理点云数据并生成三维点云模型
- java 调用 easypr_EasyPR-Java项目maven版本所需jar包
- 菲氏微积分与Keisler微积分:两个不同时代的微积分教材
- (学习笔记)图像处理——同态滤波
- webstorm主题网址+使用方法
- SwitchHost常见问题解决
- python项目实例-实例分享 | 4个Python实战项目(一)