Hola a todos:!
Les escribo ya que tengo una duda sobre la realización de una división en punto fijo. En un proyecto anterior realizé un modulador Space Vector en un dspic 30f3011 y ha funcionado bastante bien. En este tipo de odulación hay paso donde se compara el voltaje que se desea en la salida contra el voltaje disponible, con ol objetivo de determinar el ciclo de trabajo del los moduladores. En ese proyecto no fue un gran problema, ya que al tener una alimentación de voltaje fija, se puede simplemente cambiar esta operación por una multiplicación, donde multiplico por una constante que es igual al inverso del numero sobre el cual quiero dividir.
El detalle que surge en el siguiente proyecto:
Estoy realizando un proyecto que es parte de mi tesis de maestria, en el cual controlo un sistema que inyecta la potencia de un modulo fotovoltaico a la red electrica, en este control
necesito realizar una división entre 2 variables para asi controlar el factor de potencia.
La división la he estado realizando de la siguiente manera:
a/b=elna-lnb
La división la he realizado en datos Q16 para poder obtener valores mayores a uno en caso de que b sea mayor que a. Sin embargo a y b son son 2 números menores que 1,
seria mucho mas eficiente si se pudiera realizar con datos Q15, ya que como sabemos este es un método caro en términos computacionales.
Por eso recurro a ustedes, mi conocimiento en assembler es muy limitado y quisiera saber si alguien ha implementado alguna rutina para dividir números Q15, y obtener una salida
Q16, para asi evitar desbordamiento. Se que suena engorroso, pero cualquier ayuda para apuntarme en la dirección correcta seria una gran ayuda.
Muchas gracias por su tiempo