Commande pour faire somme ou produit des termes d'une liste
Posted: 06 Feb 2012, 17:36
Salut,
Je suis en train de tenter (^^) de faire un programme pour que la calculatrice me donne directement les marges de gain et de phase d'un système asservi (pour ceux qui ne savent, ma question ne nécessite pas ces connaissances ^^).
Pour se faire, j'ai besoin de calculer la phase d'une fonction de transfert.
Le soucis, c'est que si l'on prend, pour exemple, la fonction :
H(p)=((15*(1+5*p))/(p*(1+0.1*p)*(p^(2)+6.4*p+16))) (avec p = i * w)
En faisant angle(h(p)), la calculatrice renvoie effectivement un résultat, mais totalement indigeste, et qui a pour conséquence qu'elle ne sait pas résoudre cette équation pour trouver une pulsation, ou une phase donnée.
(pour illustrer, voilà la fonction renvoyée par la calto : arctan(((10.*w)/(w^(2)-22.2222)))+((π*sign(w*(w^(2)-22.2222)))/(2)).
Si on la calcule à la main, cela donne : -π/2 - arctan(0,1w) - arctan(0.3w))
D'où mon idée : décomposer cette fonction de transfert en produit de fonctions de transferts simples, lui faire calculer séparément chaque phase (qu'elle sait mettre sous forme simple), les mettre sous forme d'une liste, et en faire le produit.
Je sais que sur Maple, il existe la fonction convert ([],*) qui permet de faire le produit, la somme, ou n'importe quoi, des termes de la liste.
Existe t'il l'équivalent sur la Nspire, ou auriez vous une idée ?
Merci !
Je suis en train de tenter (^^) de faire un programme pour que la calculatrice me donne directement les marges de gain et de phase d'un système asservi (pour ceux qui ne savent, ma question ne nécessite pas ces connaissances ^^).
Pour se faire, j'ai besoin de calculer la phase d'une fonction de transfert.
Le soucis, c'est que si l'on prend, pour exemple, la fonction :
H(p)=((15*(1+5*p))/(p*(1+0.1*p)*(p^(2)+6.4*p+16))) (avec p = i * w)
En faisant angle(h(p)), la calculatrice renvoie effectivement un résultat, mais totalement indigeste, et qui a pour conséquence qu'elle ne sait pas résoudre cette équation pour trouver une pulsation, ou une phase donnée.
(pour illustrer, voilà la fonction renvoyée par la calto : arctan(((10.*w)/(w^(2)-22.2222)))+((π*sign(w*(w^(2)-22.2222)))/(2)).
Si on la calcule à la main, cela donne : -π/2 - arctan(0,1w) - arctan(0.3w))
D'où mon idée : décomposer cette fonction de transfert en produit de fonctions de transferts simples, lui faire calculer séparément chaque phase (qu'elle sait mettre sous forme simple), les mettre sous forme d'une liste, et en faire le produit.
Je sais que sur Maple, il existe la fonction convert ([],*) qui permet de faire le produit, la somme, ou n'importe quoi, des termes de la liste.
Existe t'il l'équivalent sur la Nspire, ou auriez vous une idée ?
Merci !