MATLAB语言及其在自动控制和仿真中的应用东北大学人工智能与机器人研究所、控制仿真中心薛定宇内容简介MATLAB语言入门MATLAB语言编程起步MATLAB语言与科学可视化MATLAB在科学运算中的应用MATLAB在控制理论中的应用MATLAB在电机及拖动中的应用MATLAB的PID控制技术MATLAB在相关领域中的应用主要参考文献薛定宇、陈阳泉基于MATLAB/Simulink的系统仿真技术与应用,清华大学出版社2002(东大本科生、研究生教材)薛定宇反馈控制系统的设计与分析,清华大学出版社,2000(SV,2003)薛定宇控制系统计算机辅助设计,清华大学出版社,1996薛定宇科学运算语言MATLAB程序设计及应用,清华大学出版社,20001.MATLAB语言简介MATLAB=MatrixLaboratory它是高度集成的语言(“第五代”)重要特色是“科学运算”、“可视化”、仿真有各种各样的“工具箱”已经渗透到各行各业被控制界学者捧红,成为通用语言MATLAB起源和发展LINPACK,EISPACKLaPack1980,CleveMoler第一个免费版本1984年MathWorks公司创立,v11990年v3.5i,第一个微机Windows版,并推出Simulink仿真环境1992年v4,全面支持Windows编程最新版本6.5,Simulink5.0控制界首选,将长期保持独一无二2.MATLAB编程入门编程方法的进展矩阵的表示目前流行语言,C、Fortran,Basic等二维数组,双重循环MATLAB表示数据结构及其特色以复数矩阵为基本变量单元(C得用二个数组来表示复数矩阵)特殊矩阵生成(单位阵,Vandermonde阵)矩阵直接可以运算,如A+B,A*B(C语言:A+B双重循环,A*B得三重循环,此外兼容性判定、复数矩阵更难处理)例A*A’其他数据结构:结构体、类、字符串程序流程控制循环结构for结构和while结构转移结构if,elseif,end开关结构switchcase,end试探结构try,catch,end例代数运算、逻辑运算与比较运算代数运算:’、+、-、*、/左除、\右除、^点运算:.*,.^等,相应元素运算逻辑运算:&、|、~、xor(A,B)比较运算:=,,=,~=,any(),all()函数编写函数格式function[a,b,c,…]=funname(d,e,f,…)举例Hilbert矩阵生成特殊函数编写技巧举例递归调用例:阶乘n!可变变元个数,举例:扩展conv()函数,接纳任意多个多项式MATLAB函数可以自动翻译成C无优化,兼容性不佳。另有方法工具箱(任何人都可以是工具箱作者)3.科学可视化技术二维图形表示plot()一般二维图形ezplot()已知函数绘图stem()绘制火柴杆图形stairs()绘制阶梯图形绘图窗口分割图形修饰3.1实验数据的绘图3.2二维图形的其他绘制方法极坐标图形对数坐标图形semilogx(),semilogy(),loglog()修改图形坐标系直接变换隐函数图形绘制3.3三维图形绘制三维曲线绘制三维曲面绘制3.4“4维”图形绘制想法:对V=f(x,y,z),构造不同的三维网格,用颜色绘制网格点处V函数的值其中使用slice函数绘制图形另外一种4维图形为三维动画4.数学问题的MATLAB求解解析解:数学公式推导数学机械化,几何定理证明。有的时候不宜求解析解,只能求数值解:如非线性微分方程求解高元非线性代数方程求解仿真问题(连续、离散、DEDS和混杂)具有复杂控制算法、结构的控制问题没有解析解很多其他领域没有解析解,如图像等4.1解析解与数值解不适合求取解析解的场合解析解不存在:例p,无限不循环errf(x)解析解存在,但求解不可能例:矩阵的行列式,Cramer法则需要运算n=20时:实际运算需要n更大。用MATLAB求数值解,每秒解n=500+求取解析解没有必要数学问题求解语言与工具解析解:MathematicaMapleMATLAB的符号运算工具箱数值解(MATLAB,MATRIXx)MATLAB本身+各种各样工具箱如最优化工具箱、统计工具箱、偏微分方程工具箱4.2解析解求解步骤依赖于符号运算工具箱运算步骤1.声明符号变量2.表示数学函数/问题3.求解数学问题4.有时需要化简得出的解5.以更好的形式显示结果6.在文字处理软件中表示结果,LaTeX应用举例求极限:微分与积分:Taylor幂级数展开(前20项)级数求和(无穷级数、有穷级数)级数求和,再取极限线性代数问题求解一般矩阵的输入特殊矩阵的输入专用函数magic,eye,zeros,ones计算程序及函数调用4.3.数学问题的数值解法4.3.1线性代数问题求解特征值(eig),行列式(det),秩(rank),范数(rank)矩阵求逆(inv,pinv)代数方程矩阵函数:如指数函数expm矩阵问题解析解:状态转移矩阵4.3.2常微分方程求解Lorenz方程描述方程的MATLAB代码其他类型的微分方程求解隐式微分方程刚性微分方程微分代数方程(DAE)边值问题偏微分方程工具箱延迟微分方程边值问题的解析解举例4.3.3最优化问题求解有约束、无约束的最优化问题线性规划问题举例二次型规划最小二乘曲线拟合多目标规划整数规划的计算机求解利用第3方的工具箱:Petri网工具箱[res,how]=ip_solve(A,B,f,intlist,ub,lb,ctype)5.MATLAB在自动控制中的应用数学模型与模型转换传递函数、状态方程、零极点系统的时域、频域、复域分析Bode,Nyquist、Nichols,阶跃响应控制系统CAD单变量、多变量;预测控制、神经网络、模糊逻辑、鲁棒控制各种工具箱控制系统仿真5.1控制系统的模型表示传递函数状态方程xLaplace变换及反变换步骤:声明符号变量调用laplace函数进行变换或调用ilaplace()函数进行反变换化简simple()结果显示pretty(),latex()例5.2模型转换状态方程、传递函数、零极点模型都可以相互转换使用ss()函数可以转换成状态方程模型传递函数模型转换tf()零极点模型转换zpk()连续系统离散化c2d()离散系统连续化d2c()结构图化简已知数据符号化简g1g3g4g2g5g6g7g8g9g105.3系统稳定性分析直接分析,A矩阵的特征根或分母多项式的根能得到比间接方法更多的信息还可以采用间接方法:Routh,Hurwitz,Lyapunov方法根轨迹分析,直接使用rlocus()函数5.4频域分析Bode图形绘制,bode()Bode渐近线绘制Nyquist图,nyquist()Nichols图,nichols()和ngrid()幅值相位裕量分析,margins()5.5时域响应分析阶跃响应,step()脉冲响应,impulse()任意输入,lsim()复杂系统分析,包括含有非线性环节的系统,可以采用Simulink环境K=8005.6控制器设计LQ最优控制器Riccatti方程5.7其他设计方法基于根轨迹的试凑方法PID控制器设计6Simulink及电机拖动系统仿真Simulink简介Simulink下的模型建立PowerSystemsBlockset电机系统仿真电力拖动系统仿真6.1Simulink简介Simulink=Simu+LinkMATLAB最新版本下的是Simulink5.0各种模块和模块集(Blockset)一般连续、离散模块、数学模块等PowerSystemsBlocksetSimMechanicsBlockset机构系统仿真其他:DSP,通信系统,嵌入式系统输出结果的显示示波器、表盘、虚拟现实、MATLAB6.2简单非线性系统的建模简单非线性系统模块复制、模块连接、参数修改、仿真6.3电机仿真三相异步电动机启动仿真,铭牌参数6.4直流电机拖动(自控系统)用Simulink绘图仿真,显示结果6.5输出信号的显示Dials&GaugesBlockset各种各样表盘例:PI控制,输出结果表盘显示c5mdng1.mdl7PID控制系统设计与仿真PID控制器的一般设计方法最优PID控制器设计最优控制器设计程序PID工具箱及Blockset的设计基于神经网络的PID控制器仿真演示输出显示方法7.1经典PID控制器及设计传统方法Ziegler-Nichols方法7.2PID控制器的最优设计想法1)对受控对象进行最优降阶2)利用表格设计PID参数(Zhuang&Atherton)局限性受控对象结构限制,不能限幅7.3PID控制器的设计方法举例:PID系统及其实现受控对象方法一:普通Ziegler-Nichols方法方法二:Zhuang&Atherton最优方法方法三:利用NCD直接实现方法四:参数直接优化方法7.4PID工具箱利用S函数的功能,本人编写的雏形参考资料刘金琨《先进PID控制及MATLAB仿真》薛定宇《反馈控制》第7章及其他资料问题:*目前没有被广泛认可的PID工具箱*程序是针对某一模型的,不通用*模块化,形成BlockSet8.MATLAB的高级仿真技术虚拟现实技术虚拟现实工具箱物理建模与仿真SimMechanics,机构系统仿真PowerSystems,电工电子系统仿真半实物仿真与快速原型设计技术xPCdSPACE8.1虚拟现实技术与工具箱利用工具箱提供的程序可以容易建立起虚拟现实的“world”模型。可以用MATLAB语句或Simulink模型建立起和world模型的联系。可以直接驱动该模型,显示效果。举例:飞机绕大楼飞行8.2机械电子系统建模与仿真新推出的SimMechanics可以将机、电、控制等子系统在一个框架下进行仿真8.3半实物仿真与实时控制半实物仿真HardwareintheLoopSimulation(HIL)为什么需要半实物仿真?半实物仿真工具xPC,dSPACE特殊硬件工具A/D、dSPACE软件:xPCControlDesk半实物仿真示意图dSPACE卡ControlDesk界面9.其他软件与语言科技文献排版软件LaTeX在很多方面优于Word(例子)在国际学术界使用广泛完全免费SciLAB法国国家科学院研制,全部源代码公开类似MATLAB,但完全免费初级阶段,工具箱有限,GUI、仿真局限性总结通过例子演示了其应用MATLAB的优势在哪里?1.可以解决各种各样的数学问题,又无需掌握太多的数学知识。更适合于工程技术人员和研究者。2.可视化解决方案。3.子曰:“工欲善其事,必先利其器”,对数学建模、仿真、控制等问题,MATLAB是在国际上最被认可的“器”感谢参加讲座网站:论坛:联系:xue_dy@21cn.com欢迎讨论