




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Markov 参数算法编程 、 Markov 参数的定义 Markov 参数是系统能观测性规范型实现时的重要参数,他给出了系统能观测性规范型 的一种简单的实现方法,应用十分广泛。其定义如下: 对于系统: a(s) b(s) U(s) b1 s2 b2s b3 32 s a1s a2s a3 它的可观标准型实现如图 1 所示。 1 b1 2 b2 a1b1 3 b3 a1b2 a2b1 a1b1 给出更紧凑的系数表达式为: 若设 1 a2 3 0 1 b1 0 b2 1 b3 1 H(s) c(sI A) 1b cAdj ( sI A)b det(sI A) b(s)his i a(s) 1 可
2、以证明 i hi , i 1, ,n hi 就叫做系统的马尔科夫 (Markov) 参数。它在研究系统状态空间实现的各种代数性质时, 是十分重要的。它可以解释为系统的脉冲响应,即 1 At h(t) L 1H (s) ceAtb 则 cAib hi 1 dii h(t) , i 0,1, i i 1 dt i t 0 、程序流程图 Markov 本程序即由给定的系统传递函数,写出系统的控制器规范型,最后计算系统的 参数,流程图如图 2 所示。 图 2 Markov 参数算法流程图 三、程序运行举例 举例如下: 若给定系统传递函数为: H(s) s2 3s 1 s3 2s2 1 求系统的 Mar
3、kov 参数。 程序运行结果如下: * 欢迎使用 Markov 参数算法! *作者:杨智勇 *版本: 1.0 *2002 年 5 月 1 日 请输入分母的最高阶次 : 3 请输入分子的各阶系数 : ( 例如:若分子为 b1*S2+b2*S1+b3, 则应输入的系数为 b1,b2,b3) 1 3 1 请输入分母的各阶系数 : (例如:若分母为 S3+a2*S1+a3, 则应输入的系数为 0,a2,a3) -2 0 -1 系统的控制器型规范型的矩阵 Ac , bc ,cc 为: Ac= -2.000000 0.000000 -1.000000 1.000000 0.000000 0.000000
4、0.000000 1.000000 0.000000 bc= 1.000000 0.000000 0.000000 cc= 1.000000 3.000000 1.000000 计算的 Markov 参数为: h1=1.000000 h2=1.000000 h3=-1.000000 四、程序清单 Markov 参数算法程序清单为: #include stdlib.h #include stdio.h void main() register int i, j, k; int denoindex; float m; float *Mata; float *Matb,*Matc,*Mat,*Cof
5、; *n); *n); *n); *n); printf( *n); printf(*欢迎使用 Markov 参数算法! printf(* 作者:杨智勇 printf(*版本: 1.0 printf(*2002年 5月 1日 printf(*nn); printf( 请输入分母的最高阶次 :n); scanf(%d, printf( 请输入分子的各阶系数 :n); printf( 例如:若分子为 b1*S2+b2*S1+b3, 则应输入的系数为 b1,b2,b3)n); Matc = (float *)malloc(denoindex*sizeof(float);/ 输入 c 矩阵 if(Ma
6、tc = NULL) printf( 内存分配不足! ); exit(1); for(i = 0;i denoindex ;i+) scanf(%f, Matci = m; printf( 请输入分母的各阶系数 :n);/输入 a 矩阵 printf( 例如:若分母为 S3+a2*S1+a3, 则应输入的系数为 0,a2,a3)n); Mata =(float *) malloc(denoindex); if(Mata = NULL) printf( 内存分配不足! ); exit(1); for(i = 0; i denoindex; i+) Matai = (float*)malloc(d
7、enoindex*sizeof(float); if(Matai = NULL) printf( 内存分配不足! ); exit(1); for(j = 0; j denoindex ; j+) /读入 a 阵第一行 scanf(%f, Mata0j = m; /给 a 阵其他元素赋值 for(i = 1; i denoindex ; i+) for(j = 0; j denoindex; j+) if(j = i-1) Mataij = 1; else Mataij = 0; Matb =(float*) malloc(denoindex*sizeof(float);/ 输入 b 矩阵 if
8、(Matb = NULL) printf( 内存分配不足! ); exit(1); Matb0 = 1.0; for (i = 1; i denoindex; i+) Matbi = 0.0; /输出系统控制器性规范型矩阵 printf(系统的控制器型规范型的矩阵 Ac ,bc,cc为:n); /输出 Ac printf(Ac=t); for (i = 0; i denoindex; i+) for(j = 0; j denoindex; j+) printf(%ft,Mataij); printf(nt); printf(bbbbbbbb);/输出 bc printf(bc=t); for
9、(i = 0; i denoindex; i+) printf(%ft,Matbi); printf(n);/输出 cc printf(cc=t); for (i = 0; i denoindex; i+) printf(%ft,Matci); printf(n); / 计算 Markov 参数 Cof = (float*)malloc(denoindex*sizeof(float); if(Cof = NULL) printf( 内存分配不足! ); exit(1); Mat =(float*) malloc(denoindex*sizeof(float); if(Mat = NULL) p
10、rintf( 内存分配不足! ); exit(1); printf( 计算的 Markov 参数为: n); for(k = 0; k denoindex; k+) if(k = 0)/ 计算第一个 Markov 参数 Cofk = 0; for(j = 0; j denoindex; j+) Cofk = Cofk + Matcj*Matbj; printf(h%d=%ft,k+1,Cofk); else for(j = 0; j denoindex; j+)/ 计算 c*A 矩阵 m = 0; for(i = 0; i denoindex; i+) m = m + Matci * Mataij; Matj = m; for(i = 0; i denoindex; i+) Matci = Mati; Cofk = 0;/ 计算其他 Markov 参数 for(j = 0; j denoindex; j+) Cofk = Cofk + Matcj*Matbj; print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年陪诊师考试考前必读的试题及答案
- 业务员销售技巧的培训
- 共享自习室创业计划书
- 如何有效地进行行业安全意识教育
- 班主任励志传道引领未来计划
- 环境监测行业目标设定计划
- 促进多学科合作的工作计划
- 学期教学工作布置计划
- 深入预算员考试要点试题及答案
- 对工作计划进行动态调整的要点
- 土方平衡方案
- 承包商入厂安全培训考试题答案典型题汇编
- 2025年湖北工业职业技术学院单招职业技能测试题库必考题
- 2025年辽阳职业技术学院单招职业技能测试题库必考题
- 全国第三届职业技能大赛(无人机驾驶(植保)项目)选拔赛理论考试题库(含答案)
- 危险化学品目录(2024版)
- JHA工作危险性分析(全)
- 双台110kV主变短路电流计算书
- 载荷试验方案
- 小学四年级下册美术课件-5.14成群的动物-岭南版(25张)ppt课件
- 北京市土地一级开发项目管理工作流程图
评论
0/150
提交评论