exampl10.m
来自「是学习鲁棒自适应控制的很好的例子,对进一步掌握matlab很有帮助.」· M 代码 · 共 438 行 · 第 1/2 页
M
438 行
set_param([sys,'/','Adaptive Law/omega'],... 'Port','2',... 'position',[15,107,40,133])add_line([sys,'/','Adaptive Law'],[275,110;325,110])add_line([sys,'/','Adaptive Law'],[280,35;325,35])add_line([sys,'/','Adaptive Law'],[45,40;60,40;60,70;75,70])add_line([sys,'/','Adaptive Law'],[45,120;60,120;60,80;75,80])add_line([sys,'/','Adaptive Law'],[110,75;135,75])add_line([sys,'/','Adaptive Law'],[185,65;210,65;210,35;235,35])add_line([sys,'/','Adaptive Law'],[185,80;210,80;210,110;235,110])add_line([sys,'/','Adaptive Law'],[445,75;475,75])add_line([sys,'/','Adaptive Law'],[365,35;390,35;390,65;405,65])add_line([sys,'/','Adaptive Law'],[365,110;390,110;390,80;405,80])set_param([sys,'/','Adaptive Law'],... 'Mask Display','Adaptation')% Finished composite block 'Adaptive Law'.set_param([sys,'/','Adaptive Law'],... 'orientation',2,... 'Drop Shadow',4,... 'position',[310,225,400,280])add_block('built-in/Sum',[sys,'/','Sum'])set_param([sys,'/','Sum'],... 'inputs','-+',... 'position',[405,82,435,118])add_block('built-in/Mux',[sys,'/','Mux2'])set_param([sys,'/','Mux2'],... 'inputs','2',... 'position',[440,155,470,190])add_block('built-in/Scope',[sys,'/','Tracking Error'])set_param([sys,'/','Tracking Error'],... 'Vgain','1.000000',... 'Hgain','5000.000000',... 'Vmax','2.000000',... 'Hmax','10000.000000',... 'Window',[800,144,1080,364],... 'position',[495,20,530,60])add_block('built-in/Mux',[sys,'/','Mux1'])set_param([sys,'/','Mux1'],... 'inputs','2',... 'position',[570,64,600,111])add_block('built-in/To Workspace',[sys,'/','To Workspace'])set_param([sys,'/','To Workspace'],... 'mat-name','error',... 'buffer','10000',... 'position',[640,75,695,105])add_block('built-in/Clock',[sys,'/','Clock'])set_param([sys,'/','Clock'],... 'orientation',1,... 'position',[545,30,565,50])% Subsystem 'Text'.new_system([sys,'/','Text'])set_param([sys,'/','Text'],'Location',[147,85,576,495])add_block('built-in/Note',[sys,'/',['Text/To see the effects of the modification on the performance',13,'of the adaptive control scheme, you can run simulations',13,'for different value of tau by changing the denominator',13,'of the transfer function in the Controller block.']])set_param([sys,'/',['Text/To see the effects of the modification on the performance',13,'of the adaptive control scheme, you can run simulations',13,'for different value of tau by changing the denominator',13,'of the transfer function in the Controller block.']],... 'position',[210,270,215,275])add_block('built-in/Note',[sys,'/',['Text/The modification can be turned off by changing the',13,'Gain in the Controller block to zero. When the modification',13,'is turned off, you should be able to see the bursting',13,'(the same as that in example9 on this diskette).']])set_param([sys,'/',['Text/The modification can be turned off by changing the',13,'Gain in the Controller block to zero. When the modification',13,'is turned off, you should be able to see the bursting',13,'(the same as that in example9 on this diskette).']],... 'position',[205,155,210,160])add_block('built-in/Note',[sys,'/',['Text/This program simulates the modified MRAC scheme',13,'discussed in Subsection 9.4.1. It demonstrates that',13,'the modified scheme helps to eliminate the bursting',13,'(see Example 9.4.1 for discussion on bursting)',13,' Please refer to the textbook for detailed analysis.']])set_param([sys,'/',['Text/This program simulates the modified MRAC scheme',13,'discussed in Subsection 9.4.1. It demonstrates that',13,'the modified scheme helps to eliminate the bursting',13,'(see Example 9.4.1 for discussion on bursting)',13,' Please refer to the textbook for detailed analysis.']],... 'position',[205,30,210,35])set_param([sys,'/','Text'],... 'Mask Display','Double click here\nfor help to run\nthe simulation')% Finished composite block 'Text'.set_param([sys,'/','Text'],... 'Drop Shadow',4,... 'position',[410,340,555,421])add_block('built-in/Sine Wave',[sys,'/','Input r'])set_param([sys,'/','Input r'],... 'amplitude','0.1',... 'frequency','0.01',... 'position',[5,22,40,58])% Subsystem 'Disturbance'.new_system([sys,'/','Disturbance'])set_param([sys,'/','Disturbance'],'Location',[20,78,620,383])add_block('built-in/Sum',[sys,'/','Disturbance/Sum4'])set_param([sys,'/','Disturbance/Sum4'],... 'position',[295,170,315,190])add_block('built-in/Product',[sys,'/','Disturbance/Product'])set_param([sys,'/','Disturbance/Product'],... 'position',[395,125,420,145])add_block('built-in/Outport',[sys,'/','Disturbance/d'])set_param([sys,'/','Disturbance/d'],... 'position',[465,122,490,148])add_block('built-in/Signal Generator',[sys,'/','Disturbance/Signal Gen.1'])set_param([sys,'/','Disturbance/Signal Gen.1'],... 'Peak','0.500000',... 'Peak Range','5.000000',... 'Freq','0.002000',... 'Freq Range','10.000000',... 'Wave','Sqr',... 'Units','Rads',... 'position',[140,158,185,192])add_block('built-in/Constant',[sys,'/','Disturbance/Constant2'])set_param([sys,'/','Disturbance/Constant2'],... 'Value','0.5',... 'position',[245,200,265,220])add_block('built-in/Inport',[sys,'/','Disturbance/r'])set_param([sys,'/','Disturbance/r'],... 'position',[15,31,40,59])add_block('built-in/Gain',[sys,'/','Disturbance/Gain1'])set_param([sys,'/','Disturbance/Gain1'],... 'Gain','3',... 'position',[70,29,100,61])add_block('built-in/Sum',[sys,'/','Disturbance/Sum1'])set_param([sys,'/','Disturbance/Sum1'],... 'position',[150,67,180,103])add_block('built-in/Gain',[sys,'/','Disturbance/Gain2'])set_param([sys,'/','Disturbance/Gain2'],... 'Gain','-1',... 'position',[210,67,245,103])add_block('built-in/Saturation',[sys,'/','Disturbance/Saturation'])set_param([sys,'/','Disturbance/Saturation'],... 'position',[275,67,315,103])add_block('built-in/Gain',[sys,'/','Disturbance/Gain'])set_param([sys,'/','Disturbance/Gain'],... 'Gain','2',... 'position',[70,115,100,145])add_block('built-in/Inport',[sys,'/','Disturbance/y'])set_param([sys,'/','Disturbance/y'],... 'Port','2',... 'position',[15,117,40,143])add_block('built-in/Note',[sys,'/',['Disturbance/To eliminate the bursting, change',13,'the Gain from 2 to -1']])set_param([sys,'/',['Disturbance/To eliminate the bursting, change',13,'the Gain from 2 to -1']],... 'position',[125,240,130,245])add_line([sys,'/','Disturbance'],[190,175;290,175])add_line([sys,'/','Disturbance'],[425,135;460,135])add_line([sys,'/','Disturbance'],[45,130;65,130])add_line([sys,'/','Disturbance'],[45,45;65,45])add_line([sys,'/','Disturbance'],[250,85;270,85])add_line([sys,'/','Disturbance'],[185,85;205,85])add_line([sys,'/','Disturbance'],[320,85;360,85;360,130;390,130])add_line([sys,'/','Disturbance'],[320,180;360,180;360,140;390,140])add_line([sys,'/','Disturbance'],[270,210;280,210;290,185])add_line([sys,'/','Disturbance'],[105,130;125,130;125,95;145,95])add_line([sys,'/','Disturbance'],[105,45;125,45;125,75;145,75])set_param([sys,'/','Disturbance'],... 'Mask Display','Disturbance')% Finished composite block 'Disturbance'.set_param([sys,'/','Disturbance'],... 'orientation',1,... 'Drop Shadow',4,... 'position',[54,65,156,125])add_line(sys,[555,55;565,75])add_line(sys,[370,40;390,40;400,90])add_line(sys,[45,40;295,40])add_line(sys,[250,165;435,165])add_line(sys,[285,40;275,40;275,180;435,180])add_line(sys,[155,165;155,165])add_line(sys,[120,260;110,260;120,170])add_line(sys,[440,100;565,100])add_line(sys,[475,175;495,175;495,265;405,265])add_line(sys,[305,255;295,255;295,240;265,240])add_line(sys,[440,265;440,305;285,305;285,260;265,260])add_line(sys,[480,100;490,40])add_line(sys,[605,90;635,90])add_line(sys,[260,165;260,50;130,60])add_line(sys,[390,165;400,110])add_line(sys,[505,100;505,240;405,240])add_line(sys,[505,235;505,320;275,320;265,280])add_line(sys,[105,130;105,155;120,155])add_line(sys,[80,40;80,60])drawnow% Return any arguments.if (nargin | nargout) % Must use feval here to access system in memory if (nargin > 3) if (flag == 0) eval(['[ret,x0,str,ts,xts]=',sys,'(t,x,u,flag);']) else eval(['ret =', sys,'(t,x,u,flag);']) end else [ret,x0,str,ts,xts] = feval(sys); endelse drawnow % Flash up the model and execute load callbackend
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?