matlab中tf函数是什么,[转载]MATLAB中传递函数TF命令的有关介绍
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中tf函数是什么,[转载]MATLAB中传递函数TF命令的有关介绍相关推荐
- 在matlab中xt( ),编译matlab的s函数(compiling s-functions for matlab)
编译matlab的s函数(compiling s-functions for matlab) 我一直在尝试使用我的c ++代码在matlab中创建一个s函数块.我正在使用以下mexopts.bat文件 ...
- 从Python中readline()函数读取的一行内容中去掉换行符\n
从Python中readline()函数读取的一行内容中含有换行符\n,很多时候我们需要处理不含有换行符的字符串,此时就要去掉换行符\n. 方法是使用strip()函数. 例子如下: file = o ...
- matlab中imresize函数的用法,为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同
为何 MATLAB imresize 函数和 OpenCV resize 函数结果不同?今年 4 月,我在依照 MATLAB 代码自己写一个卷积神经网络 C++ 实现的过程中,就发现了这个问题,不过那 ...
- MATLAB保存数据为dat格式,[转载] Matlab中的数据以.txt或.dat格式保存
具体命令是: 使用save * .txt -asciix x是一个变量 *. txt是文件名,该文件存储在当前工作目录中,然后在打开后可以将其打开,数据可以以指数形式保存. 看下面的例子: a = [ ...
- matlab中load函数是什么意思,MATLAB中load函数的用法
转载自https://ww2.mathworks.cn/help/matlab/ref/load.html load 将文件变量加载到工作区中全页折叠 语法load(filename)load(fil ...
- matlab中reshape函数按行转换,Matlab中reshape函数的使用
reshape把指定的矩阵改变颜色,但是元素个数不变, 例如matlab中fgetl函数,行向量: a = [1 2 3 4 5 6] 执行以下段落把它变成3行2列: b = reshape(a,3, ...
- matlab中dmodce函数使用报错,matlab中randi函数
④矩形脉冲信号 矩形脉冲信号在 MATLAB 中用 rectpuls 函数表示,其调用形式为 ft...(1,n); >>xn3=randi(n,1,n); >>subplot ...
- matlab中imadjust函数的用法,浅析matlab中imadjust函数
imadjust imadjust是一个计算机函数,该函数用于调节灰度图像的亮度或彩色图像的颜色矩阵.在matlab的命令窗口中键入: doc imadjust或者help imadjust即可获得该 ...
- python中add函数_如何使用python中的add函数?
之前向大家介绍过python中的求和函数sum函数,numpy中的sum函数,对于数组可以指定维度进行相加.numpy中还有另一种求和运算方法,即add函数.add函数不仅作用于numpy中加法运算, ...
最新文章
- 3D中的OBJ文件格式详解(转载)
- 发现个很有意思的angularjs +grunt 复习项目
- crm---本项目的权限控制模式
- Linux系统软件信息内核,系统,目录,防火墙等
- 深入理解PHP中赋值与引用
- mfp 服务器控制中心,小身材大作用 固网USB打印服务器评测
- Leetcode题库 144.二叉树的前序遍历(递归 C实现)
- mac solr mysql 配置文件_Solr配置文件浅析
- 【Linux/Ubuntu学习6】unbuntu 下载android源码
- POJ - 2485(最小生成树.prime)
- C++ Copy Elision
- Google 和 bing 都无法替代的10大深网搜索引擎
- nginx压缩静态文件
- android第三方登录appid,Android 第三方登录之支付宝登录
- iOS13 iPadOS 获取UserAgent的问题
- 迁移学习基础知识整理
- 利用matlab中的函数regress进行线性回归分析
- 如何设置窗口的标题栏里的标题【转】
- 用WWW::Mechanize来写twiki
- Git之一次Push的回滚之旅