MatlabSimulink仿真注意事项
更新时间:2023-12-01 04:33:01 阅读量: 教育文库 文档下载
- matlabsyms用法推荐度:
- 相关推荐
1):注意不要混用非电气库的线和电气库线。这个原则在Matlab6.5中尤要注意,否则一些电压测量模块,电流测量模块可能会出错。显示数据类型不匹配Data type mismatch错误。在Matlab7.0
以上的版本中,simlink做了这方面的区分,不同连接线是无法连接在一起的。
2):SimPowerSystem工具箱和Simulink工具箱不是随便可以相连的。SimPowerSystem工具箱中有些模块是不能直接连接Simulink信号的。例如电机模型中,电压输入是需要电压源模块的(Power systems Blockset模块),而转矩可以输入simulink信号。如果实在想给电压端口输入simulink信号,需要给其先加一个受控电压源,用simulink信号控制受控信号。还有比如受控电流源
模块等,都可以实现SimPowerSystem工具箱与Simulink工具箱的连接。
3):注意选择适当的仿真算法。Matlab/Simulink中提供了一系列的仿真算法,比如discrete, ode algorithm(龙格库塔算法) including ode45, ode23, ode11s等等。一个适当算法的选择,可
以有效的缩短仿真时间和提供仿真的精度。当然具体的算法选择,可以参照相关的书籍讲解。
4):参数的正确设置是确保模型仿真正确的前提和必要条件。参数的不匹配可能完全导致一些错误的仿真结果。举个简单的例子:我们要得到电阻元件,可以使用SimPowerSystem工具箱中Series RLC Branch模块或者Parallel RLC Branch模块,对于前者,我们必须设置电感为0,电容为inf, 后者,
要求设置为电感为inf, 电容为0。所以正确的参数设置是仿真的重要前提。
问: Matlab仿真中怎样编辑Scope中的图象???
答: 实现的方法有以下的几种:
1)PrintScreen,然后粘贴到Windows位图编辑器,选择图像点击右键,选择“反色”即可; 2)在Scope中,它的参数设置的第二页,有一个Save Data to Workplace,将它选中,然后在下
面的方框中指定变量名,然后用plot命令画出;
3)直接在模型上再加一个,to Workplace模块,也用plot画出; 4)直接在模型上加一个,outport模块,用plot命令绘制tout和yout;
5) 等scope显示出来图像以后,在matlab上运行
set(0,'ShowHiddenHandles','On')
set(gcf,'menubar','figure')
这时候你会发现scope的工具栏的上面多了一行,与plot命令得到的figure的工具栏是一样的。点击
insert-axes,鼠标会变成十字形状,然后再图像的任意一处双击左键出现一个对话框PropertyEditor,选中style在窗口的右便会出现color,这时你就可以任意修改背景颜色了。
问: 怎样进行S-function的编程和使用???
答: S-function也就是System-function的缩写。说得简单,S-function就是用MATLAB所提
供的模型不能完全满足用户,而提供给用户自己编写程序来满足自己要求模型的接口。要了解
S-function,必须了解以下知识:
(1)direct feedthrough (2)dynamically sized inputs (3)setting sample times and offsets
一.Direct feedthrough
direct feedthrough意思是说系统的输出或可变采样时间是否受到输入的控制。大家清楚有的系统是
受到输入控制如:
y=k*u (u是输入,k是放大因子,y是输出)
而有的系统输出是不受到输入影响,如:
输出:y=x dx=u ,x表示状态
二.Dynamically sized inputs
主要是给出:输入连续状态数目(size.NumContStates),离散状态数目(size.NumDiscStates) ,输出数目(size.NumOutputs),输入数目(size.NumInputs),Direct Feedthrough(size.Dir
Feedthrough)。
三.Setting sample times and offsets
Setting smaple times and offsets主要设置采样时间
具体的编程格式参照matlab提供的demos文件。
问:如何循环调用Simlink模型并保存结果?在仿真时,经常需要修改 simulink 模型参数并保存仿真结
果.
答:最普通的办法是多次运行simulink模型, 手工修改仿真参数,这样会浪费大量的精力和时间。实际上可以用M文件进行循环调用。比如:调用simulink模块ModelName.mdl,N次, 并把每次仿真
的结果Simout写在不同的矩阵result1~resultN中. 可以使用以下的代码:
clear;
for k=1:N % loop
simk = k; %used to indicate the simulated sequence;
sim ModelName; % run the ModelName.mdl in the command workspace; assignin('base',strcat('Result',num2str(k)),Simout); %save the simulated results.
end
问:Simulink中的信号输入输出的方法
答:方法如下: 1.从工作空间中输入数据
matlab--+>simulink--+>sources--+>from workspace (simin)
2.从外部输入数据文件
matlab--+>simulink--+>sources--+>from file (untilted.mat),说明:untilted.mat是matlab数据格式,你可将输入文件存到 .txt文件,然后到如到工作空间,最后使用save保存这个工作空
间的数据变量. 当然.mat文件中必须包含时间数据,否则仿真会出错。
3.从simulink子系统中互相导入数据 matlab--+>simulink--+>sources--+>In1
4.将数据导出到工作空间
matlab--+>simulink--+>sinks--+>to workspace(simout)
5.将数据导出到文件
matlab--+>simulink--+>sinks--+>to file (untilted.mat)
6.将数据导出到simulink子系统
matlab--+>simulink--+>sinks--+>out1
问:对于一些特殊功能,无法用模块来实现,怎么办?
答:对于一些特殊功能,如果无法用模块来实现,有两个比较简单的方法:
1):可以使用s-function:其实s-function可以实现一些特殊功能的被控模块,但是具体的编程还是稍微复杂一些。可以参见前面发布的s-function编程。不过,Matlab提供了continued和discrete
的编程模式,只要严格按照编程模式来,应该还是不那么容易出错的。
2):当然是Matlab Fcn模块:通过编写M文件,同样可以实现很多复杂的功能。毕竟M文件编写程序更加灵活。编写M文件的格式:function Output=DefinationFunction(Input),这里输入和输出Input and Output都可以是一维或者是多维的。如果是多维的话,可以用Signal Routing下的Mux and Demux进行信号的综合和分解。以下提供一个简单的M文件范例,主要根据输入的位置信号和角速度信号得到三个反电动势信号。使用了Mux and Demux模块。Matlab Fcn模块中的MATALB function checkbox 下填写BackEMF(自己保存的M文件名)。当然这个实例可以用
Simulink的查表模块来实现,仅仅为了举一个例子。
function E=BackEMF(inputData)
pos=inputData(2); per=fix(pos/(2*pi))*2*pi;
w=inputData(1);
pos=mod(pos,2*pi);k=1/(0.02+0.0067);
if(pos>=0)&(pos E=[k*w;-k*w;k*w*((per-pos)/(pi/6)+1)]; elseif(pos>=pi/3)&(pos<2*pi/3) E=[k*w;k*w*((pos-pi/6-per)/(pi/6)-1);-k*w]; elseif(pos>=2*pi/3)&(pos E=[k*w*((per+2*pi/3-pos)/(pi/6)+1);k*w;-k*w]; elseif(pos>=pi)&(pos<4*pi/3) E=[-k*w;k*w;k*w*((pos-pi-per)/(pi/6)-1)]; elseif(pos>=4*pi/3)&(pos<5*pi/3) E=[-k*w;k*w*((per+4*pi/3-pos)/(pi/6)+1);k*w]; elseif(pos>=5*pi/3)&(pos<=2*pi) E=[k*w*((pos-5*pi/3-per)/(pi/6)-1);-k*w;k*w]; end simscape大类库下面,共有“四大家族”:A)SimHydraulics,建模和仿真水力系统;B)SimDriveline,建模仿真驱动系统;C)SimMechanics,建模仿真一般机械系统;D)SimElectronics,建模仿真电磁和电子系统。 把这四大家族放到一起的根本原因是他们的共性,即他们仿真的和其他simulink不一样,不是以数学模型为基础进行信号处理和操作的,而是直接就是物理模型级别的!(感觉有点绕,说实话,我怎么感觉mathworks的这句话有问题呢?)这四大家族的产品可以共同协作完成涉及机械、电子、电磁、水力、风力、热能等领域的建模与仿真。 其实,simpowersystems也是属于物理级模型,不过由于它自己是很完备的,并且具有自己的大量自己个性特色,就给搞出去独干了!要是把 simpowrsystems也放到这里面,这个simscape就太大了,也就失去了这种以同类型仿真合并的意义了! 简单看了几个demo,感觉很熟悉,几乎立即就上手了!因为上面说了simpowersystems也是属于物理模型仿真simscape大家族的。感觉和 simpowersystems不同的是,这里面的每个模型都需要solver configuration模块,为了获得scope可现实的信号,还要使用物理信号-simulink信号转换器(PS-S),同理,为了使用simulink中的类似阶跃信号之类的激励信号,也要使用simulink-物理信号转换器(S-PS),为了测量电压、电流、磁通或者转矩 之类的物理信号,使用的不再是simpowersystems中的measurements器件,而是更物理一点的“传感器”,我看到了各种传感器。
正在阅读:
MatlabSimulink仿真注意事项12-01
2012孝感市政府人民工作报告05-20
电控消防炮操作规程09-13
外国名人故事大全集word版本(4页)03-16
浅析会计信息的有用性04-03
口腔器械消毒存在的问题及对策02-22
水土保持方案编报、编写流程一本通11-12
金融企业大数据技术选择策略06-03
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- MatlabSimulink
- 仿真
- 注意事项
- 有限元课程设计
- 胶带输送机选型计算
- 个人不足及改进
- 内科学 2016 试题
- 2017年煤矿安全生产标准化亮点搜集(一) - 图文
- 中考科学冲刺专题基础力学试题浙教版
- 世格SIMHRM人力资源高分历史记录
- 授课教材1 句子基础讲座 - 图文
- 塔吊方案--5.12
- 2018年上海中考英语试卷(含答案) - 图文
- 1聚丙烯装置反应岗位试题(1)
- 国际结算实验教程答案1-票据与汇款
- 企业会计制度和企业会计准则有什么区别
- 第一章 外汇与汇率 -
- 笔笔 - solidworks实验报告
- 案例分析 计算题
- 社会学创始人孔德将社会学的研究内容划分
- 《高分子物理》课程习题及思考题
- 趣味逻辑推理100题第81-90题答案
- 新版苏教版一年级数学下册《认识长方形、正方形、三角形和圆》优质课教案(后附教学反思)