matlab学习资料:Simulink学习中的100个问答
Simulink问题集锦

第一部分:------------------------------------------------- 命令行如何运行simulink外部模式build和start?用sim()函数,该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
-------------------------------------------------请问matlab中的仿真模块,可以看到起源程序吗?那些基本模块是看不了源代码的,有很多模块是用subsystem组成的,你可以用look under mask(鼠标右键)看到里面是怎样用子模块搭接的,还有很多是由s函数写成的simulink的模块,这些直接edit sfunname(s函数的名字)就可以看到源代码-------------------------------------------------请问:在simulink参数中设置的步长是50e-6,在系统中有一个simout模块向MATLAB中传递数据,但是希望以1e-3的步长获取数据,因该如何设计?在simout模块中直接设定仿真步长是不能运行的。
需要插入一个"zero order hold"模块,将该模块的采样时间设置为1e-03就可以了。
-------------------------------------------------simulink中IGBT等电力元件都有个m极,是什么作用的?用于测量流过IGBT电流及其电压-------------------------------------------------用simlink画的图,在示波器中显示,如何复制到word 中?告诉你一个办法,在加上示波器的地方加上to workspace 改为array在主窗口中plot直接抓过去也行吧。
simulink命令集、小问题集锦

simulink命令集、小问题集锦仿真命令:sim ---仿真运行一个simulink模块sldebug ---调试一个simulink模块simset ---设置仿真参数simget ---获取仿真参数线性化和整理命令:linmod ---从连续时间系统中获取线性模型(状态方程) linmod2 ---也是获取线性模型,采用高级方法dinmod ---从离散时间系统中获取线性模型trim ---为一个仿真系统寻找稳定的状态参数构建模型命令:open_system --打开已有的模型close_system --关闭打开的模型或模块new_system --创建一个新的空模型窗口load_system --加载已有的模型并使模型不可见save_system --保存一个打开的模型add_block --添加一个新的模块add_line --添加一条线(两个模块之间的连线)delete_block --删除一个模块delete_line --删除一根线find_system --查找一个模块hilite_system --使一个模块醒目显示replace_block --用一个新模块代替已有的模块set_param --为模型或模块设置参数get_param --获取模块或模型的参数add_param --为一个模型添加用户自定义的字符串参数delete_param --从一个模型中删除一个用户自定义的参数bdclose --关闭一个simulink窗口bdroot --根层次下的模块名字gcb --获取当前模块的名字gcbh --获取当前模块的句柄gcs --获取当前系统的名字getfullname --获取一个模块的完全路径名slupdate --将1.x的模块升级为3.x的模块addterms --为未连接的端口添加terminators模块boolean --将数值数组转化为布尔值slhelp --simulink的用户向导或者模块帮助封装命令:hasmask --检查已有模块是否封装hasmaskdlg --检查已有模块是否有封装的对话框hasmaskicon --检查已有模块是否有封装的图标iconedit --使用ginput函数来设计模块图标maskpopups --返回并改变封装模块的弹出菜单项movemask --重建内置封装模块为封装的子模块诊断命令:sllastdiagnostic --上一次诊断信息sllasterror --上一次错误信息sllastwarning --上一次警告信息sldiagnostics --为一个模型获取模块的数目和编译状态硬拷贝和打印命令:frameedit --编辑打印画面print --将simulink系统打印成图片,或将图片保存为m文件printopt --打印机默认设置orient --设置纸张的方向命令行如何运行simulink外部模式build和start用sim()函数该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
MATLAB-Simulink复习

1 绘制单根二维曲线 函数的基本调用格式为: plot(x,y) 其中x和y为长度相同的向量,分别用于存储x坐标
和y坐标数据。
例 在0≤x≤2区间内,绘制曲线 y=2e-0.5xcos(4πx)
程序如下: x=0:pi/100:2*pi; y=2*exp(-0.5*x).*cos(4*pi*x); plot(x,y)
其中start为起始值,step为步长,end为终止值。 当步长为1时可省略step参数;另外step也可以取负 数。
矩阵下标
注意:MATLAB中矩阵的下标从1开始,而不是从 0开始!
MATLAB通过确认矩阵下标,可以对矩阵进行插 入子块,提取子块和重排子块的操作。 A(m,n):提取第m行,第n列元素 A(:,n):提取第n列元素 A(m,:):提取第m行元素 A(m1:m2,n1:n2):提取第m1行到第m2行和第 n1列到第n2列的所有元素(提取子块)。
在运算式中,通常不需要考 虑空格
多条命令可以放在一行中
同行中各条命令可用分号隔 开,表示禁止结果显示
同行中各条命令也可用逗号 隔开,表示需要显示结果
4 常用数学函数
abs ---- 求绝对值 cos ---- 余弦 asin ---- 反正弦 atan ---- 反正切 sqrt ---- 求平方根 exp(x) ---- ex
矩阵大小
[m,n]=size(A):返回矩阵的行列数m与n max(size(A)):返回矩阵行数或列数的最大值。 rank(A):求矩阵的秩
1.3.2 矩阵的运算 1 转置
转置符号有两种形式
simulink期末试题及答案

simulink期末试题及答案Simulink期末试题及答案分析为了帮助大家更好地准备Simulink期末考试,本文将提供一些常见试题及答案的解析。
通过深入探讨这些问题,我们可以加深对Simulink的理解并掌握其相关技巧和应用。
一、基本概念与应用题试题1:请简要介绍Simulink的基本概念和用途。
答案:Simulink是一种基于块图形界面的MATLAB工具,用于进行模型建立、仿真和分析。
它在系统设计和控制工程中得到广泛应用,可以有效地进行多学科建模和模拟,包括电子、通信、控制系统等领域。
与传统编程相比,Simulink的可视化特性使得系统设计更加直观,易于理解和调试。
试题2:请解释Simulink模型中的信号流向和块之间的连接方式。
答案:Simulink模型中的信号流向一般按照从左到右的顺序。
信号沿着连接线流动,从一个块的输出端到另一个块的输入端。
块之间的连接方式可以通过线连接或者直接连接。
线连接是指将输出端与输入端用线连接起来,而直接连接则是直接将输出端与输入端放在一起,此时信号可以直接传递。
二、建模与仿真题试题1:请使用Simulink建立一个简单的R-C电路模型,并进行仿真。
答案:首先,在Simulink中选择Simulink库浏览器,找到Simscape 电气特性库。
然后将R和C元件拖拽到模型窗口中,并连接好输入输出端口。
接下来,在仿真参数设置中选择仿真时间和其他相关参数。
点击模型窗口的“运行”按钮,即可进行仿真。
仿真结果将显示出电路的响应。
试题2:请使用Simulink建立一个PID控制系统模型,并进行仿真。
答案:首先,在Simulink中选择Simulink库浏览器,找到Control System Toolbox库。
然后将PID Controller块、Plant模块以及Scope块等拖拽到模型窗口中,并合理连接。
接下来,设置PID控制器的参数和输入信号。
点击模型窗口的“运行”按钮,即可进行仿真。
MATLAB语言:Simulink系统仿真习题与答案

一、单选题1、将模块连接好之后,如果要分出一根连线,操作方法是()。
A.把鼠标指针移到分支点的位置,按住鼠标左键拖曳到目标模块的输入端B.双击分支点的位置,按住鼠标左键拖曳到目标模块的输入端C.把鼠标指针移到分支点的位置,按下Ctrl键并按住鼠标拖曳到目标模块的输入端D.把鼠标指针移到分支点的位置,按下Shift键并按住鼠标拖曳到目标模块的输入端正确答案:C2、在一个模型窗口上按住一个模块并同时按Shift键移动到另一个模型窗口,则()。
A.在两个模型窗口都有这个模块B.在后一个窗口有这个模块C.在前一个窗口有这个模块D.在两个窗口都有模块并添加连线正确答案:A3、为子系统定制参数设置对话框和图标,使子系统本身有一个独立的操作界面,这种操作称为子系统的()。
A.包装B.封装C.集成D.组合正确答案:B4、使用S函数时,要在模型编辑窗口添加()。
A.Sine Wave模块B.S-Program模块C.Subsystem模块D.S-Function模块正确答案:D二、多选题1、启动Simulink的方法有()。
A.在命令行窗口中输入simulink命令B.在“主页”选项卡中单击SIMULINK命令组中的“Simulink”命令按钮C.在“主页”选项卡中单击“文件”命令组中的“新建”命令按钮D.在“主页”选项卡中单击“文件”命令组中的“新建脚本”命令按钮正确答案:A、B、C2、根据控制信号的控制方式不同,条件执行子系统分为()。
A.事件驱动子系统B.使能子系统C.触发子系统D.使能加触发子系统正确答案:B、C、D3、以下关于S函数的描述中,正确的有()。
A.利用S函数可以对Simulink模块库进行扩充B.S函数只能用MATLAB语言编写C.S函数有现成的模板程序D.S函数模块能够被封装正确答案:A、C、D三、判断题1、建立系统仿真模型是在Simulink模型编辑窗口中进行的。
正确答案:√2、利用触发子系统能够将锯齿波转换为方波。
matlab常见问题集锦

Q:10.如何使用matlab将数据模糊化并输出模糊化结果?
A:模糊综合评价法,fuzzy logic Q:11.如何用matlab做非等间隔信号的功率谱密度变换?
A:可以的,不过是不是幅值的绝对值的平方,是求其模值就可以了,因为它 是复数
matlab常见问题集锦
更新时间:2014-7-23
Q:1.想从矩阵中取任意行的数据, 比如A=[1; 2; 3; 4; 5; 6; 7; 8], 如何从A 中任意取4行的数据呢? 谢谢!
A:
nd=randperm(10);
for k=1:4 a(k)=A(ind(k));
end
这个是针对你的向量形式,如果是矩阵可以修改一下 [m,n]=size(A);
A:如果再运行这个m文件运行一次,就得关闭matlab 《----- 你需要把这句话在仔细解释一下 运行完了 得到结果了 为什么 不能清理变量,不关闭每次都crash吗?感觉是你的程序有些资源是必须 要释放了以后才能再次使用 还有2G 是比较小了 有可能是内存问题
Q:我要表达的意思是,第一次运行这个m文件,能运行成功,如果再运行 一次,就不成功,出现上面的提示;我处理250个文件时,这个m文件有 时能运行多次,有 时不能运行多次,你这么一提示,我感觉也是我的程 序需要把有些资源释放了才能再次使用,但是使用了clear all也不好使 ,在程序开始和末尾都使用clear all,还是出现我在上面说的问题 A:很可能说你有些文件句柄没有关闭
A:这段代码如果卡死,最大的可能就是while陷入了死循环。说明在for i = 1:n-1这段循环结束之后,dz无法满足while的退出条件(可能是太小或 太大)。你需要重新检查你的算法和数据。
Q:3.find可以查到第一个满足条件的就退出吗? 如题,想找矩阵R里第一列中第一个>=t的数,写的程序如下: A=find(R(:,1)>=t) S=A(1,:) D=R(S,:) 但是特别浪费时间,所以想问问应该怎么写好。万分感谢!
simulink有关问题解答

运行仿真模型
举例:例子中仿真时间设置为“100s”较合适,为画图方便, 产生数据数为100+1=101个(0s产生一个点),运行仿真模 型。
在运行完仿真模型后,回到Matlab的Workspace窗口, 能看到变量pid123,此变量为101个Y轴数据点,画成一个曲 线图还需要101个时间点做为X轴的点(x、y轴的点数要相等)。 在命令行中输入:>> T=0:1:100; 此时,在工作空间中多了一个变量T, 正好101个点,如右图。
6 如何用Plot命令画示波器曲线:
(1) 导出示波器数据
如上图导出示波器数据需要用到“to workspace”模块, 如何查找此模块见问题1,连接方式如图中黄色模块。
“to workspace”模块设置
双击该模块: 1 在变量名栏中输入变量 名,默认的变量名为 “simout”。 2 在采样时间为方便起见 一 般设 置“1” 3 在保存数据格式的下拉 菜单中选取“Array”格 式。 4 点“OK”
(2)用Plot命令画曲线
有了X轴的101个点和Y轴的101个点,就可以开始用 Plot命令画图。在命令行中输入: >> plot(T,pid123) 在图形窗口中出现如右图 所示曲线。
若要画多条曲线,导入Y 轴数据如前所述,取好变 量名。 多条曲线画图命令:
>> plot(T,pid123, T,pid1234, T,pid12345)
4 如何在示波器中显示多条曲线:
示波器显多条曲线模型图
仿真结果图
Mux模块参数设置图
注意左上图中的Mux混路 器模块,功能:把多路信号组 成一个矢量信号或者Bus信号。 还可以通过双击设置Mux模块 设置输入信号个数如左下图。
matlab仿真实例100题

matlab仿真实例100题Matlab是一种强大的数学软件,广泛应用于科学计算、数据分析和工程仿真等领域。
在学习和使用Matlab的过程中,通过实例的方式进行仿真练习是一种非常有效的学习方法。
下面将给出100个Matlab仿真实例题目,帮助读者更好地掌握Matlab的使用。
1. 编写一个程序,计算并输出1到100之间所有奇数的和。
2. 编写一个程序,计算并输出1到100之间所有偶数的乘积。
3. 编写一个程序,计算并输出1到100之间所有素数的个数。
4. 编写一个程序,计算并输出1到100之间所有整数的平方和。
5. 编写一个程序,计算并输出1到100之间所有整数的立方和。
6. 编写一个程序,计算并输出1到100之间所有整数的阶乘和。
7. 编写一个程序,计算并输出1到100之间所有整数的倒数和。
8. 编写一个程序,计算并输出1到100之间所有整数的平均值。
9. 编写一个程序,计算并输出1到100之间所有整数的中位数。
10. 编写一个程序,计算并输出1到100之间所有整数的标准差。
11. 编写一个程序,计算并输出1到100之间所有整数的方差。
12. 编写一个程序,计算并输出1到100之间所有整数的最大值。
13. 编写一个程序,计算并输出1到100之间所有整数的最小值。
15. 编写一个程序,计算并输出1到100之间所有整数的平方根和。
16. 编写一个程序,计算并输出1到100之间所有整数的立方根和。
17. 编写一个程序,计算并输出1到100之间所有整数的对数和。
18. 编写一个程序,计算并输出1到100之间所有整数的指数和。
19. 编写一个程序,计算并输出1到100之间所有整数的正弦和。
20. 编写一个程序,计算并输出1到100之间所有整数的余弦和。
21. 编写一个程序,计算并输出1到100之间所有整数的正切和。
22. 编写一个程序,计算并输出1到100之间所有整数的双曲正弦和。
23. 编写一个程序,计算并输出1到100之间所有整数的双曲余弦和。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab学习资料:Simulink学习中的100个问答1.命令行如何运行simulink外部模式build和start用sim()函数该函数的调用格式为:[t,x,y]=sim(f1,tspan,options,ut)其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
2.请问matlab中的仿真模块,可以看到起源程序吗?那些基本模块是看不了源代码的,有很多模块是用subsystem组成的,你可以用look under mask(鼠标右键)看到里面是怎样用子模块搭接的,还有很多是由s函数写成的simulink的模块,这些直接edit sfunname(s函数的名字)就可以看到源代码3.请问:在simulink参数中设置的步长是50e-6,在系统中有一个simout模块向MA TLAB 中传递数据,但是希望以1e-3的步长获取数据,因该如何设计?在simout模块中直接设定仿真步长是不能运行的。
需要插入一个"zero order hold"模块,将该模块的采样时间设置为1e-03就可以了4.simulink中IGBT等电力元件都有个m极,是什么作用的?用于测量流过IGBT电流及其电压5.用simlink画的图,在示波器中显示,如何复制到word中告诉你一个办法,在加上示波器的地方加上to workspace,改为array,在主窗口中plot,直接抓过去也行吧。
Edit下有copy model选项6.simulink中的mask问题,请问如何封装,prompt,varible填啥,如何初始化prompt中,填写变量的提示,如:直线斜率variable中填写变量名.如:k-------------------------------------------------------------------------有关神经网络工具箱1.为什么当训练和仿真时,命令窗口会出现一堆warning?如:*WARNING* TRAINBPX is an obsolete function.Use NNT2FF and TRAIN to update and train your network.Type NNTW ARN OFF to suppress NNT warning messages.2.trainbpx,simuff这些命令应该怎么用?你用的神经网络不太适合你的matlab版本,有点过时了,对于BP网络,像用newff训练就没问题,建议你可买一本较新的神经网络参考书。
还可看matlab的help3.一个关于simulink仿真的问题根据4个输出a1、a2、a3、a4判断,输出最大的ai所对应的数。
这样一个过程不用s函数能不能实现阿?我用了if else语句,但是无法把不同时刻的不同输出值汇总成串行数据流输出。
用mux将各路信号构造成向量信号,再用matlab fcn下的max对之进行操作即可4.怎么实现在simulink仿真过程中与其他程序进行通讯,即如何在simulink仿真过程中实时读出数据。
不论通过网络或变量空间中的变量都行,应该怎么实现,请教!用to workspace或to file 都可以保存仿真时的数据5.请问如何在simulink中实现A/D和D/A转换。
有相关的模块,在xpc中,不过得和硬件对应上6.请问如何改变ode45函数中的步长ode45现在的版本不允许显式给出步长7.请教:如何将workspace中的输入,输出数据存为*.txt文件?save filename varname -ASCIIvarname是要存储的变量名,之间用空格分隔8.将PID的SIMULINK图的输出仿真图形怎样与自己设计的界面中的按钮连接回调函数怎么编要显示的数据用Outport端子表示,就可以用sim函数直接获得数据了9.怎样才能增加采样点?在Simulink里边连接框图,阶跃step输入经过一积分环节1/s,用out输出至workspa ce,tout跟yout都为56×1,能不能把56变成更大的值?怎么设置?谢谢!!!!!能增加,simulink中你得到的是默认的结果,如果向增加,则可以认为减小允许的误差限,即在simulink中的relative error项,如将其变化成e-6或其他更小的值。
另外还可以通过定步长方法进行仿真(这时应该注意要确认能保证仿真精度要求)10我最近在做电机控制的仿真时,遇到一个问题。
我是用matlab6.5中的电机模块做为模型,然后自己搭建了一个变频器。
在运行中经常出现运行到一半时就进行不下去了,simulink报错说步长有问题,我修改后还是不行。
请问在做有关电机的仿真时,应该如何设置仿真环境。
试试改变仿真算法,如ode15s11.运行时出现下面的提示:Derivative input 1 of block 'try1/check/Analog Filter Design' at time 0 is Inf or NaN. Stopping simulation. There may be a singularity in the solution. If not, try reducing the step size (either by reducing the fixed step size or by tightening the error tolerances).仿真系统数值不稳定,是模型的问题或是其他问题12.相位Phase的单位deg是什么意思?degree,it is same to say 度-------------------------------------------------------------------------13.workspace,数据多了就存不下啦?采样时间设为0.01秒,运行若干秒以后,在workspace中打开scopedata(示波器form at设定为Array,limit data points to last没选择!)时,系统提示:cannot display variables with more then 10000 elements,什么原因?数据量大了是不能显示得,实在不显示,可以考虑将矩阵存到文件中,你再去读文件了。
另外:你的矩阵维数是多少connot display variables with more than 65536 elements!a=ones(500,499);双击workspace中的a矩阵-------------------------------------------------------------------------14.simulink中的数据为什么会丢失啊?我在做一个比较大的系统的rtw仿真可是在仿真时,要是记录数据的模块(比如示波器,to workspace)等比较多或者步长比较小时,就会出现记录的数据不全或者干脆丢失的现象,比如to workspace的数据只有后面或者前面的几百个,丢了好多。
记录不全。
出现提示信息如下Warning: Received shutdown message from target 15.002000 seconds ago.Waiting for final data logging buffer andlogging terminator...Warning: Received shutdown message from target 30.004000 seconds ago.Waiting for final data logging buffer and logging terminator...Warning: Received shutdown message from target 45.003000 seconds ago.Waiting for final data logging buffer and logging terminator...Warning: Received shutdown message from target 60.008000 seconds ago.Waiting for final data logging buffer and logging terminator...Warning: Did not received final data logging buffer and loggingterminator from target. Disconnecting...这样运行就停止了,但数据不全。
另外,有时候运行时会出现突然黑屏现象。
还有就是在rtw中如何进行数据的实时观测,scope不可以了,在gui中编程可以实现吗?看看原来的simulink模型其中示波器或其他输出环节中可能选择了存最新若干数据的选项,解除它即可-------------------------------------------------------------------------15.请问白噪声譜生产随即数问题?已知白噪声譜为S0,如何生产随即数序列?遇到问题:1,用simulink中的Band-Limited White Noise模块,设置Noise Power为S0,可是为什么Sample time取不同的值,生成的生产随即数序列大小相差很大,有数量级的差别,不应该有那么大吧??2,生产随机数的大小与Seed的取值有关吗?3,有无更简单的方法。
你注意到1的现象很好实际该模块发出的噪声是经过除以sqrt(T)后的结果,T是采样周期。
所以你觉得幅值不同,这样可以保证噪声的强度符合有求。
-------------------------------------------------------------------------16.请教:怎样能查到仿真块的程序?simulink自带的模块如果不是mask的就查不了-------------------------------------------------------------------------17.为什么用SUMULINK里to file模块中的数据传不到M文件?需要设置什么?谢谢是写入.mat中的。
用load命令读入到workspace。
-------------------------------------------------------------------------18.请问如何产生带限白噪声如果先产生随机数再通过滤波器,请问,滤波器归一化频率如何确定,和采样频率归一化吗使用Band-Limited White Noise模块-----------------------------------------------------------------------19.请教:关于.m文件和simulink模型的仿真速度的问题。