huspbuaa2 发表于 2006-5-11 10:17

[求助]最优控制的基础上加一个模糊控制模块问题

哪位高手能救小弟?
我做的毕设是振动控制,主要是在最优控制的基础上加一个模糊控制模块。动力学模型是5阶的,采用状态空间方法,最后化为模态形式。目标是在最优控制生成的反馈量-kx上乘以一个系数,这个系数用模糊控制生成。模糊控制器的输入量由最优控制中的卡曼估计器得到的模态计算出的振动能量与实际控制电压两方面组成。
我现在遇到的一个难题是不加模糊控制模块,只计算振动能量(0.5*q'*Kv*q+0.5*Q'*Q.其中q是模态,q'是模态的转置,Q是模态的导数,Q'是模态的导数的转置,前项代表振动势能,后项代表振动动能。)时,运行时正常,能计算出振动能量。当加上我的模糊控制模块(2输入一输出)时,系统就报错:number of out put rows does not match the transposed input dimensions。当加上我的模糊控制模块(一输入一输出),运行也正常。请问这是为什么?但由于控制结果的要求,我必须用2输入一输出的模糊控制。请赐教!我的email:huspbuaa2@sohu.com

cao 发表于 2006-8-6 20:15

点点建议!

1、理清输入输出关系
  画出框图形式,将有关矩阵维数全列出,先从形式上分析是否正确!

2、仿真中也应注意问题
  你可能是用MATLAB仿真的吧!你可以一部分一部分的调,先调最优控制\再模糊控制,(可以将模糊控制模块独立出来调一下);
  如果是编程的话,可以矩阵的列与行分清楚,行向量与列向量分清楚,看你的错误提出,可能是矩阵或向量维数不对;

  再者,仿真时,时间是独立变量,可以也要注意!
  祝好运!

gyp 发表于 2007-3-24 11:14

你碰到的问题是因为在kalman滤波后输出维数为一维;而模糊控制是二维输入引起的,在kalman滤波器的输出方程中可以增加一维输出就可以了,如设y=Cx+Du,一般D=0,C=形式,而状态向量可能是多维的,则在相应的需要输出的状态向量前修改C矩阵即可,例如状态向量为',需要在模糊控制器的输入中用到的估计值,则可在kalman滤波器的输出方程中设C‘=即可
页: [1]
查看完整版本: [求助]最优控制的基础上加一个模糊控制模块问题