转子系统固有频率的传递矩阵计算方法及其MATLAB实现
文章介绍了计算多自由度转子系统固有频率的传递矩阵法,以及用于实现该算法的Prohl法和Riccati 法的推导过程。利用Matlab 强大的绘图计算功能和改进的Riccati 传递矩阵法所具有的良好的数值稳定性,避免了传统的Prohl 传递矩阵法在计算过程中的丢根现象,提高了整个转子系统分析运算的精度。并用Matlab 对各算法的数值稳定性进行了分析。190其中112,21,2对应于(3)式的矩阵各项。将式(6)展开,得:}+1=11M}+12引入如下的 Riccal变换式中[]就是ca传递矩阵,它是一个2×2阶的待定矩阵,把式(8)代人式(7)式中得这就是 Riccait递推公式。由起始截面的边界条件(门1=0,(e小)≠0固有初始条件[S]=[0]。代人式(9)就可依次递推[S,[,.S对末端截面N+1有:由边界条件{门}x1-{0},{e≠0故得(10)式有解的条件是:+和PωM/法一样,在感兴趣的范围内按一定的步长选定试算频率计算出剩余量S-值,就可以画出剩余量随a变化的曲线,曲线与横坐标交点所对应的转速就是转子的各界临界转速。在PmM的传递矩阵法中,是用r阶的矩阵递推来求剩余量△(o2)。在Bceb的传递矩阵法中是用r/2阶的矩阵国递推来求剩余量S×+1,由于与的递推式中含有逆矩阵,使得剩余量曲线经常会出现异号无穷型奇点。因而在常见的转子动力系统中,剩余量曲线的根和奇点的位置十分接近。在实际转子系统中,临界转速值与奇点值间的间隔可能少于10/m,因此这种方法的丢根现象不可避免。参考PnoM方法中剩余量△(a2)无奇点的事实,可以对 riccati方法中的剩余量加以改造。由式(10)得+1n{%+12]1{}依次类推{}[]+∏[2+21{12在满足相同边界条件时应有△1=[]L21320064事实上(12)式就是(5)式,只是在数值计算中,它们是按不同的方法递推而得到的。因此在数值上它们的精度也不同。当PmM法出现数值不稳定时,(13)式所示的剩余量仍然保持相当的精度。由于剩余量(o2)随0变化的曲线不存在奇点,因此以作剩余量的曲线也不存在奇点。由于(12)式中un+ux]在进行S的递推过程中都已求得,所以在计算时也不会增加太多的工作量,但却可以克服丟根的缺点。事实上(13)式是把(11)式的异号无穷型奇点变为同号无穷型奇点,这样只有当跨过一个真正的根时才变号。枚除了两个临界转速值非常接近的情况,即当两临界转速的差小于所选步长时,一般不会发生漏根。三利用MmMh编制PmM/法、Bicn法及改进的kKRiccati法的程序对各算法结果进行分析。运用算例:如图转子系统简化模型,其数据如下1转子系统简化模型2.94t=588t(=236)1.3m(=1,2,,6)29592×10(kN·m)(i=1,2,)6)支承简化为如图模型相应参数为1.9600×106kN.m-1;2.7048×10kN·m=3.5771(=1,2)编制Maab程序运行待如下表所示的各阶频率。从表1可以看出在 Protel法的计算结果中,小于1058239rad/s固有频率共计算出了7个, Ricca算法计算出了13个固有频率,而改进了的ieai算法在消除奇点干扰后可以计算出17个固有频率。从而明显的看出改进的Racm法可以很好的避免计算过程中的丢根,在数值上具有很好的稳定性。计算细果慧裝protel算法(rads)Riccati算法(rads)改进的 Riccati算法(rad/s190.812100.815208249197.895197.895445924208.245208.24522.9655646.410445.9256832.610458.175458.1751058.239539925539925580.l659646.415574.265759.225580.165832.615646.415987.0057150451058.23583261516987.0051058.235利用a的绘图功能我们可以直观的从图中分析岀各算法的漏根现黎如图2、图3、图4所示:1912P法计算恩有单率输出固像1eg法计算回有率出四像t”改进计算有率始步入从图2、图3、图4可以看出在530到580的频率区间上,前两条曲线与0轴只有一个交点即所求固有频率为539925a/s的点,第三条曲线在相同的区间上与0轴的交点为三个,显然改进的 mccall方法找回了漏掉的根550.225ad/s和574265rad/s。利用 Matlab程序绘图我们还可以绘出改进的 Riccati方法把异号无穷型奇点转化成了同号的无穷型奇点的情况,如图5、图6所示。从图中区间987ras到1090rad/s的曲线可以明显的看出图5曲线以0轴为对称轴倒置后即得到图6在此区间的曲线线形,从而改进了 Riccati算法,在曲线中,只有在跨过个真正的根时剩余量才变号。所以除了两个临界转速之差小于所选步长的情况除外,一般改进后的riccati算法不会发生丢根c算利0改进的热计算有明p1m0p三41000100在计算多自由度转子系统固有频率的传递矩阵法中,我们可以利用 Matlab编程实现Ph/法、 riccati法以及改进的Riea法对于系统固有频率的计算,利用Maab的绘图功能对各算法的结果进行直观的分析,从而明显的看出各算法的漏根情况。本文对于计算复杂的多自由度系统固有频率具有参考意义,也可用于复杂系统低阶固有频率的粗算。同时 Matlab的矩阵运算功能在传递矩阵法中也得到了充分的利用(Electromechanical Engineering Dept, Sichuan University of Science Engineering, Zigong 643000, China)This article introduced the transfer matrix method about the natural frequency calculation of themuulti- degrees freedom rotor system, as well as inferential reasoning process about Prohl law and thericcatilayUSing formidable cartography and computation function of the Matlab as well as the good value stability aboutimproved riccati law it avoided the losing of the natural frequency and enhanced the precision ofentire rotorsystem further analyze. The value stability of various algorithms areanalyzed with Matlab in the paper toorotor system; natural frequency; transfer matrix method; Matlab
- 2020-12-04下载
- 积分:1
上海大学数据结构试卷及答案
很好的考试复习资料,内容很多,讲解很细致,而且涉及的也是重点数据结构试卷(一)参考答案选择题2.C3.DC 5. A6,C7.C8,B9.810.B填空题1.(F+!2.0(n),0(n1,4. s->rext=p-7nexl: y>neext=sn, 2e6.m=2了,CBA8.4,1610.n-1、应用题1.链式存储结构略,前序 ABDEL,中序 DBEAC,后序 DEBCA,2.哈夫曼树略,WPL=783.(i8,5,16,19,21,23),(5,16,21,19,18,23)h1012345674.线性探测:链地址法:h2->1人8∧1025322768h4->25->326865.深度:125364,广度:123456,最小生成树T的边集为E={(1,4),(1,3)(3,5,(,如,(.6)}四、算法设计题1.设计判断单链表中结点是否关于中心对称算法typedef struct (int s[100]; int top, y sqstack;int lklistsymmetry(iklist *head)sqstack stack; stack top=-1; Iklist"p;forip=head;pl=O; p=p->next)(stack. op++;stack s[stack top=p->data; 3for(p=head;pl=0;p=p->next)iE (p->data==stack s(stackLop!)stack top=stack top- 1; else return(0);return(1);2.没计链式存储结构上建立一楳二又树的算法。typedef char datatype,typedef struct node (datatype data; struct node *lchild, *rchild; bitreevoid createbitree( bilree*&bt)char ch; scanf("%c, &eif(ch==")(bt=0; return; Jbt=(bitree*)malloc(sizeof(bitree)); bt->data=chreatebitree(bt->lchild); createbitree(bt->rchild);3.设计判断一棵二叉树是否是二义排序树的算法。int minnum=-32768, flag=1typedef struct nodefint key; struct node"Child, *rchild; bitree;yoid inorder ( bitree *bt)if (bt =0)[inorder(bt->child ); if(minnum>bt->key)flag=0; minnum=bt->key, inorder (bt->rchild); h数据结构试卷(二选择题(24分)1.卜面关于线性表的叙述错误的是(D)(A)线性表采用顺序存储必须:用一片连续的存储空间(B)线性表采用链式存儐不必山用一片迕续的存储空闫(C)线性表用链式存便丁插入和删除操作的实现D)线性表釆用顺序存储便亍插入和删除操作的实现设哈大曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有(A界个空指针域,9有叶万为的纸且2(A)2m-1(B)2mC)2m+1妤没顺序循环队列Q0:M1]的头指针和尾指针分别为P和R,头指针F总是指向队头元素的前一位置尾指针R总是指向队尾元的当前位置,则该循环队列中的元素个数为()(A)R-T(B)F-R(C)(R-F+M)%M()(F-R+M)%M√4!设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为A(A)BADC(B)BCDA(C CDAB(D) CBDA5.设某完全无向图有n个顶点,则该完全无向图中有(A条边(A)n(n-1)/2(B)n(n-1)(C)n26.设某棵二叉树中有2000个结点,则该二叉树的最小高度为(O)。(C)11D)12设采图中有m个顶点,则该有向图对应的剑趣中有()个表头结点(B)n(D)2n-18.设一组初始记录关键字序列(5,2,6,3,8),以笫一个记录关键字5为基准进行一趟快速排序的结果为(C)。(A)2,3,5;8,6(B)3,2,5,8,6(C)3,2,5:6,8①D)2,3,6,5,8、填空题(24分)1.为了能有效地应用HASH查找技术,必须解决的两个问题是和下面程序段的功能实现数据x进栈,要求在下划线处填上正确的语句typedef struct (int s[ 100]; int top: f sqsiack;void push (sqstack &stack, int x)if( stackop==m-1) printf(“ overflow”)lies9tk二x;“a少+:3.中序遍历二叉排序树所得到的序列是有度序列(填有序或无序铁邀神厅的最间复弟度为1),平均时间复杀度为地D(3设某倮二叉树中度数为0的结点数为N,度数为1的结点数为N,则该二叉树中度数为2的结点数若采用二叉链表作为该二叉树的存储结构,则该二叉树中共有山+41个空指针域6.设某无向各中顶点数和边数分别为n和e,所有顶点的度数之和为d,则e=7.设一缃初始记录关键字序列为(55,63,44,38,75,80,31,56),则利用筛选法建立的初始堆为8.改某无向图G的邻接表为2->1>3又v--1->4->2·从点W开始的深度优先遍历序圳为1,24:切度优先遍历序列为省三、应用题(36分)].设一组初始记录关键字序为(45,80,48,40,22,78),则分别给出第4趟简单选择排序和第4趟直接插入排序后的结果2.设指针变p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A的后面插入结点B的操作序列(设双向链表中结京的两个指针域分别为11ink和 rlink)a设一组有序的记录关键字序圳为(13,18,24,35,47,50,62,83,90),查找方法用二分查找要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度4设一棵树T中边的集合为联A,B),(A,C,(A,D),(B,E),(C,F,(C,G)},要求用孩子兄弟表示法(二叉链表)表示出该树的存储结构并将该树转化成对应的二叉树5.设有无向图G(如右图所示),要求给出用普里姆算法构造最小生成树所走6过的边的集合。6.设有—组初始记录关键字为(45,80,48,4,2,178,要求构造一楔二(56叉排序树并给出构造过程。四、算法设计题(16分)1.设有一组初始记录关键字序列(K,K2,…,K),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K,右半部分的每个关键字均大于等于K2.设有两个集合A和集合B,要求设计生成集合C=A∩B的算法,其中集合A、B和C用链式存储结构表示数据结构试卷(二)参考答案选择题ltd 2. B5,A7,B8.C二、填空题构造一个好的HASH凼数,确定解决冲突的方法2. stack top+t, stack s[stack top ]=3.有序4.0(n2),0( logan)5.N-1,2N+N6.d/27.(31,38,54,56,75,80,55,638.(1,3,4,2),(14)应用题1.(22,40,45,48,80,78),(40,45,48,80,22,78)2. q>llink=p: g->rlink=p->rlink; p->rlink->link=q; p->rlink=q·3.2,ASL=91*1+2*2+3*4+4*2)=25/94.树的链式存储绪构略,二叉树略E={(1,3),(1,2),(3,5),(5,6),(6,4)}6.略四、算法设计题1.设有组初始记录关键字序列(K1,K2,…,Kn),要求设计一个算法能够在0(n)的时间复杂度内将线性表划分成两部分,其中左半部分的每个关键字均小于K1,右半部分的每个关键字均大于等于KYoid quickpass(int r[, int s, int t)int i=s,j=t, x=r[s]While(inext: p->data=g->data: p->next=g->next: free(q)B)gp->next: g->data=p->data: p->next=g >next free(g):(C)q=p->next: p->next=q->next: free(q)(D)q=p->next: p->data=q->data: free q)4.设有n个待排序的记录关键字,则在堆排序中需要(小个辅助记录单元(A)1(B)n(c)nlogen5.设一组初始关键字记录关键字为(20,15,14,18,21,36,40,10),则以20为基准记录的一趟快速排序结束后的结果为(A)10,15,14,18,20,36,40,21(B)10,15,14,18,20,40,36,2I(C)10,15,14,20,18,40,36,21(D)15,10,14,18,20,36,40,21y/设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为)(A)0(1)(B)0(10g2n)((D)O(n2)7.设无向图G中有n个顶点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为(D(B)e,nC)2D)n,28.设某强连通图中有n个顶点,则该强连通图中至少有(C)条边(A)n(n-1)(B)n+1D)n(+19.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列)方法可以达到此目的(A)快速排序(B)堆排序(C)归并排序D)插入排序0下列四种排序中()的空间复杂度最大。(A)插入排序(B)冒泡排序(C)堆排序(D)归并排序二、填空殖(48分,其中最后两小题各6分)数据的物理结构主要包括座不构利和环结堆两种情况设一棵完全:叉树中有500个结点,则该二叉树的深度为4:若用二叉链表作为该完全二叉树的存情结构,则共有55个空指针域3.设输入序列为1、2、3,则经过栈的作用后可以得到种不同的输出序列。4.设有向图G用邻接矩阵An]「m作为存储结构,则该邻接矩阵中第i行上所有元素之和等于顶点i的友,第1列上所有元素之和等于顶点i的入区毕设哈夫曼树中共有n小结点,则该哈夫曼树中有日个度数为1的结点6.没有向图G中有n个顶点e条有向边,所有的顶人度散之和为d则形和d的关系为=e遍历二义排序树中的结点可以得到一个递增的关键字序列(填先序、中序或后序)8.改奁找表中有100个元素,如果川二分法查找方法查找数据元素X,则最多需要比较次就可以断定数据元素K是否在查找表中9.·不论是顺序存储结构的栈还烂链式存储结构的栈:其入饯和出栈榤作的间复柒度均为的10.设有a个结点的完全一义树,如果按照从自上到下、从左到右从1开始顺序编号,则第i个结点的义结点编号为“,右孩子结点的编号为2计11.设一组初始记录关键字为(72,73,71,23,94,16,5),则以记录关键字72为基准的·趟快速排序结果为!2.设有向图G中有向边的集合F=(,,,,key==k)Y七; else if(t->key>k)tt>lchd;lse七飞→YC三、算法设计题(22分设计在单链表中删除值相同的多余结点的算法2.设计-个求结点x在二叉树中的双亲结点算法。数据结构试卷(三)参考答案、选择题B4.A5.A6.B7.D8.C9.B10. D第3小题分析:首先用指针变量q指向结点A的后继结点B,然后将结点B的值复制到结点A中,最后删除结点B第9小题分析;9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为0(1ogn)。土、填空题1.顺序存储结构、链式存储结构2.9,5013.54.出度,入度6.7.中序8.79.0(1)10.豆/2,2i+111.(5,16,71,23,72,94,73)12.(1,4,3,2)13. j+l, hashtable[i]. key==k14. return(t),t=t-rchild第8小題分析:二分査找的过程可以用一棵二叉树来描述,该二叉树称为二叉判定树。在有序表上进行分查找时的查找长度不超过二叉判定树的高度1+log2n三、算法设计题设计在单链表中删除值相同的多余结点的算法。typedef int datatype;typedef struct node datatype data; struct node *next; lklistvoid delredundant (lklist *&head)Iklist *p,响q,*s;for(p=head; pl=0; p=p->next)tor(q=p>nex s=4;q!=0;if (q->data==p->data)[s->next=q->next; free(q); q=s->next; 1else (s=q, q=q->next; y。2.设计个求结点x在二义树中的双亲结点算法。typedef struct node (datatype data; struct node *Child, *rchild; bitree;bitree*q[20]; int r=0, f=0, flag=0void preorder (bitree * bt, char x)
- 2021-05-07下载
- 积分:1