Faits :
A.
A.a. A._, né en 1956, a travaillé en qualité de soudeur puis de directeur technique et commercial pour la société B._ SA dès le 1er janvier 2001. Le 20 janvier 2004, il a déposé une demande de prestations de l'assurance-invalidité. Dans un rapport du 15 juin 2005, le docteur C._, spécialiste en neurologie, a diagnostiqué un syndrome radiculaire C6 droit et C7 gauche sur canal cervical étroit congénital, cervicarthrose et uncarthrose étagées. Il a attesté que l'assuré avait présenté une incapacité de travail de 70% à partir du 1er mai 2003 dans son activité habituelle. De son côté, le docteur D._, spécialiste en médecine générale, a attesté dans un rapport du 6 décembre 2005 que la capacité de travail de son patient dans son type d'activité physique (directeur de B._ SA et contrôle régulier de soudure sur le terrain) ne dépassait pas 30%, et ce pour une durée indéterminée.
Par décision du 4 octobre 2007, l'Office de l'assurance-invalidité pour le canton de Vaud (ci-après: l'office AI) a alloué à l'assuré une demi-rente d'invalidité à partir du 1er janvier 2003 et un quart de rente dès le 1er mai 2003; depuis le 1er septembre 2003, une rente entière a été accordée, fondée sur un taux d'invalidité de 70% qui résultait de la comparaison d'un revenu sans invalidité de 123'500 fr. avec un revenu d'invalide de 37'050 francs.
A.b. Dans le cadre d'une révision du droit à la rente, l'assuré a déclaré qu'il était sans activité lucrative (questionnaire réceptionné le 2 avril 2009, ch. 2.1). B._ SA a attesté que l'assuré collaborait à la gestion de cette entreprise depuis le 1er novembre 2007 à un taux d'activité de 10%, pour un salaire annuel de 6'500 fr. (questionnaire pour l'employeur du 6 juillet 2009, ch. 2.10 et 2.12). Au cours de ses investigations, l'office AI a constaté que l'assuré était administrateur-président de la société E._ SA, active dans les opérations immobilières, la gérance et la surveillance technique d'immeubles et l'assistance aux maîtres d'ouvrage, qu'il était également le directeur commercial de B._ SA et le promoteur immobilier d'un projet d'envergure sur le site du F._ à G._. L'assuré a été entendu le 21 février 2011. Il a notamment exposé qu'il avait commencé à travailler pour B._ SA en 2000 comme soudeur et qu'il n'était plus actif depuis sa maladie. Il était directeur commercial et soudeur. Après l'atteinte à la santé, il avait continué à se rendre sur les chantiers, comme directeur. Dans un rapport d'expertise du 30 juillet 2012, la doctoresse H._, spécialiste en médecine interne et en rhumatologie, a attesté une incapacité totale de travail dans une activité de soudeur, mais reconnu une capacité de travail entière dans le domaine tertiaire, comme celle de directeur d'entreprise ou toute activité respectant diverses limitations fonctionnelles.
Considérant que sa décision d'octroi de rente du 4 octobre 2007 était manifestement erronée dans la mesure où l'assuré présentait une capacité de travail de 100% dans son activité de directeur technico-commercial, l'office AI a fait savoir à l'assuré qu'il envisageait de supprimer la rente par voie de reconsidération, dans un projet de décision du 26 octobre 2012. L'office AI a mené une analyse économique pour les indépendants en décembre 2013 (cf. rapport d'enquête économique du 28 février 2014). Il a suspendu le versement de la rente, par une décision du 28 avril 2014 que la Cour des assurances sociales du Tribunal cantonal du canton de Vaud a confirmée sur recours, par arrêt du 4 juillet 2014. Le 11 mai 2014, l'office AI a déposé une plainte pénale à l'encontre de l'assuré pour escroquerie, subsidiairement pour infraction à l'<ref-law>, invoquant un préjudice total de 155'908 francs. Dans un projet de décision du 19 juin 2014, annulant et remplaçant celui du 26 octobre 2012, l'office AI a informé l'assuré qu'il envisageait de supprimer la rente avec effet rétroactif au 1er octobre 2005, puis de demander la restitution des prestations indûment perçues, à hauteur de 153'831 francs. L'assuré a contesté le règlement proposé par l'office AI, d'une part au cours d'un entretien du 23 juillet 2014 durant lequel il s'est exprimé sur ses activités lucratives, ses revenus et son état de santé, d'autre part dans ses déterminations écrites du 3 septembre 2014. Par décision du 13 octobre 2014, l'office AI a supprimé la rente avec effet rétroactif au 1er octobre 2005.
B.
A._ a déféré cette décision à la Cour des assurances sociales du Tribunal cantonal vaudois, en concluant à son annulation et au maintien de la rente. Il a requis la mise en oeuvre d'expertises médicale et comptable.
Par jugement du 9 juillet 2015, la juridiction cantonale a rejeté le recours dirigé contre la décision du 13 octobre 2014.
Dans l'intervalle, par décision du 23 mars 2015, l'office AI a demandé la restitution d'un montant de 153'831 fr. Le recours formé contre cette décision est pendant devant le tribunal cantonal (cause AI 99/15).
C.
A._ interjette un recours en matière de droit public contre ce jugement dont il demande la réforme, en ce sens que la rente entière soit maintenue. A titre subsidiaire, il conclut au renvoi de la cause aux premiers juges pour qu'ils statuent dans le sens des considérants. Il produit une copie d'un procès-verbal de son audition par le Ministère public de l'arrondissement de La Côte du 29 juillet 2015. Au plan procédural, il sollicite l'attribution de l'effet suspensif au recours.

Considérant en droit :
1.
Le litige porte sur la suppression, par voie de révision (<ref-law>), de la rente entière d'invalidité qui avait été allouée au recourant par décision du 4 octobre 2007, cela avec effet rétroactif au 1er octobre 2005.
La question de la prescription pénale devra être traitée dans le cadre du recours formé contre la décision de restitution du 23 mars 2015, relative aux prestations perçues du 1er octobre 2005 au 30 avril 2014 (cause AI 99/15, pendante devant la juridiction cantonale), dans l'éventualité où le principe de la restitution des prestations serait confirmé. En l'état, le procès-verbal d'audition du 29 juillet 2015 n'a pas d'incidence sur l'issue du présent litige, d'autant moins que cette pièce ne saurait être prise en considération puisqu'elle constitue un vrai novum (cf. par ex. arrêt 9C_739/2014 du 30 novembre 2015 consid. 1.2).
2.
Les premiers juges ont exposé correctement les règles applicables, si bien qu'il suffit de renvoyer au jugement attaqué.
3.
3.1. Le recourant se prévaut d'une violation de son droit d'être entendu, alléguant qu'il n'a pris connaissance de l'enquête économique dirigée contre lui que lors de la notification du jugement attaqué du 9 juillet 2015. A ce sujet, il précise qu'il n'a pas été appelé à participer à l'administration des preuves utilisées contre lui, pas plus qu'il n'a été en mesure de se déterminer sur le résultat de l'enquête par la suite.
Dans la mesure où le recourant soulève un grief d'ordre formel contre le déroulement de la procédure de première instance, soit la violation de son droit d'être entendu (art. 29 al. 2 Cst.), celui-ci doit être examiné en premier lieu, car il se pourrait que le Tribunal fédéral accueille le recours sur ce point et renvoie la cause à l'autorité inférieure sans examen du litige au fond (cf. <ref-ruling> consid. 2 p. 92 et la référence; arrêt 9C_769/2014 du 15 mai 2015 consid. 1.2).
3.2. En l'espèce, l'intimé avait mentionné le rapport d'enquête économique du 28 février 2014 dans la décision de suspension de la rente qu'il avait rendue le 28 avril 2014. Le recourant s'y est référé à son tour dans le recours qu'il avait formé le 12 mai 2014 contre cette décision. En outre, l'intimé a également fait état du rapport du 28 février 2014 dans la plainte pénale qu'il a déposée le 11 mai 2014, dans son projet de décision du 19 juin 2014, puis dans la décision du 13 octobre 2014. Le rapport est cité dans le jugement du 4 juillet 2014.
Vu ce qui précède, le recourant aurait eu tout loisir, à compter du moment où l'existence du rapport du 28 février 2014 lui était connue (au plus tard lors de la notification de la décision de suspension du 28 avril 2014), d'en demander une copie et de se déterminer sur ce document. Il ne l'a pas fait, que ce soit lors de l'entretien du 23 juillet 2014 durant lequel il s'est exprimé sur ses activités lucratives, ses revenus et son état de santé, dans ses déterminations écrites du 3 septembre 2014, ou dans son recours cantonal. Le grief tiré de la violation de son droit d'être entendu, que le recourant invoque pour la première fois devant le Tribunal fédéral, est donc infondé, car sur ce point il avait - à tout le moins tacitement - renoncé à exercer ses droits de participer à l'instruction.
4.
4.1. Le recourant s'en prend également aux constatations de fait du tribunal cantonal relatives à l'étendue de sa capacité de travail dans l'activité de directeur commercial, qui a été jugée entière. A son avis, la juridiction cantonale s'est fondée à tort sur le rapport de la doctoresse H._ du 30 juillet 2012, au motif qu'il serait incomplet et que l'experte n'avait pas pris ses plaintes en considération. Le recourant rappelle qu'il avait allégué que sa médication entraînait des effets soporifiques, de sorte qu'il ne pouvait pas travailler plus de quelques heures par jour. Il soutient que l'expertise médicale judiciaire qu'il avait sollicitée lui avait été refusée à tort, et renouvelle sa demande de mise en oeuvre afin de réévaluer sa capacité de travail actuelle.
4.2. La doctoresse H._ n'a pas attesté que la médication diminuerait le rendement. Au contraire, l'experte a fait état du caractère vif et adéquat du recourant, qui lui avait précisé qu'il n'avait pas d'accès de fatigue en cours de journée ni de manque de concentration (cf. rapport, p. 34). Le discours que le recourant tient pour contester la force probante du rapport d'expertise ne se concilie donc pas avec ce qu'il avait précédemment déclaré à la doctoresse H._, ses allégués n'étant ainsi pas de nature à jeter le doute sur le bien-fondé des constatations des premiers juges quant à l'étendue de sa capacité de travail. Conformément à l'<ref-law>, la cause doit ainsi être jugée en tenant compte du fait que le recourant conserve une pleine capacité de travail dans une activité adaptée dans le domaine tertiaire ou en qualité de directeur commercial (consid. 5a p. 31 du jugement attaqué).
5.
5.1. Le recourant conteste aussi toute omission volontaire d'annoncer ses revenus à l'intimé. Il soutient qu'il n'avait pas compris la signification du terme " activité lucrative " et qu'il avait coché la case " sans activité lucrative " dans le questionnaire du 2 avril 2009 en raison d'une erreur de compréhension.
Par ailleurs, le recourant reproche aux premiers juges d'avoir assimilé les revenus de capitaux à ceux du travail et d'avoir ainsi additionné à tort salaire et part du bénéfice réalisé pour déterminer le manque à gagner. Il rappelle qu'il n'a jamais été le gérant de la société E._ SA et qu'il n'a pas détenu d'actions de la société I._ SA. En raison de la publicité du registre du commerce, l'intimé connaissait sa fonction d'administrateur-président de E._ SA, laquelle ne lui rapportait rien, à part une rémunération mensuelle de 500 fr. pour le tri du courrier. Quant aux augmentations ponctuelles de ses revenus en 2010, elles étaient dues à la perception d'une commission de 63'000 fr. et au versement rétroactif des rentes de l'AI.
5.2. Quoi qu'en dise le recourant, il ne lui appartenait pas de choisir les activités lucratives qu'il devait annoncer aux organes de l'AI. En effet, l'obligation de communiquer les activités exercées n'était pas limitée à l'époque de la demande de prestations (ch. 6.3 de la demande du 20 janvier 2004), mais perdurait en tout temps (cf. <ref-law> et 77 RAI). L'obligation d'annoncer les changements de salaire ou de situation économique, par exemple le début ou la cessation d'une activité lucrative, figurait d'ailleurs en toutes lettres dans la motivation de la décision du 4 octobre 2007.
En ce qui concerne les revenus réalisés, les premiers juges ont constaté que la caisse AVS avait procédé à des reprises de salaires qui étaient passées en force. Une correction réalisée à l'occasion d'un contrôle d'employeur, pour les années 2005 à 2007, notamment en lien avec les postes " frais de véhicules " et " divers " du bilan de l'employeur, avait ainsi abouti à une réévaluation des montants à la hausse, soit un salaire de 138'974 fr. en 2005 et 2006, 113'234 fr. 2007 et 163'000 fr. en 2009 (jugement attaqué, consid. 5b/cc p. 33-34). En regard des revenus pris en compte dans la décision du 4 octobre 2007, de tels salaires excluent d'emblée un taux d'invalidité ouvrant droit à la rente.
6.
6.1. Le recourant soutient enfin qu'il n'existe pas de motifs de révision de la rente, au sens de l'<ref-law>. Il conteste pouvoir réaliser des revenus équivalents ou supérieurs à ceux qui auraient été les siens lors de la survenance de la maladie, alléguant que son état de santé ne s'est pas amélioré depuis l'octroi de sa rente d'invalidité en 2007 et que sa capacité de travail n'a plus dépassé 30%.
6.2. Une amélioration de l'état de santé n'est certes pas établie depuis l'octroi de la rente. En revanche, le recourant a démontré, par les revenus qui ont été repris à titre de salaire par l'AVS, qu'il a été en mesure de réaliser des revenus du travail excluant le droit à la rente, malgré ses problèmes de santé; les conséquences de ceux-ci sur la capacité de gain ont dès lors subi un changement important (cf. <ref-ruling> consid. 3.5 p. 349). De surcroît, il a omis d'annoncer ces revenus. A cet égard, les premiers juges n'ont pas violé le droit fédéral en considérant que si l'intimé avait eu connaissance de ces revenus que le recourant n'avait pas annoncés, la rente aurait été supprimée depuis le mois de septembre 2005 au moins, époque à laquelle la société E._ SA avait été inscrite au registre du commerce.
6.3. Compte tenu de ce qui précède, les premiers juges ont confirmé à bon droit la décision du 13 octobre 2014 portant suppression de la rente avec effet rétroactif au 1er octobre 2005, soit au moment où elle avait cessé de correspondre aux droits du recourant, en application des <ref-law>, 77 RAI et 88 bis al. 2 let b RAI. Le recours est infondé.
7.
Vu l'issue du litige, la requête d'attribution de l'effet suspensif au recours n'a plus d'objet.
8.
Le recourant, qui succombe, supportera les frais de la procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant.
3.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Vaud, Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 8 mars 2016
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
La Présidente : Glanzmann
Le Greffier : Berthoud