def fillDict(self, coeffarr,toDict,denominator,index,picknames,notState=False): state=0 # print "coeffarr is :" #print coeffarr #find transfer function for element in coeffarr: #print element if(element!=0 and (state!=index or notState)): numerator=[element] varName=picknames[state] tf=pmv_tf.pmv_tf(numerator,denominator,varName) toDict[varName]=tf #print toDict state+=1
def getStateVar(self,rowNumber,var_name): Erow=self.E[rowNumber] print "EEEROW" print Erow Arow=self.A[rowNumber] Brow=self.B[rowNumber] Frow=self.F[rowNumber] index=self.state_names.index(var_name) name=var_name typ=type_params.state derPart=Erow[index] denominator=np.array([]) if(derPart==0): denominator=np.array([-Arow[index]]) else: denominator=np.array([derPart,-Arow[index]]) print "hoho" state_dict={} #find all numerators for states, and input the common denominator i=0; while(i<len(self.state_names)): if i!=index: derPart=Erow[i] numerator=np.array([]) if(derPart==0): numerator=np.array([Arow[i]]) else: numerator=np.array([-derPart,Arow[i]]) tf=pmv_tf.pmv_tf(numerator,denominator,self.state_names[i]) if(Erow[i]!=0 or Arow[i]!=0): state_dict[self.state_names[i]]=tf i+=1; #self.fillDict(coeffarr,state_dict,denominator,index,self.state_names) #do the same for inputs print "states" input_dict={} i=0; print "working with inputs "+name print Brow while(i<len(self.input_names)): numerator=np.array([Brow[i]]) print "numeartor is " +str(numerator) +" and " +str(Brow[i]!=0) tf=pmv_tf.pmv_tf(numerator,denominator,self.input_names[i]) if(Brow[i]!=0): print "adding to dict" input_dict[self.input_names[i]]=tf i+=1; #self.fillDict(coeffarr, input_dict, denominator, index,self.input_names,True) print "mothers" disturbance_dict={} i=0; while(i<len(self.algebraic_names)): numerator=np.array([Frow[i]]) tf=pmv_tf.pmv_tf(numerator,denominator,self.algebraic_names[i]) if(Frow[i]!=0): disturbance_dict[self.algebraic_names[i]]=tf i+=1; toReturn=pmv_variable.pmv_variable(name,typ,state_dict,disturbance_dict,input_dict) #set working points toReturn.workingPoint=str(self.matrix_dict.get("x0")[index]) return toReturn