我是靠谱客的博主 激情煎饼,最近开发中收集的这篇文章主要介绍MATLAB命令备忘,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.延迟函数pade();

下图为带有延迟环节的一节惯性系统

clc;clear all;close all;
nump=[0,0.179];
denp=[6,1];
Gp=tf(nump,denp);
[numd,dend]=pade(0.6,5);%纯延迟部分使用5阶pade近似
G=Gp*tf(numd,dend);%重构近似传函,得到G(s)
[num,den]=tfdata(G,'v');%提取近似传函的分子和分母多项式系数向量
[A,B,C,D]=tf2ss(num,den)%转换为状态空间模型

 

2.把系数数组转换成符号多项式:poly2sym();
  pretty()将有理分式写成上下形式。

例:

syms x;
a=poly2sym([3 5 4],x)
 
a =
 
3*x^2 + 5*x + 4
 
>> pretty(a)
   2
3 x  + 5 x + 4
 

3.将符号多项式的系数从高阶到低阶提取出来

例:

syms x;
b=x^3+2*x^2-4*x-9
sym2poly(b)
 
b =
 
x^3 + 2*x^2 - 4*x - 9
 

ans =

       1              2             -4             -9  

4.将用tf()函数输出的传递函数写成符号形式

例:

num=[1];den=[1 1 0];
G=tf(num,den);
[num1,den1]=tfdata(G,'v');   %'v'的作用是提取传递函数的分子和分母系数。如果没有'v'则提取的是元胞格式,需用num1{1}提                                                    ...取。
poly2sym(num1)/poly2sym(den1)
 
ans =
 
1/(x^2 + x)

5.ilaplace()拉普拉斯逆变换,要求()内是符号形式。故由G=tf(num,den)生成的G,使用ilaplace(G)不能完成。

syms s;
num=[0.1 0.2 1];
den=[1 1 1 0];
g=poly2sym(num,s)/poly2sym(den,s)
g_t=ilaplace(g)
pretty(g_t)
 
g =
 
(s^2/10 + s/5 + 1)/(s^3 + s^2 + s)
 
 
g_t =
 
1 - (9*exp(-t/2)*(cos((3^(1/2)*t)/2) + (7*3^(1/2)*sin((3^(1/2)*t)/2))/27))/10
 
               /                               / sqrt(3) t  
               |                    sqrt(3) sin| --------- | 7 |
       /   t |    / sqrt(3) t                   2     /   |
    exp| - - | | cos| --------- | + -------------------------- | 9
          2 /         2     /               27             /
1 - --------------------------------------------------------------
                                  10

模糊推理规则列表函数

a = addrule(a,ruleList)

其中 ruleList 是一个矩阵,每一行为一条规则,他们之间是 ALSO 的关系。

假定该 FIS 有 N 个输入和 M 个输出,则每行有 N+M+2 个元素,前 N 个数分别表示 N 个输入变量的某一个语言名称的 index,没有的话用 0 表示,后面的 M 个数也类似,最后两个分别表示该条规则的权重和各个条件的关系,1 表示 AND,2 表示 OR。

例如,当“输入1” 为“名称1” 和 “输入2” 为“名称3” 时,输出为 “ 输出1” 的“状态2”,则写为:

[1 3 2 1 1]

writefis(a,'fuzzpid');        将模糊推理网络a以文件名fuzzpid保存,格式是:fis。

a=readfis('fuzzpid');        将fuzzpid.fis读取到工作区间,以网络a表示

plotfmf(a,'input',1);           输出 网络a 输入1 的隶属度函数图形

plotmf(a,'output',1);         输出 网络a 输出1 的隶属度函数图形

addrule('list');

最后

以上就是激情煎饼为你收集整理的MATLAB命令备忘的全部内容,希望文章能够帮你解决MATLAB命令备忘所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部