📄 example6.m
字号:
set_param([sys,'/','Controller/theta'],... 'Port','2',... 'position',[15,117,50,153])add_block('built-in/Demux',[sys,'/','Controller/Demux'])set_param([sys,'/','Controller/Demux'],... 'position',[95,26,145,74])add_block('built-in/Demux',[sys,'/','Controller/Demux1'])set_param([sys,'/','Controller/Demux1'],... 'position',[100,111,150,159])add_block('built-in/Mux',[sys,'/','Controller/Mux2'])set_param([sys,'/','Controller/Mux2'],... 'inputs','9',... 'position',[275,49,320,151])add_block('built-in/Outport',[sys,'/','Controller/u'])set_param([sys,'/','Controller/u'],... 'position',[450,82,485,118])add_block('built-in/Fcn',[sys,'/','Controller/omega*theta+u_a'])set_param([sys,'/','Controller/omega*theta+u_a'],... 'Expr','u(1)*u(5)+u(2)*u(6)+u(3)*u(7)+u(4)*u(8)+u(9)',... 'position',[360,84,420,116])add_block('built-in/Inport',[sys,'/','Controller/u_a'])set_param([sys,'/','Controller/u_a'],... 'Port','3',... 'position',[15,202,50,238])add_line([sys,'/','Controller'],[55,135;95,135])add_line([sys,'/','Controller'],[55,50;90,50])add_line([sys,'/','Controller'],[150,45;230,45;230,70;270,70])add_line([sys,'/','Controller'],[150,55;220,55;220,80;270,80])add_line([sys,'/','Controller'],[150,65;210,65;210,90;270,90])add_line([sys,'/','Controller'],[155,120;210,120;210,100;270,100])add_line([sys,'/','Controller'],[155,130;220,130;220,110;270,110])add_line([sys,'/','Controller'],[155,140;230,140;230,120;270,120])add_line([sys,'/','Controller'],[155,150;240,150;240,130;270,130])add_line([sys,'/','Controller'],[150,35;240,35;240,60;270,60])add_line([sys,'/','Controller'],[55,220;250,220;250,140;270,140])add_line([sys,'/','Controller'],[325,100;355,100])add_line([sys,'/','Controller'],[425,100;445,100])set_param([sys,'/','Controller'],... 'Mask Display','Controller\n(generates u)')% Finished composite block 'Controller'.set_param([sys,'/','Controller'],... 'Drop Shadow',4,... 'position',[375,155,475,215])% Subsystem 'Filter'.new_system([sys,'/','Filter'])set_param([sys,'/','Filter'],'Location',[88,58,552,391])add_block('built-in/Mux',[sys,'/','Filter/Mux'])set_param([sys,'/','Filter/Mux'],... 'position',[320,62,350,108])add_block('built-in/Inport',[sys,'/','Filter/u'])set_param([sys,'/','Filter/u'],... 'position',[20,14,50,46])add_block('built-in/Inport',[sys,'/','Filter/y'])set_param([sys,'/','Filter/y'],... 'Port','2',... 'position',[20,89,50,121])add_block('built-in/Inport',[sys,'/','Filter/r'])set_param([sys,'/','Filter/r'],... 'Port','3',... 'position',[20,174,50,206])add_block('built-in/Transfer Fcn',[sys,'/','Filter/F(s)_'])set_param([sys,'/','Filter/F(s)_'],... 'Denominator','[1 2]',... 'position',[100,82,165,128])add_block('built-in/Transfer Fcn',[sys,'/','Filter/F(s)'])set_param([sys,'/','Filter/F(s)'],... 'Denominator','[1 2]',... 'position',[100,7,165,53])add_block('built-in/Outport',[sys,'/','Filter/omega'])set_param([sys,'/','Filter/omega'],... 'position',[385,69,415,101])add_line([sys,'/','Filter'],[355,85;380,85])add_line([sys,'/','Filter'],[55,30;95,30])add_line([sys,'/','Filter'],[170,30;290,30;290,70;315,70])add_line([sys,'/','Filter'],[55,105;95,105])add_line([sys,'/','Filter'],[170,105;280,105;280,80;315,80])add_line([sys,'/','Filter'],[75,105;75,150;290,150;290,90;315,90])add_line([sys,'/','Filter'],[55,190;300,190;300,100;315,100])set_param([sys,'/','Filter'],... 'Mask Display','Filter\n(generates omega)')% Finished composite block 'Filter'.set_param([sys,'/','Filter'],... 'Drop Shadow',4,... 'position',[190,157,330,233])% Subsystem 'Input r'.new_system([sys,'/','Input r'])set_param([sys,'/','Input r'],'Location',[139,93,550,411])add_block('built-in/Sine Wave',[sys,'/','Input r/Sine Wave1'])set_param([sys,'/','Input r/Sine Wave1'],... 'amplitude','0.7',... 'phase','1.5',... 'position',[35,20,65,60])add_block('built-in/Sine Wave',[sys,'/','Input r/Sine Wave'])set_param([sys,'/','Input r/Sine Wave'],... 'frequency','4.9',... 'position',[35,82,65,118])add_block('built-in/Step Fcn',[sys,'/','Input r/Step Fcn'])set_param([sys,'/','Input r/Step Fcn'],... 'Time','0',... 'position',[35,153,65,187])add_block('built-in/Gain',[sys,'/','Input r/Gain'])set_param([sys,'/','Input r/Gain'],... 'Gain','0.5',... 'position',[115,22,145,58])add_block('built-in/Gain',[sys,'/','Input r/Gain1'])set_param([sys,'/','Input r/Gain1'],... 'Gain','3',... 'position',[115,82,145,118])add_block('built-in/Gain',[sys,'/','Input r/Gain2'])set_param([sys,'/','Input r/Gain2'],... 'Gain','0',... 'position',[110,152,140,188])add_block('built-in/Sum',[sys,'/','Input r/Sum'])set_param([sys,'/','Input r/Sum'],... 'inputs','+++',... 'position',[245,78,275,122])add_block('built-in/Outport',[sys,'/','Input r/r'])set_param([sys,'/','Input r/r'],... 'position',[360,84,390,116])add_line([sys,'/','Input r'],[70,100;110,100])add_line([sys,'/','Input r'],[150,100;240,100])add_line([sys,'/','Input r'],[70,40;110,40])add_line([sys,'/','Input r'],[70,170;105,170])add_line([sys,'/','Input r'],[145,170;170,170;170,115;240,115])add_line([sys,'/','Input r'],[150,40;170,40;170,85;240,85])add_line([sys,'/','Input r'],[280,100;355,100])set_param([sys,'/','Input r'],... 'Mask Display','Excitation signal')% Finished composite block 'Input r'.set_param([sys,'/','Input r'],... 'Drop Shadow',4,... 'position',[10,157,140,223])add_block('built-in/To Workspace',[sys,'/','To Workspace'])set_param([sys,'/','To Workspace'],... 'mat-name','yout',... 'position',[720,388,770,412])add_block('built-in/Mux',[sys,'/','Mux1'])set_param([sys,'/','Mux1'],... 'inputs','7',... 'position',[660,367,690,433])add_block('built-in/Clock',[sys,'/','Clock'])set_param([sys,'/','Clock'],... 'orientation',1,... 'position',[635,340,655,360])add_block('built-in/Demux',[sys,'/','Demux'])set_param([sys,'/','Demux'],... 'position',[550,390,590,440])% Subsystem 'Text'.new_system([sys,'/','Text'])set_param([sys,'/','Text'],'Location',[143,116,560,479])add_block('built-in/Note',[sys,'/',['Text/This program simulates the adaptive control scheme',13,'discussed in Example 6.4.2. Please refer to Example',13,'6.4.2 on page 370 and Table 6.4.2 on page 368',13,'of the textbook for further details of the problem and ',13,'the algorithm.',13,'']])set_param([sys,'/',['Text/This program simulates the adaptive control scheme',13,'discussed in Example 6.4.2. Please refer to Example',13,'6.4.2 on page 370 and Table 6.4.2 on page 368',13,'of the textbook for further details of the problem and ',13,'the algorithm.',13,'']],... 'position',[195,0,200,5])add_block('built-in/Note',[sys,'/',['Text/5). The adaptive gain and the initial estimates of the',13,'controller parameter']])set_param([sys,'/',['Text/5). The adaptive gain and the initial estimates of the',13,'controller parameter']],... 'position',[200,320,205,325])add_block('built-in/Note',[sys,'/','Text/4) The parameters of the filter'])set_param([sys,'/','Text/4) The parameters of the filter'],... 'position',[125,290,130,295])add_block('built-in/Note',[sys,'/',['Text/3) The plant transfer function. It should be also a second',13,'order transfer function with relative degree equal to two ']])set_param([sys,'/',['Text/3) The plant transfer function. It should be also a second',13,'order transfer function with relative degree equal to two ']],... 'position',[215,240,220,245])add_block('built-in/Note',[sys,'/',['Text/2) The reference model transfer function. It has to be',13,' second order with relative degree equal to two',13,'']])set_param([sys,'/',['Text/2) The reference model transfer function. It has to be',13,' second order with relative degree equal to two',13,'']],... 'position',[205,190,210,195])add_block('built-in/Note',[sys,'/','Text/1) The excitation signal r.'])set_param([sys,'/','Text/1) The excitation signal r.'],... 'position',[115,160,120,165])add_block('built-in/Note',[sys,'/',['Text/You can change the following parameters in the program',13,'to see their effects on the performance of the adaptive',13,'control systems:',13,'']])set_param([sys,'/',['Text/You can change the following parameters in the program',13,'to see their effects on the performance of the adaptive',13,'control systems:',13,'']],... 'position',[205,90,210,95])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',[87,400,225,481])add_line(sys,[645,365;655,370])add_line(sys,[695,400;715,400])add_line(sys,[145,190;155,190;155,65;325,65])add_line(sys,[480,185;505,185])add_line(sys,[490,185;490,130;175,130;185,170])add_line(sys,[600,185;630,185;630,110;650,110])add_line(sys,[415,65;630,65;630,90;650,90])add_line(sys,[690,100;720,100])add_line(sys,[335,195;345,195;345,165;370,165])add_line(sys,[375,280;355,280;355,185;370,185])add_line(sys,[375,310;345,310;345,205;370,205])add_line(sys,[335,195;335,385;525,385;525,310;510,310])add_line(sys,[700,100;700,280;510,280])add_line(sys,[615,65;615,380;655,380])add_line(sys,[600,185;600,390;655,390])add_line(sys,[595,400;655,400])add_line(sys,[595,410;655,410])add_line(sys,[595,420;655,420])add_line(sys,[595,430;655,430])add_line(sys,[355,280;355,415;545,415])add_line(sys,[155,190;155,220;185,220])add_line(sys,[630,110;165,110;165,195;185,195])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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -