首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

VC与Matlab联合编程常见问题集锦

VC与Matlab联合编程常见问题集锦

命令行如何运行simulink外部模式build和start
用sim()函数
该函数的调用格式为:
[t,x,y]=sim(f1,tspan,options,ut)
其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。

-------------------------------------------------------------------------

Q:请问matlab中的仿真模块,可以看到起源程序吗?

A:那些基本模块是看不了源代码的,有很多模块是用subsystem组成的,你可以用
look under mask(鼠标右键)看到里面是怎样用子模块搭接的,还有很多是
由s函数写成的simulink的模块,这些直接edit sfunname(s函数的名字)
就可以看到源代码



-------------------------------------------------------------------------
Q:在simulink参数中设置的步长是50e-6,在系统中有一个simout模块向MATLAB中传递数据,但是希望以1e-3的步长获取数据,因该如何设计?

A:在simout模块中直接设定仿真步长是不能运行的。
需要插入一个"zero order hold"模块,将该模块的采样时间设置为1e-03就可以了。



-------------------------------------------------------------------------
Q:simulink中IGBT等电力元件都有个m极,是什么作用的?

A:用于测量流过IGBT电流及其电压



-------------------------------------------------------------------------
Q:用simlink画的图,在示波器中显示,如何复制到word中?

A:告诉你一个办法,在加上示波器的地方加上to workspace改为array,在主窗口中plot直接抓过去也行吧。Edit下有copy model选项




-------------------------------------------------------------------------
Q:simulink中的mask问题
请问如何封装
prompt,varible填啥
如何初始化

A:prompt中,填写变量的提示,如:直线斜率
variable中填写变量名.如:k




-------------------------------------------------------------------------
Q:有关神经网络工具箱
为什么当训练和仿真时,命令窗口会出现一堆warning?如:
*WARNING* TRAINBPX is an obsolete function.
Use NNT2FF and TRAIN to 更新 and train your network.
无效 NNTWARN OFF to suppress NNT warning messages.
trainbpx,simuff这些命令应该怎么用?

A:你用的神经网络不太适合你的matlab版本,有点过时了,对于BP网络,像用newff训练就没问题,建议你可买一本较新的神经网络参考书。还可看matlab的help




-------------------------------------------------------------------------
Q:一个关于simulink仿真的问题
根据4个输出a1、a2、a3、a4判断,输出最大的ai所对应的数。这样一个过程不用s函数能不能实现阿?我用了if else语句,但是无法把不同时刻的不同输出值汇总成串行数据流输出。

A:用mux将各路信号构造成向量信号,再用matlab fcn下的max对之进行操作即可



-------------------------------------------------------------------------
Q:怎么实现在simulink仿真过程中与其他程序进行通讯,即如何在simulink仿真过程中实时读出数据。不论通过网络或变量空间中的变量都行,应该怎么实现,请教!

A:用to workspace或to file 都可以保存仿真时的数据



-------------------------------------------------------------------------
Q:请问如何在simulink中实现A/D和D/A转换。

A:有相关的模块,在xpc中,不过得和硬件对应上



-------------------------------------------------------------------------
Q:请问如何改变ode45函数中的步长

Ade45现在的版本不允许显式给出步长



-------------------------------------------------------------------------
Q:请教:如何将workspace中的输入,输出数据存为*.txt文件?

A:save filename varname -ASCII,
varname是要存储的变量名,之间用空格分隔



-------------------------------------------------------------------------
Q:将PID的SIMULINK图的输出仿真图形怎样与自己设计的界面中的按钮连接 回调函数怎么编?

A:要显示的数据用Outport端子表示,就可以用sim函数直接获得数据了



-------------------------------------------------------------------------
Q:怎样才能增加采样点?在Simulink里边连接框图,阶跃step输入经过一积分环节1/s,用out输出至workspace,tout跟yout都为56×1,能不能把56变成更大的值?怎么设置?谢谢!!!!!

A:能增加,simulink中你得到的是默认的结果如果向增加,则可以认为减小允许的误差限,即在simulink中的relative error项
,如将其变化成e-6或其他更小的值。另外还可以通过定步长方法进行仿真(这时应该注意要确认能保证仿真精度要求)




-------------------------------------------------------------------------
Q:我最近在做电机控制的仿真时,遇到一个问题。我是用matlab6.5中的电机模块做为模型,然后自己搭建了一个变频器。在运行中经常出现运行到一半时就进行不下去了,simulink报错说步长有问题,我修改后还是不行。请问在做有关电机的仿真时,应该如何设置仿真环境。

A:试试改变仿真算法,如ode15s




-------------------------------------------------------------------------
Q:运行时出现下面的提示:
Derivative 无效 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)

A:仿真系统数值不稳定,是模型的问题或是其他问题




-------------------------------------------------------------------------
Q:相位Phase的单位deg是什么意思?

A:degree,it is same to say 度




-------------------------------------------------------------------------
Q:workspace,数据多了就存不下啦?采样时间设为0.01秒,运行若干秒以后,在workspace中打开scopedata(示波器format设定为Array,limit data points to last没选择!)时,系统提示:cannot display variables with more then 10000 elements,什么原因?

A:数据量大了是不能显示得实在不显示,可以考虑将矩阵存到文件中,你再去读文件了。
另外:你的矩阵维数是多少?connot display variables with more than 65536 elements!
a=ones(500,499);双击workspace中的a矩阵




-------------------------------------------------------------------------
Q: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 logging
  • terminator from target. Disconnecting...

复制代码

这样运行就停止了,但数据不全。另外,有时候运行时会出现突然黑屏现象。还有就是在rtw中如何进行数据的实时观测,scope不可以了,在gui中编程可以实现吗?

A:看看原来的simulink模型,其中示波器或其他输出环节中可能选择了存最新若


返回列表