欢迎来到天天文库
浏览记录
ID:8921464
大小:34.00 KB
页数:4页
时间:2018-04-12
《matlab中simulink使用技巧》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、参加数学建模已经很多年了,算来其中所学多源于网络上各位前辈的无私奉献。饮水当思源,承志以后继。故而添加此分类,用于交流我这些年的心得。心得分为软件和算法两类,软件可能会包括matlab/simulink,maple,mathematica,spss(被收购成了pasw),ansys,ansoft/maxwell,comsol,pscad,tc,算法可能有GA,NNs。当然,受到专业研究所限,很多时候无法得心应手,献丑于此,只为提醒自己要做到更好。恰巧,我在自己学校的bbs上申请了相关版面的版主职位,也希望自己能整理出些基础教学,以
2、备后生晚辈们入门。暂时的想法是,先说些simulink的相关知识,因为工科学生最常用的就是这个仿真环境,而其他软件又恰好对他保留了接口,可以说这个软件成为了算法的中心。以后将陆续说些simulink不能完成的任务,并推荐能完成这些任务的工具。开始吧——simulink可以视作matlab下的工具库,matlab版本不断更新,simulink也不断更新,当前版本为matlab2011b。首先要明确,simulink的作用为求解常微分方程(组)!且这是他唯一的作用!也就是说偏微分方程在simulink中是无法求解的,需要其他工具或软件
3、作为接口,或者你够牛的,就直接写个有限元的程序。当然,常微分方程是不够的,为适应数字控制电路等离散系统,simulink可以求解离散的常微分方程,也就是差分方程,略微麻烦,不做重点介绍。然后来看看simulink求解常微分方程(组)的方法,首先要把方程写成如下形式:y1'=f1(y1,y2,...yn,t)y2'=f2(y1,y2...yn,t)...yn'=fn(y1,y2...yn,t)至于如何写成这种形式,就是降阶了,线性代数里说的很多了,比如y1=y;y2=y1'=y';y3=y2'=y''...需要注意的是,等号右侧不能
4、有导数项,如果等号右边出现了导数项,则说明这个方程需要积分一次。等号右侧可以有积分项,但不推荐出现,可以将出现的积分项作为新的变量,添加一个方程。有了方程后,就可以连接成如图的形式:其中的1/s表示积分环节,其输入为等号的左侧,输出为等号左侧的积分,subsystem表示等号右侧的搭建,此处只画出一个以示意。因此整个方程求解过程的主要工作在于subsystem的搭建,其中可能用到的运算符号在simulink的第一个库中都能找到,常用的如:加减乘除,矩阵乘法、转置、求逆,三角函数,分段函数,逻辑判断。以后会介绍这些函数的具体用法。最
5、后一步就是设置仿真的误差和算法了,ctrl+e,或者菜单栏上可以找到sim下conpar,其中的ode等等表示算法,如ode45是龙哥库塔四阶(好像是吧,记不清)。还可以设置变步长和定步长,误差容限等等,虽然数学上认为这些算法的计算精度会差很多(一阶和四阶的差距就是步长的立方啊),但实际中,感觉并不大,小步长的欧拉算法似乎也很可靠。先说下模块怎么找,启动simulink的截面后,会有很多库,最常用的当然是第一个名为simulink的库了,里面的模块基本都要记熟的,可以直接拖拽放到工作界面。如果是陌生的模块,可以打字搜索,如图所示,
6、然后再拖拽。除了simulink库以外,另一个常用的库可能就是你的专业了,比如我学ee的,一般常用的就是simpower了。然后继续上次说的,simulink的唯一功能就是求解常微分方程,且都要写出y'=的形式,等号右边通常会出现哪些计算符号呢?就看看一些常用的吧,如图所示。第一行基本是每个模块必备的,第二行是加减乘除,第三行是常用函数。constant:即常数,输出一个常数,双击可修改该值。socpe:昵称示波器,可以用来看任一条线上的输出(当然最好是数,别是向量或者矩阵,可能会有麻烦)intergrator:积分器,这个很熟悉
7、了吧,每个方程写出标准形式后,都要这个的clock:时间,在求解方程时当做自变量第二行的各位:就是加减乘除了,都支持矩阵或者向量,矩阵除法就是求逆啦~如果用矩阵或向量形式时,乘除法记得要双击修改下abs:绝对值eu:不只是指数函数哦~双击可以修改为平方开根号等等sin:不只是sin哦,还有cos,arccos等等,记得是弧度制哦~下面来个简单的例子,比如求解y'=y-x,学过数学的都知道用欧拉方程去求,算个特征根,然后代入初值条件,balabala一算,出来结果了。在simulink里可简单多了,初值条件可以双击intergrat
8、or,里面有初值选项,这里默认为0,求解自变量从0到10的解,用示波器观察y,运行后得到结果,如图所示。如果y'=的表达式复杂些,比如下图中的那个,呵呵,我都不知道该怎么写这个式子了,感觉太长了~不过simulink依然可以求解哦~~~会这些以后,
此文档下载收益归作者所有