180 likes | 337 Views
MATLAB — Experiments. Master Degree Students Oct, 2006. 基本命令的使用. 变量名 —— 字母打头,大小写区分、数字、下画线等, Xa,xa,xA,X1,x1,,X_1,x_1, … who —— 查看内存变量 whos —— 查看内存变量占用的空间 clear —— 清除内存变量、指定或全部 clc —— 清空命令窗口 clf —— 清空图形窗口 hold on (off) —— 保持图形 grid on (off) —— 图形设置格线. 矩阵运算.
E N D
MATLAB—Experiments Master Degree Students Oct, 2006
基本命令的使用 • 变量名——字母打头,大小写区分、数字、下画线等,Xa,xa,xA,X1,x1,,X_1,x_1, … • who——查看内存变量 • whos ——查看内存变量占用的空间 • clear ——清除内存变量、指定或全部 • clc——清空命令窗口 • clf——清空图形窗口 • hold on (off)——保持图形 • grid on (off)——图形设置格线
矩阵运算 • 输入矩阵,A=[1 2 3;4 5 6;7 8 9] • B=[1;2 ;3] • 矩阵乘:AB=A*B • 行列式:DA=det(A) • 特征根:EA=eigG(A) • 秩:RA=rank(A) • 逆:IA=inv(A) • 特征方程:PA=poly(A) • 特征多项式:poly2str(PA,’s’) • 求特征多项式根:roots(PA) • 奇异值、条件数,svd(A),cond(A)
典型矩阵(特殊矩阵) • 单位矩阵,eye(3,3), eye(3,5) • 全1矩阵,ones(3,5) • 全零矩阵,zeros(5,3) • 对角矩阵,diag([1,2,-10,6]) • 读取矩阵的维数,[row,col]=size(A) • 随机数矩阵,rand(3), 3*3, 取值在[0,1] • randn(3),零均值,方差=1,标准差=1
绘制函数曲线 • Y=‘1-cos(3*t)*sin(t)*exp(-2*t)’ • ezplot(Y,[0,pi]) ——方法1、字符串 • Y=‘1+sin(3*t)*exp(-t)’ • ezplot(y,[0,pi]) • t=0:0.1:2*pi; ——方法2 • Y=1+sin(3*t).*exp(-t);——点乘、数学表达式 • plot(t,y) • hold on • plot(t,ones(size(y)),’k’)
双坐标图形、多子图形 • dx=0.1; X=0:dx:4; • Y1=x.*sin(x); Y2=cumsum(y1)*dx; • plotyy(x,Y1,x,Y2)——双坐标图形 • subplot(2,2,1),plot(x,y1);axis([0,4,-5,5]) • subplot(2,2,2), plot(x,y2);axis([0,4,0,3]) • subplot(‘position’,[0.2,0.05,0.6,0.45]) • plot(x,y2);axis([0,4,0,3])——多子图形
传递函数 • G(s)=(s+2)/{s(s+1)(s+3)}=(s+2)/(s^3+4s^2+3s) • G=tf([1 2],[1 4 3 0])——多项式 • G1=zpk([-2],[0 -1 -3],[1])——零点、极点、增益 • step(G)——阶跃响应 • impulse(G)——脉冲响应 • rlocus(G)——根轨迹图 • bode(G)——伯特图 • nyquist(G)——Nyquist 图
典型环节 • G=1/(TS+1)——惯性环节 • STEP(G)——改变T查看曲线变化,过度过程时间(响应时间) • IMPULSE(G)——脉冲响应 • G=W^2/(S^2+2FWS+W^2)——典型二阶系统,分别改变F和W,查看曲线变化,F=0.5,W=1; F=0.2,W=1;F=0.2,W=2 • IMPULSE(G) ——脉冲响应
状态空间描述(与传递函数转换) • 传递函数转换为状态空间表达式 • G=tf([1 2],[1 2 3 4]) ——传递函数 • My_sys=ss(G) • step(My_sys)——阶跃响应(脉冲、根轨迹等) • 读入矩阵(A,B,C,D) • [A,B,C,D]=ssdata(My_sys) • step(A,B,C,D) ——阶跃响应 • rlocus(A,B,C,D)——根轨迹 • GG=tf(My_sys)——将(A,B,C,D)转换为传递函数
可控、可观、规范型 • 连续系统(A,B,C,D) • Qc=ctrb(A,B)——可控性矩阵 • Qo=obsv(A,C)——可观测性矩阵 • Rank(Qc)——求矩阵的秩 • My_sys=ss(A,B,C,D)——写成系统结构形式 • 对角规范型(z=Tx) • [D_form,TT]=canon(my_sys,’modal’) • 伴随规范型(友矩阵)(z=TTx) • [CC,TT]=canon(my_sys,’companion’)
连续系统的离散化 • 连续系统(A,B,C,D) • My_sys=ss(A,B,C,D) • 离散化 • My_d=c2d(My_sys,0.1,’zoh’)——采样周期、零阶保持器 • 读入离散化后矩阵(Ad,Bd,Cd,Dd) • [Ad,Bd,Cd,Dd]=dssdatat(My_d) • 阶跃响应 • Dstep(Ad,Bd,Cd,Dd)
李亚普诺夫方程求解 • X=Lyap(A,C)——连续系统 • A*X + X*A‘ = -C——给定A,C,求解X • X = LYAP(A,B,C) • A*X + X*B = -C ——给定A,C,B,求解X • X = DLYAP(A,Q)——离散系统 • A*X*A' - X + Q = 0——给定A,Q,求解X
闭环控制系统仿真Simulink • Simulink (回车)——进入 • 或通过菜单进入(Simulink) • File new Model (建立模型文件) • Continuous Transfer fcn (传递函数) • Math Sum( gain)(求和号、增益矩阵) • Source Step (阶跃输入信号) • Sinks Scope (输出曲线) • Simulink extras additional linear PID
图形界面 • 绘制曲线 • t=0:0.1:6*pi; Y=1-exp(-0.3*t).*cos(0.7*t); • plot(t,y) • 设置名称 • set(gcf,’name’,’我的图形’) • 取消工具栏(菜单) • set(gcf,’menubar’,’none’) • 恢复工具栏 • set(gcf,’menubar’,’figure’)
图形界面 • 取消图形编号 • set(gcf,’numbertitle’,’off’) • set(gcf,’numbertitle’,’on’) • 设置X坐标 • set(gca,’Xtick’,[1,2,3]) • 设置Y坐标 • set(gca,’Ytick’,[-1,0,2,max(y)]) • 设置曲线颜色与线宽 • plot(t,y,’r’,’linewid’,5)
图形界面 • 使用鼠标读入数据(最大值、最小值) • [tt,yy]=ginput(1); • 标注点、颜色、大小 • plot(tt,yy,’b.’,’markersize’,20) • 添加注释 • text(13.5,1.2,’\fontsize{20}{\alpha}=0.3’) • text(13.5,1.1,’\fontsize{20}{\omega}=0.7’) • 拷贝(拷屏),粘贴为WORD 文档
数据存盘、从硬盘读取数据 • save my_file ——2进制格式存盘 • 保存文件名my_file.mat mat——后缀 • load my_file ——读取文件 • save my_ff -ACSII ——ASCII格式存盘,可使用excel 打开 • load my_ff –ASCII • 读入excel文件数据,设置文件所在目录为当前目录,双击文件名