yuanyuanlx 发表于 2006-11-30 14:38

关于控制系统仿真的数据传递,谢谢各位前辈指点

大家好:
       我在做毕业设计,要做控制系统的仿真。用现场采集的数据仿真,是个反馈系统,仿真输入数据共5个,其中4个来自采集好的现场数据,1个是仿真出来的结果反馈,请问怎样给系统输入这5个数据呢?
      我想把4个现场数据分别存为4个mat文件,用一个带5个输入(另一个输入就是仿真系统的反馈)的mux给模块传值,这样是不是很麻烦啊?有更好的办法吗?
谢谢了。

swqsxm 发表于 2006-11-30 16:11

将采集好的现场数据读入workspace,用from workspace模块。
好像跟你的方法也差不多,呵呵。

[ 本帖最后由 swqsxm 于 2006-11-30 16:14 编辑 ]

yuanyuanlx 发表于 2006-11-30 20:27

谢谢。
我想可以写成一个文件就够了,一行行读入,可是每一行的4个数据和反馈回来的 1个数据应该怎样对应起来呢?
我用Matlab Fcn模块接收这5个变量,它们在Matlab Fcn中构成一个新的向量,具体应该怎样实现?

想不明白了,刚才试了好半天也没成功,请高手指点,万分感激!

swqsxm 发表于 2006-11-30 21:00

你做的是什么控制系统?你这5个变量是要输入状态空间吗?不清楚你具体用这5个变量做什么,或许你可以不用Matlab Fcn模块。

yuanyuanlx 发表于 2006-11-30 21:18

呵呵,带钢的厚度控制,就是轧机方面的。在现场中,采集好几个数据给工控机,经一系列算法再输出控制量,来控制电机液压缸等,进一步控制带钢厚度。
我是做这个仿真。仿真系统中有一个模糊神经的控制器,想用Matlab Fcn模块自己编成实现,或者有更好的方法吗?好像没有现成的模块吧?我刚刚学simulink,还不熟悉。
用现场的数据仿真,这样能看出来控制器的效果。这是个反馈系统,我现在不清楚怎么将已采集好的数据和仿真反馈回来的数据怎样传到系统中。

谢谢
祝好!

swqsxm 发表于 2006-11-30 21:46

不好意思啊,我不懂你研究的东西,呵呵。我不知道这5个变量在你的控制系统中怎么用,难道不可以将4个实测的变量作为一个矩阵,然后将反馈的变量作为一个矩阵?不好意思,不懂啊。

yuanyuanlx 发表于 2006-11-30 22:22

呵呵,没关系的,我也不会,才在这里求救的。
可以将个实测的4个变量作为一个矩阵,将反馈的变量作为一个矩阵,但又必须把这一组5个变量同时传递到Matlab Fcn模块,因为这5个变量会影响控制器的输出,就不知道怎么办了,唉。我qq:411432128

swqsxm 发表于 2006-11-30 22:56

想办法变成同维的,然后在Matlab Fcn里变换回去不行吗?

yuanyuanlx 发表于 2006-11-30 23:17

好的,我试试,再想想。谢谢swqsxm

swqsxm 发表于 2006-12-1 08:43

S函数应该也可以吧。

yuanyuanlx 发表于 2006-12-1 17:03

我没用S函数,我要编写的控制器是模糊神经的一个算法,会用到好多matlab的函数,觉得用Matlab Fcn模块编写M函数比较容易些,是这样吧?
我又搜索了一些帖子,“如果有多个输入,用Mux组合成一个向量”,所以我把现场的4个变量存在了4个文件中,以列向量的形式都load进了workspace,但在用from workspace模块给仿真系统传递数据时候老有错误,提示:“Invalid matrix-format variable specified as workspace input in 'untitled/From Workspace'. The matrix must have two dimensions. Also, it must have at least 2 columns and must contain finite, double, and non-complex data. The first column must contain time values and the remaining columns the data values.Try using structure-format if your data has correct dimensions and time values but complex and/or non-scalar data values”,改不明白了。
这个参数怎么设置呢?我把这4个From Workspace参数设置里面的Data都设为了和workspace相对应的变量名,比如4个分别为:a,b,c,d,是这里不对吗?怎么改呢?

谢谢,再帮我看看吧,总觉得我搞这些东西脑袋里就是少点什么,呵呵

swqsxm 发表于 2006-12-1 17:59

From Workspace模块输入时需要有两列,一列是时间列,另一列就是你的变量。时间列自己定义就可以。

yuanyuanlx 发表于 2006-12-2 17:35

谢谢,要学的东西还真多,努力,呵呵,争取把我的这个系统搞定。
页: [1]
查看完整版本: 关于控制系统仿真的数据传递,谢谢各位前辈指点