ss

指定状态空间模型或者将线性时不变系统转成状态空间

语法

ss

sys = ss(a,b,c,d)

sys = ss(a,b,c,d,Ts)

sys = ss(d)

sys = ss(a,b,c,d,ltisys)

sys_ss = ss(sys)

说明

ss用来创建实数或复数的状态空间模型,或者将传递函数和零极点增益模型转为状态空间模型

创建状态空间模型

sys = ss(a,b,c,d) 创建连续的状态空间模型

x'=Ax+Bu

y=Cx+Du

这个模型具有Nx个状态,Ny个输出,Nu个输入

a是Nx*Nx的矩阵

b是Nx-by-Nu矩阵

c 是Ny-by-Nx矩阵

d 是 Ny-by-Nu 矩阵

将d设为标量0,来将矩阵D设置为0,更多信息见设置为状态空间模型matlab(state-space models),

sys = ss(a,b,c,d,Ts) 创建离散时间模型

x(n+1)=Ax(n)+Bu(n)

y(n)=Cx(n)+Du(n)

采样时间单位Ts为S,设置Ts = -1 or Ts = []将不指定采样时间

sys = ss(d) 指定一个静态增益矩阵D 等同于表达式

sys = ss([],[],[],d)

sys =

ss(a,b,c,d,ltisys)创建了拥有来源于线性时不变模型ltisys的一般线性时不变属性的状态空间模型(包括了采样时间).

所有上述语法后面都可以跟随其属性名称 属性值

所有的属性对指定了模型的特殊的LTI性质,例如在模型中输入的名称或者一些注释,更多细节见例1.表达式如下:

sys = ss(a,b,c,d,'Property1',Value1,...,'PropertyN',ValueN)

等同于sys = ss(a,b,c,d)

set(sys,'Property1',Value1,...,'PropertyN',ValueN)

转换为状态空间模型

sys_ss = ss(sys) 将任意的TF or ZPK 模型系统转换为状态空间模型,输出_ss is 等同于状态空间模型(SS

object).

sys_ss = ss(sys,'minimal')为状态空间的最小实现 等同于sys_ss

= minreal(ss(sys))

注意状态空间转换在单输入单输出(SIS0)的情况下并不唯一,在多输入输出(MIMO)中并不能保证状态空间的最小实现,更多信息,参照 Caution

About Model Conversions.

算法

对于 TF to SS 模型转换,

ss(sys_tf) 返回一个修改后的可控规范化的形式,此算法类似于

tf2ss,但是可以进一步重新调节状态向量以压缩矩阵A数值 ,并改进后来的数值计算。

对于 ZPK to SS 模型转换

ss(sys_zpk) uses direct form II structures, as

defined in signal processing texts. See Discrete-Time Signal

Processing by Oppenheim and Schafer for details.

For example, in the following code, A and sys.a differ by

对角线状态转换:

n=[1 1];

d=[1 1 10];

[A,B,C,D]=tf2ss(n,d);

sys=ss(tf(n,d));

A

A =

-1 -10

1 0

sys.a

ans =

-1 -5

2 0

例子

例一

命令sys = ss(A,B,C,D,0.05,'statename',{'position'

'velocity'},...

'inputname','force',...

'notes','Created 10/15/07')

用A,B,C,D 和采样时间0.05 s创建离散的时间模型,This

model has two states labeled position and velocity, and one input

labeled force ( A,B,C,D维数与一致数值的状态和输入一致). Finally, a note is

attached with the date of creation of the model.

Example 2

Compute a state-space realization of the transfer function

by typing

H = [tf([1 1],[1 3 3 2]) ; tf([1 0 3],[1 1 1])];

sys = ss(H);

size(sys)

State-space model with 2 outputs, 1 input, and 5 states.

The number of states is equal to the cumulative order of the

SISO entries of H(s).

To obtain a minimal realization of H(s), type

sys = ss(H,'min');

size(sys)

State-space model with 2 outputs, 1 input, and 3 states.

The resulting state-space model has order of three, which is the

minimum number of states needed to represent H(s). You can see this

number of states by factoring H(s) as the product of a first-order

system with a second-order system.

另Tf函数用来建立实部或复数传递函数模型或将状态方程、或零级增益模型转化成传递函数形式。

sys =

tf(num,den)命令可以建立一个传递函数,其中分子和分母分别为num和den。输出sys是储存传递函数数据的传递函数目标。

单输入单输出情况下,num和den是s的递减幂级数构成的实数或复数行向量。这两个向量并不要求维数相同。如h = tf([1

0],1)就明确定义了纯导数形式h(s)=s。

若要构建多输入多输出传递函数,要分别定义每一个单输入单输出系统的端口的分子与分母。这种情况下:Num和den是单元数组,其中行数等于输出数,列数等于输入数; 行向量num{i,j}和den{i,j}定义了从输入j到输出i的传递函数的分子与分母。如果此多输入多输出系统的传递函数中所有的单输入单输出端口有相同的分母,可以设置den为代表这个通用分母的行向量。

sys = tf(num,den,Ts)可以创建一个采样时间为Ts的离散时间传递函数。设置Ts = -1 or Ts =

[]将不指定采样时间。有关num和den的设置与连续系统一样。

sys = tf(M)可以创建一个静态增益M(标量或矩阵形式)。

sys =

tf(num,den,ltisys)创建一个拥有来源于线性时不变模型ltisys的一般线性时不变属性的传递函数。有很多种方法可以创建线性时不变传递函数的数组。前面介绍的语法可以通过属性名,属性值来进行。

'Property',Value

每一对上述定义都明确指定模型的一个线性时不变属性,如输入名或传递函数变量。

sys =

tf(num,den,'Property1',Value1,...,'PropertyN',ValueN)是下述语句的简写形式

sys = tf(num,den)

set(sys,'Property1',Value1,...,'PropertyN',ValueN)

作为s或z的有理表达式的传递函数 可以应用实数或复数有理表达式来创建一个传递函数模型。

s = tf('s')用拉普拉斯算符s的有理表达式来创建传递函数;

z = tf('z',Ts)用离散时间变量z的有理表达式创建采样时间为Ts的传递函数模型。

一旦你定义了s或z变量,就可以直接将传递函数模型定义为上述变量的有理表达式。

如何转化为传递函数

tfsys =

tf(sys)可以将任意一个SS模型或ZPK线性时不变模型转化成传递函数的形式。输出tfsys便是sys的传递函数。缺省状态下tf用0作为分子来转化一个状态空间模型到一个传递函数形式。

tfsys =

tf(sys,'inv')用反演公式来得到分子。这种算法较快,但是在s=0的高阶模型中精度较差。

算例1 创建一两输出单输入传递函数

其中输入为电流,输出为扭矩和角速度。 num = {[1 1] ; 1}

den = {[1 2 2] ; [1 0]}

H = tf(num,den,'inputn','current','outputn',{'torque' 'ang.

velocity'},'variable','p')

从输入电流到输出扭矩的传递函数为(P+1)/(P^2+2P+2),到输出角速度的传递函数为1/P。在设置中设置'variable'属性为p会使得结果以p的表达式来显示。

算例2

用有理表达式来创建单输入单输出传递函数模型

s = tf('s'); H = s/(s^2 + 2*s +10); 这样会与h = tf([1 0],[1 2 10])得到相同的传递函数。

算例3 创建离散多输入多输出传递函数模型

分母相同d(z)=z+0.3,采样时间0.2s。

nums = {1 [1 0];[-1 2] 3}

Ts = 0.2

H = tf(nums,[1

0.3],Ts) % 注意此处行向量代表分母d(z)

算例4

计算下列状态空间模型的传递函数

sys = ss([-2 -1;1 -2],[1 1;2 -1],[1 0],[0

1]) tf(sys) 从输入1到输出的传递函数为 s s^2 + 4 s + 5

从输入2到输出的传递函数为 s^2 + 5 s + 8 s^2 + 4 s + 5

算例5

可以应用for循环来定义一个10*1的单输入单输出传递函数模型

s = tf('s')

H =

tf(zeros(1,1,10));

for

k=1:10,

H(:,:,k) =

k/(s^2+s+k);

end

此处率先为传递函数矩阵分配了一个空间。

matlab中ss函数_[转载]matlab ss函数 tf函数相关推荐

  1. matlab中的timer模块,[转载]Matlab中Timer的使用

    Matlab中Timer的使用 鉴于Matlab中缺乏多线程机制,使用Timer无疑是一个很重要的工具,Matlab中Timer是一个Java对象. (1)Timer 的定义 t=timer(); 设 ...

  2. matlab中stract用法_求matlab中strcat用法

    MATLAB概述 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言 ...

  3. matlab中图像映射实例,[转载]Matlab实现多种图像配准(转)

    本文讲述如何利用Matlab Image Processing Toolbox中的图像配准工具实现线性正投影.仿射.投影.多项式.分段线性.局部加权平均配准的过程. 实验平台 X86 PC,Windo ...

  4. matlab修改图像分辨率_[转载]Matlab图片保存指定分辨率(图片dpi设置)

    登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 haobang008 于 2016-7-19 14:38 编辑 先附上效果对比,第一张图是300dpi设置 ...

  5. matlab绘制庞加莱截面_[转载]matlab画的相图和庞加莱截面图

    昨天刚知道什么是相图和庞加莱截面,今天用matlab实现,给我的感觉虽然能画出图但理论基础还差得远.以前我是用vc++编程,现在发现用matlab编程真是太简单了,不过简单归简单就是效率有点低与vc+ ...

  6. matlab中循环读入文件内容,[转载]Matlab利用load循环读入数据文件

    Contents 1.load循环读入.mat 2.1.fprintf写出数据txt 2.2.load循环读入txt % 利用load循环读取文件 % 把文件的文件名按一定的规律命名,假如:f001. ...

  7. matlab中怎么表示概率,[转载]matlab中的概率函数

    y=pdf(dist,x,p1,p2,-):返回以p1,p2,-为参数的m行n列dist分布概率函数(分布率或密度函数)在x处的值.dist是表示分布类型的字符串,可适用的分布类型类似于random. ...

  8. Java显示文件层级目录函数_[转载]文件和目录复制函数

    评论内容较长,点击标题查看 --lees vloerlamp 评论内容较长,点击标题查看 --http://www.pinsaguelbc.fr I was going through a big l ...

  9. matlab子函数调用变量,matlab中,怎么样用function自定义函数调用另一个函数名为输入?...

    点击查看matlab中,怎么样用function自定义函数调用另一个函数名为输入?具体信息 答:test定义两个参数,一个是函数,一个是函数的变量. function [z]=test11(funna ...

最新文章

  1. 细节决定成败--打电话和发邮件的细节
  2. Java学习笔记(13)
  3. 1000+高质量数据集免费高速下载!一个好用又丰富的AI公开数据集平台
  4. 关于链表的面试题(持续更新)
  5. oracle 触发器 merge,[OT]函数|过程|触发器|插入(insert)|修改(Merge)
  6. HighChat动态绑定数据 数据后台绑定(三)
  7. [转载]Shell编程中的数组定义、遍历
  8. LoadingCache源码剖析之缓存加载实现
  9. oracle创建哈希索引,ORACLE10g新特性——全局HASH分区索引
  10. 蜂鸣器驱动电路中二极管的作用
  11. 2018/03/28更新 日记
  12. 模块化笔记软件 Anytype 综合评测
  13. PPT转图片(Java)
  14. 第八届山东省ACM大学生程序设计竞赛总结
  15. C++播放wav音乐和音效
  16. 游戏的分类及相关热点
  17. 江苏电信iFree卡再升级黄金版:全国无漫游,流量不清零
  18. 怎么在计算机中搜索可移动硬盘,电脑如何识别移动硬盘
  19. Linux常用指令(详解)
  20. 一起Talk Android吧(第五百零七回:图片滤镜ImageFilterView)

热门文章

  1. 《我们一无所有》读后感2
  2. java培训学习之Java桌面软件开发
  3. 计算机英语unite4翻译,Unit 2 (大学英语读写译4课文翻译).doc
  4. 弄懂这八个神经网络架构,深度学习才算入门!
  5. 聊一聊深度学习以往那些关于CNN和RNN的事
  6. weblogic 10.3.6.0 安装B25A补丁(170718)
  7. 计算机毕业设计ssm基于用户激励的图书管理系统fx8il系统+程序+源码+lw+远程部署
  8. 应用实例:照片识别 机器学习基础(10)
  9. 使用Echarts踩过的坑
  10. Python:第3章选择结构 课后习题