Calcul TRMS - Intégral sous labview

Bonjour,
je tente de réaliser les calculs éffectués par un appareil TRMS. Il y a donc une intégrale (entre autre) à réaliser, mais je n'arrive pas à la faire, j'ai éssayé plusieurs boite différente mais sans résultats. Pourriez vous m'aider svp?
Je souhaite donc réalisé le calcul suivant sous labview :
Merci
Chef de Projet
ERM Automatismes Industriels
Certified LabVIEW Associate developer
Résolu !
Accéder à la solution.

Bonjour,
si vous avez un dt constant, alors vous pouvez faire comme ceci :
Sinon, si votre dt est variable, il faut pondérer chaque dt, c'est aussi faisable je pense.
En espérant que cela vous aide,
V-F
Pièces jointes :
formula.png ‏15 KB

Similar Messages

  • Maison intélligente sous labview

    Bonjour , j'ai comme projet , la réalisation d'une mainson intélligente sous l'abview, je suis encore débutante sur Labview je l'utilise que depuis quelque mois. ce porjet je devrais le réaliser dans moins d'un moins et je suis un peu perdu; je voudrais juste quelque astuce pour mieux avancer dans mon projet, si vous avez par exemple déjà réaliser un projet similaire ou que vous y connaissez un peu pour me donner quelque astuce pour mon projet. Je vous en serais très reconnaissante et merci Beaucoup.
    La réalisation de cette maison intélligente consiste à pouvoir allumer, étteindre les lumières, qu'on pourrait voir par des fenêtes, aroser le jardin.. et tout sa par une commande à distance.
    En ce qui concerne la maison ( fenêtre, Jardin .... ) tout devra être fais virtuellement sur Labview et on pourra les voir les représenters par nimporte quoi sa ne devrais pas ressembler à une maison obligatoirement. 
    c'est un projet scolaire et le prof n'a pas voulu vraiment nous expliquer ce qu'on devrait faire ( a nous de voir ) et comme j'ai dis j'utilise Labview que depuis quelque mois donc je sais vraiment pas par quoi je devrais commencer , assez perdu . 

    Bonjour et bienvenue sur les forums de discussions National Instruments
    Tout d'abord je vous invite à visiter la section française du site, cette section étant internationale, la plupart des topics et participant utilisent l'anglais.
    Avez-vous déjà commencé à coder ? ou établit un pseudo-code ?
    Vous pourriez vous baser sur une architecture de type machine à états pour lancer chacune de vos commande. A chaque état correspondrait une action :
    Allumer une lumière
    Eteindre une lumière
    éventuellement utiliser un menu déroulant permettant de sélectionner la lumière que vous souhaitez commander
    Démarrer arrosage
    vous pourriez utiliser une commande pour définir la durée de l'arrosage
    et ainsi de suite pour chacune des actions que vous souhaiteriez mettre en place dans le cadre de votre projet.
    En ce qui concerne votre face avant, elle pourrait être constituée de commandes permettant l'envoie des instructions (allumer, eteindre, arroser) et d'indicateurs booléens (lumière (on/off) ) ou numériques (temps d'arrosage restant)...
    En éspérant que ces premières sugestions pourront vous aider,
    Cordialement,
    Vincent.O
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet

  • Comment faire une intégrale?

    Bonjour, 
    je suis en train de réaliser un code qui recoit des données d'un capteur que je transforme en accélération. JE souhaite réaliser l'intégral et ensuite une seconde pour obtenir la vitesse puis la position, j'obtiens des courbes mais pas du tout avec les unités que je dois obtenir. Puis-je avoir de 'aide SVP. Merci  J'ai mis en image les intégrales réalisées.

    Bonjour,
    Merci d'avoir posté sur le forum NI.
    Vos signaux sont des signaux numériques dans votre FPGA, il faut donc calculer l’intégral d’une fonction discret.  Pour cela vous pouvez utiliser la fonction Discrete Normalized Intergrator qui se trouve dans la palette FPGA Math&Analyse/Control/Discrete linear système.
    Sinon vous pouvez réaliser vous-même votre intégrale en utilisant les registres à décalages si vous souhaitez calculer une intégrale d’ordre supérieur.
    Si vous souhaitez voir comment est codé le VI cliquez sur convertir en sous VI puis double cliquez dessus.
    Cordialement.
    Samuel G. | Application Engineer Team Leader
    Certified LabVIEW Developer
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet

  • Calculer l'aire d'un graph sous Labview

    Bonjour, 
    Je voudrais calculer l'aire d'une zone d'intérêt délimitée sur un graph sous labview. Je m'explique :
    Supposons que j'ai fait l'acquisition des données sur un graph. Je voudrais en fait, exploiter ces données, en délimitant plusieurs zones dans ce graph afin d'en calculer l'aire. Auriez-vous la gentillesse de m'orienter vers une solution qui pourra m'épargner un calcul manuel.
    Merci par avance  

    Réponses données sur forum dupliqué à l'adresse suivante:
    http://forums.ni.com/t5/Discussions-de-produit-de-NI/Calculer-l-aire-d-un-graph-sous-Labview/td-p/15...
    Jérémy C.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Travaux Pratiques d'initiation à LabVIEW et à la mesure
    Du 2 au 23 octobre, partout en France

  • Appel de programmes en C sous labView

    Bonjour,
    Je souhaiterai savoir s'il est possible d'appeler sous LabView un programme en C afin de lui passer des paramètres (comme des arguments d'une fonction) et que ce dernier nous renvoie des valeurs récupérables sous LabView?
    Pour être plus clair, je pourrai avoir un programme C qui calcul la résolution d'une équation du second degré ax2+bx+c, je lui passe les paramètres a,b et c sous LabView et le programme C me retourne les solutions que je récupére sous LabView
    En espérant m'être bien fait comprendre, je vous remercie

    Bonjour,
    C'est possible en utilisant les Code Interface Node (CIN).
    Mais je n'ai jamais trouve cela tres simple a mettre en place ni tres propre.
    Je vous invite a lire ce tutoriel sur la mise en place d'un CIN : http://zone.ni.com/devzone/cda/tut/p/id/4161 vous devrez y trouver les donnees necessaires pour realiser ce que vous souhaitez.
    Cordialement,
    Da Helmut

  • Adapter un programme matlab sous labview

    Bonjour
    J'aimerais adapter un programme développé sous Matlab à Labview (version 8.2). C'est la première fois que je fais ca et que j'utilise matlab...
    J'aimerais savoir si c'est mieux de tout faire sous labview ou d'utiliser Matlab script node?
    J'ai regardé l'aide de Matlab script node mais j'ai du mal à comprendre comment cela fonctionne... 
    Voici le code en question
    h=amplitude
    time=abcisses
    N=length (time)
    H= [fft(h)  fft(h) fft(h)]
    al= [0: (N/2)-1, -(N/2):-1]
    for f=1:M
         W= exp(-2*pi^2*al.^2./((f-(N/2)-1).^2));
         S(f; : ) = ifft (H(f+N/2):f+(N/2)+N-1 .*  W);
    end
    S(N/2+1,: )=ifft (H(N+1:2*N) .* [1 zeros(1,N-1)]);
    TT = ifft(fftshift(S,1), [],1);
    Quelqu'un peut il m'éclairer?
    Merci 
    Message Edité par Tartarin le 05-27-2010 08:16 AM
    Message Edité par Tartarin le 05-27-2010 08:17 AM
    Message Edité par Tartarin le 05-27-2010 08:24 AM

    Bonjour Tartarin,
    Concernant votre application, il est toujours préférable de n'utiliser que des fonctions propre à LabVIEW.
    Cependant, si vous souhaitez gagner du temps vous avez en effet la possibilité d'utiliser un noeud Matlab pour réaliser votre application.
    Je vous invite à regarder les exemples fournis avec LabVIEW : Aide » Recherche d'exemples » Communication avec des applications externes » Script MATLAB et Xmath. Vous trouverez ainsi un exemple de calcul fractale avec Matlab en utilisant LabVIEW ce qui devrait vous aider dans votre démarche.
    En vous souhaitant une bonne journée.
    Cordialement,

  • Existe t'il sous labview l'équivalent de la fonction "fftshift" de matlab?

    Bonjour
    J'aimerais savoir s'il existe sous labview l'équivalent de la fonction "fftshift" de matlab?
    Cette fonction permet de calculer le spectre FFT centré.
    Sinon comment faire la même chose sous labview? 
    Merci 
    Message Edité par Tartarin le 05-31-2010 09:40 AM
    Message Edité par Tartarin le 05-31-2010 09:41 AM
    Résolu !
    Accéder à la solution.

    bonjour
    la fonction que vous cherchez existe pour la FFT d'un signal complexe, il y a un booleen (décalage) qui permet de décalage de la FFT centré sur le centre de la bande traitée.
     ce booleen existe sur toutes les boites de FFT et FFT inverses.
    Message Edité par Guillaume B. le 31-05-2010 06:52 PM
    Il a LabVIEW, il a tout compris !

  • Problème avec le NI6008 sous LabVIEW (sous Linux)

    Bonjour,
    Je souhaiterai piloter la carte d'acquisition usb ni-6008 sous une machine fonctionnant sous linux à l'aide de labview. Ceci étant, j'ai installé  Ni daqmx et Ni daqmx base, et j'ai aussi changer le firmware de la carte en le switchant sur ni daqmx base, suite à des problèmes avec ni daq mx.
    Notre problème est que sous labview en lancant NI-daq mx base task configuration utility, le système plante, il se bloque aussi lorsque l'on tape les commandes de Ni-daq mx base associés à la carte, comme une acquisition de l'entrée, j'imagine qu'il y a un conflit entre la carte et le système, mais lequel?
    Le second problème est que l'on aimerait  se servir du VI " ni usb 60xx interactive controller " sous labview, mais il y a bien une heure d'installation et de compilation des parties du VI, comment peut on réduire ce temps?
    Merci de vos réponses.

    Bonjour JP,
    Ce temps de chargement est énorme et tout à fait étonnant. Pourriez-vous nous préciser quelle version de LINUX vous utilisez et quelle version des drivers DAQmx base est installée ? Ce phénomène est-il constant ?
    Une manipulation à essayer serait la "compilation massive" du VI (ctrl+shift enfoncés+cliquer sur la flèche de run) sous LabVIEW, puis une sauvegarde totale.
    Cordialement,
    BRAUD Jean-Philippe
    Field Sales Engineer - Nord et Centre France
    LabVIEW Certified Developper

  • Erreur lors de la création d'un executable sous LabVIEW SP1

    Bonjour,
    Je travaille actuellement sur un projet relativement imposant sous LabVIEW 2010 SP1.
    Le projet étant assez imposant,j'ai voulu en faire un exécutable.
    J'ai alors la fenêtre suivante qui apparaît (voir piéce jointe):
    "Une erreur est survenue lors de l'appel de l'éditeur des régles de construction. Veuillez vérifier si les VIs sont brisés dans le répertoire du gestionnaire correspondant."
    Mon Vi fonctionne trés bien lorsque je l'éxecute, donc je ne comprends pas. De plus j'ai déja créer d'autres exécutables sans probléme jusqu'a présent.
    Quelqu'un aurait-il une idée pour solutionner ce probleme?
    Merci d'avance.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    erreur.JPG ‏11 KB

    @Ramses:
    Je pense que Julien utilise une option du menu Outils (je ne sais plus son nom, et elle n'apparait pas sur mon PC car je n'ai pas l'application builder), qui permet de préparer son VI pour un exécutable. A ce moment, cela va créer automatiquement un projet avec une spécification de construction.
    Cependant, je suis de l'avis de Ramses. Il est préférable de se créer son projet et de travailler dedans, puis de créer les spécifications de construction par la suite...
    Et désolé, mais je n'ai pas d'explication à votre problème, à part éventuellement des dépendances particulières. Lorsque vous ouvrez votre VI, LabVIEW vous demande-t-il de charger des fichiers particuliers?
    Cordialement
    Olivier L. | Certified LabVIEW Developer

  • Problème de ralentisse​ment sous LabVIEW 7.0

    Bonjour,
    nous rencontrons actuellement un phénomène de ralentissement sur une application développée sous LabVIEW 7.0.
    Description des ressources et de la configuration utilisée (pour info) :
    LabVIEW 7.0
    NI-DAQ 8.0.1
    2 cartes PCI-6229 avec :
    une acquisition analogique à 10 kHz - échantillons prélevés par bloc de 1000
    une acquisition de type codeur
    des entrées/sorties TOR
    2 cartes PCI-6528 (entrées/sorties TOR)
    1 carte MOXA C168H (carte ISA 8 ports série)
    2 cartes Exotest PCI pour dialogue LIN et Ligne K
    L'application tourne en mode debug (= il ne s'agit pas d'un exécutable)
    Application d'environ 350 VIs
    Utilisation (a priori à bon escient) de la réentrance, du parallélisme, de sémaphores, ... (en bref, il s'agit d'une application multi-tâches classique)
    Description des symptômes :
    Le ralentissment constaté n'est pas systématique. L'application tourne en général parfaitement, mais parfois, dès le lancement de celle-ci, parfois après 10 minutes, parfois après une heure, et parfois plus, nous constatons un fort ralentissement de l'application. Cela se traduit par le ralentissement du déroulement de notre séquenceur (il s'agit d'une application pour un banc de test).
    Nous ne constatons aucune augmentation du taux d'occupation du CPU, et aucune augmentation de mémoire.
    La difficulté principale de notre problème est que nous ne savons absolument ce qui peut provoquer un ralentissement si soudain, si imprévisible et qui ne se traduit pas par un taux d'occupation du CPU élevé.
    Actions déjà faites :
    Nous avons utilisé l'outil d'observation de profil des VIs (Outils > Avancé > Optimisation de VIs...) mais n'avons rien constaté d'aberrant.
    Nous avons lu (et appliqué) les principes de la documentation suivante : http://forums.ni.com/attachments/ni/250/7849/1/prf​rmnc.pdf
    La (les) question(s) :
    Un tel phénomène a-t-il déjà été rencontré ?
    Avez-vous des conseils particuliers (autres que ceux contenus dans le document ci-dessus) ?
    Pensez-vous à une action particulière à réaliser ?
    Merci par avance !

    Bonjour,
    Obtenez vous un code d'erreur? A quelle étape s'arrête la création de votre executable ?
    je vous envoie un lien qui traite de probleme d'executable avec les boitiers USB
    http://digital.ni.com/public.nsf/websearch/129BE1A90E522E3886256F24007606F4?OpenDocument
    Cordialement
    Alexandre D
    NIF

  • Impossible de créer un exécutable sous LabVIEW 2010

    Bonjour,
    J’ai une application écrite en LV8.2 qui tournait sans problème.
    Je suis passé sous LabVIEW 2010, et j’ai une erreur au moment de créer un exécutable.
    L'erreur 1 s'est produite à : Nœud de méthode dans AB_Build.lvclass:Copy_Files.vi->AB_Application.lvc​​lass:Copy_Files.vi->AB_EXE.lvclass:Copy_Files.vi-​>​AB_Build.lvclass:Build.vi->AB_Application.lvclas​s:​Build.vi->AB_EXE.lvclass:Build.vi->AB_Engine_Bu​ild​.vi->AB_Build_Invoke.vi->AB_Build_Invoke.vi.Pr​oxyC​aller
    Raisons possibles :
    LabVIEW:  Un paramètre d'entrée n'est pas valide. Par exemple, si l'entrée est un chemin, celui-ci contient peut-être un caractère qui n'est pas autorisé par le système d'exploitation, comme ? ou @.
    =========================
    NI-488:  La commande requiert un contrôleur GPIB comme contrôleur en charge.
    Nom de la méthode : Linker:Write Info To File
    Apres quelques recherches, j’ai isolé le sous VI qui causait problème.
    C’est un .Net qui permet de lancer un fichier.pdf
    Si je mets directement cette fonctionnalité dans le diagramme principale (sans passer par un sous VI), j’ai le message d’erreur suivant :
    L'erreur 74 s'est produite à : Nœud de méthode dans AB_Build.lvclass:Copy_Files.vi->AB_Application.lvc​​lass:Copy_Files.vi->AB_EXE.lvclass:Copy_Files.vi-​>​AB_Build.lvclass:Build.vi->AB_Application.lvclas​s:​Build.vi->AB_EXE.lvclass:Build.vi->AB_Engine_Bu​ild​.vi->AB_Build_Invoke.vi->AB_Build_Invoke.vi.Pr​oxyC​aller
    Raisons possibles :
    LabVIEW:  Mémoire ou structure de données corrompue.
    Nom de la méthode : Linker:Write Info To File
    Remarque : J’ai fais un petite appli qui n’utilise que ce VI et je n’ai pas le PB.
    Quelqu’un à t’il une piste de recherche ?
    Merci d’avance

    Bonjour,
    Lorsque vous créez un exécutable veillez toujours à n'avoir que la fenêtre du projet d'ouverte, j'ai déja vu le cas et ce type d'erreur apparaître lorsqu'une fenêtre d'un VI qui devait être compilé était ouverte.
    Pour revenir plus en profondeur sur le problème que vous rencontrez, je vous invite à toujours effectuer une recompilation complète de tout les VIs de votre projet lorsque vous passez d'une ancienne version à une nouvelle version. Cela peut régler votre problème, la recompilation va effectuer un certains nombre d'opérations de façon à rendre le VI "compatible" avec la version utilisée.
    Pour cela : Outils » Avancé » Recompiler.
    Cette opération peut s'avérer utile dans votre cas.
    Cordialement,
    Da Helmut

  • Récupérer l'adresse de stockage d'un tableau sous LabVIEW

    Bonjour à tous,
    Je viens à vous pour résoudre le problème suivant:
    J'utilise une DLL en LabVIEW. Cette DLL possède une fonction qui passe (notamment) un pointeur de tableau en argument. J'ai remarqué que l'assistant "Importation d'une bibliothèque partagée" a choisi une variable chaîne à la place de ce pointeur de tableau, ce qui sous-entend que la fonction s'attend à l'adresse du premier élément du tableau...
    De fait, pour utiliser la fonction sous LabVIEW, je dois créer un tableau (jusque là, ça va) puis surtout récupérer l'adresse de son premier élément. Et c'est là que le bât blesse:
    - Existe-t-il un VI renvoyant l'adresse d'une variable ?
    - Et d'ailleurs, la création d'un tableau en LabVIEW se fait-elle de la même façon que la création d'un tableau en C (au niveau de l'adressage, j'entends) ?
    Merci d'avance !
    Résolu !
    Accéder à la solution.

    Tu dois "passer" un Tableau à une fonction contenue dans une DLL .... c'est bien ça ?
    un tableau de quoi ? ...
    voici un (tout petit) exemple avec un Tableau de U8.
    Tu cables directement le Tableau à l'entrée du Noeud "Call Library Function Node"
    mais "avant", tu dois configurer cet appel (clic droit sur le noeud ... "configure")
    et là tu peux demander à LV de passer l'adresse du Tableau
    Dans ce cas LV passera l'adresse (pointeur) du premier élément du Tableau

  • Création d'un executable sous Labview

    Bonjour à tous,
    Ayant consulté l'aide NI pour créer un executbale (http://www.ni.com/white-paper/12930/fr/) , je me pose plusieurs interrogations.
    Notamment, lorsqu'on établie un chemin par défaut pour charger des configurations, comment cela est-il gérer ?
    De plus, l'application sera plus vite exécutée que sous Labview ?
    Cordialement
    Résolu !
    Accéder à la solution.

    aznnath11 a écrit :
    Notamment, lorsqu'on établie un chemin par défaut pour charger des configurations, comment cela est-il gérer ?
    C'est au développeur de le gérer, une pratique courante est d'avoir un dossier "support" ou "config" à côté de l'exe et aussi à côté du code source (chemin relatif identique qu'on soit en source ou en exe) et de mettre les fichiers de config dedans.
    Pour ça, on utilise le vi "application path" qui se trouve dans la palette fichier (ou une de ses sous-palettes).
    aznnath11 a écrit :
    De plus, l'application sera plus vite exécutée que sous Labview ?
    Ce n'est pas toujours le cas, mais si l'application est corretement développée (= gestion de la mémoire et de tempo) alors on peut attendre un bonus de l'ordre de 10%, c'est en gros ce que j'ai dans des applications avec acquisition et traitement d'image.
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • Projet dll c# sous labview ?

    Bonjour
    J'ai un projet de banc de rodage de capteur, pour le moment il se fait manuel et on veut le passer automatiquement par labview.
    Nous avons une gestion d'électrovannes qu'on va gérer avec labview mais ma question est :
    nous avons un logiciel (maison) programmer en c#, est ce que en passant par l'appel de dll sous labview on va arriver à faire la même chose que le logiciel ? Notre but et de tous mettre sous labview.
    J'ai regarder plusieurs exemple mais tous les codes sont en C ou C++ pour les dll.
    Merci
    Mickael

    Bonjour Mickael,
    Merci d'avoir posté sur le forum National Instruments.
    Le format .dll est standardisé, il est donc possible aussi d'appeller ces fichiers dans LabVIEW.
    Néanmoins, vous pouvez essayer vos dll en allant dans l'onglet Outils de LabVIEW, puis Importer, et Bibliothèque partagée (.dll)...
    Voici un petit screen explicatif :
    Cordialement,
    Romain P.
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • Driver instrument pour la calibratio​n du HP8753E sous labview--D​river instrument​' for the calibratio​n of HP8753E in labview

    Bonjour,
    Je suis entrain de développer une interface utilisateur sous labview 8,5 pour interfacer un analyseur de fréquence HP 8753E, j'ai pas pu trouver une solution (normalement avec les driver d'instrument) pour faire la calibration du l'analyseur (remarque la calibration peut se faire manuellement mais je doit le faire avec labview)
    j'espére que ma question est claire, merci de me répondre
    Cordialement
    Hello,
    I am currently developing a user interface in labview 8.5 to interface a frequency analyzer HP 8753E, I could not find a solution (normally with the instrument driver) to the calibration of the analyzer (note the calibration can be done manually but I must do with labview)
    I hope that my question is clear, thank you for answering me
    cordially

    YET ANOTHER DUPLICATE

Maybe you are looking for

  • Retrieving ALL values from a single restricted user property

    How can I retrieve ALL values of a single restricted user property from within a .jpf file? I want to display a dropdown list within a form in a JSP which should contain all the locations listed in the property 'locations'. I ever get just the defaul

  • Error message with a Serial Number after purchasing CS6 Design Standard

    Hello everyone, I have an error message "we are unable to validate this serial number for CS6 Design Standard" when using my official serial number. I got the Serial Number from my Adobe ID account and e-mail purchase validation. And no phone number

  • HP Photosmart B110a constantly goes offline and won't print via USB either

    Macbook Pro OSX 10.6.8 HP Photosmart B110 I've connected the printer to my wireless network without any issues, but when I first tried to connect my macbook pro to the printer, it would keep disappearing from the network. Once I finally managed to co

  • XML Forms in EP 7.0

    Hi,      Our application uses a customised XML Form that we developed in EP 6.0. This form has the HTML Editor as one of its UI elements, which worked fine in EP 6.0.      But our Portal was upgraded to EP 7.0, after which the table buttons in the to

  • Westmere Radeon 5770 Apple Acrylic ACD 23 inch Display Compatibility

    Will the ACD to DVI acrylic 23 inch display work with the Mac Pro Westmere processor model and the ATI Radeon 5770? Never got my acrylic model display to work with anything but a Radeon X1900 on my Mac Pro 1.1. Thinking about upgrading to a new Mac P