收藏 分享(赏)

基于matlab-simulink的系统建模预防针技术与应用-第六章.ppt

上传人:依依 文档编号:1032832 上传时间:2018-06-05 格式:PPT 页数:67 大小:8.60MB
下载 相关 举报
基于matlab-simulink的系统建模预防针技术与应用-第六章.ppt_第1页
第1页 / 共67页
基于matlab-simulink的系统建模预防针技术与应用-第六章.ppt_第2页
第2页 / 共67页
基于matlab-simulink的系统建模预防针技术与应用-第六章.ppt_第3页
第3页 / 共67页
基于matlab-simulink的系统建模预防针技术与应用-第六章.ppt_第4页
第4页 / 共67页
基于matlab-simulink的系统建模预防针技术与应用-第六章.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

1、第6章 Simulink仿真的高级技术,第6章 Simulink仿真的高级技术,介绍与MATLAB语句相结合的Simulink建模与仿真方法突破基于图形的建模仿真局限性,扩展Simulink的建模与仿真能力主要内容:Simulink模型的语句修改系统仿真与线性化S-函数的编写及应用仿真优化举例控制系统最优控制器设计,6.1 Simulink模型的语句修改,Simulink框图可以由前面介绍的绘图方法绘制出来,但复杂而有规律的框图用手工方法一个一个元件绘制,一条线一条线连接很繁琐,可以考虑用语句绘图的方法主要内容Simulink模型与文件的处理Simulink模型与模型文件用语句绘制方框图,语句

2、建模步骤,建立逻辑模型new_system() options可以为Model和Library有了逻辑模型,由open_system()打开模型存储模型save_system()find_system()搜索模型名close_system()关闭模型,6.1.2 Simulink模型与模型文件,建立空白模型早期版本为*.m模型目前版本*.mdl仍然是文本文件编辑 edit newmodel模型参数由set_param()、get_param()处理,6.1.3 用语句绘制方框图,建立新模型:new_system() 和open_system()修改模型、模块参数(两种方法)例,添加模块 add

3、_block()例,在模块中添加不同模块常用属性Position属性:表示模块的位置,Name属性:为该模块的名称,可以为任意字符串。n表示换行。传递函数、属性名为Numerator和Denominator,连接模块 add_line()输出连接 delete_line()模块参数修改set_param()获得参数属性get_param(),建模举例,建模目标3个模块:正弦输入、饱和非线性、示波器串联连接建模语句,删除连线,加入Mux模块,重新连线MATLAB命令修改连线,修改Mux模块位置 修改饱和非线性参数注意参数值应该为字符串另一种修改参数方法(全部参数),复杂而有规律模型的建模举例,目

4、标系统框图L=7,甚至更大的L,如L=50求A到B的等效模型手工建模较繁琐,应该考虑下页语句建模,6.2 系统仿真与线性化,启动仿真可以用Start Simulation菜单和 ,但不适合嵌入MATLAB程序,如优化程序非线性系统需要线性近似,复杂线性模型需要将总模型提取出来主要内容仿真过程的命令化非线性模型的线性化纯时间延迟环节的Pad近似,6.2.1 仿真过程的命令化,启动仿真过程的命令返回变量输入变量仿真参数选择simset() 和simget()例F-14系统仿真,和 基本一致,Van der Pol方程举例,仿真模型:c6mvdp.mdlm=1000,坏条件问题参数赋值刚性微分方程求

5、解由框图也可以求解,6.2.2 非线性模型的线性化,数学基础状态方程描述静态工作点求取工作点附近的线性化模型可以得出,线性化模型其中MATLAB求解工作点计算线性化模型其他线性化函数 linmod()、dlinmod(),非线性模型的工作点举例,非线性系统框图Simulink模型:c6nlsys.mdl工作点:阶跃输入工作点:,直流电机拖动模型线性化,系统框图Simulink模型:c4mex2.mdl线性模型,无需计算工作点,线性化即可,复杂系统的等效模型,系统框图Simulink模型:ssss.mdl线性化,F-14系统的线性化模型,F-14战斗机模型Simulink模型:c5f14.mdl

6、,非线性系统模型的线性化,Simulink模型:c6nlsys.mdl线性化模型求取阶跃输入下线性化模型求取不同工作点对应不同的线性化模型,6.2.3 纯时间延迟环节的Pad近似,纯时间延迟的Pad近似Pad近似参数,MATLAB下Pad近似,Pad近似函数Simulink模型:c6fdly.mdl错误线性化正确方法,分子分母阶次不同的Pad近似,数学背景近似模型近似方程其中,且MATLAB函数:,纯延迟环节的近似,延迟环节:不同阶次的近似遗憾的是:线性化函数不能使用主要的近似,无法改善近似效果,6.3 S-函数的编写及应用,S-函数即系统函数,用来描述静态M函数无法描述的动态系统状态方程模型

7、状态可以分为连续状态和离散状态MATLAB、Fortran、C、Ada均可编写主要内容用MATLAB语句编写S-函数S-函数设计与应用举例自抗扰控制器仿真二级S-函数用C语言编写S-函数S-函数模块的封装,6.3.1 用MATLAB语句编写S-函数,S-函数引导语句flag取值表,S-函数格式,S-函数的几个部分参数初始设定连续离散状态的更新输出信号的计算其他S-函数的执行flag先取0,执行初始化过程flag取3,计算出模块输出flag取1和2更新连续、离散状态,完成一步,S-函数的初始化写法,获取初始模板具体参数设定:NumContStates:表示连续状态的个数NumDiscStates

8、:离散状态的个数NumInputs、NumOutputs:模块输入输出的个数DirFeedthrough:输出方程中是否显含uNumSampleTimes:为模块采样周期的个数写回关键变量:,S-函数编写举例,连续状态方程建模S-函数框架连续系统,不必考虑flag2文件名:c6exf1s.m,初始化函数编写,初始化参数连续状态变量个数:A矩阵维数输入路数:B矩阵的列数输出路数:C矩阵的行数加状态变量个数初始化函数,状态更新函数输出函数:输出原输出和状态建立一个Simulink模块Simulink模型:c6msf2.mdl填写A,B,C,D矩阵的值,M-函数和S-函数区别,S-函数能描述动态系统

9、,而M-函数只能描述静态系统M-函数的局限性:不能带附加参数,编程不便;如果需要,可以采用S-函数描述静态函数,只需编写flag为3的响应函数,多阶梯信号的信号发生器建模,转折点定义附加变量S-函数编写,6.3.2 S-函数设计与应用举例自抗扰控制器仿真,韩京清研究员及合作者提出自抗扰控制器微分跟踪器扩张状态观测器自抗扰控制器非线性模型,不宜采用模块搭建S-函数是一种很自然的选择各种语言编写的S-函数,微分-跟踪器建模,数学描述,主程序框架初始化函数,离散状态更新函数输出函数辅助函数,微分跟踪器仿真,Simulink仿真模型:ex_han.mdl输入信号,扩张状态观测器建模,扩张的状态观测器(

10、Extended State Observer)其中同样不适用于模块搭建,自抗扰控制器建模,数学模型S-函数,S-函数(续)5路输入,2路输出,无状态,自抗扰控制器举例,受控对象模型自抗扰控制Simulink仿真模型:ex_han2.mdl仿真模型参数,时变受控对象模型仿真模型:ex_han5.mdl,6.3.3 二级S-函数,Level-2 S-函数直接支持多输入、输出端口支持复数矩阵型的输出信号其应用范围远广于普通的S-函数模块状态方程模型重新编写,微分跟踪器二级S-函数,重新编写的S-函数,6.3.4 用C语句编写S-函数,MATLAB、C、C+、Fortran、Ada等带有实时应用的模

11、块不能用MATLAB写由S-Function Builder可以搭建框架S-function demos模块组中可以直接借鉴Simulink/src/sfuntmpl_basic.c可以用于启动C语言编写的微分跟踪器,需要编译成可执行文件编译器MATLAB自带的LCC编译器、VC等,自抗扰控制器文件的处理与仿真,编译成可执行文件获得可执行文件:sfun_han.mexw32还可以编写出其他的S-函数Simulink模型:ex_han3.mdl模型仿真比较数字仿真采用MATLAB,实时采用C,6.3.4 S-函数模块的封装,附加参数考虑用对话框输入右击S-函数,快捷菜单选择Mask S-func

12、tion微分跟踪器Simulink模型:han_td_m.mdl附加参数,h,r,T多阶梯信号发生器Simulink模型:c6mstairs.mdl附加参数:tStep、yStep图标绘制,6.4 仿真优化举例控制系统最优控制器设计,传统最优控制:变分法、最优二次型、bang-bang控制等目标函数不一定有意义,但可解更高级的指标以往不可解,有了MATLAB则可以解任意复杂目标问题改变思路,求出更有意义的最优控制器主要内容伺服控制的最优性能指标选择目标函数编写及最优控制器设计全局最优化方法,6.4.1伺服控制的最优性能指标选择,伺服控制框图控制目标减小跟踪误差,而积分指标最有效,什么样的误差准

13、则最有意义?,常用的积分型误差指标优劣比较对线性系统来说,ISE能解析求解ISE同等处理各个时刻的误差,而ITAE对误差进行时间加权,迫使输出信号尽可能快地跟踪输入信号,所以更有意义有了MATLAB,求解ITAE很简单,所以更适合选择ITAE,6.4.2 目标函数编写及最优控制器设计,ITAE可以容易地用Simulink描述用MATLAB可以编写目标函数,其中求ITAE依赖于Simulink模型可以直接全局非线性控制问题直接求解最优化问题如果想得到全局最优解,则可以采用进化类伺服,如遗传算法用MATLAB可以获得可视的优化效果PID控制器设计可以采用MATLAB的PID模块,最优PID控制器设

14、计,受控对象PID控制器,决策变量建立Simulink模型:c6moptim2.mdl编写目标函数求解最优PID控制器,非线性最优PID控制,PID控制器后加饱和非线性Simulink模型:c6moptim3.mdl目标函数最优控制器设计,双闭环直流拖动系统的最优控制,Simulink模型:c6mmot1.mdl两个PI控制器,4个参数目标函数,终止时间0.6s最优控制器设计,6.4.3 全局最优化方法,传统搜索方法的局限性容易陷入进步最优解对某些受控对象不容易找到可行解,所以直接搜索可能有问题需要引入进化算法,如遗传算法求解遗传算法与直接搜索工具箱遗传算法最优化工具箱 GAOT其他工具箱新版的全局最优化工具箱,不稳定受控对象的最优控制,受控对象驱动饱和非线性Simulink模型:c6moptim4.mdl目标函数最优控制器设计,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报