matlab笔记


基本运算

次方 ^

三角函数 sin(45*pi/180)

开根号 sqrt

指数函数 exp(x)

对数函数 log(2.7183)

查看工作空间的变量 who whos

清除工作空间的变量 clear (全清)或 clear 变量(清一个)

清除命令窗口的显示内容 clc

求多项式的根 roots(p)//p=[多项式的系数]

解线性方程组 x=inv(a)*b

定义符号变量 syms

求导 diff(函数) //一阶导数 diff(fun,n) //n阶导数 diff(fun,change,n) //n阶偏导数

积分 quad(‘fun’,a,b)//fun为函数,ab为区间

quad1()

sym的用法

①S = sym(A) //将非符号对象(如,数字,表达式,变量等)A转换为符号对象,并存储在符号变量S中。

②x = sym(‘x’) //创建符号变量x,其名字是’x’。示例:alpha = sym(‘alpha’)。

solve的用法

①对方程的求解:syms x; eq=x^2+2*x+1; s=solve(eq,x);

②对 方程组的求解:syms x y z;eq1=2x+3y-z-2;eq2=8x+2y+3z-4;eq3=45x+3y+9z-23;s=solve(eq1,eq2,eq3);s.x,s.y,s.z;(或者[x,y,z]=solve(eq1,eq2,eq3))

多项式曲线拟合 polyfit(a,b,c) //x,y,拟合次数 结果返回c次拟合多项式系数,从高到低依次存放

求值函数 y=polyval(p1,x)//经过p1拟合后,x对应的y值

plot函数(用来绘制二维图像)plot(x,y,linespec,x1,y1,linespec1,x2,y2,linespec2)

预定义的变量:

①eps MATLAB定义的正的极小值=2.2204e-16

②inf 无穷大

③NaN 非数,0/0,∞/∞

复数及其运算:

①real(z) z的实部

②imag(z) z的虚部

③angle(z) z的角度

④abs(z) z的幅值(绝对值)//得到ASCII值

矩阵和数组:

①创建行向量:[] (,和空格都可分割) ||x=start:increment:end(若increment为1,可省略) || x=linspace(x1,x2,n)//间隔为(x2-x1)/(n-1) 默认100||x=logspace(x1,x2,n)//10^x1~10^x2,生成n个元素(默认50)

②创建列向量:[] (;分割) //‘表示矩阵的转置

③ones(x,y)生成全一矩阵,zeros(x,y)生成全0矩阵

④reshape用法:reshape(a,x,y)

⑤修改数组a([2 5])=[1 1] a(:)=a:b //修改的元素数目必须相同

size函数返回变量的大小size(a)

length函数返回变量数组最大维数length(a)

注:数组:代表所有

双下标到单下标的转换 sub2ind

单下标到双下标的转换 ind2sub

多维数组(行,列,页)

legend(‘函数’)标注函数

矩阵平方.^

rem(A,B)//求余,A除以B求余

find //发现函数

class或ischar指令:可以用来判断一个变量的类型或他是否为字符串变量

ASCII内码与字符串形式的转换:double char

清除字符串尾部空格 deblank

字符串比较 strcmp指令

魔方矩阵 magic

图像处理

程序设计

输入 input

输出 disp ||同时输出字符串和数字 disp([‘’,num2str()])

把数值转换为字符串num2str(),使用fprintf或disp进行输出

函数的暂停 pause

函数取整 fix(a/b)

脚本

函数 function [输出 实参表]=fun_name(输入实参表)

函数调用中用两个 预定义变量nargin和nargout分别记录调用该函数时的输入实参和 输出实参的个数

全局变量 global

在数学中的应用

用对角阵左乘一个矩阵,就是用对角阵的对角元分别乘这个矩阵的对应各行;

用对角阵右乘一个矩阵,就是用对角阵的对角元分别乘这个矩阵的对应各列。

左除\ a\b表示矩阵a的逆乘以b

右除/ a/b表示矩阵a乘以矩阵b的逆

点左除.\ 矩阵b中的每个元素除以矩阵a的每个元素

点右除./ 矩阵a中的每个元素除以矩阵b的每个元素

求解线性方程组 其矩阵表示形式为Ax=b 则x=inv(A)*b

求解多项式的根 roots(p)

已知多项式的根,求解多项式 poly()

多项式的乘法 conv(a,b)

多项式的除法 [Q,R]=deconv(B,A) //Q是商,R是余数,有B=conv(A,Q)+R

多项式的导数 polyder()

linspace(a,b,x) //产生一个矢量,x为向量个数

inline()内联函数

矩阵排序 [Y,I]=sort(A,dim) //dim=1,列排序,dim=2,行排序,Y是排序后的矩阵,I记录Y中元素在 A中的位置

Simulink仿真

PID的封装

理想PID模型(modal)

①Create subsystem

②Mask-creat mask

​ icon //disp(‘PID’);plot([10 20 30 40],[10 20 10 15])

​ parameters pid

look mask

PID参数调整方法

1.ZN法

2.稳定边界法(这个简单,起码现在的我可以看懂)

step1:将Ti=inf,Td=0,调节Kp,使响应等幅振荡,记录此时Kp,令Km=Kp,此时周期为Tu

step2:按表设定PID初值,仿真

matlab在控制系统仿真中的应用

传递函数模型(TF模型)

conv(a,b) //两个函数的卷积

零极点模型(ZPK模型)

roots() //求解多项式的 根

状态空间模型(SS模型)

频率响应数据模型 (FRD模型)

离散时间模型


文章作者: Lin Hai
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Lin Hai !
  目录
//