⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 multi_tf.m

📁 Software for design and tuninig of SISO and MIMO contol systems
💻 M
字号:
function [p]=multi_tf(row,col,Xpnum,Xpden,Xpdead,p_index)
% Combind the string, p, representing the 2-terms-transfer function process.
p='';
if ~isempty(Xpden{row,col,1,p_index})
   if isempty(Xpnum{row,col,1,p_index})
      p='';
      return
   end
	if ~(isempty(Xpden{row,col,2,p_index}) | isempty(Xpnum{row,col,2,p_index}))
		if strcmp(Xpden{row,col,1,p_index},Xpden{row,col,2,p_index})
         p=strcat('(',Xpnum{row,col,1,p_index});
         if strcmp(Xpdead{row,col,1,p_index},Xpdead{row,col,2,p_index})
				p=strcat(p,'+');
				p=strcat(p,Xpnum{row,col,2,p_index});
				p=strcat(p,')');
            if ~isempty(Xpdead{row,col,2,p_index})
               p=strcat(p,'*');
               p=strcat(p,Xpdead{row,col,2,p_index});
            end
         else
            if ~isempty(Xpdead{row,col,1,p_index})
               if strcmp(Xpnum{row,col,1,p_index},'1')
                  p=strcat('(',Xpdead{row,col,1,p_index});
               else
                  p=strcat(p,'*');
                  p=strcat(p,Xpdead{row,col,1,p_index});
               end
            end
				p=strcat(p,'+');
				temp=strcat(p,Xpnum{row,col,2,p_index});
            if ~isempty(Xpdead{row,col,2,p_index})
               if strcmp(Xpnum{row,col,2,p_index},'1')
                  p=strcat(p,Xpdead{row,col,2,p_index});
               else
                  p=strcat(temp,'*');
                  p=strcat(p,Xpdead{row,col,2,p_index});
               end
            else
               p=temp;
            end
         end
			p=strcat(p,')');
			p=strcat(p,'/');
			p=strcat(p,'(');
			p=strcat(p,Xpden{row,col,1,p_index});
			p=strcat(p,')');
         
      else % denominator are not the same
         if strcmp(Xpdead{row,col,1,p_index},Xpdead{row,col,2,p_index})
            p=strcat('(',Xpnum{row,col,1,p_index});
            p=strcat(p,'/(');
            p=strcat(p,Xpden{row,col,1,p_index});
            p=strcat(p,')');
            p=strcat(p,'+');
            p=strcat(p,Xpnum{row,col,2,p_index});
            p=strcat(p,'/(');
            p=strcat(p,Xpden{row,col,2,p_index});
            p=strcat(p,'))');
            if ~isempty(Xpdead{row,col,1,p_index})
					p=strcat(p,'*');
               p=strcat(p,Xpdead{row,col,1,p_index});
            end
         else
            p=Xpnum{row,col,1,p_index};
            if ~isempty(Xpdead{row,col,1,p_index})
               if strcmp(Xpnum{row,col,1,p_index},'1')
                  p=Xpdead{row,col,1,p_index};
               else
                  p=strcat(p,'*');
                  p=strcat(p,Xpdead{row,col,1,p_index});
               end
            end
            p=strcat(p,'/(');
            p=strcat(p,Xpden{row,col,1,p_index});
            p=strcat(p,')');
            p=strcat(p,'+');
            temp=strcat(p,Xpnum{row,col,2,p_index});
            if ~isempty(Xpdead{row,col,2,p_index})
               if strcmp(Xpnum{row,col,2,p_index},'1')
                  p=strcat(p,Xpdead{row,col,2,p_index});
               else
                  p=strcat(temp,'*');
                  p=strcat(p,Xpdead{row,col,2,p_index});
               end
            else 
               p=temp;
            end
            p=strcat(p,'/(');
            p=strcat(p,Xpden{row,col,2,p_index});
            p=strcat(p,')');
         end
      end
   % then assume that there is only the first term
   elseif isempty(Xpnum{row,col,2,p_index}) & isempty(Xpden{row,col,2,p_index})
		temp=['(' Xpden{row,col,1,p_index} ')'];
 		if isempty(Xpdead{row,col,1,p_index})
  			p=[Xpnum{row,col,1,p_index} '/' temp];
 		else
         if strcmp(Xpnum{row,col,1,p_index},'1')
            p=[Xpdead{row,col,1,p_index} '/' temp ];
         else
            p=[Xpnum{row,col,1,p_index} '/' temp '*' Xpdead{row,col,1,p_index}];
         end
 		end
    end
 else %, then assume that there is only pure gain
	 if isempty(Xpdead{row,col,1,p_index})
       p=Xpnum{row,col,1,p_index};
    else
       if strcmp(Xpnum{row,col,1,p_index},'1')
       	p= Xpdead{row,col,1,p_index};  
       else
          p=[Xpnum{row,col,1,p_index} '*' Xpdead{row,col,1,p_index}];
       end
    end
 end
   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -